/DragonOS-0.1.2/kernel/src/process/ |
D | process.h | 25 extern void process_exit_thread(struct process_control_block *pcb); 26 extern uint64_t process_exit_files(struct process_control_block *pcb); 97 struct process_control_block *process_find_pcb_by_pid(pid_t pid); 106 int process_wakeup(struct process_control_block *pcb); 113 int process_wakeup_immediately(struct process_control_block *pcb); 132 uint64_t process_exit_mm(struct process_control_block *pcb); 161 int process_release_pcb(struct process_control_block *pcb); 187 extern struct process_control_block *initial_proc[MAX_CPU_NUM]; 195 void process_set_pcb_name(struct process_control_block *pcb, const char *pcb_name); 206 extern bool process_is_stopped(struct process_control_block *pcb); [all …]
|
D | process.rs | 6 process_control_block, sched_enqueue, PROC_RUNNING, PROC_STOPPED, 16 pub extern "C" fn process_is_stopped(pcb: *const process_control_block) -> bool { in process_is_stopped() 35 _pcb: *mut process_control_block, in process_try_to_wake_up() argument 46 if current_pcb() as *mut process_control_block as usize == _pcb as usize { in process_try_to_wake_up() 75 pub extern "C" fn process_wake_up_state(pcb: *mut process_control_block, state: u64) -> bool { in process_wake_up_state() argument 81 pub fn process_kick(pcb: *mut process_control_block) { in process_kick() argument 93 pub fn process_cpu(pcb: *const process_control_block) -> u32 { in process_cpu() 101 pub fn process_is_executing(pcb: *const process_control_block) -> bool { in process_is_executing()
|
D | kthread.c | 10 struct process_control_block *kthreadd_pcb = NULL; // kthreadd守护线程的pcb 33 struct process_control_block *result; 44 struct kthread_info_t *to_kthread(struct process_control_block *pcb) in to_kthread() 50 static struct process_control_block *__kthread_create_on_node(int (*thread_fn)(void *data), void *d… in __kthread_create_on_node() 53 struct process_control_block *pcb = NULL; in __kthread_create_on_node() 137 struct process_control_block *kthread_create_on_node(int (*thread_fn)(void *data), void *data, int … in kthread_create_on_node() 140 struct process_control_block *pcb; in kthread_create_on_node() 199 create->result = (struct process_control_block *)pid; in __create_kthread() 212 struct process_control_block *pcb = current_pcb; in kthreadd() 263 int kthread_stop(struct process_control_block *pcb) in kthread_stop() [all …]
|
D | fork.c | 12 int process_copy_files(uint64_t clone_flags, struct process_control_block *pcb); 13 int process_copy_flags(uint64_t clone_flags, struct process_control_block *pcb); 14 int process_copy_mm(uint64_t clone_flags, struct process_control_block *pcb); 15 int process_copy_thread(uint64_t clone_flags, struct process_control_block *pcb, uint64_t stack_sta… 18 extern int process_copy_sighand(uint64_t clone_flags, struct process_control_block *pcb); 19 extern int process_copy_signal(uint64_t clone_flags, struct process_control_block *pcb); 20 extern void process_exit_sighand(struct process_control_block *pcb); 21 extern void process_exit_signal(struct process_control_block *pcb); 36 struct process_control_block *tsk = NULL; in do_fork() 39 tsk = (struct process_control_block *)kzalloc(STACK_SIZE, 0); in do_fork() [all …]
|
D | proc-types.h | 75 struct process_control_block struct 113 struct process_control_block *prev_pcb, *next_pcb; argument 115 struct process_control_block *parent_pcb; argument 135 struct process_control_block pcb; argument
|
D | process.c | 50 extern void process_exit_sighand(struct process_control_block *pcb); 51 extern void process_exit_signal(struct process_control_block *pcb); 52 extern void initial_proc_init_signal(struct process_control_block *pcb); 78 struct process_control_block *initial_proc[MAX_CPU_NUM] = {&initial_proc_union.pcb, 0}; 89 uint64_t process_exit_files(struct process_control_block *pcb); 97 uint64_t process_exit_mm(struct process_control_block *pcb); 109 void __switch_to(struct process_control_block *prev, struct process_control_block *next) in __switch_to() 546 struct process_control_block *pcb = current_pcb; in process_do_exit() 651 struct process_control_block *process_find_pcb_by_pid(pid_t pid) in process_find_pcb_by_pid() 654 struct process_control_block *pcb = initial_proc_union.pcb.next_pcb; in process_find_pcb_by_pid() [all …]
|
D | fork.rs | 8 process_control_block, CLONE_CLEAR_SIGHAND, CLONE_SIGHAND, CLONE_THREAD, ENOMEM, 23 pub extern "C" fn process_copy_sighand(clone_flags: u64, pcb: *mut process_control_block) -> i32 { in process_copy_sighand() 82 pub extern "C" fn process_copy_signal(clone_flags: u64, pcb: *mut process_control_block) -> i32 { in process_copy_signal() 109 pub extern "C" fn process_exit_signal(pcb: *mut process_control_block) { in process_exit_signal() argument 125 pub extern "C" fn process_exit_sighand(pcb: *mut process_control_block) { in process_exit_sighand() argument
|
D | initial_proc.rs | 6 include::bindings::bindings::{atomic_t, process_control_block, spinlock_t}, 28 pub extern "C" fn initial_proc_init_signal(pcb: *mut process_control_block) { in initial_proc_init_signal() argument
|
/DragonOS-0.1.2/kernel/src/common/ |
D | kthread.h | 24 struct process_control_block *kthread_create_on_node(int (*thread_fn)(void *data), 51 … struct process_control_block *__kt = kthread_create(thread_fn, data, name_fmt, ##__VA_ARGS__); \ 63 int kthread_stop(struct process_control_block * pcb); 93 bool kthread_set_worker_private(struct process_control_block *pcb); 101 struct kthread_info_t *to_kthread(struct process_control_block *pcb); 108 void free_kthread_struct(struct process_control_block *pcb);
|
D | wait_queue.h | 4 struct process_control_block; 15 struct process_control_block *pcb; 24 void wait_queue_init(wait_queue_node_t *wait_queue, struct process_control_block *pcb);
|
D | mutex.h | 31 struct process_control_block *pcb;
|
/DragonOS-0.1.2/kernel/src/sched/ |
D | cfs.h | 11 struct process_control_block proc_queue; 27 void sched_cfs_enqueue(struct process_control_block *pcb); 34 struct process_control_block *sched_cfs_dequeue();
|
D | sched.c | 17 static int __sched_setscheduler(struct process_control_block *p, const struct sched_attr *attr, boo… in __sched_setscheduler() 31 static int _sched_setscheduler(struct process_control_block *p, int policy, const struct sched_para… in _sched_setscheduler() 47 int sched_setscheduler(struct process_control_block *p, int policy, const struct sched_param *param) in sched_setscheduler() 57 void sched_enqueue(struct process_control_block *pcb) in sched_enqueue()
|
D | cfs.c | 13 struct process_control_block *sched_cfs_dequeue() in sched_cfs_dequeue() 21 …ruct process_control_block *proc = container_of(list_next(&sched_cfs_ready_queue[proc_current_cpu_… in sched_cfs_dequeue() 33 void sched_cfs_enqueue(struct process_control_block *pcb) in sched_cfs_enqueue() 37 …ruct process_control_block *proc = container_of(list_next(&sched_cfs_ready_queue[proc_current_cpu_… in sched_cfs_enqueue() 42 proc = container_of(list_next(&proc->list), struct process_control_block, list); in sched_cfs_enqueue() 60 struct process_control_block *proc = sched_cfs_dequeue(); in sched_cfs()
|
D | sched.h | 47 static int __sched_setscheduler(struct process_control_block *p, const struct sched_attr *attr, boo… 48 static int _sched_setscheduler(struct process_control_block *p, int policy, const struct sched_para… 59 int sched_setscheduler(struct process_control_block *p, int policy, const struct sched_param *param… 65 void sched_enqueue(struct process_control_block *pcb);
|
D | core.rs | 1 use crate::{include::bindings::bindings::process_control_block, process::process::process_cpu, arch… 5 pub fn cpu_executing(cpu_id:u32) -> *const process_control_block{ in cpu_executing() argument
|
/DragonOS-0.1.2/kernel/src/arch/x86_64/asm/ |
D | current.rs | 1 use crate::include::bindings::bindings::process_control_block; 7 pub fn current_pcb() -> &'static mut process_control_block { in current_pcb() 8 let ret: Option<&mut process_control_block>; in current_pcb() 14 ret = (tmp as *mut process_control_block).as_mut(); in current_pcb()
|
/DragonOS-0.1.2/kernel/src/arch/x86_64/include/asm/ |
D | current.h | 6 struct process_control_block; 8 struct process_control_block *get_current_pcb() in get_current_pcb() 10 struct process_control_block *current = NULL; in get_current_pcb()
|
/DragonOS-0.1.2/docs/kernel/process_management/ |
D | pcb.md | 26 **struct process_control_block**
|
D | kthread.md | 71   `int kthread_stop(struct process_control_block * pcb)`
|
/DragonOS-0.1.2/kernel/src/ipc/ |
D | signal.rs | 9 pid_t, process_control_block, process_do_exit, process_find_pcb_by_pid, pt_regs, 149 target_pcb: &mut process_control_block, in signal_send_sig_info() argument 179 pcb: &'a mut process_control_block, in lock_process_sighand() argument 202 fn unlock_process_sighand(pcb: &mut process_control_block, flags: u64) { in unlock_process_sighand() argument 215 pcb: &mut process_control_block, in send_signal_locked() argument 244 pcb: &mut process_control_block, in __send_signal_locked() argument 272 fn complete_signal(sig: SignalNumber, pcb: &mut process_control_block, pt: PidType) { in complete_signal() argument 288 let mut _target: Option<&mut process_control_block> = None; in complete_signal() 320 fn wants_signal(sig: SignalNumber, pcb: &process_control_block) -> bool { in wants_signal() 349 fn sig_fatal(pcb: &process_control_block, sig: SignalNumber) -> bool { in sig_fatal() argument [all …]
|
/DragonOS-0.1.2/kernel/src/smp/ |
D | smp.c | 93 …((struct process_control_block *)(cpu_core_info[current_starting_cpu].stack_start - STACK_SIZE))->… in smp_init() 95 …((struct process_control_block *)(cpu_core_info[current_starting_cpu].ist_stack_start - STACK_SIZE… in smp_init() 156 memset(current_pcb, 0, sizeof(struct process_control_block)); in smp_ap_start()
|
/DragonOS-0.1.2/kernel/src/time/ |
D | sleep.c | 17 process_wakeup((struct process_control_block *)pcb); in nanosleep_handler()
|
/DragonOS-0.1.2/kernel/src/libs/ |
D | wait_queue.c | 13 void wait_queue_init(wait_queue_node_t *wait_queue, struct process_control_block *pcb) in wait_queue_init()
|
/DragonOS-0.1.2/docs/kernel/sched/ |
D | waiting.md | 29 struct process_control_block *pcb; 43   函数`wait_queue_init(wait_queue_node_t *wait_queue, struct process_control_block *pcb)`提供…
|