| 123456789101112131415161718192021222324252627282930313233 |
- #ifndef __USERPROG_PROCESS_H
- #define __USERPROG_PROCESS_H
- #include "../kernel/global.h"
- #include "../thread/thread.h"
- #include "../lib/string.h"
- #define default_prio 31
- #define USER_STACK3_VADDR (0xc0000000 - 0x1000)
- #define USER_VADDR_START 0x8048000
- /// @brief 创建用户进程初始化上下文信息
- /// @param filename_ 进程文件名
- void start_process(void *filename_);
- /// @brief 激活页表
- /// @param p_thread
- void page_dir_activate(struct task_struct *p_thread);
- /// @brief 激活线程或进程的页表,更新 tss 中的 esp0 为进程的特权级 0 的栈
- /// @param p_thread
- void process_activate(struct task_struct *p_thread);
- /// @brief 创建页目录表,将当前页表的表示内核空间的 pde 复制
- /// @param
- /// @return 成功返回页目录的虚拟地址,否则返回 -1
- uint32_t *create_page_dir(void);
- /// @brief 创建用户进程虚拟虚拟内存池
- /// @param user_prog pcb of user
- void create_user_vaddr_bitmap(struct task_struct *user_prog);
- /// @brief 创建用户进程
- /// @param filename 用户进程地址
- /// @param name 进程名
- void process_execute(void *filename, char *name);
- #endif // __USERPROG_PROCESS_H
|