/DragonOS/kernel/src/arch/x86_64/interrupt/ |
H A D | handle.rs | 29 let handler = desc.handler(); in x86_64_do_irq() localVariable 30 if likely(handler.is_some()) { in x86_64_do_irq() 31 handler.unwrap().handle(&desc, trap_frame); in x86_64_do_irq()
|
H A D | entry.rs | 579 unsafe fn set_gate(gate: &mut [u64], attr: u8, ist: u8, handler: VirtAddr) { in set_gate() 591 let mut handler = handler.data() as u64; in set_gate() localVariable 594 d0 |= handler & 0xFFFF; in set_gate() 596 handler >>= 16; in set_gate() 597 d0 |= (0xffff & handler) << 48; in set_gate() 600 handler >>= 16; in set_gate() 601 d1 |= handler & 0xFFFFFFFF; in set_gate()
|
/DragonOS/kernel/src/driver/irqchip/ |
H A D | riscv_sifive_plic.rs | 192 let handler = unsafe { plic_handlers().force_get(cpu) }; in plic_irq_toggle() localVariable 193 handler.toggle(irq_data.hardware_irq(), enable); in plic_irq_toggle() 312 let handler = plic_handlers().get(); in irq_eoi() localVariable 315 handler.toggle(irq_data.hardware_irq(), true); in irq_eoi() 318 (handler.inner().hart_base + PlicIrqChip::CONTEXT_CLAIM).data() as *mut u32, in irq_eoi() 323 handler.toggle(irq_data.hardware_irq(), false); in irq_eoi() 328 (handler.inner().hart_base + PlicIrqChip::CONTEXT_CLAIM).data() as *mut u32, in irq_eoi() 508 let handler = unsafe { plic_handlers().force_get(cpu) }; in do_riscv_sifive_plic_init() localVariable 509 if handler.present() { in do_riscv_sifive_plic_init() 511 handler.set_threshold(PlicIrqChip::PLIC_ENABLE_THRESHOLD); in do_riscv_sifive_plic_init() [all …]
|
/DragonOS/user/apps/test_signal/ |
H A D | main.c | 27 void handler(int sig) in handler() function 36 signal(SIGKILL, &handler); in main()
|
/DragonOS/kernel/src/exception/ |
H A D | irqchip.rs | 389 handler: &'static dyn IrqFlowHandler, in __irq_set_handler() 401 self.__irq_do_set_handler(&irq_desc, &mut desc_inner, Some(handler), is_chained, name); in __irq_set_handler() 411 mut handler: Option<&'static dyn IrqFlowHandler>, in __irq_do_set_handler() 415 if handler.is_none() { in __irq_do_set_handler() 416 handler = Some(bad_irq_handler()); in __irq_do_set_handler() 464 let handler = handler.unwrap(); in __irq_do_set_handler() localVariable 465 if handler.type_id() == bad_irq_handler().type_id() in __irq_do_set_handler() 482 desc.set_handler_no_lock_inner(handler, desc_inner.irq_data(), &chip); in __irq_do_set_handler() 485 if handler.type_id() != bad_irq_handler().type_id() && is_chained { in __irq_do_set_handler() 501 desc.set_handler(handler); in __irq_do_set_handler()
|
H A D | irqdesc.rs | 78 handler: RwLock<Option<&'static dyn IrqFlowHandler>>, field 120 handler: RwLock::new(None), in new() 149 pub fn set_handler(&self, handler: &'static dyn IrqFlowHandler) { in set_handler() 151 let mut guard = self.handler.write_irqsave(); in set_handler() 152 *guard = Some(handler); in set_handler() 164 handler: &'static dyn IrqFlowHandler, in set_handler_no_lock_inner() 169 let mut guard = self.handler.write_irqsave(); in set_handler_no_lock_inner() 170 *guard = Some(handler); in set_handler_no_lock_inner() 174 pub fn handler(&self) -> Option<&'static dyn IrqFlowHandler> { in handler() method 175 let guard = self.handler.read_irqsave(); in handler() [all …]
|
H A D | handle.rs | 278 .handler() in do_handle_irq_event() 381 let handler = action_inner.handler().unwrap(); in handle() localVariable 384 let _r = handler.handle( in handle()
|
H A D | manage.rs | 66 handler: &'static dyn IrqHandler, in request_irq() 70 return self.request_threaded_irq(irq, Some(handler), None, flags, name, dev_id); in request_irq() 112 mut handler: Option<&'static dyn IrqHandler>, in request_threaded_irq() 143 if handler.is_none() { in request_threaded_irq() 150 handler = Some(&DefaultPrimaryIrqHandler); in request_threaded_irq() 153 let irqaction = IrqAction::new(irq, dev_name, handler, thread_fn); in request_threaded_irq() 416 } else if action_guard.handler().is_some_and(|h| { in inner_setup_irq()
|
H A D | softirq.rs | 144 handler: Arc<dyn SoftirqVec>, in register_softirq() 156 table_guard[softirq_num as usize] = Some(handler); in register_softirq()
|
/DragonOS/tools/debugging/logmonitor/src/ |
H A D | event.rs | 31 handler: thread::JoinHandle<()>, field 39 let handler = { in new() localVariable 68 handler, in new()
|
H A D | lib.rs | 24 pub mod handler; module
|
H A D | main.rs | 6 use logmonitor::handler::{handle_backend_events, handle_key_events};
|
/DragonOS/kernel/src/time/ |
H A D | sleep.rs | 45 let handler: Box<WakeUpHelper> = WakeUpHelper::new(ProcessManager::current_pcb()); in nanosleep() localVariable 46 let timer: Arc<Timer> = Timer::new(handler, next_n_us_timer_jiffies(total_sleep_time_us)); in nanosleep()
|
/DragonOS/kernel/src/ipc/ |
H A D | syscall.rs | 147 let input_sighandler = unsafe { (*act).handler as u64 }; in sigaction() 166 VirtAddr::new((*act).handler as usize) in sigaction() 220 SigactionType::SaHandler(handler) => { in sigaction() 221 if let SaHandlerType::Customized(hand) = handler { in sigaction() 223 } else if handler.is_sig_ignore() { in sigaction() 225 } else if handler.is_sig_error() { in sigaction() 238 (*old_act).handler = sigaction_handler.data() as *mut c_void; in sigaction()
|
H A D | signal_types.rs | 158 SaHandlerType::Customized(handler) => handler.data(), in from() 290 pub handler: *mut core::ffi::c_void, field
|
H A D | signal.rs | 253 SigactionType::SaHandler(handler) => handler.is_sig_default(), in sig_fatal()
|
/DragonOS/kernel/src/arch/riscv64/interrupt/ |
H A D | handle.rs | 53 let handler = EXCEPTION_HANDLERS[code]; in riscv64_do_exception() localVariable 54 handler(trap_frame).ok(); in riscv64_do_exception()
|
/DragonOS/docs/community/ChangeLog/V0.1.x/ |
H A D | V0.1.2.md | 34 - Signal: 允许用户注册信号处理函数,能够进入自定义的handler。(#112) 39 …- 暂时只支持旧版的sighandler,即:只有1个参数的`void handler(int signum)`类型的信号处理函数。对于另一种信号处理函数`void handler(int sig… 144 * new: 用户注册信号处理函数,能够进入自定义的handler
|
H A D | V0.1.9.md | 326 …性能上,edge irq flow handler里面,对于锁的使用,可能有点问题。为了获取/修改common data还有其他几个结构体的状态,进行了多次加锁和放锁,导致性能降低。这是接下来需要… 1428 * vmexit handler with bug 1430 * 完成vmexit cpuid handler
|
H A D | V0.1.10.md | 222 - 实现fasteoi interrupt handler
|
/DragonOS/docs/kernel/ipc/ |
H A D | signal.md | 64 │ sig handler │ └────────────┘ │ frame. │
|
/DragonOS/kernel/src/arch/x86_64/ipc/ |
H A D | signal.rs | 324 pub handler: *mut c_void, field 565 SaHandlerType::Customized(handler) => { in setup_frame() 567 if handler >= MMArch::USER_END_VADDR { in setup_frame() 603 temp_handler = handler.data() as *mut c_void; in setup_frame() 665 unsafe { (*frame).handler = temp_handler }; in setup_frame() 670 trap_frame.rip = unsafe { (*frame).handler as u64 }; in setup_frame()
|
/DragonOS/docs/kernel/core_api/ |
H A D | softirq.md | 42 handler: Arc<dyn SoftirqVec>,
|
/DragonOS/kernel/src/arch/x86_64/driver/apic/ |
H A D | ioapic.rs | 439 let handler: &dyn IrqFlowHandler = if fasteoi { in register_handler() localVariable 444 desc.set_handler(handler); in register_handler()
|