/seL4-refos-master/projects/util_libs/libplatsupport/src/arch/arm/irqchip/ |
H A D | omap3.c | 37 ps_irq_t irq = { .type = PS_INTERRUPT, .irq = { .number = READ_CELL(1, interrupts_prop, 0) }}; local 38 int error = callback(irq, 0, TI_OMAP3_INT_CELL_COUNT, token);
|
/seL4-refos-master/libs/libsel4simple-default/src/arch/arm/ |
H A D | default.c | 25 seL4_Error simple_default_get_irq(void *data, int irq, seL4_CNode root, seL4_Word index, uint8_t depth) argument 27 return seL4_IRQControl_Get(seL4_CapIRQControl, irq, root, index, depth); 30 seL4_Error simple_default_get_irq_trigger(void *data, int irq, int trigger, UNUSED int core, seL4_CNode root, argument 34 return seL4_IRQControl_GetTriggerCore(seL4_CapIRQControl, irq, trigger, root, index, depth, core); 36 return seL4_IRQControl_GetTrigger(seL4_CapIRQControl, irq, trigger, root, index, depth); 98 simple->irq = simple_default_get_irq;
|
/seL4-refos-master/projects/seL4_libs/libsel4simple-default/src/arch/arm/ |
H A D | default.c | 25 seL4_Error simple_default_get_irq(void *data, int irq, seL4_CNode root, seL4_Word index, uint8_t depth) argument 27 return seL4_IRQControl_Get(seL4_CapIRQControl, irq, root, index, depth); 30 seL4_Error simple_default_get_irq_trigger(void *data, int irq, int trigger, UNUSED int core, seL4_CNode root, argument 34 return seL4_IRQControl_GetTriggerCore(seL4_CapIRQControl, irq, trigger, root, index, depth, core); 36 return seL4_IRQControl_GetTrigger(seL4_CapIRQControl, irq, trigger, root, index, depth); 98 simple->irq = simple_default_get_irq;
|
/seL4-refos-master/kernel/tools/hardware/outputs/ |
H A D | c_header.py | 37 {% for irq in kernel_irqs %} 38 /* {{ irq.desc }} */ 39 {% if irq.has_enable() %} 40 {{ irq.get_enable_macro_str() }} 42 {% if irq.has_sel() %} 43 {{ irq.get_sel_macro_str() }} 45 #define {{ irq.label }} {{ irq.irq }} 46 {% if irq [all...] |
/seL4-refos-master/projects/util_libs/libplatsupport/include/platsupport/ |
H A D | irq.h | 61 } irq; member in union:__anon11::__anon12 112 * @param irq Information about the interrupt that is to be registered 118 typedef irq_id_t (*ps_irq_register_fn_t)(void *cookie, ps_irq_t irq, irq_callback_fn_t callback, void *callback_data); 137 static inline int ps_irq_register(ps_irq_ops_t *irq_ops, ps_irq_t irq, irq_callback_fn_t callback, void *callback_data) argument 140 return irq_ops->irq_register_fn(irq_ops->cookie, irq, callback, callback_data);
|
/seL4-refos-master/libs/libplatsupport/include/platsupport/ |
H A D | irq.h | 61 } irq; member in union:__anon1::__anon2 112 * @param irq Information about the interrupt that is to be registered 118 typedef irq_id_t (*ps_irq_register_fn_t)(void *cookie, ps_irq_t irq, irq_callback_fn_t callback, void *callback_data); 137 static inline int ps_irq_register(ps_irq_ops_t *irq_ops, ps_irq_t irq, irq_callback_fn_t callback, void *callback_data) argument 140 return irq_ops->irq_register_fn(irq_ops->cookie, irq, callback, callback_data);
|
/seL4-refos-master/kernel/include/drivers/irq/ |
H A D | imx31.h | 42 * acks the interrupt. To allow the active irq to be read 72 /* Enable or disable irq according to the 'disable' flag. */ 73 static inline void maskInterrupt(bool_t disable, irq_t irq) argument 76 avic->intdisnum = irq; 78 avic->intennum = irq; 82 static inline void ackInterrupt(irq_t irq) argument
|
/seL4-refos-master/libs/libplatsupport/src/plat/bcm2837/ |
H A D | ltimer.c | 64 static int get_nth_irq(void *data, size_t n, ps_irq_t *irq) argument 69 irq->irq.number = SP804_TIMER_IRQ; 70 irq->type = PS_INTERRUPT; 73 irq->irq.number = SYSTEM_TIMER_MATCH_IRQ(SYSTEM_TIMER_MATCH); 74 irq->type = PS_INTERRUPT; 92 static int handle_irq(void *data, ps_irq_t *irq) argument 97 switch (irq->irq [all...] |
/seL4-refos-master/projects/util_libs/libplatsupport/src/plat/bcm2837/ |
H A D | ltimer.c | 64 static int get_nth_irq(void *data, size_t n, ps_irq_t *irq) argument 69 irq->irq.number = SP804_TIMER_IRQ; 70 irq->type = PS_INTERRUPT; 73 irq->irq.number = SYSTEM_TIMER_MATCH_IRQ(SYSTEM_TIMER_MATCH); 74 irq->type = PS_INTERRUPT; 92 static int handle_irq(void *data, ps_irq_t *irq) argument 97 switch (irq->irq [all...] |
/seL4-refos-master/projects/util_libs/libplatsupport/src/arch/arm/ |
H A D | generic_ltimer.c | 41 static int get_nth_irq(void *data, size_t n, ps_irq_t *irq) argument 44 irq->type = PS_PER_CPU; 45 irq->cpu.number = GENERIC_TIMER_PCNT_IRQ; 46 irq->cpu.trigger = 0; 47 irq->cpu.cpu_idx = 0; 99 static int handle_irq(void *data, ps_irq_t *irq) argument 101 if (irq->type != PS_PER_CPU && 102 irq->cpu.number != GENERIC_TIMER_PCNT_IRQ && 103 irq->cpu.trigger != 0 && 104 irq [all...] |
/seL4-refos-master/libs/libplatsupport/src/arch/arm/ |
H A D | generic_ltimer.c | 41 static int get_nth_irq(void *data, size_t n, ps_irq_t *irq) argument 44 irq->type = PS_PER_CPU; 45 irq->cpu.number = GENERIC_TIMER_PCNT_IRQ; 46 irq->cpu.trigger = 0; 47 irq->cpu.cpu_idx = 0; 99 static int handle_irq(void *data, ps_irq_t *irq) argument 101 if (irq->type != PS_PER_CPU && 102 irq->cpu.number != GENERIC_TIMER_PCNT_IRQ && 103 irq->cpu.trigger != 0 && 104 irq [all...] |
/seL4-refos-master/kernel/src/arch/x86/object/ |
H A D | interrupt.c | 54 static exception_t Arch_invokeIRQControl(irq_t irq, cte_t *handlerSlot, cte_t *controlSlot, x86_irq_state_t irqState) argument 56 updateIRQState(irq, irqState); 57 return invokeIRQControl(irq, handlerSlot, controlSlot); 60 static exception_t invokeIssueIRQHandlerIOAPIC(irq_t irq, word_t ioapic, word_t pin, word_t level, word_t polarity, argument 66 return Arch_invokeIRQControl(irq, handlerSlot, controlSlot, irqState); 77 irq_t irq; local 103 irq = getSyscallArg(6, buffer); 104 if (irq > irq_user_max - irq_user_min) { 105 userError("IRQControl: Invalid irq %ld should be between 0-%ld", (long)irq, (lon [all...] |
/seL4-refos-master/libs/libplatsupport/src/plat/pc99/ |
H A D | ltimer.c | 52 ps_irq_t irq; member in struct:__anon9 63 /* both PIT and HPET only have one irq */ 67 static int get_nth_irq(void *data, size_t n, ps_irq_t *irq) argument 71 assert(irq != NULL); 75 *irq = pc99_ltimer->irq; 112 /* otherwise need to set another irq */ 299 pc99_ltimer->irq_id = ps_irq_register(&ops.irq_ops, pc99_ltimer->irq, handle_irq, 335 if (pc99_ltimer->hpet.config.ioapic_delivery && pc99_ltimer->hpet.config.irq == 2) { 380 int ltimer_hpet_init(ltimer_t *ltimer, ps_io_ops_t ops, ps_irq_t irq, pmem_region_ argument 445 ps_irq_t irq; local 469 ltimer_hpet_describe_with_region(ltimer_t *ltimer, ps_io_ops_t ops, pmem_region_t region, ps_irq_t *irq) argument 526 ltimer_hpet_describe(ltimer_t *ltimer, ps_io_ops_t ops, ps_irq_t irq, pmem_region_t region) argument [all...] |
/seL4-refos-master/projects/util_libs/libplatsupport/src/plat/pc99/ |
H A D | ltimer.c | 52 ps_irq_t irq; member in struct:__anon22 63 /* both PIT and HPET only have one irq */ 67 static int get_nth_irq(void *data, size_t n, ps_irq_t *irq) argument 71 assert(irq != NULL); 75 *irq = pc99_ltimer->irq; 112 /* otherwise need to set another irq */ 299 pc99_ltimer->irq_id = ps_irq_register(&ops.irq_ops, pc99_ltimer->irq, handle_irq, 335 if (pc99_ltimer->hpet.config.ioapic_delivery && pc99_ltimer->hpet.config.irq == 2) { 380 int ltimer_hpet_init(ltimer_t *ltimer, ps_io_ops_t ops, ps_irq_t irq, pmem_region_ argument 445 ps_irq_t irq; local 469 ltimer_hpet_describe_with_region(ltimer_t *ltimer, ps_io_ops_t ops, pmem_region_t region, ps_irq_t *irq) argument 526 ltimer_hpet_describe(ltimer_t *ltimer, ps_io_ops_t ops, ps_irq_t irq, pmem_region_t region) argument [all...] |
/seL4-refos-master/libs/libplatsupport/plat_include/pc99/platsupport/plat/ |
H A D | timer.h | 29 * using the default irq - populate the irq struct with details */ 30 int ltimer_hpet_describe_with_region(ltimer_t *ltimer, ps_io_ops_t ops, pmem_region_t region, ps_irq_t *irq); 31 /* Initialise the description functions for a HPET based ltimer using the provided irq and region */ 32 int ltimer_hpet_describe(ltimer_t *ltimer, ps_io_ops_t ops, ps_irq_t irq, pmem_region_t hpet_region); 33 /* Initialise a hpet based ltimer using the provided irq and region */ 34 int ltimer_hpet_init(ltimer_t *ltimer, ps_io_ops_t ops, ps_irq_t irq, pmem_region_t hpet_region,
|
/seL4-refos-master/projects/util_libs/libplatsupport/plat_include/pc99/platsupport/plat/ |
H A D | timer.h | 29 * using the default irq - populate the irq struct with details */ 30 int ltimer_hpet_describe_with_region(ltimer_t *ltimer, ps_io_ops_t ops, pmem_region_t region, ps_irq_t *irq); 31 /* Initialise the description functions for a HPET based ltimer using the provided irq and region */ 32 int ltimer_hpet_describe(ltimer_t *ltimer, ps_io_ops_t ops, ps_irq_t irq, pmem_region_t hpet_region); 33 /* Initialise a hpet based ltimer using the provided irq and region */ 34 int ltimer_hpet_init(ltimer_t *ltimer, ps_io_ops_t ops, ps_irq_t irq, pmem_region_t hpet_region,
|
/seL4-refos-master/libs/libplatsupport/src/ |
H A D | ltimer.h | 14 #include <platsupport/irq.h> 18 typedef int (*ltimer_handle_irq_fn_t)(void *data, ps_irq_t *irq); 22 ps_irq_t *irq; member in struct:__anon3 40 ps_irq_t *irq = callback_data->irq; local 43 int UNUSED error = irq_handler(ltimer->data, irq);
|
/seL4-refos-master/projects/util_libs/libplatsupport/src/ |
H A D | ltimer.h | 14 #include <platsupport/irq.h> 18 typedef int (*ltimer_handle_irq_fn_t)(void *data, ps_irq_t *irq); 22 ps_irq_t *irq; member in struct:__anon16 40 ps_irq_t *irq = callback_data->irq; local 43 int UNUSED error = irq_handler(ltimer->data, irq);
|
/seL4-refos-master/projects/util_libs/libethdrivers/include/ethdrivers/ |
H A D | pico_dev_eth.h | 59 static inline void ethif_pico_handle_irq(pico_device_eth *iface, int irq) { argument 60 iface->driver.i_fn.raw_handleIRQ(&iface->driver, irq);
|
/seL4-refos-master/kernel/src/arch/arm/machine/ |
H A D | gic_v2.c | 150 void setIRQTrigger(irq_t irq, bool_t trigger) argument 152 /* in the gic_config, there is a 2 bit field for each irq, 153 * setting the most significant bit of this field makes the irq edge-triggered, 155 word_t index = IRQT_TO_IRQ(irq) / 16u; 156 word_t offset = (IRQT_TO_IRQ(irq) % 16u) * 2; 167 /* irqInvalid cannot correspond to a valid IRQ index into the irq state array */ 191 void ipi_send_target(irq_t irq, word_t cpuTargetList) argument 201 irq) << GICD_SGIR_SGIINTID_SHIFT); 207 void setIRQTarget(irq_t irq, seL4_Word target) argument 211 word_t hwIRQ = IRQT_TO_IRQ(irq); [all...] |
/seL4-refos-master/kernel/include/arch/arm/arch/smp/ |
H A D | ipi_inline.h | 40 static inline void doRemoteMaskPrivateInterrupt(word_t cpu, word_t disable, word_t irq) argument 42 doRemoteOp2Arg(IpiRemoteCall_MaskPrivateInterrupt, disable, irq, cpu);
|
/seL4-refos-master/kernel/include/arch/x86/arch/kernel/ |
H A D | traps.h | 37 void c_nested_interrupt(int irq) 40 void c_handle_interrupt(int irq, int syscall)
|
/seL4-refos-master/kernel/src/api/ |
H A D | syscall.c | 37 irq_t irq; local 39 irq = getActiveIRQ(); 47 if (IRQT_TO_IRQ(irq) != IRQT_TO_IRQ(irqInvalid)) { 48 handleInterrupt(irq); 138 seL4_Word irq = getRegister(NODE_STATE(ksCurThread), msgInfoRegister); local 144 if (irq > 15) { 149 ipi_send_target(CORE_IRQ_TO_IRQT(0, irq), BIT(target)); 581 static inline void mcsIRQ(irq_t irq) argument 583 if (IRQT_TO_IRQ(irq) == KERNEL_TIMER_IRQ) { 584 /* if this is a timer irq w 625 irq_t irq; local [all...] |
/seL4-refos-master/libs/librefos/include/refos-util/ |
H A D | device_irq.h | 61 typedef void (*dev_irq_callback_fn_t)(void *cookie, uint32_t irq); 79 seL4_CPtr (*getIRQHandlerEndpoint)(void *cookie, int irq); 101 @param irq The IRQ number to set callback for. 106 int dev_handle_irq(dev_irq_state_t *irqState, uint32_t irq,
|
/seL4-refos-master/projects/refos/impl/libs/librefos/include/refos-util/ |
H A D | device_irq.h | 61 typedef void (*dev_irq_callback_fn_t)(void *cookie, uint32_t irq); 79 seL4_CPtr (*getIRQHandlerEndpoint)(void *cookie, int irq); 101 @param irq The IRQ number to set callback for. 106 int dev_handle_irq(dev_irq_state_t *irqState, uint32_t irq,
|