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

12345678

/seL4-refos-master/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-refos-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-refos-master/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-refos-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-refos-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-refos-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-refos-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-refos-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-refos-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...]
/seL4-refos-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-refos-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-refos-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-refos-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-refos-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-refos-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-refos-master/libs/librefos/src/refos-util/
H A Ddevice_irq.c55 int dev_handle_irq(dev_irq_state_t *irqState, uint32_t irq, argument
60 if (irq >= DEVICE_MAX_IRQ) {
67 if (!irqState->handler[irq].handler) {
69 irqState->handler[irq].handler = irqState->cfg.getIRQHandlerEndpoint(
70 irqState->cfg.getIRQHandlerEndpointCookie, irq
72 if (!irqState->handler[irq].handler) {
73 ROS_WARNING("dev_handle_irq : could not get IRQ handler for irq %u.\n", irq);
80 cvector_add(&irqState->channel[irqState->nextIRQChannel], (cvector_item_t) irq);
88 ROS_WARNING("dev_handle_irq : could not mint badged aep for irq
133 uint32_t irq = (uint32_t) cvector_get(&irqState->channel[i], j); local
[all...]
/seL4-refos-master/projects/refos/impl/libs/librefos/src/refos-util/
H A Ddevice_irq.c55 int dev_handle_irq(dev_irq_state_t *irqState, uint32_t irq, argument
60 if (irq >= DEVICE_MAX_IRQ) {
67 if (!irqState->handler[irq].handler) {
69 irqState->handler[irq].handler = irqState->cfg.getIRQHandlerEndpoint(
70 irqState->cfg.getIRQHandlerEndpointCookie, irq
72 if (!irqState->handler[irq].handler) {
73 ROS_WARNING("dev_handle_irq : could not get IRQ handler for irq %u.\n", irq);
80 cvector_add(&irqState->channel[irqState->nextIRQChannel], (cvector_item_t) irq);
88 ROS_WARNING("dev_handle_irq : could not mint badged aep for irq
133 uint32_t irq = (uint32_t) cvector_get(&irqState->channel[i], j); local
[all...]
/seL4-refos-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-refos-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-refos-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-refos-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-refos-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-refos-master/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...]
/seL4-refos-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 126 milliseconds

12345678