Home
last modified time | relevance | path

Searched refs:vector (Results 1 – 25 of 33) sorted by relevance

12

/kernel/lib/hypervisor/include/hypervisor/
A Dinterrupt_tracker.h37 InterruptType Get(uint32_t vector) const { in Get() argument
38 if (vector >= N) { in Get()
42 size_t bitoff = vector * 2; in Get()
52 if (vector >= N) { in Set()
56 size_t bitoff = vector * 2; in Set()
72 InterruptType Scan(uint32_t* vector) { in Scan() argument
107 uint32_t vector; in Pending() local
119 InterruptType TryPop(uint32_t vector) { in TryPop() argument
129 InterruptType Pop(uint32_t* vector) { in Pop() argument
141 bitmap_.Set(vector, type); in Track()
[all …]
/kernel/dev/pdev/interrupt/
A Dinterrupt.cpp21 DEBUG_ASSERT(vector < ARM_MAX_INT); in pdev_get_int_handler()
22 return &int_handler_table[vector]; in pdev_get_int_handler()
26 if (!is_valid_interrupt(vector, 0)) { in register_int_handler()
32 auto h = pdev_get_int_handler(vector); in register_int_handler()
150 zx_status_t mask_interrupt(unsigned int vector) { in mask_interrupt() argument
151 return intr_ops->mask(vector); in mask_interrupt()
155 return intr_ops->unmask(vector); in unmask_interrupt()
160 return intr_ops->configure(vector, tm, pol); in configure_interrupt()
165 return intr_ops->get_config(vector, tm, pol); in get_interrupt_config()
177 return intr_ops->is_valid(vector, flags); in is_valid_interrupt()
[all …]
/kernel/dev/interrupt/arm_gic/v2/
A Darm_gicv2.cpp62 return (vector < max_irqs); in gic_is_valid_interrupt()
76 int reg = vector / 32; in gic_set_enable()
193 if (vector >= max_irqs) { in gic_mask_interrupt()
203 if (vector >= max_irqs) { in gic_unmask_interrupt()
207 gic_set_enable(vector, true); in gic_unmask_interrupt()
216 if ((vector >= max_irqs) || (vector < GIC_BASE_SPI)) { in gic_configure_interrupt()
243 if (vector >= max_irqs) { in gic_get_interrupt_config()
258 return vector; in gic_remap_interrupt()
266 if (vector >= 0x3fe) { in gic_handle_irq()
272 if (vector >= 32) in gic_handle_irq()
[all …]
/kernel/dev/interrupt/arm_gic/v3/
A Darm_gicv3.cpp65 return (vector < gic_max_int); in gic_is_valid_interrupt()
90 int reg = vector / 32; in gic_set_enable()
93 if (vector < 32) { in gic_set_enable()
255 if (vector >= gic_max_int) { in gic_mask_interrupt()
281 if (vector <= 15 || vector >= gic_max_int) { in gic_configure_interrupt()
290 uint reg = vector / 16; in gic_configure_interrupt()
324 return vector; in gic_remap_interrupt()
335 if (vector >= 0x3fe) { in gic_handle_irq()
342 if (vector >= 32) { in gic_handle_irq()
359 gic_write_eoir(vector); in gic_handle_irq()
[all …]
/kernel/dev/pdev/include/pdev/
A Dinterrupt.h20 struct int_handler_struct* pdev_get_int_handler(unsigned int vector);
24 zx_status_t (*mask)(unsigned int vector);
25 zx_status_t (*unmask)(unsigned int vector);
26 zx_status_t (*configure)(unsigned int vector,
29 zx_status_t (*get_config)(unsigned int vector,
32 bool (*is_valid)(unsigned int vector, uint32_t flags);
35 unsigned int (*remap)(unsigned int vector);
/kernel/dev/interrupt/include/dev/
A Dinterrupt.h29 zx_status_t mask_interrupt(unsigned int vector);
30 zx_status_t unmask_interrupt(unsigned int vector);
41 zx_status_t configure_interrupt(unsigned int vector,
45 zx_status_t get_interrupt_config(unsigned int vector,
51 zx_status_t register_int_handler(unsigned int vector, int_handler handler, void* arg);
58 bool is_valid_interrupt(unsigned int vector, uint32_t flags);
60 unsigned int remap_interrupt(unsigned int vector);
/kernel/platform/pc/
A Dinterrupts.cpp127 zx_status_t mask_interrupt(unsigned int vector) { in mask_interrupt() argument
129 apic_io_mask_irq(vector, IO_APIC_IRQ_MASK); in mask_interrupt()
133 zx_status_t unmask_interrupt(unsigned int vector) { in unmask_interrupt() argument
135 apic_io_mask_irq(vector, IO_APIC_IRQ_UNMASK); in unmask_interrupt()
144 vector, in configure_interrupt()
164 uint64_t x86_vector = frame->vector; in platform_irq()
183 if (!is_valid_interrupt(vector, 0)) { in register_int_handler()
217 vector, handler, arg); in register_int_handler()
259 return apic_io_is_valid_irq(vector); in is_valid_interrupt()
263 if (vector > NUM_ISA_IRQS) { in remap_interrupt()
[all …]
/kernel/dev/interrupt/arm_gic/common/include/dev/interrupt/
A Darm_gic_common.h36 static inline zx_status_t gic_register_sgi_handler(unsigned int vector, int_handler handler) { in gic_register_sgi_handler() argument
37 DEBUG_ASSERT(vector < GIC_BASE_PPI); in gic_register_sgi_handler()
38 return register_int_handler(vector, handler, nullptr); in gic_register_sgi_handler()
A Darm_gic_hw_interface.h27 uint64_t (*get_lr_from_vector)(bool hw, uint8_t prio, uint32_t vector);
70 uint64_t gic_get_lr_from_vector(bool hw, uint8_t prio, uint32_t vector);
/kernel/arch/x86/include/arch/x86/
A Dapic.h55 void apic_irq_set(unsigned int vector, bool enable);
57 uint8_t vector,
60 void apic_send_self_ipi(uint8_t vector, enum apic_interrupt_delivery_mode dm);
62 uint8_t vector,
65 uint8_t vector,
132 uint8_t vector);
139 uint8_t vector);
152 uint8_t vector);
/kernel/arch/arm64/hypervisor/gic/
A Dgicv3.cpp67 uint32_t vector = ICH_LR_VIRTUAL_ID(val); in gicv3_write_gich_lr() local
68 uint32_t reg = vector / 32; in gicv3_write_gich_lr()
69 uint32_t mask = 1u << (vector % 32); in gicv3_write_gich_lr()
72 if (vector < 32) { in gicv3_write_gich_lr()
90 static uint64_t gicv3_get_lr_from_vector(bool hw, uint8_t prio, uint32_t vector) { in gicv3_get_lr_from_vector() argument
92 ICH_LR_VIRTUAL_ID(vector); in gicv3_get_lr_from_vector()
94 lr |= ICH_LR_HARDWARE | ICH_LR_PHYSICAL_ID(vector); in gicv3_get_lr_from_vector()
A Dgicv2.cpp97 uint32_t vector = GICH_LR_VIRTUAL_ID(val); in gicv2_write_gich_lr() local
98 uint32_t reg = vector / 32; in gicv2_write_gich_lr()
99 uint32_t mask = 1u << (vector % 32); in gicv2_write_gich_lr()
114 static uint64_t gicv2_get_lr_from_vector(bool hw, uint8_t prio, uint32_t vector) { in gicv2_get_lr_from_vector() argument
115 uint64_t lr = GICH_LR_PENDING | GICH_LR_PRIORITY(prio) | GICH_LR_VIRTUAL_ID(vector); in gicv2_get_lr_from_vector()
117 lr |= GICH_LR_HARDWARE | GICH_LR_PHYSICAL_ID(vector); in gicv2_get_lr_from_vector()
/kernel/object/
A Dinterrupt_event_dispatcher.cpp19 uint32_t vector, in Create() argument
27 InterruptEventDispatcher* disp = new (&ac) InterruptEventDispatcher(vector); in Create()
45 vector = remap_interrupt(vector); in Create()
47 if (!is_valid_interrupt(vector, 0)) in Create()
80 zx_status_t status = configure_interrupt(vector, tm, pol); in Create()
92 unmask_interrupt(vector); in Create()
A Dvcpu_dispatcher.cpp46 cpu_mask_t VcpuDispatcher::PhysicalInterrupt(uint32_t vector) { in PhysicalInterrupt() argument
48 return vcpu_->Interrupt(vector, hypervisor::InterruptType::PHYSICAL); in PhysicalInterrupt()
51 void VcpuDispatcher::VirtualInterrupt(uint32_t vector) { in VirtualInterrupt() argument
53 vcpu_->VirtualInterrupt(vector); in VirtualInterrupt()
/kernel/object/include/object/
A Dinterrupt_event_dispatcher.h20 uint32_t vector,
29 explicit InterruptEventDispatcher(uint32_t vector) in InterruptEventDispatcher() argument
30 : vector_(vector) {} in InterruptEventDispatcher()
A Dpci_interrupt_dispatcher.h36 PciInterruptDispatcher(const fbl::RefPtr<PcieDevice>& device, uint32_t vector, bool maskable) in PciInterruptDispatcher() argument
37 : device_(device), vector_(vector), maskable_(maskable) { } in PciInterruptDispatcher()
A Dvcpu_dispatcher.h30 cpu_mask_t PhysicalInterrupt(uint32_t vector);
31 void VirtualInterrupt(uint32_t vector);
/kernel/arch/arm64/hypervisor/
A Dvcpu.cpp48 uint32_t vector; in gich_maybe_interrupt() local
49 hypervisor::InterruptType type = gich_state->interrupt_tracker.Pop(&vector); in gich_maybe_interrupt()
53 } else if (gich_state->active_interrupts.GetOne(vector)) { in gich_maybe_interrupt()
67 uint8_t prio = vector < GIC_BASE_SPI ? 0 : 0x10; in gich_maybe_interrupt()
68 uint64_t lr = gic_get_lr_from_vector(hw, prio, vector); in gich_maybe_interrupt()
80 uint32_t vector = gic_get_vector_from_lr(gich_state->lr[i]); in gich_active_interrupts() local
81 gich_state->active_interrupts.SetOne(vector); in gich_active_interrupts()
255 cpu_mask_t Vcpu::Interrupt(uint32_t vector, hypervisor::InterruptType type) { in Interrupt() argument
257 gich_state_.interrupt_tracker.Interrupt(vector, type, &signaled); in Interrupt()
264 void Vcpu::VirtualInterrupt(uint32_t vector) { in VirtualInterrupt() argument
[all …]
/kernel/lib/hypervisor/
A Dhypervisor_unittest.cpp522 uint32_t vector = UINT32_MAX; in interrupt_bitmap() local
530 vector = UINT32_MAX; in interrupt_bitmap()
535 EXPECT_EQ(0u, vector, ""); in interrupt_bitmap()
537 vector = UINT32_MAX; in interrupt_bitmap()
542 EXPECT_EQ(0u, vector, ""); in interrupt_bitmap()
544 vector = UINT32_MAX; in interrupt_bitmap()
552 vector = UINT32_MAX; in interrupt_bitmap()
557 EXPECT_EQ(1u, vector, ""); in interrupt_bitmap()
559 vector = UINT32_MAX; in interrupt_bitmap()
564 EXPECT_EQ(1u, vector, ""); in interrupt_bitmap()
[all …]
/kernel/arch/x86/
A Dmp.cpp322 uint8_t vector = 0; in arch_mp_send_ipi() local
325 vector = X86_INT_IPI_GENERIC; in arch_mp_send_ipi()
328 vector = X86_INT_IPI_RESCHEDULE; in arch_mp_send_ipi()
331 vector = X86_INT_IPI_INTERRUPT; in arch_mp_send_ipi()
334 vector = X86_INT_IPI_HALT; in arch_mp_send_ipi()
341 apic_send_broadcast_ipi(vector, DELIVERY_MODE_FIXED); in arch_mp_send_ipi()
344 apic_send_broadcast_self_ipi(vector, DELIVERY_MODE_FIXED); in arch_mp_send_ipi()
367 apic_send_ipi(vector, (uint8_t)percpu->apic_id, DELIVERY_MODE_FIXED); in arch_mp_send_ipi()
A Dlapic.cpp205 uint8_t vector, in apic_send_ipi() argument
211 uint32_t request = ICR_VECTOR(vector) | ICR_LEVEL_ASSERT; in apic_send_ipi()
226 void apic_send_self_ipi(uint8_t vector, enum apic_interrupt_delivery_mode dm) { in apic_send_self_ipi() argument
227 uint32_t request = ICR_VECTOR(vector) | ICR_LEVEL_ASSERT; in apic_send_self_ipi()
234 write_msr(LAPIC_X2APIC_MSR_SELF_IPI, vector); in apic_send_self_ipi()
244 uint8_t vector, in apic_send_broadcast_self_ipi() argument
246 uint32_t request = ICR_VECTOR(vector) | ICR_LEVEL_ASSERT; in apic_send_broadcast_self_ipi()
263 uint8_t vector, in apic_send_broadcast_ipi() argument
265 uint32_t request = ICR_VECTOR(vector) | ICR_LEVEL_ASSERT; in apic_send_broadcast_ipi()
A Dioapic.cpp301 uint8_t vector) { in apic_io_configure_irq() argument
308 ((vector < X86_INT_PLATFORM_BASE) || (vector > X86_INT_PLATFORM_MAX))) { in apic_io_configure_irq()
319 reg |= IO_APIC_RTE_VECTOR(vector); in apic_io_configure_irq()
348 uint8_t vector) { in apic_io_configure_irq_vector() argument
362 reg |= IO_APIC_RTE_VECTOR(vector); in apic_io_configure_irq_vector()
372 uint8_t vector = IO_APIC_RTE_GET_VECTOR(reg); in apic_io_fetch_irq_vector() local
374 return vector; in apic_io_fetch_irq_vector()
392 uint8_t vector) { in apic_io_configure_isa_irq() argument
411 vector); in apic_io_configure_isa_irq()
A Dfaults.cpp86 printf("vector %lu\n", (ulong)frame->vector); in exception_die()
339 switch (frame->vector) { in handle_exception_types()
457 if (unlikely(arch_blocking_disallowed()) && frame->vector != X86_INT_NMI) { in x86_exception_handler()
468 ktrace_tiny(TAG_IRQ_ENTER, ((uint32_t)frame->vector << 8) | arch_curr_cpu_num()); in x86_exception_handler()
485 ktrace_tiny(TAG_IRQ_EXIT, ((uint)frame->vector << 8) | arch_curr_cpu_num()); in x86_exception_handler()
489 frame->vector, frame->ip); in x86_exception_handler()
520 zx_context->arch.u.x86_64.vector = arch_context->frame->vector; in arch_fill_in_exception_context()
/kernel/arch/x86/hypervisor/
A Dvcpu.cpp127 static bool has_error_code(uint32_t vector) { in has_error_code() argument
128 switch (vector) { in has_error_code()
142 void AutoVmcs::IssueInterrupt(uint32_t vector) { in IssueInterrupt() argument
145 if (vector == X86_INT_BREAKPOINT || vector == X86_INT_OVERFLOW) { in IssueInterrupt()
149 } else if (vector == X86_INT_NMI) { in IssueInterrupt()
151 } else if (vector <= X86_INT_VIRT) { in IssueInterrupt()
155 if (has_error_code(vector)) { in IssueInterrupt()
711 uint32_t vector; in local_apic_maybe_interrupt() local
714 vector = X86_INT_NMI; in local_apic_maybe_interrupt()
724 if (vector > X86_INT_VIRT && vector < X86_INT_PLATFORM_BASE) { in local_apic_maybe_interrupt()
[all …]
/kernel/dev/interrupt/arm_gic/common/
A Darm_gic_hw_interface.cpp74 uint64_t gic_get_lr_from_vector(bool hw, uint8_t prio, uint32_t vector) { in gic_get_lr_from_vector() argument
75 return gic_ops->get_lr_from_vector(hw, prio, vector); in gic_get_lr_from_vector()

Completed in 54 milliseconds

12