rtems_interrupt_catch()

Chris Johns chrisj at rtems.org
Wed Jun 24 23:36:12 UTC 2020


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


More information about the devel mailing list