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 #include "system.h"
0034
0035 rtems_task Task_2(
0036 rtems_task_argument argument
0037 )
0038 {
0039 rtems_status_code status;
0040 rtems_task_priority the_priority;
0041 rtems_task_priority previous_priority;
0042
0043 status = rtems_task_set_priority(
0044 RTEMS_SELF,
0045 RTEMS_CURRENT_PRIORITY,
0046 &the_priority
0047 );
0048 directive_failed( status, "rtems_task_set_priority" );
0049
0050 while( FOREVER ) {
0051 if ( --the_priority == 0 ) {
0052 puts( "TA2 - rtems_task_suspend - suspend TA1" );
0053 status = rtems_task_suspend( Task_id[ 1 ] );
0054 directive_failed( status, "rtems_task_suspend" );
0055
0056 puts( "TA2 - rtems_task_set_priority - set priority of TA1 ( blocked )" );
0057 status = rtems_task_set_priority( Task_id[ 1 ], 5, &previous_priority );
0058 directive_failed( status, "rtems_task_set_priority" );
0059
0060 status = rtems_task_delete( Task_id[ 1 ] );
0061 directive_failed( status, "rtems_task_delete of TA1" );
0062 assert_extension_counts( &Task_deleted[ 0 ], 0x0 );
0063
0064 status = rtems_task_delete( Task_id[ 3 ] );
0065 directive_failed( status, "rtems_task_delete of TA3" );
0066 assert_extension_counts( &Task_deleted[ 0 ], 0x0 );
0067
0068 rtems_task_exit();
0069 } else {
0070
0071 printf(
0072 "TA2 - rtems_task_set_priority - set TA1's priority: "
0073 "%02" PRIdrtems_task_priority "\n",
0074 the_priority
0075 );
0076 status = rtems_task_set_priority(
0077 Task_id[ 1 ],
0078 the_priority,
0079 &previous_priority
0080 );
0081 directive_failed( status, "rtems_task_set_priority" );
0082 }
0083 }
0084 }