/* * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.OARcorp.com/rtems/license.html. * * $Id$ */ #include #include #include #include /* * set_tim - Set System Clock */ void converTime(SYSTIME ms, TOD_Control *time) { int millisecond; /* XXX need to dereference structure */ #if 0 milisecond = ms % 1000; tempSecond = ms / 1000; #else millisecond = 0; #endif } /* * set_tim - Set System Clock */ ER set_tim( SYSTIME *pk_tim ) { Watchdog_Interval temp; /* an integer in seconds after conversion from SYSTIME */ TOD_Control the_tod; /* convert *pk_tim which is 48 bits integer in binary into an ordinary integer in milliseconds */ /* XXX */ temp = 0; if(temp > 0) { _Thread_Disable_dispatch(); _TOD_Set(&the_tod, temp); _Thread_Enable_dispatch(); if(_TOD_Validate(&the_tod)){ return E_OK; } } return E_SYS; } /* * get_tim - Get System Clock */ ER get_tim( SYSTIME *pk_tim ) { return E_OK; } /* * dly_tsk - Delay Task */ ER dly_tsk( DLYTIME dlytim ) { Watchdog_Interval ticks; ticks = TOD_MILLISECONDS_TO_TICKS(dlytim); _Thread_Disable_dispatch(); if ( ticks == 0 ) { _Thread_Yield_processor(); } else { _Thread_Set_state( _Thread_Executing, STATES_DELAYING ); _Watchdog_Initialize( &_Thread_Executing->Timer, _Thread_Delay_ended, _Thread_Executing->Object.id, NULL ); _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks ); } _Thread_Enable_dispatch(); return E_OK; } /* * def_cyc - Define Cyclic Handler */ ER def_cyc( HNO cycno, T_DCYC *pk_dcyc ) { Watchdog_Control *object; #if 0 Watchdog_Interval timeInterval; #endif /* XXX */ object = 0; if ( pk_dcyc->cycatr != TA_HLNG) return E_RSATR; #if 0 timeInterval = pk_dcyc->cyctim / 1000; object->delta_interval = timeInterval; #endif _Watchdog_Initialize( object, pk_dcyc->cychdr, cycno, pk_dcyc->exinf); _Watchdog_Deactivate(object); return E_OK; } /* * act_cyc - Activate Cyclic Handler */ ER act_cyc( HNO cycno, UINT cycact ) { Watchdog_Control *object; if(cycact != TCY_OFF || cycact != TCY_ON) return E_PAR; #if 0 if( object->Object_ID != cycno) return E_NOEXS; #endif _Watchdog_Activate(object); return E_OK; } /* * ref_cyc - Reference Cyclic Handler Status */ ER ref_cyc( T_RCYC *pk_rcyc, HNO cycno ) { #if 0 int timeElapse_since_actCyclic; #endif T_DCYC *pk_dcyc; #if 0 Watchdog_Control *object; #endif /* XXX */ pk_dcyc = 0; /* XXX will to use a "get" routine to map from id to object pointer */ /* XXX and the object pointer should be of type specific to this manager */ #if 0 if( object->Object_ID == cycno)) #else if ( 1 ) #endif { pk_rcyc->exinf = pk_dcyc->exinf; pk_rcyc->cycact = pk_dcyc->cycact; #if 0 pk_rcyc->lfttim = pk_dcyc->cyctim - timeElapse_since_actCyclic; #endif return E_OK; } else return E_NOEXS; } /* * def_alm - Define Alarm Handler */ ER def_alm( HNO almno, T_DALM *pk_dalm ) { #if 0 Objects_Control *objectAlrm; Watchdog_Interval timeInterval; timeInterval = pk_dalm->almtim / 1000; (void) _Watchdog_Remove(&objectAlrm); _Watchdog_Initialize( objectAlrm, pk_dalm->almhdr, almno, pk_dalm->exinf); _Watchdong_Insert_seconds(objectAlrm,timeInterval); _Thread_Enable_dispatch(); #endif return E_OK; } /* * ref_alm - Reference Alarm Handler Status */ ER ref_alm( T_RALM *pk_ralm, HNO almno ) { return E_OK; } /* * ret_tmr - Return from Timer Handler */ void ret_tmr( void ) { }