Home
last modified time | relevance | path

Searched refs:irq (Results 1 – 25 of 31) sorted by relevance

12

/DragonOS/kernel/src/arch/x86_64/driver/apic/
H A Dioapic.rs236 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 Dlapic_vector.rs88 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 Dhandle.rs53 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 Dmanage.rs64 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 Dirqdesc.rs54 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()
588 self.inner().irq_data.irq().data().to_string() in name()
645 irq: IrqNumber, in new()
658 irq, in new()
694 irq: IrqNumber, field
[all …]
H A Ddummychip.rs28 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 Dmsi.rs74 irq: IrqNumber, field
94 irq: IrqNumber, in new()
102 irq, in new()
H A Dirqchip.rs388 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 Dirqdomain.rs172 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()
429 let irq = irq_desc.irq_data().irq(); in resolve_irq_mapping() localVariable
430 return Ok((irq_desc, irq)); in resolve_irq_mapping()
440 return Ok((irq_desc, irq_data.irq())); in resolve_irq_mapping()
H A Dirqdata.rs29 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 Dsysfs.rs106 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 Dmod.rs49 fn ack_bad_irq(irq: IrqNumber); in ack_bad_irq()
/DragonOS/kernel/src/driver/virtio/
H A Dtransport_mmio.rs26 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 Dsysfs.rs23 virtio::irq::{virtio_irq_manager, DefaultVirtioIrqHandler},
211 let irq = dev.irq().ok_or(SystemError::EINVAL)?; in setup_irq() localVariable
213 irq, in setup_irq()
222 irq, in setup_irq()
234 irq, in setup_irq()
H A Dmod.rs8 pub(super) mod irq; module
44 fn irq(&self) -> Option<IrqNumber>; in irq() method
H A Dirq.rs109 irq: IrqNumber, in handle()
120 return dev.handle_irq(irq); in handle()
H A Dtransport_pci.rs31 use super::irq::DefaultVirtioIrqHandler;
105 irq: IrqNumber, field
124 let irq = VIRTIO_RECV_VECTOR; in new() localVariable
142 irq_vector.push(irq); in new()
237 irq, in new()
H A Dtransport.rs13 pub fn irq(&self) -> Option<HardwareIrqNumber> { in irq() method
15 VirtIOTransport::Mmio(transport) => Some(transport.irq()), in irq()
/DragonOS/kernel/src/arch/x86_64/interrupt/
H A Dipi.rs234 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 Dentry.rs548 pub unsafe fn set_intr_gate(irq: u32, ist: u8, vaddr: VirtAddr) { in set_intr_gate()
549 let idt_entry = get_idt_entry(irq); in set_intr_gate()
555 pub unsafe fn set_trap_gate(irq: u32, ist: u8, vaddr: VirtAddr) { in set_trap_gate()
556 let idt_entry = get_idt_entry(irq); in set_trap_gate()
562 pub unsafe fn set_system_trap_gate(irq: u32, ist: u8, vaddr: VirtAddr) { in set_system_trap_gate()
563 let idt_entry = get_idt_entry(irq); in set_system_trap_gate()
568 unsafe fn get_idt_entry(irq: u32) -> &'static mut [u64] { in get_idt_entry()
569 assert!(irq < 256); in get_idt_entry()
573 idt_vaddr += irq as usize * 16; in get_idt_entry()
H A Dmod.rs87 fn ack_bad_irq(irq: IrqNumber) { in ack_bad_irq()
88 error!("Unexpected IRQ trap at vector {}", irq.data()); in ack_bad_irq()
/DragonOS/kernel/src/driver/irqchip/
H A Driscv_intc.rs51 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 Driscv_sifive_plic.rs560 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/driver/block/
H A Dvirtio_blk.rs167 let irq = transport.irq().map(|irq| IrqNumber::new(irq.data())); in new() localVariable
187 irq, in new()
289 irq: Option<IrqNumber>, field
299 fn irq(&self) -> Option<IrqNumber> { in irq() method
300 self.inner().irq in irq()
/DragonOS/kernel/src/arch/riscv64/interrupt/
H A Dmod.rs59 fn ack_bad_irq(irq: IrqNumber) { in ack_bad_irq()
60 todo!("ack_bad_irq: {}", irq.data()); in ack_bad_irq()

12