summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/irq-extension.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/include/rtems/irq-extension.h')
-rw-r--r--cpukit/include/rtems/irq-extension.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/cpukit/include/rtems/irq-extension.h b/cpukit/include/rtems/irq-extension.h
index 5dd3792e22..28030c2181 100644
--- a/cpukit/include/rtems/irq-extension.h
+++ b/cpukit/include/rtems/irq-extension.h
@@ -284,6 +284,7 @@ typedef struct {
* accessed directly.
*
* @see rtems_interrupt_server_request_initialize(),
+ * rtems_interrupt_server_request_set_vector(),
* rtems_interrupt_server_request_submit(), and
* rtems_interrupt_server_request_destroy().
*/
@@ -587,6 +588,8 @@ void rtems_interrupt_server_entry_destroy(
* @retval RTEMS_SUCCESSFUL Successful operation.
* @retval RTEMS_INCORRECT_STATE The interrupt servers are not initialized.
* @retval RTEMS_INVALID_ID If the interrupt server index is invalid.
+ *
+ * @see rtems_interrupt_server_request_set_vector().
*/
rtems_status_code rtems_interrupt_server_request_initialize(
uint32_t server_index,
@@ -596,6 +599,30 @@ rtems_status_code rtems_interrupt_server_request_initialize(
);
/**
+ * @brief Sets the interrupt vector in the specified interrupt server request.
+ *
+ * By default, the interrupt vector of an interrupt server request is set to a
+ * special value which is outside the range of vectors supported by the
+ * interrupt controller hardware.
+ *
+ * Calls to rtems_interrupt_server_request_submit() will disable the interrupt
+ * vector of the request. After processing of the request by the interrupt
+ * server the interrupt vector will be enabled again.
+ *
+ * @param[in] request The initialized interrupt server request.
+ * @param[in] vector The interrupt vector number.
+ *
+ * @see rtems_interrupt_server_request_initialize().
+ */
+RTEMS_INLINE_ROUTINE void rtems_interrupt_server_request_set_vector(
+ rtems_interrupt_server_request *request,
+ rtems_vector_number vector
+)
+{
+ request->entry.vector = vector;
+}
+
+/**
* @brief Submits the specified interrupt server request so that its interrupt
* server action can be invoked by the specified interrupt server.
*