File indexing completed on 2025-05-11 08:24:35
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
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043 #ifdef HAVE_CONFIG_H
0044 #include "config.h"
0045 #endif
0046
0047 #include "system.h"
0048
0049 rtems_task Test_task(
0050 rtems_task_argument argument
0051 )
0052 {
0053 rtems_status_code status;
0054 rtems_id tid;
0055 rtems_time_of_day time;
0056
0057 status = rtems_task_ident( RTEMS_WHO_AM_I, RTEMS_SEARCH_ALL_NODES, &tid );
0058 directive_failed( status, "rtems_task_ident" );
0059
0060 status = rtems_clock_get_tod( &time );
0061 directive_failed( status, "rtems_clock_get_tod" );
0062
0063 put_name( Task_name[ task_number( tid ) ], FALSE );
0064 print_time( " - rtems_clock_get_tod - ", &time, "\n" );
0065
0066 status = rtems_task_wake_after( task_number( tid ) * 1 * rtems_clock_get_ticks_per_second() );
0067 directive_failed( status, "rtems_task_wake_after" );
0068
0069 status = rtems_clock_get_tod( &time );
0070 directive_failed( status, "rtems_clock_get_tod" );
0071 put_name( Task_name[ task_number( tid ) ], FALSE );
0072 print_time( " - rtems_clock_get_tod - ", &time, "\n" );
0073
0074 if ( task_number(tid) == 1 ) {
0075 put_name( Task_name[ 1 ], FALSE );
0076 printf( " - deleting self\n" );
0077 rtems_task_exit();
0078 }
0079 else if ( task_number(tid) == 2 ) {
0080 put_name( Task_name[ 2 ], FALSE );
0081 printf( " - waiting to be deleted by " );
0082 put_name( Task_name[ 3 ], TRUE );
0083 while ( FOREVER );
0084 }
0085 else {
0086 put_name( Task_name[ 3 ], FALSE );
0087 printf( " - getting TID of " );
0088 put_name( Task_name[ 2 ], TRUE );
0089 do {
0090 status = rtems_task_ident( Task_name[ 2 ], RTEMS_SEARCH_ALL_NODES, &tid );
0091 } while ( status != RTEMS_SUCCESSFUL );
0092 directive_failed( status, "rtems_task_ident" );
0093
0094 put_name( Task_name[ 3 ], FALSE );
0095 printf( " - deleting " );
0096 put_name( Task_name[ 2 ], TRUE );
0097 status = rtems_task_delete( tid );
0098 directive_failed( status, "rtems_task_delete of Task 2" );
0099
0100 puts( "*** END OF TEST 1 ***" );
0101 rtems_test_exit(0);
0102 }
0103 }