XenevaOS
Loading...
Searching...
No Matches
XenevaOS
BaseHdr
linux
timerqueue.h
Go to the documentation of this file.
1
/*
2
* DCL <linux/timerqueue.h> -- the expiry-node struct, and only that.
3
*
4
* mainline keeps struct timerqueue_node and struct timerqueue_head here with
5
* a red-black tree of them behind timerqueue_add/min/removel (kernel/time/).
6
* DCL has no hrtimer queue at all -- hrtimer.h's four static inlines are the
7
* whole surface, and there is no clock base for a queued timer to sit on --
8
* so the tree and its three operations are not absent by oversight, they are
9
* absent because there is no queue to give them to.
10
*
11
* The node is a different case: drm_vblank.c:2311 reads
12
* `vtimer->timer.node.expires` to compare a re-read expiry time against the
13
* one it already has, and that is a *member access on struct hrtimer*, which
14
* means the type has to exist and has to carry the member. It is mainline's
15
* spelling and mainline's two fields so that a real queue could be dropped
16
* in underneath without the read sites changing.
17
*
18
* Include order is mainline's: rbtree for struct rb_node, ktime for
19
* ktime_t. ktime.h routes through kernel.h, which is the aggregator -- the
20
* same exposure hrtimer.h already carries by including ktime.h at its own
21
* line 57, so nothing new reaches a source by adding this header beside it.
22
*/
23
#ifndef _LINUX_TIMERQUEUE_H
24
#define _LINUX_TIMERQUEUE_H
25
26
#include <
linux/rbtree.h
>
/* struct rb_node */
27
#include <
linux/ktime.h
>
/* ktime_t */
28
29
struct
timerqueue_node
{
30
struct
rb_node
node
;
31
ktime_t
expires
;
32
};
33
34
#endif
/* _LINUX_TIMERQUEUE_H */
ktime.h
ktime_t
int64_t ktime_t
Definition
kernel.h:404
rbtree.h
rb_node
Definition
rbtree_types.h:21
timerqueue_node
Definition
timerqueue.h:29
timerqueue_node::expires
ktime_t expires
Definition
timerqueue.h:31
timerqueue_node::node
struct rb_node node
Definition
timerqueue.h:30
Generated by
1.9.8