From 7753aa9fd5e20b645565d8f0a8cb74038a85b3bf Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 5 Sep 2008 21:30:17 +0000 Subject: 2008-09-05 Joel Sherrill * mp14/delay.c, mp14/evtmtask.c: Pass task Id to TSR. * mp14/system.h: Semaphore_task_id and Semaphore_task_name arrays were one entry too short. --- testsuites/mptests/mp14/delay.c | 11 +++++------ testsuites/mptests/mp14/evtmtask.c | 9 ++++++--- testsuites/mptests/mp14/system.h | 6 +++--- 3 files changed, 14 insertions(+), 12 deletions(-) (limited to 'testsuites/mptests/mp14') diff --git a/testsuites/mptests/mp14/delay.c b/testsuites/mptests/mp14/delay.c index f2d1dcb730..a7375990d2 100644 --- a/testsuites/mptests/mp14/delay.c +++ b/testsuites/mptests/mp14/delay.c @@ -20,14 +20,13 @@ rtems_timer_service_routine Delayed_send_event( rtems_id timer_id, - void *ignored + void *id_ptr ) { rtems_status_code status; + rtems_id id = *(rtems_id *)id_ptr; - status = rtems_event_send( - Task_id[ rtems_object_id_get_index( timer_id ) ], - RTEMS_EVENT_16 - ); - fatal_directive_check_status_only( status, RTEMS_SUCCESSFUL, "rtems_event_send" ); + status = rtems_event_send( id, RTEMS_EVENT_16 ); + fatal_directive_check_status_only( + status, RTEMS_SUCCESSFUL, "rtems_event_send" ); } diff --git a/testsuites/mptests/mp14/evtmtask.c b/testsuites/mptests/mp14/evtmtask.c index 47e0ea6167..05570aabb1 100644 --- a/testsuites/mptests/mp14/evtmtask.c +++ b/testsuites/mptests/mp14/evtmtask.c @@ -24,10 +24,11 @@ rtems_task Delayed_events_task( rtems_task_argument argument ) { - uint32_t count; - uint32_t previous_mode; + uint32_t count; + uint32_t previous_mode; rtems_status_code status; rtems_event_set events; + rtems_id self; status = rtems_task_mode( RTEMS_PREEMPT | RTEMS_TIMESLICE, @@ -39,13 +40,15 @@ rtems_task Delayed_events_task( status = rtems_timer_create( Timer_name[ 1 ], &Timer_id[ 1 ] ); directive_failed( status, "rtems_timer_create" ); + self = rtems_task_self(); + while ( Stop_Test == false ) { for ( count=DELAYED_EVENT_DOT_COUNT; Stop_Test == false && count; count-- ){ status = rtems_timer_fire_after( Timer_id[ 1 ], 1, Delayed_send_event, - NULL + &self ); directive_failed( status, "rtems_timer_reset" ); diff --git a/testsuites/mptests/mp14/system.h b/testsuites/mptests/mp14/system.h index 8305b8edc1..e160d69d5e 100644 --- a/testsuites/mptests/mp14/system.h +++ b/testsuites/mptests/mp14/system.h @@ -19,7 +19,7 @@ rtems_timer_service_routine Delayed_send_event( rtems_id timer_id, - void *ignored_address + void *id_ptr ); rtems_task Init( @@ -78,8 +78,8 @@ void Exit_test( void ); TEST_EXTERN rtems_id Event_task_id[ 2 ]; /* event task ids */ -TEST_EXTERN rtems_id Semaphore_task_id[ 2 ]; /* semaphore task ids */ -TEST_EXTERN rtems_name Semaphore_task_name[ 2 ]; /* semaphore task names */ +TEST_EXTERN rtems_id Semaphore_task_id[ 3 ]; /* semaphore task ids */ +TEST_EXTERN rtems_name Semaphore_task_name[ 3 ]; /* semaphore task names */ TEST_EXTERN rtems_id Queue_task_id[ 3 ]; /* message queue task ids */ TEST_EXTERN rtems_name Queue_task_name[ 3 ]; /* message queue task names */ -- cgit v1.2.3