File indexing completed on 2025-05-11 08:24:47
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifdef HAVE_CONFIG_H
0030 #include "config.h"
0031 #endif
0032
0033 #define CONFIGURE_INIT
0034 #include "system.h"
0035
0036 const char rtems_test_name[] = "SP INTERRUPT ERROR 1";
0037
0038 rtems_task Init(
0039 rtems_task_argument argument
0040 )
0041 {
0042 TEST_BEGIN();
0043 #if (CPU_SIMPLE_VECTORED_INTERRUPTS == FALSE)
0044 puts(
0045 "TA1 - rtems_interrupt_catch - "
0046 "bad handler RTEMS_INVALID_ADDRESS -- SKIPPED"
0047 );
0048 puts(
0049 "TA1 - rtems_interrupt_catch - "
0050 "old isr RTEMS_INVALID_ADDRESS - SKIPPED" );
0051 #else
0052 rtems_status_code status;
0053
0054 rtems_isr_entry old_service_routine;
0055 status = rtems_interrupt_catch(
0056 Service_routine,
0057 CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER + 1,
0058 &old_service_routine
0059 );
0060 fatal_directive_status(
0061 status,
0062 RTEMS_INVALID_NUMBER,
0063 "rtems_interrupt_catch with invalid vector"
0064 );
0065 puts( "TA1 - rtems_interrupt_catch - RTEMS_INVALID_NUMBER" );
0066
0067 status = rtems_interrupt_catch( NULL, 3, &old_service_routine );
0068 fatal_directive_status(
0069 status,
0070 RTEMS_INVALID_ADDRESS,
0071 "rtems_interrupt_catch with invalid handler"
0072 );
0073 puts( "TA1 - rtems_interrupt_catch - bad handler RTEMS_INVALID_ADDRESS" );
0074
0075 status = rtems_interrupt_catch( Service_routine, 3, NULL );
0076 fatal_directive_status(
0077 status,
0078 RTEMS_INVALID_ADDRESS,
0079 "rtems_interrupt_catch with invalid old isr pointer"
0080 );
0081 puts( "TA1 - rtems_interrupt_catch - old isr RTEMS_INVALID_ADDRESS" );
0082 #endif
0083
0084 TEST_END();
0085 }