diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-11-12 21:13:52 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-11-12 21:13:52 +0000 |
commit | 2183b65b81a955c059c4a8694a99d9e19974083d (patch) | |
tree | be1c53b4e77e4b92b59111ace07112d77edf8612 /cpukit/itron/src/chg_pri.c | |
parent | + Modified correct return path to call _ITRON_return_errorno( E_OK ) instead (diff) | |
download | rtems-2183b65b81a955c059c4a8694a99d9e19974083d.tar.bz2 |
+ 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.
Diffstat (limited to 'cpukit/itron/src/chg_pri.c')
-rw-r--r-- | cpukit/itron/src/chg_pri.c | 25 |
1 files changed, 10 insertions, 15 deletions
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 */ } |