RTEMS 6.1-rc6
Loading...
Searching...
No Matches
Data Fields
rtems_interrupt_attributes Struct Reference

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.
 

Detailed Description

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.

Field Documentation

◆ can_be_triggered_by_message

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).

◆ can_disable

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.

◆ can_enable

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.

◆ is_maskable

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.

◆ maybe_disable

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.

◆ maybe_enable

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.

◆ trigger_signal

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


The documentation for this struct was generated from the following file: