Home
last modified time | relevance | path

Searched refs:process_control_block (Results 1 – 25 of 37) sorted by relevance

12

/DragonOS-0.1.7/kernel/src/process/
Dprocess.h25 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);
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 …]
Dkthread.c10 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 …]
Dfork.c14 extern int process_copy_files(uint64_t clone_flags, struct process_control_block *pcb);
15 int process_copy_flags(uint64_t clone_flags, struct process_control_block *pcb);
16 int process_copy_mm(uint64_t clone_flags, struct process_control_block *pcb);
17 int process_copy_thread(uint64_t clone_flags, struct process_control_block *pcb, uint64_t stack_sta…
20 extern int process_copy_sighand(uint64_t clone_flags, struct process_control_block *pcb);
21 extern int process_copy_signal(uint64_t clone_flags, struct process_control_block *pcb);
22 extern void process_exit_sighand(struct process_control_block *pcb);
23 extern void process_exit_signal(struct process_control_block *pcb);
38 struct process_control_block *tsk = NULL; in do_fork()
41 tsk = (struct process_control_block *)kzalloc(STACK_SIZE, 0); in do_fork()
[all …]
Dprocess.rs15 process_control_block, CLONE_FS, PROC_INTERRUPTIBLE, PROC_RUNNING, PROC_STOPPED,
29 pub extern "C" fn process_is_stopped(pcb: *const process_control_block) -> bool { in process_is_stopped()
48 _pcb: *mut process_control_block, in process_try_to_wake_up() argument
59 if current_pcb() as *mut process_control_block as usize == _pcb as usize { in process_try_to_wake_up()
89 pub extern "C" fn process_wake_up_state(pcb: *mut process_control_block, state: u64) -> bool { in process_wake_up_state() argument
94 pub fn process_kick(pcb: *mut process_control_block) { in process_kick() argument
106 pub fn process_cpu(pcb: *const process_control_block) -> u32 { in process_cpu()
114 pub fn process_is_executing(pcb: *const process_control_block) -> bool { in process_is_executing()
115 return cpu_executing(process_cpu(pcb)) as *const process_control_block == pcb; in process_is_executing() constant
118 impl process_control_block { impl
[all …]
Dproc-types.h78 struct process_control_block struct
117 struct process_control_block *prev_pcb, *next_pcb; argument
119 struct process_control_block *parent_pcb; argument
144 struct process_control_block pcb; argument
Dprocess.c46 extern void process_exit_sighand(struct process_control_block *pcb);
47 extern void process_exit_signal(struct process_control_block *pcb);
48 extern void initial_proc_init_signal(struct process_control_block *pcb);
49 extern void rs_process_exit_fpstate(struct process_control_block *pcb);
77 struct process_control_block *initial_proc[MAX_CPU_NUM] = {&initial_proc_union.pcb, 0};
88 extern int process_exit_files(struct process_control_block *pcb);
96 uint64_t process_exit_mm(struct process_control_block *pcb);
108 void __switch_to(struct process_control_block *prev, struct process_control_block *next) in __switch_to()
538 struct process_control_block *process_init_rt_pcb(struct process_control_block *rt_pcb) in process_init_rt_pcb()
649 struct process_control_block *pcb = current_pcb; in process_do_exit()
[all …]
Dfork.rs8 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
Dinitial_proc.rs6 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.7/kernel/src/sched/
Dsched.h65 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);
Drt.rs8 process_control_block, MAX_CPU_NUM, PF_NEED_SCHED, SCHED_FIFO, SCHED_RR,
43 queue: LinkedList<&'static mut process_control_block>,
54 pub fn enqueue(&mut self, pcb: &'static mut process_control_block) { in enqueue() argument
68 pub fn dequeue(&mut self) -> Option<&'static mut process_control_block> { in dequeue() argument
69 let res: Option<&'static mut process_control_block>; in dequeue() variable
82 pub fn enqueue_front(&mut self, pcb: &'static mut process_control_block) { in enqueue_front() argument
135 pub fn pick_next_task_rt(&mut self, cpu_id: u32) -> Option<&'static mut process_control_block> { in pick_next_task_rt() argument
140 let proc: Option<&'static mut process_control_block> = cpu_queue_i.dequeue(); in pick_next_task_rt() variable
163 pub fn enqueue_front(&mut self, pcb: &'static mut process_control_block) { in enqueue_front() argument
171 fn sched(&mut self) -> Option<&'static mut process_control_block> { in sched() argument
[all …]
Dcfs.rs8 initial_proc_union, process_control_block, MAX_CPU_NUM, PF_NEED_SCHED, PROC_RUNNING,
45 queue: RBTree<i64, &'static mut process_control_block>,
47 idle_pcb: *mut process_control_block,
51 pub fn new(idle_pcb: *mut process_control_block) -> CFSQueue { in new()
61 pub fn enqueue(&mut self, pcb: &'static mut process_control_block) { in enqueue() argument
77 pub fn dequeue(&mut self) -> &'static mut process_control_block { in dequeue() argument
78 let res: &'static mut process_control_block; in dequeue() variable
161 pub fn enqueue_reset_vruntime(&mut self, pcb: &'static mut process_control_block) { in enqueue_reset_vruntime() argument
171 pub fn set_cpu_idle(&mut self, cpu_id: usize, pcb: *mut process_control_block) { in set_cpu_idle() argument
184 fn sched(&mut self) -> Option<&'static mut process_control_block> { in sched() argument
[all …]
Dcore.rs11 process_control_block, pt_regs, MAX_CPU_NUM, PF_NEED_MIGRATE, PROC_RUNNING, SCHED_FIFO,
23 pub fn cpu_executing(cpu_id: u32) -> &'static mut process_control_block { in cpu_executing() argument
45 pub fn loads_balance(pcb: &mut process_control_block) { in loads_balance() argument
72 fn sched(&mut self) -> Option<&'static mut process_control_block>; in sched() argument
75 fn enqueue(&mut self, pcb: &'static mut process_control_block); in enqueue() argument
78 fn __sched() -> Option<&'static mut process_control_block> { in __sched()
84 let next: &'static mut process_control_block; in __sched() variable
106 pub extern "C" fn sched_enqueue(pcb: &'static mut process_control_block, mut reset_time: bool) { in sched_enqueue() argument
193 pub extern "C" fn sched_set_cpu_idle(cpu_id: usize, pcb: *mut process_control_block) { in sched_set_cpu_idle() argument
204 pcb: &'static mut process_control_block, in sched_migrate_process() argument
Dcore.c9 void switch_proc(struct process_control_block *prev, struct process_control_block *proc) in switch_proc()
/DragonOS-0.1.7/kernel/src/common/
Dkthread.h24 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);
Dwait_queue.h4 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);
Dmutex.h31 struct process_control_block *pcb;
/DragonOS-0.1.7/kernel/src/arch/x86_64/asm/
Dcurrent.rs1 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.7/kernel/src/arch/x86_64/include/asm/
Dcurrent.h6 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.7/kernel/src/arch/x86_64/mm/
Dmod.rs2 use crate::include::bindings::bindings::process_control_block;
17 next_pcb: &'static mut process_control_block, in switch_mm() argument
18 ) -> &'static mut process_control_block { in switch_mm() argument
/DragonOS-0.1.7/kernel/src/mm/
Dmod.rs1 use crate::include::bindings::bindings::{mm_struct, process_control_block, PAGE_OFFSET};
21 unsafe impl Send for process_control_block {} implementation
22 unsafe impl Sync for process_control_block {} implementation
/DragonOS-0.1.7/kernel/src/arch/x86_64/
Dcontext.rs1 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
Dfpu.rs12 use crate::include::bindings::bindings::process_control_block;
80 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.7/kernel/src/libs/
Dmutex.rs11 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()
Dwait_queue.rs8 process_control_block, process_wakeup, wait_queue_head_t, PROC_INTERRUPTIBLE,
33 wait_list: LinkedList<&'static mut process_control_block>,
177 let mut to_push_back: Vec<&mut process_control_block> = Vec::new(); in wakeup_all()
/DragonOS-0.1.7/docs/kernel/process_management/
Dpcb.md26 **struct process_control_block**

12