Home
last modified time | relevance | path

Searched refs:frame (Results 1 – 23 of 23) sorted by relevance

/DragonOS/kernel/src/arch/riscv64/syscall/
H A Dmod.rs31 pub(super) fn syscall_handler(syscall_num: usize, frame: &mut TrapFrame) -> () { in syscall_handler()
37 let args = [frame.a0, frame.a1, frame.a2, frame.a3, frame.a4, frame.a5]; in syscall_handler()
39 Syscall::catch_handle(syscall_num, &args, frame) in syscall_handler()
41 frame, in syscall_handler()
/DragonOS/kernel/src/arch/x86_64/process/
H A Dkthread.rs30 let mut frame = TrapFrame::new(); in __inner_create() localVariable
31 frame.rbx = create_info as usize as u64; in __inner_create()
32 frame.ds = KERNEL_DS.bits() as u64; in __inner_create()
33 frame.es = KERNEL_DS.bits() as u64; in __inner_create()
34 frame.cs = KERNEL_CS.bits() as u64; in __inner_create()
35 frame.ss = KERNEL_DS.bits() as u64; in __inner_create()
38 frame.rflags |= 1 << 9; in __inner_create()
40 frame.rip = kernel_thread_bootstrap_stage1 as usize as u64; in __inner_create()
43 let pid = ProcessManager::fork(&frame, clone_flags).inspect_err(|_e| { in __inner_create()
/DragonOS/kernel/src/exception/
H A Ddebug.rs12 pub fn handle(frame: &mut TrapFrame) -> Result<(), SystemError> { in handle()
13 Self::post_kprobe_handler(frame) in handle()
16 fn post_kprobe_handler(frame: &mut TrapFrame) -> Result<(), SystemError> { in post_kprobe_handler()
17 let pc = frame.debug_address(); in post_kprobe_handler()
22 guard.call_post_handler(frame); in post_kprobe_handler()
23 guard.call_event_callback(frame); in post_kprobe_handler()
27 clear_single_step(frame, return_address); in post_kprobe_handler()
H A Debreak.rs12 pub fn handle(frame: &mut TrapFrame) -> Result<(), SystemError> { in handle()
13 Self::kprobe_handler(frame) in handle()
15 fn kprobe_handler(frame: &mut TrapFrame) -> Result<(), SystemError> { in kprobe_handler()
16 let break_addr = frame.break_address(); in kprobe_handler()
23 guard.call_pre_handler(frame); in kprobe_handler()
28 setup_single_step(frame, single_step_address); in kprobe_handler()
33 DebugException::handle(frame)?; in kprobe_handler()
/DragonOS/kernel/src/arch/x86_64/syscall/
H A Dmod.rs67 pub extern "sysv64" fn syscall_handler(frame: &mut TrapFrame) { in syscall_handler()
68 let syscall_num = frame.rax as usize; in syscall_handler()
81 frame.rdi as usize, in syscall_handler()
82 frame.rsi as usize, in syscall_handler()
83 frame.rdx as usize, in syscall_handler()
84 frame.r10 as usize, in syscall_handler()
85 frame.r8 as usize, in syscall_handler()
86 frame.r9 as usize, in syscall_handler()
105 X86_64SignalArch::sys_rt_sigreturn(frame) as usize, in syscall_handler()
106 frame, in syscall_handler()
[all …]
/DragonOS/kernel/crates/rbpf/src/
H A Dstack.rs7 frame: Vec<u8>, field
19 frame: vec![0; STACK_SIZE], in new()
30 frame: vec![0; capacity], in with_capacity()
36 self.frame.len() in len()
40 self.frame.as_ptr() in as_ptr()
44 self.frame.as_slice() in as_slice()
/DragonOS/kernel/src/arch/x86_64/ipc/
H A Dsignal.rs335 pub frame: TrapFrame, // 暂存的系统调用/中断返回时,原本要弹出的内核栈帧 field
359 frame: &TrapFrame, in setup_sigcontext()
366 self.frame = *frame; in setup_sigcontext()
385 pub fn restore_sigcontext(&mut self, frame: &mut TrapFrame) -> bool { in restore_sigcontext()
388 (*frame) = self.frame; in restore_sigcontext()
409 unsafe extern "C" fn do_signal(frame: &mut TrapFrame) { in do_signal()
410 X86_64SignalArch::do_signal(frame); in do_signal()
417 unsafe fn do_signal(frame: &mut TrapFrame) { in do_signal()
429 if siginfo_read_guard.sig_pending().signal().bits() == 0 || !frame.is_from_user() { in do_signal()
492 handle_signal(sig_number, &mut sigaction, &info.unwrap(), &oldset, frame); in do_signal()
[all …]
/DragonOS/kernel/src/arch/x86_64/
H A Dkprobe.rs3 pub fn setup_single_step(frame: &mut TrapFrame, step_addr: usize) { in setup_single_step()
4 frame.rflags |= 0x100; in setup_single_step()
5 frame.set_pc(step_addr); in setup_single_step()
8 pub fn clear_single_step(frame: &mut TrapFrame, return_addr: usize) { in clear_single_step()
9 frame.rflags &= !0x100; in clear_single_step()
10 frame.set_pc(return_addr); in clear_single_step()
/DragonOS/kernel/src/arch/riscv64/process/
H A Dkthread.rs32 let mut frame = TrapFrame::new(); in __inner_create() localVariable
33 frame.a2 = create_info as usize; in __inner_create()
36 frame.status.update_sie(true); in __inner_create()
37 frame.status.update_spp(SPP::Supervisor); in __inner_create()
38 frame.status.update_sum(true); in __inner_create()
40 frame.ra = kernel_thread_bootstrap_stage1 as usize; in __inner_create()
43 let pid = ProcessManager::fork(&frame, clone_flags).map_err(|e| { in __inner_create()
/DragonOS/kernel/src/mm/allocator/
H A Dpage_frame.rs350 let frame = unsafe { LockedFrameAllocator.allocate(count)? }; in allocate_page_frames() localVariable
351 return Some(frame); in allocate_page_frames()
359 frame: PhysPageFrame, in deallocate_page_frames()
364 LockedFrameAllocator.free(frame.phys_address(), count); in deallocate_page_frames()
367 let mut frame = frame; in deallocate_page_frames() localVariable
369 let paddr = frame.phys_address(); in deallocate_page_frames()
382 frame = frame.next(); in deallocate_page_frames()
H A Dbump.rs200 let frame = PageFrameUsage::new(PageFrameCount::new(used), PageFrameCount::new(total)); in usage() localVariable
201 return frame; in usage()
/DragonOS/kernel/src/arch/riscv64/
H A Dkprobe.rs3 pub fn setup_single_step(frame: &mut TrapFrame, step_addr: usize) { in setup_single_step()
4 frame.set_pc(step_addr); in setup_single_step()
7 pub fn clear_single_step(frame: &mut TrapFrame, return_addr: usize) { in clear_single_step()
8 frame.set_pc(return_addr); in clear_single_step()
/DragonOS/docs/kernel/ipc/
H A Dsignal.md59frame │ │
64 │ sig handler │ └────────────┘ │ frame. │
/DragonOS/tools/debugging/logmonitor/src/
H A Dui.rs13 pub fn render(app: &mut App, frame: &mut Frame) { in render()
40 .split(frame.size()); in render()
51 frame.render_widget(tabs, chunks[0]); in render()
54 0 => draw_first_tab(frame, app, chunks[1]), in render()
H A Dtui.rs55 self.terminal.draw(|frame| ui::render(app, frame))?; in draw()
/DragonOS/kernel/src/syscall/
H A Dmod.rs85 frame: &mut TrapFrame, in catch_handle()
87 let res = unwinding::panic::catch_unwind(|| Self::handle(syscall_num, args, frame)); in catch_handle()
100 frame: &mut TrapFrame, in handle()
162 let from_user = frame.is_from_user(); in handle()
173 let from_user = frame.is_from_user(); in handle()
196 UserBufferWriter::new(buf_vaddr as *mut u8, len, frame.is_from_user())?; in handle()
208 UserBufferReader::new(buf_vaddr as *const u8, len, frame.is_from_user())?; in handle()
222 SYS_FORK => Self::fork(frame), in handle()
224 SYS_VFORK => Self::vfork(frame), in handle()
251 let res = if frame.is_from_user() && verify_area(virt_addr, len).is_err() { in handle()
[all …]
/DragonOS/kernel/src/process/
H A Dsyscall.rs86 pub fn fork(frame: &TrapFrame) -> Result<usize, SystemError> { in fork()
87 ProcessManager::fork(frame, CloneFlags::empty()).map(|pid| pid.into()) in fork()
90 pub fn vfork(frame: &TrapFrame) -> Result<usize, SystemError> { in vfork()
93 Self::fork(frame) in vfork()
107 frame: &mut TrapFrame, in execve()
139 Self::do_execve(path, argv, envp, frame)?; in execve()
/DragonOS/kernel/src/mm/
H A Dpage.rs619 let frame = MMArch::phys_2_virt(phys).unwrap(); in clone() localVariable
620 MMArch::write_bytes(frame, 0, MMArch::PAGE_SIZE); in clone()
649 let frame = MMArch::phys_2_virt(phys).unwrap().data() as *mut u8; in clone() localVariable
650 frame.copy_from_nonoverlapping( in clone()
1241 let frame = self.frame_allocator.allocate_one()?; in map_phys() localVariable
1244 MMArch::write_bytes(MMArch::phys_2_virt(frame).unwrap(), 0, MMArch::PAGE_SIZE); in map_phys()
1250 table.set_entry(i, PageEntry::new(frame, flags)); in map_phys()
1323 let frame = self.frame_allocator.allocate_one()?; in allocate_table() localVariable
1326 MMArch::write_bytes(MMArch::phys_2_virt(frame).unwrap(), 0, MMArch::PAGE_SIZE); in allocate_table()
1332 table.set_entry(i, PageEntry::new(frame, flags)); in allocate_table()
H A Ducontext.rs1255 for frame in virt_iter { in extract()
1256 if let Some((paddr, _)) = utable.translate(frame.virt_address()) { in extract()
1268 for frame in virt_iter { in extract()
1269 if let Some((paddr, _)) = utable.translate(frame.virt_address()) { in extract()
1651 for frame in virt_iter { in zeroed()
1652 let paddr = mapper.translate(frame.virt_address()).unwrap().0; in zeroed()
/DragonOS/kernel/src/
H A DMakefile18 LDFLAGS_UNWIND = --eh-frame-hdr
/DragonOS/docs/kernel/debug/
H A Ddebug-kernel-with-gdb.md268 &emsp;&emsp;您可以通过`frame`或者`f`命令来切换对应的栈帧获取更多信息以及操作。
271 frame <frame_number>
/DragonOS/kernel/
H A DCargo.toml75 "fde-gnu-eh-frame-hdr",
/DragonOS/kernel/src/ipc/
H A Dsignal_types.rs545 unsafe fn do_signal(frame: &mut TrapFrame); in do_signal()