From af207fa9f6ac891b9a61f36bd8382eb89358aeca Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 11 Jul 2017 11:54:30 +0200 Subject: Add interrupt vector set/get affinity Close #3071. --- cpukit/include/rtems/irq-extension.h | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 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 e3fb4c5fea..5dd3792e22 100644 --- a/cpukit/include/rtems/irq-extension.h +++ b/cpukit/include/rtems/irq-extension.h @@ -203,6 +203,43 @@ rtems_status_code rtems_interrupt_handler_iterate( void *arg ); +/** + * @brief Sets the processor affinity set of an interrupt vector. + * + * @param[in] vector The interrupt vector number. + * @param[in] affinity_size The storage size of the affinity set. + * @param[in] affinity_set The new processor affinity set for the interrupt + * vector. This pointer must not be @c NULL. + * + * @retval RTEMS_SUCCESSFUL Successful operation. + * @retval RTEMS_INVALID_ID The vector number is invalid. + * @retval RTEMS_INVALID_SIZE Invalid affinity set size. + * @retval RTEMS_INVALID_NUMBER Invalid processor affinity set. + */ +rtems_status_code rtems_interrupt_set_affinity( + rtems_vector_number vector, + size_t affinity_size, + const cpu_set_t *affinity +); + +/** + * @brief Gets the processor affinity set of an interrupt vector. + * + * @param[in] vector The interrupt vector number. + * @param[in] affinity_size The storage size of the affinity set. + * @param[out] affinity_set The current processor affinity set for the + * interrupt vector. This pointer must not be @c NULL. + * + * @retval RTEMS_SUCCESSFUL Successful operation. + * @retval RTEMS_INVALID_ID The vector number is invalid. + * @retval RTEMS_INVALID_SIZE Invalid affinity set size. + */ +rtems_status_code rtems_interrupt_get_affinity( + rtems_vector_number vector, + size_t affinity_size, + cpu_set_t *affinity +); + /** * @brief An interrupt server action. * -- cgit v1.2.3