⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 watchdog.inl

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 INL
字号:
/*  watchdog.inl * *  This file contains the static inline implementation of all inlined *  routines in the Watchdog Handler. * *  COPYRIGHT (c) 1989-1999. *  On-Line Applications Research Corporation (OAR). * *  The license and distribution terms for this file may be *  found in the file LICENSE in this distribution or at *  http://www.rtems.com/license/LICENSE. * *  $Id: watchdog.inl,v 1.11.6.1 2003/09/04 18:55:06 joel Exp $ */#ifndef __WATCHDOG_inl#define __WATCHDOG_inl/*PAGE * *  _Watchdog_Initialize * *  DESCRIPTION: * *  This routine initializes the specified watchdog.  The watchdog is *  made inactive, the watchdog id and handler routine are set to the *  specified values. */RTEMS_INLINE_ROUTINE 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 * *  DESCRIPTION: * *  This routine returns TRUE if the watchdog timer is in the ACTIVE *  state, and FALSE otherwise. */RTEMS_INLINE_ROUTINE boolean _Watchdog_Is_active(  Watchdog_Control *the_watchdog){  return ( the_watchdog->state == WATCHDOG_ACTIVE );}/*PAGE * *  _Watchdog_Activate * *  DESCRIPTION: * *  This routine activates THE_WATCHDOG timer which is already *  on a watchdog chain. */RTEMS_INLINE_ROUTINE void _Watchdog_Activate(  Watchdog_Control *the_watchdog){  the_watchdog->state = WATCHDOG_ACTIVE;}/*PAGE * *  _Watchdog_Deactivate * *  DESCRIPTION: * *  This routine deactivates THE_WATCHDOG timer which will remain *  on a watchdog chain. */RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate(  Watchdog_Control *the_watchdog){  the_watchdog->state = WATCHDOG_REMOVE_IT;}/*PAGE * *  _Watchdog_Tickle_ticks * *  DESCRIPTION: * *  This routine is invoked at each clock tick to update the ticks *  watchdog chain. */RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_ticks( void ){  _Watchdog_Tickle( &_Watchdog_Ticks_chain );}/*PAGE * *  _Watchdog_Tickle_seconds * *  DESCRIPTION: * *  This routine is invoked at each clock tick to update the seconds *  watchdog chain. */RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_seconds( void ){  _Watchdog_Tickle( &_Watchdog_Seconds_chain );}/*PAGE * *  _Watchdog_Insert_ticks * *  DESCRIPTION: * *  This routine inserts THE_WATCHDOG into the ticks watchdog chain *  for a time of UNITS ticks.  The INSERT_MODE indicates whether *  THE_WATCHDOG is to be activated automatically or later, explicitly *  by the caller. */RTEMS_INLINE_ROUTINE void _Watchdog_Insert_ticks(  Watchdog_Control      *the_watchdog,  Watchdog_Interval      units){  the_watchdog->initial = units;  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );}/*PAGE * *  _Watchdog_Insert_seconds * *  DESCRIPTION: * *  This routine inserts THE_WATCHDOG into the seconds watchdog chain *  for a time of UNITS seconds.  The INSERT_MODE indicates whether *  THE_WATCHDOG is to be activated automatically or later, explicitly *  by the caller. */RTEMS_INLINE_ROUTINE void _Watchdog_Insert_seconds(  Watchdog_Control      *the_watchdog,  Watchdog_Interval      units){  the_watchdog->initial = units;  _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog );}/*PAGE * *  _Watchdog_Adjust_seconds * *  DESCRIPTION: * *  This routine adjusts the seconds watchdog chain in the forward *  or backward DIRECTION for UNITS seconds.  This is invoked when the *  current time of day is changed. */RTEMS_INLINE_ROUTINE void _Watchdog_Adjust_seconds(  Watchdog_Adjust_directions direction,  Watchdog_Interval          units){  _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units );}/*PAGE * *  _Watchdog_Adjust_ticks * *  DESCRIPTION: * *  This routine adjusts the ticks watchdog chain in the forward *  or backward DIRECTION for UNITS ticks. */RTEMS_INLINE_ROUTINE void _Watchdog_Adjust_ticks(  Watchdog_Adjust_directions direction,  Watchdog_Interval          units){  _Watchdog_Adjust( &_Watchdog_Ticks_chain, direction, units );}/*PAGE * *  _Watchdog_Reset * *  DESCRIPTION: * *  This routine resets THE_WATCHDOG timer to its state at INSERT *  time.  This routine is valid only on interval watchdog timers *  and is used to make an interval watchdog timer fire "every" so *  many ticks. */RTEMS_INLINE_ROUTINE void _Watchdog_Reset(  Watchdog_Control *the_watchdog){  (void) _Watchdog_Remove( the_watchdog );  _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog );}/*PAGE * *  _Watchdog_Next * *  DESCRIPTION: * *  This routine returns a pointer to the watchdog timer following *  THE_WATCHDOG on the watchdog chain. */RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next(  Watchdog_Control *the_watchdog){  return ( (Watchdog_Control *) the_watchdog->Node.next );}/*PAGE * *  _Watchdog_Previous * *  DESCRIPTION: * *  This routine returns a pointer to the watchdog timer preceding *  THE_WATCHDOG on the watchdog chain. */RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Previous(  Watchdog_Control *the_watchdog){  return ( (Watchdog_Control *) the_watchdog->Node.previous );}/*PAGE * *  _Watchdog_First * *  DESCRIPTION: * *  This routine returns a pointer to the first watchdog timer *  on the watchdog chain HEADER. */RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First(  Chain_Control *header){  return ( (Watchdog_Control *) header->first );}/*PAGE * *  _Watchdog_Last * *  DESCRIPTION: * *  This routine returns a pointer to the last watchdog timer *  on the watchdog chain HEADER. */RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Last(  Chain_Control *header){  return ( (Watchdog_Control *) header->last );}#endif/* end of include file */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -