61 | | /***************************************************************************************** |
62 | | * This function send an IPI (Inter Processor Interrupt) to a core identified by |
63 | | * its cluster identifier and local index. |
64 | | * This IPI force a context switch, and the handling of pending RPC(s). |
65 | | ***************************************************************************************** |
66 | | * @ cxy : destination cluster identifier. |
67 | | * @ lid : destination core local index. |
68 | | * @ return 0 if success (IPI registered) / returns EINVAL if illegal cxy or lid. |
| 62 | This function send an IPI (Inter Processor Interrupt) to a core identified by its cluster identifier and local index. |
| 63 | This IPI force a context switch, and the handling of pending RPC(s). |
| 64 | The <cxy> argument is the destination cluster identifier. The <lid> argument is the destination core local index. |
| 65 | It returns 0 if success / returns EINVAL if illegal arguments. |
| 66 | |
| 67 | === 6) '''void dev_icu_irq_handler'''() === |
| 68 | |
| 69 | This function is called by a core when it receives an IRQ from the ICU device. |
| 70 | It access the local ICU device descriptor to get the highest priority active IRQ of each type (HWI / WTI / PTI). |
| 71 | * If it is a WTI or an HWI, the function uses the calling core interrupt-vectors to call the relevant ISR, registered in the source device descriptor. |
| 72 | * If it is a PTI, the source device descriptor is the ICU device itself, and it call the core_clock() function to execute all operations related to the TICK event. |
70 | | error_t dev_icu_send_ipi( cxy_t cxy, |
71 | | lid_t lid ); |
72 | | |
73 | | /***************************************************************************************** |
74 | | * This function is called by a core when it receives an IRQ from the ICU device. |
75 | | * It access the local ICU device descriptor to get the highest priority IRQ |
76 | | * of each type (HWI / WTI / PTI). |
77 | | * - If it is a WTI or an HWI, the function uses the calling core interrupt-vectors |
78 | | * to call the relevant ISR, registered in the source device descriptor. |
79 | | * - If it is a PTI, the source device descriptor is the ICU device itself, and it |
80 | | * call the core_clock() function to execute all operations related to the TICK event. |
81 | | ****************************************************************************************/ |
82 | | void dev_icu_irq_handler(); |