+ Fixed files to consistantly use a case of the location after calls

to ITRON_Task_Get.
+ Modified to consistantly call _ITRON_return_errorno with E_OK.
+ Optimized the code to not disable dispatch prior to checking input values.
This commit is contained in:
Jennifer Averett
1999-11-15 21:35:14 +00:00
parent 1ae60eb4e6
commit 2578970553
22 changed files with 182 additions and 150 deletions

View File

@@ -32,15 +32,15 @@ ER can_wup(
switch ( location ) {
case OBJECTS_REMOTE:
case OBJECTS_ERROR:
_ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) );
return _ITRON_Task_Clarify_get_id_error( tskid );
case OBJECTS_LOCAL:
/*
* XXX - FILL ME IN.
*/
_ITRON_return_errorno( E_OK );
break;
}
_ITRON_return_errorno( E_OBJ ); /* XXX - Should never get here */
_ITRON_return_errorno( E_OK );
}

View File

@@ -33,7 +33,7 @@ ER chg_pri(
switch ( location ) {
case OBJECTS_REMOTE:
case OBJECTS_ERROR:
_ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ));
return _ITRON_Task_Clarify_get_id_error( tskid );
case OBJECTS_LOCAL:
if (_States_Is_dormant( the_thread->current_state ))
@@ -54,10 +54,10 @@ ER chg_pri(
the_thread->current_priority > new_priority )
_Thread_Change_priority( the_thread, new_priority, FALSE );
_ITRON_return_errorno( E_OK );
break;
}
_ITRON_return_errorno( E_OBJ ); /* XXX - Should never get here */
_ITRON_return_errorno( E_OK );
}

View File

@@ -27,14 +27,13 @@ ER del_tsk(
{
register Thread_Control *the_thread;
Objects_Locations location;
ER result;
ER result = E_OK; /* to avoid warning */
the_thread = _ITRON_Task_Get( tskid, &location );
switch ( location ) {
case OBJECTS_REMOTE:
case OBJECTS_ERROR:
_ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) );
break;
return _ITRON_Task_Clarify_get_id_error( tskid );
case OBJECTS_LOCAL:
@@ -48,6 +47,6 @@ ER del_tsk(
break;
}
_ITRON_return_errorno( E_OK );
_ITRON_return_errorno( result );
}

View File

@@ -32,7 +32,7 @@ ER frsm_tsk(
switch ( location ) {
case OBJECTS_REMOTE:
case OBJECTS_ERROR:
_ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) );
return _ITRON_Task_Clarify_get_id_error( tskid );
case OBJECTS_LOCAL:
if ( _Thread_Is_executing( the_thread ) )
@@ -42,10 +42,10 @@ ER frsm_tsk(
_ITRON_return_errorno( E_OBJ );
_Thread_Resume( the_thread, TRUE );
_ITRON_return_errorno( E_OK );
break;
}
_ITRON_return_errorno( E_OBJ ); /* XXX - Should never get here */
_ITRON_return_errorno( E_OK );
}

View File

@@ -34,49 +34,61 @@ ER ref_tsk(
return E_PAR;
the_thread = _ITRON_Task_Get( tskid, &location );
if ( location != OBJECTS_LOCAL)
_ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) );
switch ( location ) {
case OBJECTS_REMOTE:
case OBJECTS_ERROR:
return _ITRON_Task_Clarify_get_id_error( tskid );
case OBJECTS_LOCAL:
/*
* The following are extended functions [level X ].
* XXX - tskwait, wid, wupcnt, and tskatr are presently not implemented.
*/
if ( location != OBJECTS_LOCAL )
return _ITRON_Task_Clarify_get_id_error( tskid );
pk_rtsk->tskwait = 0;
pk_rtsk->wid = 0;
pk_rtsk->wupcnt = 0;
pk_rtsk->suscnt = the_thread->suspend_count;
pk_rtsk->tskatr = 0;
pk_rtsk->task = the_thread->Start.entry_point;
core_priority = the_thread->Start.initial_priority;
pk_rtsk->itskpri = _ITRON_Task_Core_to_Priority( core_priority );
pk_rtsk->stksz = the_thread->Start.Initial_stack.size;
/*
* The following are extended functions [level X ].
* XXX - tskwait, wid, wupcnt, and tskatr are presently not implemented.
*/
/*
* The following are required.
*/
pk_rtsk->tskwait = 0;
pk_rtsk->wid = 0;
pk_rtsk->wupcnt = 0;
pk_rtsk->suscnt = the_thread->suspend_count;
pk_rtsk->tskatr = 0; /* XXX - Not correctly implemented */
pk_rtsk->task = (FP) the_thread->Start.entry_point;
core_priority = the_thread->Start.initial_priority;
pk_rtsk->itskpri = _ITRON_Task_Core_to_Priority( core_priority );
pk_rtsk->stksz = the_thread->Start.Initial_stack.size;
pk_rtsk->exinf = NULL; /* extended information */
pk_rtsk->tskpri = _ITRON_Task_Core_to_Priority(the_thread->current_priority);
pk_rtsk->tskstat = 0;
/*
* The following are required.
*/
/*
* Mask in the tskstat information
* Convert the task state XXX double check this
*/
pk_rtsk->exinf = NULL; /* extended information */
pk_rtsk->tskpri =
_ITRON_Task_Core_to_Priority(the_thread->current_priority);
if ( the_thread == _Thread_Executing )
pk_rtsk->tskstat |= TTS_RUN;
if ((the_thread->current_state & STATES_READY) != 0)
pk_rtsk->tskstat = TTS_RDY;
if (_States_Is_dormant( the_thread->current_state ))
pk_rtsk->tskstat = TTS_DMT;
if ((the_thread->current_state & STATES_SUSPENDED) != 0)
pk_rtsk->tskstat = TTS_SUS;
if ((the_thread->current_state & STATES_BLOCKED) != 0)
pk_rtsk->tskstat = TTS_WAI;
/*
* Mask in the tskstat information
* Convert the task state XXX double check this
*/
pk_rtsk->tskstat = 0;
if ( the_thread == _Thread_Executing )
pk_rtsk->tskstat |= TTS_RUN;
if ( _States_Is_ready(the_thread->current_state) )
pk_rtsk->tskstat |= TTS_RDY;
if ( _States_Is_dormant( the_thread->current_state) )
pk_rtsk->tskstat |= TTS_DMT;
if ( _States_Is_suspended(the_thread->current_state) )
pk_rtsk->tskstat |= TTS_SUS;
if ( _States_Is_blocked(the_thread->current_state) )
pk_rtsk->tskstat |= TTS_WAI;
break;
}
_ITRON_return_errorno( E_OK );
}

