#ifndef __LUNAIX_PROCESS_H
#define __LUNAIX_PROCESS_H
-#include <sys/interrupts.h>
#include <lunaix/clock.h>
#include <lunaix/ds/waitq.h>
#include <lunaix/fs.h>
#include <lunaix/timer.h>
#include <lunaix/types.h>
#include <stdint.h>
+#include <sys/interrupts.h>
// 虽然内核不是进程,但为了区分,这里使用Pid=-1来指代内核。这主要是方便物理页所有权检查。
#define KERNEL_PID -1
// enable interrupt upon transfer
#define TRANSFER_IE 1
+/**
+ * @brief Setup process initial context, used to initiate first switch
+ *
+ * @param proc
+ * @param stop
+ * @param target
+ * @param flags
+ */
void
proc_init_transfer(struct proc_info* proc, ptr_t stop, ptr_t target, int flags);