![]() |
Altera HWLIB
16.0
The Altera HW Manager API Reference Manual
|
Software Generated Interrupts (SGI)
An SGI can specify multiple processors in its target list. The target list may be further refined by a target filter that designates:
SGIs from different processors use the same interrupt IDs. Therefore, any target processor can receive SGIs with the same interrupt ID from different processors. On the CPU interface of the target processor, the pending status of each of these interrupts is independent of the pending status of any other interrupt, but only one interrupt with this ID can be active. Reading the Interrupt Controller CPU Interrupt Acknowledge Register (ICCIAR) for an SGI returns both the interrupt ID and the CPU ID of the processor that generated the interrupt, uniquely identifying the interrupt. In a multiprocessor implementation, the interrupt priority of each SGI interrupt ID is defined independently for each CPU interface. This means that, for each CPU interface, all SGIs with a particular interrupt ID that are pending on that interface have the same priority and must be handled serially.
Functions | |
ALT_STATUS_CODE | alt_int_sgi_trigger (ALT_INT_INTERRUPT_t int_id, ALT_INT_SGI_TARGET_t target_filter, alt_int_cpu_target_t target_list, bool secure_only) |
ALT_STATUS_CODE alt_int_sgi_trigger | ( | ALT_INT_INTERRUPT_t | int_id, |
ALT_INT_SGI_TARGET_t | target_filter, | ||
alt_int_cpu_target_t | target_list, | ||
bool | secure_only | ||
) |
Triggers the generation of a Software Generated Interrupts (SGI).
int_id | The interrupt identifier to send. Only SGI are valid, 0 - 15. |
target_filter | The filtering parameter. |
target_list | The set of CPUs which will receive the interrupt. |
secure_only | If true, then send the SGI to the target processor(s) only if the SGI is configured as Secure on that interface. If false, then send the SGI to the target processor(s) only if the SGI is configured as Non-Secure on that interface. |
ALT_E_SUCCESS | The operation was successful. |
ALT_E_ERROR | The operation failed. |
ALT_E_BAD_ARG | The given interrupt identifier, target filter, and / or target list is invalid. |