/Zephyr-Core-3.5.0/arch/common/ |
D | shared_irq.c | 28 if (client->isr) { in z_shared_isr() 29 client->isr(client->arg); in z_shared_isr() 64 if (entry->isr == z_irq_spurious) { in z_isr_install() 65 /* this is the first time a ISR/arg pair is registered in z_isr_install() 68 entry->isr = routine; in z_isr_install() 74 } else if (entry->isr != z_shared_isr) { in z_isr_install() 75 /* INTID is being used by another ISR/arg pair. in z_isr_install() 76 * Push back the ISR/arg pair registered in _sw_isr_table in z_isr_install() 80 shared_entry->clients[shared_entry->client_num].isr = entry->isr; in z_isr_install() 85 entry->isr = z_shared_isr; in z_isr_install() [all …]
|
/Zephyr-Core-3.5.0/subsys/modem/backends/ |
D | modem_backend_uart_isr.c | 30 receive_rb = &backend->isr.receive_rdb[backend->isr.receive_rdb_used]; in modem_backend_uart_isr_irq_handler_receive_ready() 57 if (ring_buf_is_empty(&backend->isr.transmit_rb) == true) { in modem_backend_uart_isr_irq_handler_transmit_ready() 62 size = ring_buf_get_claim(&backend->isr.transmit_rb, &buffer, UINT32_MAX); in modem_backend_uart_isr_irq_handler_transmit_ready() 65 ring_buf_get_finish(&backend->isr.transmit_rb, 0); in modem_backend_uart_isr_irq_handler_transmit_ready() 67 ring_buf_get_finish(&backend->isr.transmit_rb, (uint32_t)ret); in modem_backend_uart_isr_irq_handler_transmit_ready() 70 atomic_sub(&backend->isr.transmit_buf_len, (uint32_t)ret); in modem_backend_uart_isr_irq_handler_transmit_ready() 95 ring_buf_reset(&backend->isr.receive_rdb[0]); in modem_backend_uart_isr_open() 96 ring_buf_reset(&backend->isr.receive_rdb[1]); in modem_backend_uart_isr_open() 97 ring_buf_reset(&backend->isr.transmit_rb); in modem_backend_uart_isr_open() 98 atomic_set(&backend->isr.transmit_buf_len, 0); in modem_backend_uart_isr_open() [all …]
|
/Zephyr-Core-3.5.0/tests/kernel/interrupt/src/ |
D | dynamic_isr.c | 26 * @brief Test dynamic ISR installation 30 * @details This routine locates an unused entry in the software ISR table, 31 * installs a dynamic ISR to the unused entry by calling the dynamic 32 * configured function, and verifies that the ISR is successfully installed 33 * by checking the software ISR table entry. 43 if (_sw_isr_table[i].isr == z_irq_spurious) { in ZTEST() 48 zassert_true(_sw_isr_table[i].isr == z_irq_spurious, in ZTEST() 49 "could not find slot for dynamic isr"); in ZTEST() 51 printk("installing dynamic ISR for IRQ %d\n", in ZTEST() 58 zassert_true(_sw_isr_table[i].isr == dyn_isr && in ZTEST() [all …]
|
D | dynamic_shared_irq.c | 32 /* note: no need to check the state of the SW ISR tables after in dynamic_shared_irq_suite_after() 58 if (_sw_isr_table[table_idx].isr == &z_irq_spurious) { in get_irq_slot() 107 zassert_true(_sw_isr_table[fixture.irq1_table_idx].isr == test_isr_0, in dynamic_shared_irq_suite_before() 108 "wrong _sw_isr_table ISR at irq1"); in dynamic_shared_irq_suite_before() 117 zassert_true(_sw_isr_table[fixture.irq1_table_idx].isr == z_shared_isr, in dynamic_shared_irq_suite_before() 118 "wrong _sw_isr_table ISR at irq1"); in dynamic_shared_irq_suite_before() 133 zassert_true(_sw_isr_table[fixture.irq2_table_idx].isr == test_isr_2, in dynamic_shared_irq_suite_before() 134 "wrong _sw_isr_table ISR at irq2"); in dynamic_shared_irq_suite_before() 149 * (i.e: multiple ISR/arg pairs are called whenever the interrupt 176 * @brief Test writing to a vector after an ISR/arg disconnect. [all …]
|
D | nested_irq.c | 29 * In terms of priority, the IRQ1 is triggered from the ISR of the IRQ0; 105 /* Validate nested ISR result token */ in isr0() 116 * This routine tests the interrupt nesting feature, which allows an ISR to be 118 * lower priority ISR resumes execution once the higher priority ISR has 124 * 2. [isr0] Set ISR 0 result token and trigger IRQ 1 (higher priority) 125 * 3. [isr1] Set ISR 1 result token and return 126 * 4. [isr0] Validate ISR 1 result token and return 127 * 5. [thread] Validate ISR 0 result token 153 /* Validate ISR result token */ in ZTEST()
|
D | regular_isr.c | 46 * - Trigger interrupt and check if isr handler has executed or not. 80 "Both ISR should execute"); in ZTEST() 90 "Both ISR should not execute again(%d)(%d)", in ZTEST() 99 * at the state that the ISR is suppose to update. This has been shown in ZTEST() 102 * Adding a nop instruction allows QEMU to post the ISR before any state in ZTEST() 113 "Both ISR should execute again(%d)(%d)", in ZTEST() 122 "Both ISR should execute again(%d)(%d)", in ZTEST()
|
/Zephyr-Core-3.5.0/doc/kernel/services/ |
D | interrupts.rst | 6 An :dfn:`interrupt service routine` (ISR) is a function that executes 8 An ISR normally preempts the execution of the current thread, 10 Thread execution resumes only once all ISR work has been completed. 22 An ISR has the following key properties: 24 * An **interrupt request (IRQ) signal** that triggers the ISR. 30 to associate a given interrupt source with a given ISR. 31 Only a single ISR can be associated with a specific IRQ at any given time. 36 (usually of the same type). The argument value passed to an ISR's function 39 The kernel provides a default ISR for all unused IDT entries. This ISR 42 The kernel supports **interrupt nesting**. This allows an ISR to be preempted [all …]
|
/Zephyr-Core-3.5.0/soc/xtensa/sample_controller/include/ |
D | _soc_inthandlers.h | 95 e->isr(e->arg); in _xtensa_handle_one_int1() 101 e->isr(e->arg); in _xtensa_handle_one_int1() 107 e->isr(e->arg); in _xtensa_handle_one_int1() 115 e->isr(e->arg); in _xtensa_handle_one_int1() 121 e->isr(e->arg); in _xtensa_handle_one_int1() 128 e->isr(e->arg); in _xtensa_handle_one_int1() 134 e->isr(e->arg); in _xtensa_handle_one_int1() 144 e->isr(e->arg); in _xtensa_handle_one_int1() 150 e->isr(e->arg); in _xtensa_handle_one_int1() 156 e->isr(e->arg); in _xtensa_handle_one_int1() [all …]
|
/Zephyr-Core-3.5.0/include/zephyr/ |
D | sw_isr_table.h | 9 * @brief Software-managed ISR table 11 * Data types for a software-managed ISR table, with a parameter per-ISR. 32 * Note the order: arg first, then ISR. This allows a table entry to be 33 * loaded arg -> r0, isr -> r3 in _isr_wrapper with one ldmia instruction, 38 void (*isr)(const void *); member 41 /* The software ISR table itself, an array of these structures indexed by the 58 /** ISR to call */ 66 void (*isr)(const void *arg); member 98 * and/or SW ISR tables.
|
D | shared_irq.h | 35 * @brief Register a device ISR 37 * @param isr_func Pointer to the ISR function for the device. 51 * @brief Enable ISR for device 65 * @brief Disable ISR for device
|
/Zephyr-Core-3.5.0/subsys/bluetooth/controller/ll_sw/openisa/hal/RV32M1/ |
D | ll_irqs.h | 14 * We'll use the INTMUX ISR for channel 2 instead of LPTMR1 ISR 21 * We'll use the INTMUX ISR for channel 3 instead of radio ISR
|
/Zephyr-Core-3.5.0/tests/kernel/gen_isr_table/src/ |
D | main.c | 47 * with isr used here, so add a workaround 66 * by default, and conflicts with ISR used for testing. Move IRQs for this 182 static int check_vector(void *isr, int offset) in check_vector() argument 194 if (_irq_vector_table[TABLE_INDEX(offset)] != (uint32_t)isr) { in check_vector() 209 static int check_sw_isr(void *isr, uintptr_t arg, int offset) in check_sw_isr() argument 217 TC_PRINT("bad argument in SW isr table\n"); in check_sw_isr() 221 if (e->isr != isr) { in check_sw_isr() 222 TC_PRINT("Bad ISR in SW isr table\n"); in check_sw_isr() 223 TC_PRINT("expected %p got %p\n", (void *)isr, e->isr); in check_sw_isr() 249 * isr and the corresponding parameters. [all …]
|
/Zephyr-Core-3.5.0/drivers/usb/udc/ |
D | Kconfig.nrf | 19 Size of the stack used in the driver for nRF USBD ISR event handling. 22 int "nRF UDC driver maximum number of ISR event messages" 26 Maximum number of messages for handling of nRF USBD ISR events.
|
/Zephyr-Core-3.5.0/subsys/bluetooth/controller/ll_sw/openisa/lll/ |
D | lll_prof.c | 30 /* sample the packet timer, use it to calculate ISR latency in lll_prof_latency_capture() 31 * and generate the profiling event at the end of the ISR. in lll_prof_latency_capture() 41 /* PA enable is overwriting packet end used in ISR profiling, hence in lll_prof_radio_end_backup() 52 /* get the ISR latency sample */ in lll_prof_cputime_capture() 55 /* sample the packet timer again, use it to calculate ISR execution time in lll_prof_cputime_capture() 67 * to ISR entry in lll_prof_send() 92 /* calculate the elapsed time in us since ISR entry */ in lll_prof_send()
|
/Zephyr-Core-3.5.0/drivers/entropy/ |
D | Kconfig.smartbond | 36 int "ISR-mode random number pool size" 41 hardware to make them ready for ISR consumers. 45 int "ISR-mode random number pool low-water threshold" 49 ISR consumers. As soon as the number of available bytes in the
|
D | Kconfig.nrf5 | 53 int "ISR-mode random number pool size" 58 hardware to make them ready for ISR consumers. 62 int "ISR-mode random number pool low-water threshold" 66 ISR consumers. As soon as the number of available bytes in the
|
D | Kconfig.stm32 | 39 int "ISR-mode random number pool size" 44 hardware to make them ready for ISR consumers. 48 int "ISR-mode random number pool low-water threshold" 52 ISR consumers. As soon as the number of available bytes in the
|
/Zephyr-Core-3.5.0/tests/arch/arm/arm_runtime_nmi/src/ |
D | arm_runtime_nmi.c | 26 /* ISR triggered correctly: test passed! */ in nmi_test_isr() 42 * First we configure the NMI isr using z_arm_nmi_set_handler() api. 45 * The registered NMI isr should fire immediately. 53 /* Configure the NMI isr */ in ZTEST() 73 zassert_true(nmi_triggered, "Isr not triggered!\n"); in ZTEST()
|
/Zephyr-Core-3.5.0/tests/arch/arm/arm_irq_advanced_features/src/ |
D | arm_dynamic_direct_interrupts.c | 36 * in the ROM ISR table. in ZTEST() 43 /* Attach the ISR handler at run time. */ in ZTEST() 60 /* Confirm test flag is set by the dynamic direct ISR handler. */ in ZTEST() 67 /* Attach an alternative ISR handler at run-time. */ in ZTEST() 84 /* Confirm test flag is set by the dynamic direct ISR handler. */ in ZTEST()
|
/Zephyr-Core-3.5.0/tests/arch/x86/direct_isr/src/ |
D | direct_isr.c | 51 * - Trigger interrupt and check if isr handler has executed or not. 80 "Both ISR should not execute"); in ZTEST() 92 "Both ISR should execute"); in ZTEST() 102 "Both ISR should not execute again"); in ZTEST() 109 "Both ISR should execute again(%d)(%d)", in ZTEST() 118 "Both ISR should execute again(%d)(%d)", in ZTEST()
|
/Zephyr-Core-3.5.0/arch/arm/core/cortex_m/ |
D | isr_wrapper.S | 36 * @brief Wrapper around ISRs when inserted in software ISR table 38 * When inserted in the vector table, _isr_wrapper() demuxes the ISR table 40 * ISR with its corresponding argument. When returning from the ISR, it 68 * entering an ISR. 116 ldm r1!,{r0,r3} /* arg in r0, ISR in r3 */ 117 blx r3 /* call ISR */
|
/Zephyr-Core-3.5.0/drivers/interrupt_controller/ |
D | intc_vexriscv_litex.c | 72 ite->isr(ite->arg); in vexriscv_litex_irq_handler() 79 ite->isr(ite->arg); in vexriscv_litex_irq_handler() 86 ite->isr(ite->arg); in vexriscv_litex_irq_handler() 93 ite->isr(ite->arg); in vexriscv_litex_irq_handler() 97 ite->isr(ite->arg); in vexriscv_litex_irq_handler() 103 ite->isr(ite->arg); in vexriscv_litex_irq_handler()
|
/Zephyr-Core-3.5.0/soc/arm/cypress/common/ |
D | cypress_psoc6_dt.h | 45 * isr - isr function to be called 65 #define CY_PSOC6_DT_INST_NVIC_INSTALL(n, isr) \ argument 67 (CY_PSOC6_IRQ_CONFIG(n, isr))) 91 #define CY_PSOC6_DT_INST_NVIC_INSTALL(n, isr) CY_PSOC6_IRQ_CONFIG(n, isr) argument 97 #define CY_PSOC6_IRQ_CONFIG(n, isr) \ argument 101 isr, DEVICE_DT_INST_GET(n), 0);\
|
/Zephyr-Core-3.5.0/include/zephyr/arch/arm/ |
D | irq.h | 118 * the vector table and the software ISR table. This is all done at 197 * @brief Macro to register an ISR Dispatcher (with or without re-scheduling 200 * This macro registers the ISR dispatcher function for dynamic direct 205 * (ISR) that is registered dynamically (i.e. at run-time) into the software 206 * ISR table stored in SRAM. The ISR must be connected with 208 * interrupt can be serviced. This ISR dispatcher must be configured by the 216 * Zephyr interrupts; their signature must match void isr(void* parameter), as, 219 * ISR table. 224 * before the ISR is run, but with dynamic direct ones when and if it runs 235 * re-scheduling upon ISR function. Set flag
|
/Zephyr-Core-3.5.0/tests/kernel/threads/thread_apis/src/ |
D | test_threads_cancel_abort.c | 164 /* k_thread_abort() in an isr shouldn't affect the ISR's execution */ in offload_func() 184 * @details Spwan a thread, then enter ISR context in child thread and abort 185 * the child thread. Check if ISR completed and target thread was aborted. 197 zassert_true(isr_finished, "ISR did not complete"); in ZTEST() 200 * offload_sem which might be held when thread aborts itself in ISR in ZTEST() 225 * @details Spwan a thread, then enter ISR context in main thread and abort 226 * the child thread. Check if ISR completed and target thread was aborted. 247 zassert_true(isr_finished, "ISR did not complete"); in ZTEST()
|