35 if ( first->
expire <= now ) {
44 ( *routine )( first );
51 }
while ( first != NULL );
62 if ( _Per_CPU_Is_boot_processor( cpu ) ) {
76 if ( first != NULL ) {
89 if ( first != NULL ) {
103 if ( first != NULL ) {
union Watchdog_Control::@33 Node
Nodes for the watchdog.
Watchdog_Service_routine(* Watchdog_Service_routine_entry)(Watchdog_Control *)
Pointer to a watchdog service routine.
Index for realtime clock per-CPU watchdog header.
void _Timecounter_Getnanotime(struct timespec *ts)
Returns the wall clock time in the timespec format.
The watchdog is inactive.
#define _ISR_lock_Release_and_ISR_enable(_lock, _context)
Releases an ISR lock.
Watchdog_Header Header[PER_CPU_WATCHDOG_COUNT]
Header for watchdogs.
static __inline__ void _Watchdog_Next_first(Watchdog_Header *header, Watchdog_Control *the_watchdog)
Sets the first node of the header.
ISR_lock_Control Lock
This lock protects some members of this structure.
static __inline__ uint64_t _Watchdog_Ticks_from_timespec(const struct timespec *ts)
Converts the timespec in ticks.
Inlined Routines in the Watchdog Handler.
uint64_t expire
This field is the expiration time point.
uint64_t ticks
Protects all watchdog operations on this processor.
Inlined Routines Associated with the Manipulation of the Scheduler.
Constants and Structures Related with Thread Dispatch.
The control block used to manage each watchdog timer.
Watchdog_Service_routine_entry routine
This field is the function to invoke.
static __inline__ void _Scheduler_Tick(const Per_CPU_Control *cpu)
Scheduler method invoked at each clock tick.
RBTree_Node RBTree
this field is a red-black tree node structure and allows this to be placed on a red-black tree used t...
struct Per_CPU_Control::@13 Watchdog
Watchdog state for this processor.
void _Timecounter_Getnanouptime(struct timespec *ts)
Returns the uptime in the timespec format.
#define _ISR_lock_ISR_disable_and_acquire(_lock, _context)
Acquires an ISR lock.
void _Watchdog_Do_tickle(Watchdog_Header *header, Watchdog_Control *first, uint64_t now, ISR_lock_Control *lock, ISR_lock_Context *lock_context)
Calls the routine of each not expired watchdog control node.
static __inline__ Watchdog_Control * _Watchdog_Header_first(const Watchdog_Header *header)
Returns the first of the watchdog header.
Index for monotonic clock per-CPU watchdog header.
void _RBTree_Extract(RBTree_Control *the_rbtree, RBTree_Node *the_node)
Extracts (removes) the node from the red-black tree.
Local ISR lock context for acquire and release pairs.
Index for tick clock per-CPU watchdog header.
volatile Watchdog_Interval _Watchdog_Ticks_since_boot
The watchdog ticks counter.
static __inline__ void _Watchdog_Set_state(Watchdog_Control *the_watchdog, Watchdog_State state)
Sets the state of the watchdog.
#define _Assert(_e)
Assertion similar to assert() controlled via RTEMS_DEBUG instead of NDEBUG.
void _Watchdog_Tick(Per_CPU_Control *cpu)
Performs a watchdog tick.