File indexing completed on 2025-05-11 08:24:44
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 2";
0037
0038 rtems_task Init(
0039 rtems_task_argument argument
0040 )
0041 {
0042 rtems_status_code status;
0043 rtems_id preempt_task_id;
0044
0045 TEST_BEGIN();
0046
0047 status = rtems_task_create(
0048 rtems_build_name( 'P', 'R', 'M', 'T' ),
0049 1,
0050 RTEMS_MINIMUM_STACK_SIZE,
0051 RTEMS_DEFAULT_MODES,
0052 RTEMS_DEFAULT_ATTRIBUTES,
0053 &preempt_task_id
0054 );
0055 directive_failed( status, "rtems_task_create of RTEMS_PREEMPT" );
0056
0057 status = rtems_task_start( preempt_task_id, Preempt_task, 0 );
0058 directive_failed( status, "rtems_task_start of RTEMS_PREEMPT" );
0059
0060 puts( "INIT - rtems_task_wake_after - yielding processor" );
0061 status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR );
0062 directive_failed( status, "rtems_task_wake_after" );
0063
0064 Task_name[ 1 ] = rtems_build_name( 'T', 'A', '1', ' ' );
0065 Task_name[ 2 ] = rtems_build_name( 'T', 'A', '2', ' ' );
0066 Task_name[ 3 ] = rtems_build_name( 'T', 'A', '3', ' ' );
0067
0068 status = rtems_task_create(
0069 Task_name[ 1 ],
0070 3,
0071 RTEMS_MINIMUM_STACK_SIZE,
0072 RTEMS_DEFAULT_MODES,
0073 RTEMS_DEFAULT_ATTRIBUTES,
0074 &Task_id[ 1 ]
0075 );
0076 directive_failed( status, "rtems_task_create of TA1" );
0077
0078 status = rtems_task_create(
0079 Task_name[ 2 ],
0080 3,
0081 RTEMS_MINIMUM_STACK_SIZE,
0082 RTEMS_DEFAULT_MODES,
0083 RTEMS_DEFAULT_ATTRIBUTES,
0084 &Task_id[ 2 ]
0085 );
0086 directive_failed( status, "rtems_task_create of TA2" );
0087
0088 status = rtems_task_create(
0089 Task_name[ 3 ],
0090 3,
0091 RTEMS_MINIMUM_STACK_SIZE,
0092 RTEMS_DEFAULT_MODES,
0093 RTEMS_DEFAULT_ATTRIBUTES,
0094 &Task_id[ 3 ]
0095 );
0096 directive_failed( status, "rtems_task_create of TA3" );
0097
0098 status = rtems_task_start( Task_id[ 1 ], Task_1, 0 );
0099 directive_failed( status, "rtems_task_start of TA1" );
0100
0101 status = rtems_task_start( Task_id[ 2 ], Task_2, 0 );
0102 directive_failed( status, "rtems_task_start of TA2" );
0103
0104 status = rtems_task_start( Task_id[ 3 ], Task_3, 0 );
0105 directive_failed( status, "rtems_task_start of TA3" );
0106
0107 puts( "INIT - suspending TA2 while middle task on a ready chain" );
0108 status = rtems_task_suspend( Task_id[ 2 ] );
0109 directive_failed( status, "rtems_task_suspend of TA2" );
0110
0111 status = rtems_task_delete( Task_id[ 1 ] );
0112 directive_failed( status, "rtems_task_delete of TA1" );
0113
0114 status = rtems_task_delete( Task_id[ 2 ] );
0115 directive_failed( status, "rtems_task_delete of TA2" );
0116
0117 status = rtems_task_delete( Task_id[ 3 ] );
0118 directive_failed( status, "rtems_task_delete of TA3" );
0119
0120 status = rtems_task_create(
0121 Task_name[ 1 ],
0122 1,
0123 RTEMS_MINIMUM_STACK_SIZE,
0124 RTEMS_DEFAULT_MODES,
0125 RTEMS_DEFAULT_ATTRIBUTES,
0126 &Task_id[ 1 ]
0127 );
0128 directive_failed( status, "rtems_task_create of TA1" );
0129
0130 status = rtems_task_start( Task_id[ 1 ], Task_1, 0 );
0131 directive_failed( status, "rtems_task_start of TA1" );
0132
0133 status = rtems_task_create(
0134 Task_name[ 2 ],
0135 3,
0136 RTEMS_MINIMUM_STACK_SIZE,
0137 RTEMS_DEFAULT_MODES,
0138 RTEMS_DEFAULT_ATTRIBUTES,
0139 &Task_id[ 2 ]
0140 );
0141 directive_failed( status, "rtems_task_create of TA2" );
0142
0143 status = rtems_task_start( Task_id[ 2 ], Task_2, 0 );
0144 directive_failed( status, "rtems_task_start of TA2" );
0145
0146 status = rtems_task_create(
0147 Task_name[ 3 ],
0148 3,
0149 RTEMS_MINIMUM_STACK_SIZE,
0150 RTEMS_DEFAULT_MODES,
0151 RTEMS_DEFAULT_ATTRIBUTES,
0152 &Task_id[ 3 ]
0153 );
0154 directive_failed( status, "rtems_task_create of TA3" );
0155
0156 status = rtems_task_start( Task_id[ 3 ], Task_3, 0 );
0157 directive_failed( status, "rtems_task_start of TA3" );
0158
0159 rtems_task_exit();
0160 }