xref: /DragonOS/kernel/src/process/process.h (revision 415e46ea470ba1dd33e4368c3684c700a75f3be8)
12813126eSlogin /**
22813126eSlogin  * @file process.h
32813126eSlogin  * @author longjin
42813126eSlogin  * @brief 进程
52813126eSlogin  * @date 2022-01-29
62813126eSlogin  *
72813126eSlogin  * @copyright Copyright (c) 2022
82813126eSlogin  *
92813126eSlogin  */
102813126eSlogin 
112813126eSlogin #pragma once
122813126eSlogin #include "ptrace.h"
132813126eSlogin #include <common/errno.h>
14cffd7144Slogin #include <common/glib.h>
152813126eSlogin 
162813126eSlogin /**
172813126eSlogin  * @brief 进程退出时执行的函数
182813126eSlogin  *
192813126eSlogin  * @param code 返回码
202813126eSlogin  * @return ul
212813126eSlogin  */
221496ba7bSLoGin extern ul rs_process_do_exit(ul code);
232813126eSlogin 
241496ba7bSLoGin extern int rs_current_cpu_id();
252813126eSlogin 
262813126eSlogin extern unsigned long head_stack_start; // 导出内核层栈基地址(定义在head.S
272813126eSlogin extern ul _stack_start;
282813126eSlogin extern void ret_from_intr(void); // 导出从中断返回的函数(定义在entry.S
292813126eSlogin 
301496ba7bSLoGin extern uint32_t rs_current_pcb_cpuid();
311496ba7bSLoGin extern uint32_t rs_current_pcb_pid();
321496ba7bSLoGin extern uint32_t rs_current_pcb_preempt_count();
331496ba7bSLoGin extern uint32_t rs_current_pcb_flags();
34*415e46eaSLoGin extern uint64_t rs_current_pcb_thread_rbp();
352813126eSlogin 
361496ba7bSLoGin #define PF_NEED_SCHED (1UL << 1)
37