summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-11-12 21:13:52 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-11-12 21:13:52 +0000
commit2183b65b81a955c059c4a8694a99d9e19974083d (patch)
treebe1c53b4e77e4b92b59111ace07112d77edf8612
parentea6bfcbe1eaa2ddc38f6db16e63d10eb3e4e96ac (diff)
downloadrtems-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.
-rw-r--r--c/src/exec/itron/src/chg_pri.c25
-rw-r--r--cpukit/itron/src/chg_pri.c25
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 */
}