RTEMS 6.1-rc4
|
This structure provides the attributes of an interrupt vector. More...
#include <intr.h>
Data Fields | |
bool | is_maskable |
This member is true, if the interrupt vector is maskable by rtems_interrupt_local_disable(), otherwise it is false. | |
bool | can_enable |
This member is true, if the interrupt vector can be enabled by rtems_interrupt_vector_enable(), otherwise it is false. | |
bool | maybe_enable |
This member is true, if the interrupt vector may be enabled by rtems_interrupt_vector_enable(), otherwise it is false. | |
bool | can_disable |
This member is true, if the interrupt vector can be disabled by rtems_interrupt_vector_disable(), otherwise it is false. | |
bool | maybe_disable |
This member is true, if the interrupt vector may be disabled by rtems_interrupt_vector_disable(), otherwise it is false. | |
bool | can_raise |
This member is true, if the interrupt vector can be raised by rtems_interrupt_raise(), otherwise it is false. | |
bool | can_raise_on |
This member is true, if the interrupt vector can be raised on a processor by rtems_interrupt_raise_on(), otherwise it is false. | |
bool | can_clear |
This member is true, if the interrupt vector can be cleared by rtems_interrupt_clear(), otherwise it is false. | |
bool | cleared_by_acknowledge |
This member is true, if the pending status of the interrupt associated with the interrupt vector is cleared by an interrupt acknowledge from the processor, otherwise it is false. | |
bool | can_get_affinity |
This member is true, if the affinity set of the interrupt vector can be obtained by rtems_interrupt_get_affinity(), otherwise it is false. | |
bool | can_set_affinity |
This member is true, if the affinity set of the interrupt vector can be set by rtems_interrupt_set_affinity(), otherwise it is false. | |
bool | can_be_triggered_by_message |
This member is true, if the interrupt associated with the interrupt vector can be triggered by a message. | |
rtems_interrupt_signal_variant | trigger_signal |
This member describes the trigger signal of the interrupt associated with the interrupt vector. | |
bool | can_get_priority |
This member is true, if the priority of the interrupt vector can be obtained by rtems_interrupt_get_priority(), otherwise it is false. | |
bool | can_set_priority |
This member is true, if the priority of the interrupt vector can be set by rtems_interrupt_set_priority(), otherwise it is false. | |
uint32_t | maximum_priority |
This member represents the maximum priority value of the interrupt vector. By convention, the minimum priority value is zero. Lower priority values shall be associated with a higher importance. The higher the priority value, the less important is the service of the associated interrupt vector. Where nested interrupts are supported, interrupts with a lower priority value may preempt other interrupts having a higher priority value. | |
This structure provides the attributes of an interrupt vector.
The rtems_interrupt_get_attributes() directive may be used to obtain the attributes of an interrupt vector.
bool rtems_interrupt_attributes::can_be_triggered_by_message |
This member is true, if the interrupt associated with the interrupt vector can be triggered by a message.
Interrupts may be also triggered by signals, rtems_interrupt_raise(), or rtems_interrupt_raise_on(). Examples for message triggered interrupts are the PCIe MSI/MSI-X and the ARM GICv3 Locality-specific Peripheral Interrupts (LPI).
bool rtems_interrupt_attributes::can_disable |
This member is true, if the interrupt vector can be disabled by rtems_interrupt_vector_disable(), otherwise it is false.
When an interrupt vector can be disabled, this means that the enabled state can be changed from enabled to disabled. For an interrupt vector which can be disabled it follows that it may be disabled.
bool rtems_interrupt_attributes::can_enable |
This member is true, if the interrupt vector can be enabled by rtems_interrupt_vector_enable(), otherwise it is false.
When an interrupt vector can be enabled, this means that the enabled state can always be changed from disabled to enabled. For an interrupt vector which can be enabled it follows that it may be enabled.
bool rtems_interrupt_attributes::is_maskable |
This member is true, if the interrupt vector is maskable by rtems_interrupt_local_disable(), otherwise it is false.
Interrupt vectors which are not maskable by rtems_interrupt_local_disable() should be used with care since they cannot use most operating system services.
bool rtems_interrupt_attributes::maybe_disable |
This member is true, if the interrupt vector may be disabled by rtems_interrupt_vector_disable(), otherwise it is false.
When an interrupt vector may be disabled, this means that the enabled state may be changed from enabled to disabled. The requested enabled state change should be checked by rtems_interrupt_vector_is_enabled(). Some interrupt vectors may be always enabled and cannot be disabled on a particular target.
bool rtems_interrupt_attributes::maybe_enable |
This member is true, if the interrupt vector may be enabled by rtems_interrupt_vector_enable(), otherwise it is false.
When an interrupt vector may be enabled, this means that the enabled state may be changed from disabled to enabled. The requested enabled state change should be checked by rtems_interrupt_vector_is_enabled(). Some interrupt vectors may be optionally available and cannot be enabled on a particular target.
rtems_interrupt_signal_variant rtems_interrupt_attributes::trigger_signal |
This member describes the trigger signal of the interrupt associated with the interrupt vector.
Interrupts are normally triggered by signals which indicate an interrupt request from a peripheral. Interrupts may be also triggered by messages, rtems_interrupt_raise(), or rtems_interrupt_raise_on().