/* watchdog.inl * * This file contains the static inline implementation of all inlined * routines in the Watchdog Handler. * * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. * On-Line Applications Research Corporation (OAR). * All rights assigned to U.S. Government, 1994. * * This material may be reproduced by or for the U.S. Government pursuant * to the copyright license under the clause at DFARS 252.227-7013. This * notice must appear in all copies of this file and its derivatives. * * $Id$ */ #ifndef __WATCHDOG_inl #define __WATCHDOG_inl /*PAGE * * _Watchdog_Initialize * */ STATIC INLINE void _Watchdog_Initialize( Watchdog_Control *the_watchdog, Watchdog_Service_routine_entry routine, Objects_Id id, void *user_data ) { the_watchdog->state = WATCHDOG_INACTIVE; the_watchdog->routine = routine; the_watchdog->id = id; the_watchdog->user_data = user_data; } /*PAGE * * _Watchdog_Is_active * */ STATIC INLINE boolean _Watchdog_Is_active( Watchdog_Control *the_watchdog ) { return ( the_watchdog->state == WATCHDOG_ACTIVE ); } /*PAGE * * _Watchdog_Activate * */ STATIC INLINE void _Watchdog_Activate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_ACTIVE; } /*PAGE * * _Watchdog_Deactivate * */ STATIC INLINE void _Watchdog_Deactivate( Watchdog_Control *the_watchdog ) { the_watchdog->state = WATCHDOG_REMOVE_IT; } /*PAGE * * _Watchdog_Tickle_ticks * */ STATIC INLINE void _Watchdog_Tickle_ticks( void ) { _Watchdog_Tickle( &_Watchdog_Ticks_chain ); } /*PAGE * * _Watchdog_Tickle_seconds * */ STATIC INLINE void _Watchdog_Tickle_seconds( void ) { _Watchdog_Tickle( &_Watchdog_Seconds_chain ); } /*PAGE * * _Watchdog_Insert_ticks * */ STATIC INLINE void _Watchdog_Insert_ticks( Watchdog_Control *the_watchdog, Watchdog_Interval units, Watchdog_Insert_modes insert_mode ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog, insert_mode ); } /*PAGE * * _Watchdog_Insert_seconds * */ STATIC INLINE void _Watchdog_Insert_seconds( Watchdog_Control *the_watchdog, Watchdog_Interval units, Watchdog_Insert_modes insert_mode ) { the_watchdog->initial = units; _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog, insert_mode ); } /*PAGE * * _Watchdog_Adjust_seconds * */ STATIC INLINE void _Watchdog_Adjust_seconds( Watchdog_Adjust_directions direction, Watchdog_Interval units ) { _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units ); } /*PAGE * * _Watchdog_Adjust_ticks * */ STATIC INLINE void _Watchdog_Adjust_ticks( Watchdog_Adjust_directions direction, Watchdog_Interval units ) { _Watchdog_Adjust( &_Watchdog_Ticks_chain, direction, units ); } /*PAGE * * _Watchdog_Reset * */ STATIC INLINE void _Watchdog_Reset( Watchdog_Control *the_watchdog ) { (void) _Watchdog_Remove( the_watchdog ); _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog, WATCHDOG_ACTIVATE_NOW ); } /*PAGE * * _Watchdog_Next * */ STATIC INLINE Watchdog_Control *_Watchdog_Next( Watchdog_Control *the_watchdog ) { return ( (Watchdog_Control *) the_watchdog->Node.next ); } /*PAGE * * _Watchdog_Previous * */ STATIC INLINE Watchdog_Control *_Watchdog_Previous( Watchdog_Control *the_watchdog ) { return ( (Watchdog_Control *) the_watchdog->Node.previous ); } /*PAGE * * _Watchdog_First * */ STATIC INLINE Watchdog_Control *_Watchdog_First( Chain_Control *header ) { return ( (Watchdog_Control *) header->first ); } /*PAGE * * _Watchdog_Last * */ STATIC INLINE Watchdog_Control *_Watchdog_Last( Chain_Control *header ) { return ( (Watchdog_Control *) header->last ); } #endif /* end of include file */