RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
cpukit
include
rtems
score
watchdog.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-2-Clause */
2
12
13
/*
14
* COPYRIGHT (c) 1989-2009.
15
* On-Line Applications Research Corporation (OAR).
16
*
17
* Redistribution and use in source and binary forms, with or without
18
* modification, are permitted provided that the following conditions
19
* are met:
20
* 1. Redistributions of source code must retain the above copyright
21
* notice, this list of conditions and the following disclaimer.
22
* 2. Redistributions in binary form must reproduce the above copyright
23
* notice, this list of conditions and the following disclaimer in the
24
* documentation and/or other materials provided with the distribution.
25
*
26
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
27
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
30
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36
* POSSIBILITY OF SUCH DAMAGE.
37
*/
38
39
#ifndef _RTEMS_SCORE_WATCHDOG_H
40
#define _RTEMS_SCORE_WATCHDOG_H
41
42
#include <
rtems/score/basedefs.h
>
43
#include <
rtems/score/chain.h
>
44
#include <
rtems/score/rbtree.h
>
45
46
struct
Per_CPU_Control
;
47
48
#ifdef __cplusplus
49
extern
"C"
{
50
#endif
51
69
70
typedef
struct
Watchdog_Control
Watchdog_Control
;
71
77
typedef
void
Watchdog_Service_routine
;
78
84
typedef
Watchdog_Service_routine
85
( *
Watchdog_Service_routine_entry
)(
Watchdog_Control
* );
86
90
typedef
struct
{
94
RBTree_Control
Watchdogs
;
95
100
RBTree_Node
*
first
;
101
}
Watchdog_Header
;
102
109
struct
Watchdog_Control
{
113
union
{
118
RBTree_Node
RBTree
;
119
124
Chain_Node
Chain
;
125
} Node;
126
127
#if defined(RTEMS_SMP)
129
struct
Per_CPU_Control
*cpu;
130
#endif
131
133
Watchdog_Service_routine_entry
routine
;
134
136
uint64_t
expire
;
137
};
138
140
141
#ifdef __cplusplus
142
}
143
#endif
144
145
#endif
146
/* end of include file */
basedefs.h
This header file provides basic definitions used by the API and the implementation.
Watchdog_Service_routine
void Watchdog_Service_routine
Return type from a Watchdog Service Routine.
Definition
watchdog.h:77
Watchdog_Service_routine_entry
Watchdog_Service_routine(*) Watchdog_Service_routine_entry(Watchdog_Control *)
Pointer to a watchdog service routine.
Definition
watchdog.h:85
rbtree.h
This header file provides interfaces of the Red-Black Tree Handler which are used by the implementati...
chain.h
This header file provides interfaces of the Chain Handler which are used by the implementation and th...
Chain_Node
This structure represents a chain node.
Definition
chain.h:78
Per_CPU_Control
Per CPU Core Structure.
Definition
percpu.h:384
RBTree_Node
Red-black tree node.
Definition
rbtree.h:73
Watchdog_Control
The control block used to manage each watchdog timer.
Definition
watchdog.h:109
Watchdog_Control::expire
uint64_t expire
This field is the expiration time point.
Definition
watchdog.h:136
Watchdog_Control::routine
Watchdog_Service_routine_entry routine
This field is the function to invoke.
Definition
watchdog.h:133
Watchdog_Header
The watchdog header to manage scheduled watchdogs.
Definition
watchdog.h:90
Watchdog_Header::first
RBTree_Node * first
The scheduled watchdog with the earliest expiration time or NULL in case no watchdog is scheduled.
Definition
watchdog.h:100
Watchdog_Header::Watchdogs
RBTree_Control Watchdogs
Red-black tree of scheduled watchdogs sorted by expiration time.
Definition
watchdog.h:94
Watchdog_Control::[union].Node::RBTree
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...
Watchdog_Control::[union].Node::Chain
Chain_Node Chain
this field is a chain node structure and allows this to be placed on a chain used to manage pending w...
Generated by
1.18.0