mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-05-14 19:53:03 +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
|
#define _LINUX_HRTIMER_H
|
||||||
|
|
||||||
#include <linux/hrtimer_defs.h>
|
#include <linux/hrtimer_defs.h>
|
||||||
#include <linux/rbtree.h>
|
#include <linux/hrtimer_types.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/list.h>
|
#include <linux/list.h>
|
||||||
#include <linux/percpu-defs.h>
|
#include <linux/percpu-defs.h>
|
||||||
|
#include <linux/rbtree.h>
|
||||||
#include <linux/seqlock.h>
|
#include <linux/seqlock.h>
|
||||||
#include <linux/timer.h>
|
#include <linux/timer.h>
|
||||||
#include <linux/timerqueue.h>
|
|
||||||
|
|
||||||
struct hrtimer_clock_base;
|
struct hrtimer_clock_base;
|
||||||
struct hrtimer_cpu_base;
|
struct hrtimer_cpu_base;
|
||||||
|
@ -59,14 +59,6 @@ enum hrtimer_mode {
|
||||||
HRTIMER_MODE_REL_PINNED_HARD = HRTIMER_MODE_REL_PINNED | HRTIMER_MODE_HARD,
|
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
|
* Values to track state of the timer
|
||||||
*
|
*
|
||||||
|
@ -94,38 +86,6 @@ enum hrtimer_restart {
|
||||||
#define HRTIMER_STATE_INACTIVE 0x00
|
#define HRTIMER_STATE_INACTIVE 0x00
|
||||||
#define HRTIMER_STATE_ENQUEUED 0x01
|
#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
|
* struct hrtimer_sleeper - simple sleeper structure
|
||||||
* @timer: embedded timer 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/kmsan_types.h>
|
||||||
#include <linux/mutex.h>
|
#include <linux/mutex.h>
|
||||||
#include <linux/plist.h>
|
#include <linux/plist.h>
|
||||||
#include <linux/hrtimer.h>
|
#include <linux/hrtimer_types.h>
|
||||||
#include <linux/irqflags.h>
|
#include <linux/irqflags.h>
|
||||||
#include <linux/seccomp.h>
|
#include <linux/seccomp.h>
|
||||||
#include <linux/nodemask_types.h>
|
#include <linux/nodemask_types.h>
|
||||||
|
|
Loading…
Add table
Reference in a new issue