Commit | Line | Data |
---|---|---|
50d91c76 KO |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _LINUX_HRTIMER_TYPES_H | |
3 | #define _LINUX_HRTIMER_TYPES_H | |
4 | ||
5 | #include <linux/types.h> | |
eee51b0a | 6 | #include <linux/timerqueue_types.h> |
50d91c76 KO |
7 | |
8 | struct hrtimer_clock_base; | |
9 | ||
10 | /* | |
11 | * Return values for the callback function | |
12 | */ | |
13 | enum hrtimer_restart { | |
14 | HRTIMER_NORESTART, /* Timer is not restarted */ | |
15 | HRTIMER_RESTART, /* Timer must be restarted */ | |
16 | }; | |
17 | ||
18 | /** | |
19 | * struct hrtimer - the basic hrtimer structure | |
20 | * @node: timerqueue node, which also manages node.expires, | |
21 | * the absolute expiry time in the hrtimers internal | |
22 | * representation. The time is related to the clock on | |
23 | * which the timer is based. Is setup by adding | |
24 | * slack to the _softexpires value. For non range timers | |
25 | * identical to _softexpires. | |
26 | * @_softexpires: the absolute earliest expiry time of the hrtimer. | |
27 | * The time which was given as expiry time when the timer | |
28 | * was armed. | |
29 | * @function: timer expiry callback function | |
30 | * @base: pointer to the timer base (per cpu and per clock) | |
31 | * @state: state information (See bit values above) | |
32 | * @is_rel: Set if the timer was armed relative | |
33 | * @is_soft: Set if hrtimer will be expired in soft interrupt context. | |
34 | * @is_hard: Set if hrtimer will be expired in hard interrupt context | |
35 | * even on RT. | |
36 | * | |
37 | * The hrtimer structure must be initialized by hrtimer_init() | |
38 | */ | |
39 | struct hrtimer { | |
40 | struct timerqueue_node node; | |
41 | ktime_t _softexpires; | |
42 | enum hrtimer_restart (*function)(struct hrtimer *); | |
43 | struct hrtimer_clock_base *base; | |
44 | u8 state; | |
45 | u8 is_rel; | |
46 | u8 is_soft; | |
47 | u8 is_hard; | |
48 | }; | |
49 | ||
50 | #endif /* _LINUX_HRTIMER_TYPES_H */ |