View File

@@ -31,16 +31,17 @@ ER rel_wai(
switch ( location ) {
case OBJECTS_REMOTE:
case OBJECTS_ERROR:
_ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) );
return _ITRON_Task_Clarify_get_id_error( tskid );
case OBJECTS_LOCAL:
/*
* XXX - FILL ME IN.
*/
return E_OK;
break;
}
return E_OBJ; /* XXX - Should never get here */
_ITRON_return_errorno( E_OK );
}

View File

@@ -27,15 +27,15 @@ ER rot_rdq(
PRI priority;
if (( tskpri <= 0 ) || ( tskpri >= 256 ))
return E_PAR;
_Thread_Disable_dispatch();
/*
* Yield of processor will rotate the queue for this processor.
*/
if (( tskpri <= 0 ) || ( tskpri >= 256 ))
_ITRON_return_errorno( E_PAR );
priority = _ITRON_Task_Core_to_Priority(_Thread_Executing->current_priority);
if ( priority == tskpri )
_Thread_Yield_processor();

View File

@@ -32,7 +32,7 @@ ER rsm_tsk(
switch ( location ) {
case OBJECTS_REMOTE:
case OBJECTS_ERROR:
_ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) );
return _ITRON_Task_Clarify_get_id_error( tskid );
case OBJECTS_LOCAL:
@@ -43,10 +43,9 @@ ER rsm_tsk(
_ITRON_return_errorno( E_OBJ );
_Thread_Resume( the_thread, FALSE );
_Thread_Enable_dispatch();
return E_OK;
break;
}
return E_OBJ; /* XXX - Should never get here */
_ITRON_return_errorno( E_OK );
}

View File

@@ -34,7 +34,7 @@ ER sta_tsk(
switch ( location ) {
case OBJECTS_REMOTE:
case OBJECTS_ERROR:
_ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) );
return _ITRON_Task_Clarify_get_id_error( tskid );
case OBJECTS_LOCAL:
@@ -55,10 +55,10 @@ ER sta_tsk(
_ITRON_return_errorno( E_OBJ );
*/
_ITRON_return_errorno( E_OK );
break;
}
_ITRON_return_errorno( E_OBJ ); /* unreached - only to remove warnings */
_ITRON_return_errorno( E_OK );
}

View File

@@ -36,7 +36,7 @@ ER sus_tsk(
switch ( location ) {
case OBJECTS_REMOTE:
case OBJECTS_ERROR:
_ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) );
return _ITRON_Task_Clarify_get_id_error( tskid );
case OBJECTS_LOCAL:
@@ -44,10 +44,10 @@ ER sus_tsk(
_ITRON_return_errorno( E_OBJ );
_Thread_Suspend( the_thread );
_ITRON_return_errorno( E_OK );
break;
}
_ITRON_return_errorno( E_OBJ );
_ITRON_return_errorno( E_OK );
}

View File

@@ -29,20 +29,25 @@ ER ter_tsk(
Objects_Locations location;
the_thread = _ITRON_Task_Get( tskid, &location );
if ( location != OBJECTS_LOCAL )
_ITRON_return_errorno( _ITRON_Task_Clarify_get_id_error( tskid ) );
if ( _Thread_Is_executing( the_thread ) )
_ITRON_return_errorno( E_OBJ );
switch ( location ) {
case OBJECTS_REMOTE:
case OBJECTS_ERROR:
return _ITRON_Task_Clarify_get_id_error( tskid );
case OBJECTS_LOCAL:
if ( _Thread_Is_executing( the_thread ) )
_ITRON_return_errorno( E_OBJ );
if ( _States_Is_dormant( the_thread->current_state ) )
_ITRON_return_errorno( E_OBJ );
if ( _States_Is_dormant( the_thread->current_state ) )
_ITRON_return_errorno( E_OBJ );
_Thread_Restart( the_thread, NULL, 0 );
_Thread_Set_state( the_thread, STATES_DORMANT );
_Thread_Restart( the_thread, NULL, 0 );
_Thread_Set_state( the_thread, STATES_DORMANT );
break;
}
_ITRON_return_errorno( E_OK );
_ITRON_return_errorno( E_OK );
}