/DragonOS/kernel/src/arch/x86_64/driver/apic/ |
H A D | ioapic.rs | 236 pub fn irq_vector(&mut self, irq: u8) -> u8 { in irq_vector() 237 unsafe { self.read(REG_TABLE + 2 * irq).get_bits(0..8) as u8 } in irq_vector() 242 pub fn set_irq_vector(&mut self, irq: u8, vector: u8) { in set_irq_vector() 243 let mut old = unsafe { self.read(REG_TABLE + 2 * irq) }; in set_irq_vector() 249 self.write(REG_TABLE + 2 * irq, *old.set_bits(0..8, vector as u32)); in set_irq_vector() 272 pub fn pending(&mut self, irq: u8) -> bool { in pending() 273 let rte_index = Self::vector_rte_index(irq); in pending() 407 let irq = IrqNumber::new(i); in ioapic_init() localVariable 409 if ignore.contains(&irq) { in ioapic_init() 413 let desc = irq_desc_manager().lookup(irq).unwrap(); in ioapic_init() [all …]
|
H A D | lapic_vector.rs | 88 fn irq_compose_msi_msg(&self, irq: &Arc<IrqData>, msg: &mut MsiMsg) { in irq_compose_msi_msg() 89 let chip_data = irq.chip_info_read_irqsave().chip_data().unwrap(); in irq_compose_msi_msg() 95 fn retrigger(&self, irq: &Arc<IrqData>) -> Result<(), SystemError> { in retrigger() 96 let chip_data = irq in retrigger() 133 irq: IrqNumber, in new() 140 irq, in new() 159 irq: IrqNumber, field
|
/DragonOS/kernel/src/exception/ |
H A D | handle.rs | 53 CurrentIrqArch::ack_bad_irq(irq_desc.irq()); in handle() 127 debug!("no action for irq {}", irq_data.irq().data()); in handle() 267 let irq = irq_data.irq(); in do_handle_irq_event() localVariable 280 .handle(irq, None, dynamic_data); in do_handle_irq_event() 284 warn_no_thread(irq, &mut action_inner); in do_handle_irq_event() 320 desc_inner_guard.irq_data().irq().data() in cond_unmask_eoi_irq() 325 debug!("eoi irq {}", desc_inner_guard.irq_data().irq().data()); in cond_unmask_eoi_irq() 330 desc_inner_guard.irq_data().irq().data() in cond_unmask_eoi_irq() 335 fn warn_no_thread(irq: IrqNumber, action_inner: &mut SpinLockGuard<'_, InnerIrqAction>) { in warn_no_thread() 346 irq.data(), in warn_no_thread() [all …]
|
H A D | manage.rs | 64 irq: IrqNumber, in request_irq() 70 return self.request_threaded_irq(irq, Some(handler), None, flags, name, dev_id); in request_irq() 111 irq: IrqNumber, in request_threaded_irq() 118 if irq == IrqNumber::IRQ_NOTCONNECTED { in request_threaded_irq() 137 let desc = irq_desc_manager().lookup(irq).ok_or(SystemError::EINVAL)?; in request_threaded_irq() 139 warn!("desc {} can not request", desc.irq().data()); in request_threaded_irq() 153 let irqaction = IrqAction::new(irq, dev_name, handler, thread_fn); in request_threaded_irq() 160 return self.inner_setup_irq(irq, irqaction, desc); in request_threaded_irq() 167 irq: IrqNumber, in inner_setup_irq() 219 …for irq {} (name: {}, flags: {:?}). old action name: {}, old flags: {:?}", irq.data(), action_guar… in inner_setup_irq() [all …]
|
H A D | irqdesc.rs | 54 irq: IrqNumber, in handle() 88 pub fn new(irq: IrqNumber, name: Option<String>, irqd_flags: IrqStatus) -> Arc<Self> { in new() 92 irq, in new() 93 HardwareIrqNumber::new(irq.data()), in new() 192 pub fn irq(&self) -> IrqNumber { in irq() method 193 self.inner().irq_data.irq() in irq() 597 self.inner().irq_data.irq().data().to_string() in name() 654 irq: IrqNumber, in new() 667 irq, in new() 703 irq: IrqNumber, field [all …]
|
H A D | dummychip.rs | 28 CurrentIrqArch::ack_bad_irq(irq_data.irq()); in ack_bad() 63 fn irq_ack(&self, irq: &Arc<IrqData>) { in irq_ack() 64 ack_bad(irq); in irq_ack()
|
H A D | msi.rs | 74 irq: IrqNumber, field 94 irq: IrqNumber, in new() 102 irq, in new()
|
H A D | irqchip.rs | 388 irq: IrqNumber, in __irq_set_handler() 393 let r = irq_desc_manager().lookup_and_lock_bus(irq, false, false); in __irq_set_handler() 442 dt.irq().data() in __irq_do_set_handler() 460 warn!("No irq chip for irq {}", desc_inner.irq_data().irq().data()); in __irq_do_set_handler() 521 irq: IrqNumber, in irq_set_handler_data() 524 let desc = irq_desc_manager().lookup(irq).ok_or(SystemError::EINVAL)?; in irq_set_handler_data() 573 irq: IrqNumber, in handle() 579 warn!("Chained irq {} should not call an action.", irq.data()); in handle()
|
H A D | irqdomain.rs | 172 irq: IrqNumber, in domain_associate() 184 .lookup(irq) in domain_associate() 186 warn!("irq_desc not found for irq {}", irq.data()); in domain_associate() 193 irq.data(), in domain_associate() 203 let r = domain.ops.map(domain, hwirq, irq); in domain_associate() 207 …main '{:?}' didn't like hwirq {} to virq {} mapping.", e, domain.name(), hwirq.data(), irq.data()); in domain_associate() 223 irq_manager().irq_clear_status_flags(irq, IrqLineStatus::IRQ_NOREQUEST)?; in domain_associate() 430 let irq = irq_desc.irq_data().irq(); in resolve_irq_mapping() localVariable 431 return Ok((irq_desc, irq)); in resolve_irq_mapping() 441 return Ok((irq_desc, irq_data.irq())); in resolve_irq_mapping()
|
H A D | irqdata.rs | 29 irq: IrqNumber, field 37 irq: IrqNumber, in new() 43 irq, in new() 71 pub fn irq(&self) -> IrqNumber { in irq() method 72 self.irq in irq()
|
H A D | sysfs.rs | 106 for (irq, desc) in irq_desc_manager().iter_descs() { in irq_sysfs_init() 107 irq_sysfs_add(irq, desc); in irq_sysfs_init() 114 fn irq_sysfs_add(irq: &IrqNumber, desc: &Arc<IrqDesc>) { in irq_sysfs_add()
|
H A D | mod.rs | 51 fn ack_bad_irq(irq: IrqNumber); in ack_bad_irq()
|
/DragonOS/kernel/src/driver/virtio/ |
H A D | transport_mmio.rs | 26 irq: HardwareIrqNumber, field 42 let irq = node in new() localVariable 62 irq as u32 in new() 68 irq: HardwareIrqNumber::new(irq as u32), in new() 81 pub fn irq(&self) -> HardwareIrqNumber { in irq() method 82 self.irq in irq()
|
H A D | sysfs.rs | 23 virtio::irq::{virtio_irq_manager, DefaultVirtioIrqHandler}, 212 let irq = dev.irq().ok_or(SystemError::EINVAL)?; in setup_irq() localVariable 214 irq, in setup_irq() 223 irq, in setup_irq() 235 irq, in setup_irq()
|
H A D | mod.rs | 8 pub(super) mod irq; module 44 fn irq(&self) -> Option<IrqNumber>; in irq() method
|
H A D | transport.rs | 17 irq::DefaultVirtioIrqHandler, transport_mmio::VirtIOMmioTransport, transport_pci::PciTransport, 26 pub fn irq(&self) -> IrqNumber { in irq() method 28 VirtIOTransport::Pci(transport) => transport.irq(), in irq() 29 VirtIOTransport::Mmio(transport) => IrqNumber::new(transport.irq().data()), in irq()
|
H A D | irq.rs | 108 irq: IrqNumber, in handle() 119 return dev.handle_irq(irq); in handle()
|
H A D | transport_pci.rs | 102 irq: IrqNumber, field 122 let irq = VIRTIO_RECV_VECTOR; in new() localVariable 140 irq_vector.write().push(irq); in new() 223 irq, in new() 233 pub fn irq(&self) -> IrqNumber { in irq() method 234 self.irq in irq()
|
/DragonOS/kernel/src/arch/x86_64/interrupt/ |
H A D | ipi.rs | 234 fn do_init_irq_handler(irq: IrqNumber) { in do_init_irq_handler() 235 let desc = irq_desc_manager().lookup(irq).unwrap(); in do_init_irq_handler() 250 let irq = irq_desc.irq_data().irq(); in handle() localVariable 251 match irq { in handle() 253 KickCpuIpiHandler.handle(irq, None, None).ok(); in handle() 256 FlushTLBIpiHandler.handle(irq, None, None).ok(); in handle() 260 error!("Unknown IPI: {}", irq.data()); in handle()
|
H A D | entry.rs | 546 pub unsafe fn set_intr_gate(irq: u32, ist: u8, vaddr: VirtAddr) { in set_intr_gate() 547 let idt_entry = get_idt_entry(irq); in set_intr_gate() 553 pub unsafe fn set_trap_gate(irq: u32, ist: u8, vaddr: VirtAddr) { in set_trap_gate() 554 let idt_entry = get_idt_entry(irq); in set_trap_gate() 560 pub unsafe fn set_system_trap_gate(irq: u32, ist: u8, vaddr: VirtAddr) { in set_system_trap_gate() 561 let idt_entry = get_idt_entry(irq); in set_system_trap_gate() 566 unsafe fn get_idt_entry(irq: u32) -> &'static mut [u64] { in get_idt_entry() 567 assert!(irq < 256); in get_idt_entry() 571 idt_vaddr += irq as usize * 16; in get_idt_entry()
|
H A D | mod.rs | 88 fn ack_bad_irq(irq: IrqNumber) { in ack_bad_irq() 89 error!("Unexpected IRQ trap at vector {}", irq.data()); in ack_bad_irq()
|
/DragonOS/kernel/src/driver/irqchip/ |
H A D | riscv_intc.rs | 51 fn irq_mask(&self, irq: &Arc<IrqData>) -> Result<(), SystemError> { in irq_mask() 52 unsafe { riscv::register::sie::clear_bits(1 << irq.hardware_irq().data()) }; in irq_mask() 56 fn irq_unmask(&self, irq: &Arc<IrqData>) -> Result<(), SystemError> { in irq_unmask() 57 unsafe { riscv::register::sie::set_bits(1 << irq.hardware_irq().data()) }; in irq_unmask()
|
H A D | riscv_sifive_plic.rs | 560 if let Some(irq) = node.interrupts().and_then(|mut x| x.next()) { in associate_irq_with_plic_domain() 561 let irq = irq as u32; in associate_irq_with_plic_domain() localVariable 562 let virq = IrqNumber::new(irq); in associate_irq_with_plic_domain() 563 let hwirq = HardwareIrqNumber::new(irq); in associate_irq_with_plic_domain()
|
/DragonOS/kernel/src/arch/riscv64/interrupt/ |
H A D | mod.rs | 61 fn ack_bad_irq(irq: IrqNumber) { in ack_bad_irq() 62 todo!("ack_bad_irq: {}", irq.data()); in ack_bad_irq()
|
/DragonOS/kernel/src/driver/block/ |
H A D | virtio_blk.rs | 174 let irq = Some(transport.irq()); in new() localVariable 194 irq, in new() 296 irq: Option<IrqNumber>, field 306 fn irq(&self) -> Option<IrqNumber> { in irq() method 307 self.inner().irq in irq()
|