mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-04-13 09:59:31 +00:00
hrtimers: Split out hrtimer_types.h
We need to reduce the scope of what's included in sched.h: task_struct includes a hrtimer, so split out the core types into their own header. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> Cc: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
2e346b19aa
commit
50d91c7658
3 changed files with 53 additions and 43 deletions
|
@ -13,13 +13,13 @@
|
|||
#define _LINUX_HRTIMER_H
|
||||
|
||||
#include <linux/hrtimer_defs.h>
|
||||
#include <linux/rbtree.h>
|
||||
#include <linux/hrtimer_types.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/percpu-defs.h>
|
||||
#include <linux/rbtree.h>
|
||||
#include <linux/seqlock.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/timerqueue.h>
|
||||
|
||||
struct hrtimer_clock_base;
|
||||
struct hrtimer_cpu_base;
|
||||
|
@ -59,14 +59,6 @@ enum hrtimer_mode {
|
|||
HRTIMER_MODE_REL_PINNED_HARD = HRTIMER_MODE_REL_PINNED | HRTIMER_MODE_HARD,
|
||||
};
|
||||
|
||||
/*
|
||||
* Return values for the callback function
|
||||
*/
|
||||
enum hrtimer_restart {
|
||||
HRTIMER_NORESTART, /* Timer is not restarted */
|
||||
HRTIMER_RESTART, /* Timer must be restarted */
|
||||
};
|
||||
|
||||
/*
|
||||
* Values to track state of the timer
|
||||
*
|
||||
|
@ -94,38 +86,6 @@ enum hrtimer_restart {
|
|||
#define HRTIMER_STATE_INACTIVE 0x00
|
||||
#define HRTIMER_STATE_ENQUEUED 0x01
|
||||
|
||||
/**
|
||||
* struct hrtimer - the basic hrtimer structure
|
||||
* @node: timerqueue node, which also manages node.expires,
|
||||
* the absolute expiry time in the hrtimers internal
|
||||
* representation. The time is related to the clock on
|
||||
* which the timer is based. Is setup by adding
|
||||
* slack to the _softexpires value. For non range timers
|
||||
* identical to _softexpires.
|
||||
* @_softexpires: the absolute earliest expiry time of the hrtimer.
|
||||
* The time which was given as expiry time when the timer
|
||||
* was armed.
|
||||
* @function: timer expiry callback function
|
||||
* @base: pointer to the timer base (per cpu and per clock)
|
||||
* @state: state information (See bit values above)
|
||||
* @is_rel: Set if the timer was armed relative
|
||||
* @is_soft: Set if hrtimer will be expired in soft interrupt context.
|
||||
* @is_hard: Set if hrtimer will be expired in hard interrupt context
|
||||
* even on RT.
|
||||
*
|
||||
* The hrtimer structure must be initialized by hrtimer_init()
|
||||
*/
|
||||
struct hrtimer {
|
||||
struct timerqueue_node node;
|
||||
ktime_t _softexpires;
|
||||
enum hrtimer_restart (*function)(struct hrtimer *);
|
||||
struct hrtimer_clock_base *base;
|
||||
u8 state;
|
||||
u8 is_rel;
|
||||
u8 is_soft;
|
||||
u8 is_hard;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct hrtimer_sleeper - simple sleeper structure
|
||||
* @timer: embedded timer structure
|
||||
|
|
50
include/linux/hrtimer_types.h
Normal file
50
include/linux/hrtimer_types.h
Normal file
|
@ -0,0 +1,50 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _LINUX_HRTIMER_TYPES_H
|
||||
#define _LINUX_HRTIMER_TYPES_H
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/timerqueue.h>
|
||||
|
||||
struct hrtimer_clock_base;
|
||||
|
||||
/*
|
||||
* Return values for the callback function
|
||||
*/
|
||||
enum hrtimer_restart {
|
||||
HRTIMER_NORESTART, /* Timer is not restarted */
|
||||
HRTIMER_RESTART, /* Timer must be restarted */
|
||||
};
|
||||
|
||||
/**
|
||||
* struct hrtimer - the basic hrtimer structure
|
||||
* @node: timerqueue node, which also manages node.expires,
|
||||
* the absolute expiry time in the hrtimers internal
|
||||
* representation. The time is related to the clock on
|
||||
* which the timer is based. Is setup by adding
|
||||
* slack to the _softexpires value. For non range timers
|
||||
* identical to _softexpires.
|
||||
* @_softexpires: the absolute earliest expiry time of the hrtimer.
|
||||
* The time which was given as expiry time when the timer
|
||||
* was armed.
|
||||
* @function: timer expiry callback function
|
||||
* @base: pointer to the timer base (per cpu and per clock)
|
||||
* @state: state information (See bit values above)
|
||||
* @is_rel: Set if the timer was armed relative
|
||||
* @is_soft: Set if hrtimer will be expired in soft interrupt context.
|
||||
* @is_hard: Set if hrtimer will be expired in hard interrupt context
|
||||
* even on RT.
|
||||
*
|
||||
* The hrtimer structure must be initialized by hrtimer_init()
|
||||
*/
|
||||
struct hrtimer {
|
||||
struct timerqueue_node node;
|
||||
ktime_t _softexpires;
|
||||
enum hrtimer_restart (*function)(struct hrtimer *);
|
||||
struct hrtimer_clock_base *base;
|
||||
u8 state;
|
||||
u8 is_rel;
|
||||
u8 is_soft;
|
||||
u8 is_hard;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_HRTIMER_TYPES_H */
|
|
@ -17,7 +17,7 @@
|
|||
#include <linux/kmsan_types.h>
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/plist.h>
|
||||
#include <linux/hrtimer.h>
|
||||
#include <linux/hrtimer_types.h>
|
||||
#include <linux/irqflags.h>
|
||||
#include <linux/seccomp.h>
|
||||
#include <linux/nodemask_types.h>
|
||||
|
|
Loading…
Add table
Reference in a new issue