Searched refs:irq (Results 1 - 25 of 131) sorted by relevance

123456

/seL4-test-master/projects/seL4_libs/libsel4platsupport/src/arch/arm/
H A Ddevice.c16 int sel4platsupport_arch_copy_irq_cap(arch_simple_t *arch_simple, ps_irq_t *irq, cspacepath_t *dest) argument
18 switch (irq->type) {
20 return arch_simple_get_IRQ_trigger(arch_simple, irq->trigger.number, irq->trigger.trigger, *dest);
22 return arch_simple_get_IRQ_trigger_cpu(arch_simple, irq->cpu.number, irq->cpu.trigger, irq->cpu.cpu_idx, *dest);
24 ZF_LOGE("unknown irq type");
/seL4-test-master/projects/seL4_libs/libsel4platsupport/src/plat/pc99/
H A Ddevice.c17 #include <platsupport/irq.h>
19 int sel4platsupport_arch_copy_irq_cap(arch_simple_t *arch_simple, ps_irq_t *irq, cspacepath_t *dest) argument
21 switch (irq->type) {
23 return arch_simple_get_msi(arch_simple, *dest, irq->msi.pci_bus, irq->msi.pci_dev,
24 irq->msi.pci_func, irq->msi.handle, irq->msi.vector);
26 return arch_simple_get_ioapic(arch_simple, *dest, irq->ioapic.ioapic, irq
[all...]
/seL4-test-master/kernel/include/arch/riscv/arch/machine/
H A Dplic.h30 * void plic_complete_claim(irq_t irq): Complete a claim process for an
32 * void plic_mask_irq(bool_t disable, irq_t irq): Disables or enables an
34 * void plic_irq_set_trigger(irq_t irq, bool_t edge_triggered): Configure
45 static inline void plic_complete_claim(irq_t irq) argument
49 static inline void plic_mask_irq(bool_t disable, irq_t irq) argument
54 static inline void plic_irq_set_trigger(irq_t irq, bool_t edge_triggered);
/seL4-test-master/kernel/include/machine/
H A Dinterrupt.h15 * irq handler capabilities refer to an irq_t which is then used by the
16 * kernel to track irq state. An irq_t is also used to interface with an
19 * directly map to harware irq numbers and are also used as indexes into the
20 * kernel's irq cnode that it uses for tracking state.
22 * for a single hardware irq number, such as when there are core local interrupts,
23 * irq_t cannot be assumed to be only a hardware irq number.
27 * CORE_IRQ_TO_IRQT: converts from a core id and hw irq number to an irq_t
28 * IRQT_TO_IDX: converts an irq_t to an index in the irq cnode. It is also used
30 * IDX_TO_IRQT: converts an index in the irq cnode to an irq_t
32 * IRQT_TO_IRQL extracts a hw irq ou
40 word_t irq; member in struct:__anon16
[all...]
/seL4-test-master/projects/sel4_projects_libs/libsel4vm/include/sel4vm/
H A Dguest_irq_controller.h13 * The libsel4vm IRQ controller interface provides a base abstraction around initialising a guest VM irq controller
18 * Callback for irq acknowledgement
20 typedef void (*irq_ack_fn_t)(vm_vcpu_t *vcpu, int irq, void *cookie);
23 * @function vm_inject_irq(vcpu, irq)
26 * @param {int} irq IRQ number to inject
29 int vm_inject_irq(vm_vcpu_t *vcpu, int irq);
32 * @function vm_set_irq_level(vcpu, irq, irq_level)
35 * @param {int} irq IRQ number to set level on
39 int vm_set_irq_level(vm_vcpu_t *vcpu, int irq, int irq_level);
42 * @function vm_register_irq(vcpu, irq, ack_f
[all...]
/seL4-test-master/kernel/include/object/
H A Dinterrupt.h18 exception_t invokeIRQControl(irq_t irq, cte_t *handlerSlot, cte_t *controlSlot);
19 exception_t decodeIRQHandlerInvocation(word_t invLabel, irq_t irq,
21 void invokeIRQHandler_AckIRQ(irq_t irq);
22 void invokeIRQHandler_SetIRQHandler(irq_t irq, cap_t cap, cte_t *slot);
23 void invokeIRQHandler_ClearIRQHandler(irq_t irq);
24 void deletingIRQHandler(irq_t irq);
25 void deletedIRQHandler(irq_t irq);
26 void handleInterrupt(irq_t irq);
27 bool_t isIRQActive(irq_t irq);
28 void setIRQState(irq_state_t irqState, irq_t irq);
[all...]
/seL4-test-master/kernel/src/object/
H A Dinterrupt.c29 irq_t irq; local
40 irq = CORE_IRQ_TO_IRQT(0, irq_w);
51 if (isIRQActive(irq)) {
53 userError("Rejecting request for IRQ %u. Already active.", (int)IRQT_TO_IRQ(irq));
60 getExtraCPtr(buffer, 0), (int)IRQT_TO_IRQ(irq));
68 getExtraCPtr(buffer, 0), (int)IRQT_TO_IRQ(irq));
73 return invokeIRQControl(irq, destSlot, srcSlot);
79 exception_t invokeIRQControl(irq_t irq, cte_t *handlerSlot, cte_t *controlSlot) argument
81 setIRQState(IRQSignal, irq);
82 cteInsert(cap_irq_handler_cap_new(IRQT_TO_IDX(irq)), controlSlo
87 decodeIRQHandlerInvocation(word_t invLabel, irq_t irq, extra_caps_t excaps) argument
136 invokeIRQHandler_AckIRQ(irq_t irq) argument
151 invokeIRQHandler_SetIRQHandler(irq_t irq, cap_t cap, cte_t *slot) argument
161 invokeIRQHandler_ClearIRQHandler(irq_t irq) argument
170 deletingIRQHandler(irq_t irq) argument
179 deletedIRQHandler(irq_t irq) argument
184 handleInterrupt(irq_t irq) argument
257 isIRQActive(irq_t irq) argument
262 setIRQState(irq_state_t irqState, irq_t irq) argument
[all...]
/seL4-test-master/kernel/include/arch/arm/arch/machine/
H A Dgic_common.h30 #define HW_IRQ_IS_SGI(irq) ((irq) < PPI_START)
31 #define HW_IRQ_IS_PPI(irq) ((irq) < NUM_PPI)
34 /* In this case irq_t is a struct with an hw irq field and target core field.
39 * core: 0, irq: 12 -> index 12.
40 * core: 2, irq: 16 -> (2 * 32) + 12
41 * core: 1, irq: 33, (4 total cores) -> (4 * 32) + (33-32).
43 #define IRQ_IS_PPI(_irq) (HW_IRQ_IS_PPI(_irq.irq))
44 #define CORE_IRQ_TO_IRQT(tgt, _irq) ((irq_t){.irq
[all...]
H A Dgic_v3.h172 static inline int is_irq_edge_triggered(word_t irq) argument
175 int word = irq >> 4;
176 int bit = ((irq & 0xf) * 2);
178 if (HW_IRQ_IS_SGI(irq)) {
181 if (HW_IRQ_IS_PPI(irq)) {
190 static inline void gic_pending_clr(word_t irq) argument
192 int word = IRQ_REG(irq);
193 int bit = IRQ_BIT(irq);
196 if (irq < SPI_START) {
203 static inline void gic_enable_clr(word_t irq) argument
216 gic_enable_set(word_t irq) argument
231 irq_t irq; local
263 maskInterrupt(bool_t disable, irq_t irq) argument
276 ackInterrupt(irq_t irq) argument
[all...]
/seL4-test-master/kernel/include/arch/riscv/arch/smp/
H A Dipi.h18 void ipi_send_target(irq_t irq, word_t cpuTargetList);
20 void ipi_clear_irq(irq_t irq);
/seL4-test-master/kernel/include/plat/pc99/plat/machine/
H A Dinterrupt.h22 static inline void handleReservedIRQ(irq_t irq) argument
25 if (irq == irq_iommu) {
32 printf("Received unhandled reserved IRQ: %d\n", (int)irq);
92 static inline void ackInterrupt(irq_t irq) argument
94 if (config_set(CONFIG_IRQ_PIC) && irq <= irq_isa_max) {
106 static void inline updateIRQState(irq_t irq, x86_irq_state_t state) argument
108 assert(irq <= maxIRQ);
109 x86KSIRQState[irq] = state;
112 static inline void maskInterrupt(bool_t disable, irq_t irq) argument
114 if (irq >
[all...]
/seL4-test-master/kernel/include/arch/arm/arch/object/
H A Dinterrupt.h20 static inline void handleReservedIRQ(irq_t irq) argument
24 if (IRQT_TO_IRQ(irq) == KERNEL_PMU_IRQ) {
31 if (IRQT_TO_IRQ(irq) == INTERRUPT_VGIC_MAINTENANCE) {
36 if (irqVPPIEventIndex(irq) != VPPIEventIRQ_invalid) {
37 VPPIEvent(irq);
43 if (IRQT_TO_IRQ(irq) == INTERRUPT_SMMU) {
50 printf("Received unhandled reserved IRQ: 0x%lx\n", IRQT_TO_IRQ(irq));
/seL4-test-master/kernel/src/arch/riscv/object/
H A Dinterrupt.c13 exception_t Arch_checkIRQ(word_t irq) argument
15 if (irq > maxIRQ || irq == irqInvalid) {
19 userError("Rejecting request for IRQ %u. IRQ is out of range [1..maxIRQ].", (int)irq);
25 static exception_t Arch_invokeIRQControl(irq_t irq, cte_t *handlerSlot, cte_t *controlSlot, bool_t trigger) argument
28 setIRQTrigger(irq, trigger);
30 return invokeIRQControl(irq, handlerSlot, controlSlot);
50 irq_t irq = (irq_t) irq_w; local
62 if (isIRQActive(irq)) {
64 userError("Rejecting request for IRQ %u. Already active.", (int)irq);
[all...]
/seL4-test-master/kernel/include/drivers/irq/
H A Dam335x.h72 irq_t irq = (irq_t)(intcps_sir_irq & 0x7f); local
75 assert((irq / 32) < (sizeof intc->intcps_n / sizeof intc->intcps_n[0]));
76 if (intc->intcps_n[irq / 32].intcps_pending_irq & (1 << (irq & 31))) {
77 return irq;
89 /* Enable or disable irq according to the 'disable' flag. */
90 static inline void maskInterrupt(bool_t disable, irq_t irq) argument
92 if (likely(irq < maxIRQ)) {
94 intc->intcps_n[irq / 32].intcps_mir_set = 1 << (irq
101 ackInterrupt(irq_t irq) argument
[all...]
H A Domap3.h60 irq_t irq = (irq_t)(intcps_sir_irq & 0x7f); local
64 assert(irq <= maxIRQ);
65 if (intc->intcps_n[irq / 32].intcps_pending_irq & (1 << (irq & 31))) {
66 return irq;
80 /* Enable or disable irq according to the 'disable' flag. */
81 static inline void maskInterrupt(bool_t disable, irq_t irq) argument
83 if (likely(irq < maxIRQ)) {
85 intc->intcps_n[irq / 32].intcps_mir_set = 1 << (irq
92 ackInterrupt(irq_t irq) argument
[all...]
/seL4-test-master/kernel/src/plat/bcm2837/machine/
H A Dintc.c30 uint32_t irq; local
41 irq = (wordBits - 1 - clzl(pending));
42 if (irq != INTERRUPT_CORE_GPU) {
43 return irq;
70 static inline void maskInterrupt(bool_t disable, irq_t irq) argument
72 switch (irq) {
78 core_regs->coreTimersIrqCtrl[0] &= ~BIT(irq);
80 core_regs->coreTimersIrqCtrl[0] |= BIT(irq);
88 core_regs->coreMailboxesIrqCtrl[0] &= ~BIT(irq);
90 core_regs->coreMailboxesIrqCtrl[0] |= BIT(irq);
[all...]
/seL4-test-master/kernel/include/arch/riscv/arch/object/
H A Dinterrupt.h13 static inline void handleReservedIRQ(irq_t irq) argument
16 printf("Received unhandled reserved IRQ: %d\n", (int)irq);
/seL4-test-master/kernel/include/plat/spike/plat/instance/rocket-chip/
H A Dhardware.h17 static inline void plic_complete_claim(irq_t irq) argument
21 static inline void plic_mask_irq(bool_t disable, irq_t irq) argument
/seL4-test-master/projects/sel4_projects_libs/libsel4vmmplatsupport/plat_include/exynos5/sel4vmmplatsupport/plat/
H A Dirq_combiner.h17 void vm_combiner_irq_handler(vm_t *vm, int irq);
/seL4-test-master/projects/sel4_projects_libs/libsel4vmmplatsupport/src/plat/exynos5/devices/
H A Dirq_combiner.h18 typedef void (*combiner_irq_handler_fn)(struct combiner_irq *irq);
25 * @param[in[ index The irq index withing this group
35 * @param[in] irq a description of the IRQ to ACK
37 void combiner_irq_ack(struct combiner_irq *irq);
/seL4-test-master/kernel/src/plat/pc99/machine/
H A Dpic.c39 void pic_mask_irq(bool_t mask, irq_t irq) argument
44 assert(irq >= irq_isa_min);
45 assert(irq <= irq_isa_max);
47 if (irq < 8) {
48 bit_mask = BIT(irq);
51 bit_mask = BIT(irq - 8);
90 irq_t irq = getActiveIRQ(); local
91 if (irq >= irq_isa_min + 8) {
92 /* ack slave PIC, unless we got a spurious irq 15
96 if (irq !
[all...]
/seL4-test-master/kernel/src/arch/arm/object/
H A Dinterrupt.c13 static exception_t Arch_invokeIRQControl(irq_t irq, cte_t *handlerSlot, cte_t *controlSlot, bool_t trigger) argument
16 setIRQTrigger(irq, trigger);
18 return invokeIRQControl(irq, handlerSlot, controlSlot);
38 irq_t irq = (irq_t) CORE_IRQ_TO_IRQT(0, irq_w); local
51 if (IRQ_IS_PPI(irq)) {
56 if (isIRQActive(irq)) {
58 userError("Rejecting request for IRQ %u. Already active.", (int)IRQT_TO_IRQ(irq));
65 getExtraCPtr(buffer, 0), (int)IRQT_TO_IRQ(irq));
74 getExtraCPtr(buffer, 0), (int)IRQT_TO_IRQ(irq));
79 return Arch_invokeIRQControl(irq, destSlo
89 irq_t irq = CORE_IRQ_TO_IRQT(target, irq_w); local
[all...]
/seL4-test-master/kernel/src/arch/riscv/machine/
H A Dhardware.c86 * Gets the new active irq from the PLIC or STIP.
96 * @return The new active irq.
121 * Gets the active irq. Returns the same irq if called again before ackInterrupt.
130 * @return The active irq.
135 uint32_t irq; local
141 irq = active_irq[CURRENT_CPU_INDEX()];
143 irq = irqInvalid;
146 return irq;
151 * Sets the irq trigge
160 setIRQTrigger(irq_t irq, bool_t edge_triggered) argument
191 maskInterrupt(bool_t disable, irq_t irq) argument
219 ackInterrupt(irq_t irq) argument
[all...]
/seL4-test-master/projects/sel4_projects_libs/libsel4vm/src/arch/x86/i8259/
H A Di8259.c58 unsigned char priority_add; /* Highest irq priority */
83 static inline int select_pic(unsigned int irq) argument
85 assert(irq < 16);
86 if (irq < 8) {
106 /* Return the highest priority found in mask (highest = smallest number). Return 8 if no irq */
161 /* Higher priority found: an irq should be generated. */
169 static void pic_clear_isr(vm_t *vm, struct i8259_state *s, int irq) argument
172 s->isr &= ~(1 << irq);
174 irq += 8;
177 if (irq !
185 pic_set_irq1(struct i8259_state *s, int irq, int level) argument
221 int irq2, irq; local
251 int irq; local
290 int priority, cmd, irq; local
547 pic_intack(vm_t *vm, struct i8259_state *s, int irq) argument
612 int irq, irq2, intno; local
701 vm_set_irq_level(vm_vcpu_t *vcpu, int irq, int irq_level) argument
717 vm_inject_irq(vm_vcpu_t *vcpu, int irq) argument
724 vm_register_irq(vm_vcpu_t *vcpu, int irq, irq_ack_fn_t fn, void *cookie) argument
[all...]
/seL4-test-master/projects/seL4_libs/libsel4platsupport/src/
H A Ddevice.c15 #include <sel4platsupport/irq.h>
21 seL4_Error sel4platsupport_copy_irq_cap(vka_t *vka, simple_t *simple, ps_irq_t *irq, cspacepath_t *dest) argument
25 /* allocate a cslot for the irq cap */
28 ZF_LOGE("Failed to allocate cslot for irq");
33 assert(irq->type != PS_NONE);
34 if (irq->type == PS_INTERRUPT) {
35 error = simple_get_IRQ_handler(simple, irq->irq.number, *dest);
37 error = sel4platsupport_arch_copy_irq_cap(&simple->arch_simple, irq, dest);
41 ZF_LOGE("Failed to get cap for irq");
[all...]

Completed in 150 milliseconds

123456