SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause brief: | This structure provides the attributes of an interrupt vector. copyrights: - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) definition: - default: brief: | This member is true, if the interrupt vector is maskable by ${local-disable:/name}, otherwise it is false. definition: bool ${.:name} description: | Interrupt vectors which are not maskable by ${local-disable:/name} should be used with care since they cannot use most operating system services. kind: member name: is_maskable variants: [] - default: brief: | This member is true, if the interrupt vector can be enabled by ${vector-enable:/name}, otherwise it is false. definition: bool ${.:name} description: | 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. kind: member name: can_enable variants: [] - default: brief: | This member is true, if the interrupt vector may be enabled by ${vector-enable:/name}, otherwise it is false. definition: bool ${.:name} description: | 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 ${vector-is-enabled:/name}. Some interrupt vectors may be optionally available and cannot be enabled on a particular ${/glossary/target:/term}. kind: member name: maybe_enable variants: [] - default: brief: | This member is true, if the interrupt vector can be disabled by ${vector-disable:/name}, otherwise it is false. definition: bool ${.:name} description: | 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. kind: member name: can_disable variants: [] - default: brief: | This member is true, if the interrupt vector may be disabled by ${vector-disable:/name}, otherwise it is false. definition: bool ${.:name} description: | 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 ${vector-is-enabled:/name}. Some interrupt vectors may be always enabled and cannot be disabled on a particular ${/glossary/target:/term}. kind: member name: maybe_disable variants: [] - default: brief: | This member is true, if the interrupt vector can be raised by ${raise:/name}, otherwise it is false. definition: bool ${.:name} description: null kind: member name: can_raise variants: [] - default: brief: | This member is true, if the interrupt vector can be raised on a processor by ${raise-on:/name}, otherwise it is false. definition: bool ${.:name} description: null kind: member name: can_raise_on variants: [] - default: brief: | This member is true, if the interrupt vector can be cleared by ${clear:/name}, otherwise it is false. definition: bool ${.:name} description: null kind: member name: can_clear variants: [] - default: brief: | 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. definition: bool ${.:name} description: null kind: member name: cleared_by_acknowledge variants: [] - default: brief: | This member is true, if the affinity set of the interrupt vector can be obtained by ${get-affinity:/name}, otherwise it is false. definition: bool ${.:name} description: null kind: member name: can_get_affinity variants: [] - default: brief: | This member is true, if the affinity set of the interrupt vector can be set by ${set-affinity:/name}, otherwise it is false. definition: bool ${.:name} description: null kind: member name: can_set_affinity variants: [] - default: brief: | This member is true, if the interrupt associated with the interrupt vector can be triggered by a message. definition: bool ${.:name} description: | Interrupts may be also triggered by signals, ${raise:/name}, or ${raise-on:/name}. Examples for message triggered interrupts are the PCIe MSI/MSI-X and the ARM GICv3 Locality-specific Peripheral Interrupts (LPI). kind: member name: can_be_triggered_by_message variants: [] - default: brief: | This member describes the trigger signal of the interrupt associated with the interrupt vector. definition: ${signal-variant:/name} ${.:name} description: | Interrupts are normally triggered by signals which indicate an interrupt request from a peripheral. Interrupts may be also triggered by messages, ${raise:/name}, or ${raise-on:/name}. kind: member name: trigger_signal variants: [] definition-kind: typedef-only description: | The ${get-attributes:/name} directive may be used to obtain the attributes of an interrupt vector. enabled-by: true index-entries: [] interface-type: struct links: - role: interface-placement uid: header - role: interface-ingroup uid: group name: rtems_interrupt_attributes notes: null type: interface