From ccc87c8b9ed61d2bcf01c5721a0336a611be970e Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 11 Jul 2017 11:20:06 +0200 Subject: Add interrupt server move Update #3071. --- cpukit/include/rtems/irq-extension.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'cpukit/include/rtems/irq-extension.h') diff --git a/cpukit/include/rtems/irq-extension.h b/cpukit/include/rtems/irq-extension.h index 9cade113ad..e3fb4c5fea 100644 --- a/cpukit/include/rtems/irq-extension.h +++ b/cpukit/include/rtems/irq-extension.h @@ -361,6 +361,32 @@ rtems_status_code rtems_interrupt_server_handler_iterate( void *arg ); +/** + * @brief Moves the interrupt handlers installed on the specified source + * interrupt server to the destination interrupt server. + * + * This function must be called from thread context. It may block. Calling + * this function within the context of an interrupt server is undefined + * behaviour. + * + * @param[in] source_server_index The source interrupt server index. Use + * @c RTEMS_INTERRUPT_SERVER_DEFAULT to specify the default server. + * @param[in] vector The interrupt vector number. + * @param[in] destination_server_index The destination interrupt server index. + * Use @c RTEMS_INTERRUPT_SERVER_DEFAULT to specify the default server. + * + * @retval RTEMS_SUCCESSFUL Successful operation + * @retval RTEMS_INCORRECT_STATE The interrupt servers are not initialized. + * @retval RTEMS_INVALID_ID The destination interrupt server index is invalid. + * @retval RTEMS_INVALID_ID The vector number is invalid. + * @retval RTEMS_INVALID_ID The destination interrupt server index is invalid. + */ +rtems_status_code rtems_interrupt_server_move( + uint32_t source_server_index, + rtems_vector_number vector, + uint32_t destination_server_index +); + /** * @brief Suspends the specified interrupt server. * -- cgit v1.2.3