| 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(); |