On 24/6/20 2:40 am, Sebastian Huber wrote:
Hello,

I noticed that the rtems_interrupt_catch() directive is only declared and implemented if CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE:

#if (CPU_SIMPLE_VECTORED_INTERRUPTS == FALSE)

typedef ISR_Handler_entry rtems_isr_entry;

#else
/**
  *  @brief Interrupt handler type.
  *
  *  @see rtems_interrupt_catch()
  */
typedef rtems_isr ( *rtems_isr_entry )(
                  rtems_vector_number
              );

/**
  * @brief RTEMS Interrupt Catch
  *
 * This directive installs @a new_isr_handler as the RTEMS interrupt service  * routine for the interrupt vector with number @a vector. The previous RTEMS
  * interrupt service routine is returned in @a old_isr_handler.
  *
  * @param[in] new_isr_handler is the address of interrupt service routine
  * @param[in] vector is the interrupt vector number
 * @param[in] old_isr_handler address at which to store previous ISR address
  *
  * @retval RTEMS_SUCCESSFUL and *old_isr_handler filled with previous ISR
  *         address
  */
rtems_status_code rtems_interrupt_catch(
   rtems_isr_entry      new_isr_handler,
   rtems_vector_number  vector,
   rtems_isr_entry     *old_isr_handler
);
#endif

This is not mentioned in the documentation:

https://docs.rtems.org/branches/master/c-user/interrupt_manager.html#interrupt-catch-establish-an-isr

Should we provide this function also if CPU_SIMPLE_VECTORED_INTERRUPTS == FALSE and for example just return RTEMS_NOT_IMPLEMENTED?

Which archs define CPU_SIMPLE_VECTORED_INTERRUPTS as false?

Chris
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to