feat: kill(2) implementation
[lunaix-os.git] / lunaix-os / includes / lunaix / process.h
index 26f33bd84dd9fbb21f753b5735a45a84458c2c5c..589bfaa7348d529cae2a72972931ed86b4136563 100644 (file)
 
 #define PROC_TERMMASK 0x6
 
+#define PROC_FINPAUSE 1
+#define PROC_FALRMSET (1 << 1)
+
 struct proc_mm
 {
     heap_context_t u_heap;
-    struct mm_region* regions;
+    struct mm_region regions;
 };
 
 struct proc_sig
@@ -64,6 +67,8 @@ struct proc_info
     int32_t k_status;
     sigset_t sig_pending;
     sigset_t sig_mask;
+    sigset_t sig_inprogress;
+    int flags;
     void* sig_handler[_SIG_NUM];
     pid_t pgid;
     struct lx_timer* timer;
@@ -71,11 +76,21 @@ struct proc_info
 
 extern volatile struct proc_info* __current;
 
-pid_t
-alloc_pid();
+/**
+ * @brief 分配并初始化一个进程控制块
+ *
+ * @return struct proc_info*
+ */
+struct proc_info*
+alloc_process();
 
+/**
+ * @brief 初始化进程用户空间
+ *
+ * @param pcb
+ */
 void
-init_proc(struct proc_info* pcb);
+init_proc_user_space(struct proc_info* pcb);
 
 /**
  * @brief 向系统发布一个进程,使其可以被调度。
@@ -83,7 +98,7 @@ init_proc(struct proc_info* pcb);
  * @param process
  */
 void
-push_process(struct proc_info* process);
+commit_process(struct proc_info* process);
 
 pid_t
 destroy_process(pid_t pid);