From 2183b65b81a955c059c4a8694a99d9e19974083d Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 12 Nov 1999 21:13:52 +0000 Subject: + Modified correct return path to call _ITRON_return_errorno( E_OK ) instead of enabling dispatching and returning E_OK. + Changed validation of the_thread to validation of location. + Set correct error code when dormant state. + Fixed comment. --- c/src/exec/itron/src/chg_pri.c | 25 ++++++++++--------------- cpukit/itron/src/chg_pri.c | 25 ++++++++++--------------- 2 files changed, 20 insertions(+), 30 deletions(-) diff --git a/c/src/exec/itron/src/chg_pri.c b/c/src/exec/itron/src/chg_pri.c index 412bab054e..abbc9f274a 100644 --- a/c/src/exec/itron/src/chg_pri.c +++ b/c/src/exec/itron/src/chg_pri.c @@ -30,39 +30,34 @@ ER chg_pri( Priority_Control new_priority; the_thread = _ITRON_Task_Get( tskid, &location ); - if (!the_thread) - _ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) ); - - if (_States_Is_dormant( the_thread->current_state )) - return -1; - - if (( tskpri <= 0 ) || ( tskpri >= 256 )) - _ITRON_return_errorno( E_PAR ); - switch ( location ) { case OBJECTS_REMOTE: case OBJECTS_ERROR: _ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid )); case OBJECTS_LOCAL: + if (_States_Is_dormant( the_thread->current_state )) + _ITRON_return_errorno( E_OBJ ); + + if (( tskpri <= 0 ) || ( tskpri >= 256 )) + _ITRON_return_errorno( E_PAR ); + new_priority = _ITRON_Task_Priority_to_Core( tskpri ); the_thread->real_priority = new_priority; /* - * XXX This is from the rtems side and I'm not sure what this is for. - * XXX Is this check right or should change priority be called - * regardless? + * The priority should not be changed until later if priority + * inheratance has occured. */ if ( the_thread->resource_count == 0 || the_thread->current_priority > new_priority ) _Thread_Change_priority( the_thread, new_priority, FALSE ); - _Thread_Enable_dispatch(); - return E_OK; + _ITRON_return_errorno( E_OK ); } - return E_OBJ; /* XXX - Should never get here */ + _ITRON_return_errorno( E_OBJ ); /* XXX - Should never get here */ } diff --git a/cpukit/itron/src/chg_pri.c b/cpukit/itron/src/chg_pri.c index 412bab054e..abbc9f274a 100644 --- a/cpukit/itron/src/chg_pri.c +++ b/cpukit/itron/src/chg_pri.c @@ -30,39 +30,34 @@ ER chg_pri( Priority_Control new_priority; the_thread = _ITRON_Task_Get( tskid, &location ); - if (!the_thread) - _ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) ); - - if (_States_Is_dormant( the_thread->current_state )) - return -1; - - if (( tskpri <= 0 ) || ( tskpri >= 256 )) - _ITRON_return_errorno( E_PAR ); - switch ( location ) { case OBJECTS_REMOTE: case OBJECTS_ERROR: _ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid )); case OBJECTS_LOCAL: + if (_States_Is_dormant( the_thread->current_state )) + _ITRON_return_errorno( E_OBJ ); + + if (( tskpri <= 0 ) || ( tskpri >= 256 )) + _ITRON_return_errorno( E_PAR ); + new_priority = _ITRON_Task_Priority_to_Core( tskpri ); the_thread->real_priority = new_priority; /* - * XXX This is from the rtems side and I'm not sure what this is for. - * XXX Is this check right or should change priority be called - * regardless? + * The priority should not be changed until later if priority + * inheratance has occured. */ if ( the_thread->resource_count == 0 || the_thread->current_priority > new_priority ) _Thread_Change_priority( the_thread, new_priority, FALSE ); - _Thread_Enable_dispatch(); - return E_OK; + _ITRON_return_errorno( E_OK ); } - return E_OBJ; /* XXX - Should never get here */ + _ITRON_return_errorno( E_OBJ ); /* XXX - Should never get here */ } -- cgit v1.2.3