/DragonOS-0.1.8/kernel/src/process/ |
D | process.h | 25 extern void process_exit_thread(struct process_control_block *pcb); 26 extern int 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); 121 uint64_t process_exit_mm(struct process_control_block *pcb); 150 int process_release_pcb(struct process_control_block *pcb); 177 extern struct process_control_block *initial_proc[MAX_CPU_NUM]; 185 void process_set_pcb_name(struct process_control_block *pcb, const char *pcb_name); 196 extern bool process_is_stopped(struct process_control_block *pcb); [all …]
|
D | process.c | 44 extern void process_exit_sighand(struct process_control_block *pcb); 45 extern void process_exit_signal(struct process_control_block *pcb); 46 extern void initial_proc_init_signal(struct process_control_block *pcb); 47 extern void rs_process_exit_fpstate(struct process_control_block *pcb); 48 extern void rs_drop_address_space(struct process_control_block *pcb); 78 struct process_control_block *initial_proc[MAX_CPU_NUM] = {&initial_proc_union.pcb, 0}; 89 extern int 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() 158 struct process_control_block *process_init_rt_pcb(struct process_control_block *rt_pcb) in process_init_rt_pcb() [all …]
|
D | fork.c | 13 extern uint64_t rs_process_copy_mm(bool clone_vm, struct process_control_block *new_pcb); 15 extern int process_copy_files(uint64_t clone_flags, struct process_control_block *pcb); 16 int process_copy_flags(uint64_t clone_flags, struct process_control_block *pcb); 17 int process_copy_mm(uint64_t clone_flags, struct process_control_block *pcb); 18 int process_copy_thread(uint64_t clone_flags, struct process_control_block *pcb, uint64_t stack_sta… 21 extern int process_copy_sighand(uint64_t clone_flags, struct process_control_block *pcb); 22 extern int process_copy_signal(uint64_t clone_flags, struct process_control_block *pcb); 23 extern void process_exit_sighand(struct process_control_block *pcb); 24 extern void process_exit_signal(struct process_control_block *pcb); 39 struct process_control_block *tsk = NULL; in do_fork() [all …]
|
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() 138 struct process_control_block *kthread_create_on_node(int (*thread_fn)(void *data), void *data, int … in kthread_create_on_node() 141 struct process_control_block *pcb; in kthread_create_on_node() 200 create->result = (struct process_control_block *)pid; in __create_kthread() 216 struct process_control_block *pcb = current_pcb; in kthreadd() 274 int kthread_stop(struct process_control_block *pcb) in kthread_stop() [all …]
|
D | c_adapter.rs | 7 include::bindings::bindings::process_control_block, 19 pub extern "C" fn rs_process_copy_mm(clone_vm: bool, new_pcb: &mut process_control_block) -> usize { in rs_process_copy_mm() 38 pub extern "C" fn rs_drop_address_space(pcb: &'static mut process_control_block) -> i32 { in rs_drop_address_space() 52 from: &'static process_control_block, in process_copy_files() argument 68 pub extern "C" fn process_exit_files(pcb: &'static mut process_control_block) -> i32 { in process_exit_files() 98 pub extern "C" fn rs_process_exit_fpstate(pcb: &'static mut process_control_block) { in rs_process_exit_fpstate() argument
|
D | proc-types.h | 78 struct process_control_block struct 114 struct process_control_block *prev_pcb, *next_pcb; argument 116 struct process_control_block *parent_pcb; argument 145 struct process_control_block pcb; argument
|
D | process.rs | 16 process_control_block, CLONE_FS, PROC_INTERRUPTIBLE, PROC_RUNNING, PROC_STOPPED, 31 pub extern "C" fn process_is_stopped(pcb: *const process_control_block) -> bool { in process_is_stopped() 50 _pcb: *mut process_control_block, in process_try_to_wake_up() argument 61 if current_pcb() as *mut process_control_block as usize == _pcb as usize { in process_try_to_wake_up() 91 pub extern "C" fn process_wake_up_state(pcb: *mut process_control_block, state: u64) -> bool { in process_wake_up_state() argument 96 pub fn process_kick(pcb: *mut process_control_block) { in process_kick() argument 108 pub fn process_cpu(pcb: *const process_control_block) -> u32 { in process_cpu() 116 pub fn process_is_executing(pcb: *const process_control_block) -> bool { in process_is_executing() 117 return cpu_executing(process_cpu(pcb)) as *const process_control_block == pcb; in process_is_executing() constant 120 impl process_control_block { implementation [all …]
|
D | fork.rs | 8 process_control_block, CLONE_CLEAR_SIGHAND, CLONE_SIGHAND, CLONE_THREAD, 24 pub extern "C" fn process_copy_sighand(clone_flags: u64, pcb: *mut process_control_block) -> i32 { in process_copy_sighand() 83 pub extern "C" fn process_copy_signal(clone_flags: u64, pcb: *mut process_control_block) -> i32 { in process_copy_signal() 110 pub extern "C" fn process_exit_signal(pcb: *mut process_control_block) { in process_exit_signal() argument 126 pub extern "C" fn process_exit_sighand(pcb: *mut process_control_block) { in process_exit_sighand() argument 150 pub fn copy_mm(clone_vm: bool, new_pcb: &mut process_control_block) -> Result<(), SystemError> { in copy_mm()
|
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.8/kernel/src/sched/ |
D | sched.h | 65 extern void sched_enqueue(struct process_control_block *pcb, bool reset_time); 66 extern void sched_set_cpu_idle(uint64_t cpu_id, struct process_control_block *pcb); 67 extern void sched_migrate_process(struct process_control_block *pcb, uint64_t target); 69 void switch_proc(struct process_control_block *prev, struct process_control_block *proc);
|
D | rt.rs | 8 process_control_block, MAX_CPU_NUM, PF_NEED_SCHED, SCHED_FIFO, SCHED_RR, 41 queue: LinkedList<&'static mut process_control_block>, 52 pub fn enqueue(&mut self, pcb: &'static mut process_control_block) { in enqueue() argument 66 pub fn dequeue(&mut self) -> Option<&'static mut process_control_block> { in dequeue() argument 67 let res: Option<&'static mut process_control_block>; in dequeue() variable 80 pub fn enqueue_front(&mut self, pcb: &'static mut process_control_block) { in enqueue_front() argument 133 pub fn pick_next_task_rt(&mut self, cpu_id: u32) -> Option<&'static mut process_control_block> { in pick_next_task_rt() argument 138 let proc: Option<&'static mut process_control_block> = cpu_queue_i.dequeue(); in pick_next_task_rt() variable 161 pub fn enqueue_front(&mut self, pcb: &'static mut process_control_block) { in enqueue_front() argument 169 fn sched(&mut self) -> Option<&'static mut process_control_block> { in sched() argument [all …]
|
D | core.rs | 7 process_control_block, MAX_CPU_NUM, PF_NEED_MIGRATE, PROC_RUNNING, SCHED_FIFO, 20 pub fn cpu_executing(cpu_id: u32) -> &'static mut process_control_block { in cpu_executing() argument 42 pub fn loads_balance(pcb: &mut process_control_block) { in loads_balance() argument 69 fn sched(&mut self) -> Option<&'static mut process_control_block>; in sched() argument 72 fn enqueue(&mut self, pcb: &'static mut process_control_block); in enqueue() argument 75 pub fn do_sched() -> Option<&'static mut process_control_block> { in do_sched() 81 let next: &'static mut process_control_block; in do_sched() variable 103 pub extern "C" fn sched_enqueue(pcb: &'static mut process_control_block, mut reset_time: bool) { in sched_enqueue() argument 172 pub extern "C" fn sched_set_cpu_idle(cpu_id: usize, pcb: *mut process_control_block) { in sched_set_cpu_idle() argument 183 pcb: &'static mut process_control_block, in sched_migrate_process() argument
|
D | cfs.rs | 8 initial_proc_union, process_control_block, MAX_CPU_NUM, PF_NEED_SCHED, PROC_RUNNING, 44 queue: RBTree<i64, &'static mut process_control_block>, 46 idle_pcb: *mut process_control_block, 50 pub fn new(idle_pcb: *mut process_control_block) -> CFSQueue { in new() 60 pub fn enqueue(&mut self, pcb: &'static mut process_control_block) { in enqueue() argument 76 pub fn dequeue(&mut self) -> &'static mut process_control_block { in dequeue() argument 77 let res: &'static mut process_control_block; in dequeue() variable 160 pub fn enqueue_reset_vruntime(&mut self, pcb: &'static mut process_control_block) { in enqueue_reset_vruntime() argument 170 pub fn set_cpu_idle(&mut self, cpu_id: usize, pcb: *mut process_control_block) { in set_cpu_idle() argument 183 fn sched(&mut self) -> Option<&'static mut process_control_block> { in sched() argument [all …]
|
D | core.c | 9 void switch_proc(struct process_control_block *prev, struct process_control_block *proc) in switch_proc()
|
/DragonOS-0.1.8/kernel/src/common/ |
D | kthread.h | 24 struct process_control_block *kthread_create_on_node(int (*thread_fn)(void *data), void *data, int … 49 … struct process_control_block *__kt = kthread_create(thread_fn, data, name_fmt, ##__VA_ARGS__); \ 65 …struct process_control_block *__kt = kthread_create(thread_fn, data, name_fmt, ##__VA_ARGS__); … 80 int kthread_stop(struct process_control_block *pcb); 110 bool kthread_set_worker_private(struct process_control_block *pcb); 118 struct kthread_info_t *to_kthread(struct process_control_block *pcb); 125 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.8/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() 15 ret = (tmp as *mut process_control_block).as_mut(); in current_pcb()
|
/DragonOS-0.1.8/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.8/kernel/src/arch/x86_64/ |
D | context.rs | 1 use crate::include::bindings::bindings::{process_control_block, switch_proc}; 13 prev: &'static mut process_control_block, in switch_process() argument 14 next: &'static mut process_control_block, in switch_process() argument
|
D | fpu.rs | 12 use crate::{exception::InterruptArch, include::bindings::bindings::process_control_block}; 81 pub fn fp_state_save(pcb: &mut process_control_block) { in fp_state_save() argument 119 pub fn fp_state_restore(pcb: &mut process_control_block) { in fp_state_restore() argument
|
/DragonOS-0.1.8/kernel/src/libs/ |
D | mutex.rs | 11 pid_t, process_control_block, process_wakeup, PROC_INTERRUPTIBLE, PROC_RUNNING, 24 wait_list: LinkedList<&'static mut process_control_block>, 53 wait_list: LinkedList::<&'static mut process_control_block>::new(), in new() variable 126 let to_wakeup: &mut process_control_block = inner.wait_list.pop_front().unwrap(); in unlock()
|
/DragonOS-0.1.8/kernel/src/syscall/ |
D | syscall.c | 88 struct process_control_block *proc = NULL; in c_sys_wait4() 89 struct process_control_block *child_proc = NULL; in c_sys_wait4()
|
/DragonOS-0.1.8/kernel/src/ipc/ |
D | signal.rs | 15 pid_t, process_control_block, process_do_exit, process_find_pcb_by_pid, pt_regs, 125 target_pcb: &mut process_control_block, in signal_send_sig_info() argument 155 pcb: &'a mut process_control_block, in lock_process_sighand() argument 178 fn unlock_process_sighand(pcb: &mut process_control_block, flags: usize) { in unlock_process_sighand() argument 191 pcb: &mut process_control_block, in send_signal_locked() argument 220 pcb: &mut process_control_block, in __send_signal_locked() argument 262 fn complete_signal(sig: SignalNumber, pcb: &mut process_control_block, pt: PidType) { in complete_signal() argument 278 let mut _target: Option<&mut process_control_block> = None; in complete_signal() 310 fn wants_signal(sig: SignalNumber, pcb: &process_control_block) -> bool { in wants_signal() 339 fn sig_fatal(pcb: &process_control_block, sig: SignalNumber) -> bool { in sig_fatal() argument [all …]
|
/DragonOS-0.1.8/docs/kernel/process_management/ |
D | pcb.md | 26 **struct process_control_block**
|