aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/hrtimer.h
diff options
context:
space:
mode:
authorArjan van de Ven <arjan@linux.intel.com>2008-10-17 12:20:26 -0400
committerArjan van de Ven <arjan@linux.intel.com>2008-10-17 12:20:26 -0400
commit651dab4264e4ba0e563f5ff56f748127246e9065 (patch)
tree016630974bdcb00fe529b673f96d389e0fd6dc94 /include/linux/hrtimer.h
parent40b8606253552109815786e5d4b0de98782d31f5 (diff)
parent2e532d68a2b3e2aa6b19731501222069735c741c (diff)
Merge commit 'linus/master' into merge-linus
Conflicts: arch/x86/kvm/i8254.c
Diffstat (limited to 'include/linux/hrtimer.h')
-rw-r--r--include/linux/hrtimer.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index 1e6f731381d9..cb25c1cc2352 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -49,14 +49,22 @@ enum hrtimer_restart {
49 * HRTIMER_CB_IRQSAFE: Callback may run in hardirq context 49 * HRTIMER_CB_IRQSAFE: Callback may run in hardirq context
50 * HRTIMER_CB_IRQSAFE_NO_RESTART: Callback may run in hardirq context and 50 * HRTIMER_CB_IRQSAFE_NO_RESTART: Callback may run in hardirq context and
51 * does not restart the timer 51 * does not restart the timer
52 * HRTIMER_CB_IRQSAFE_NO_SOFTIRQ: Callback must run in hardirq context 52 * HRTIMER_CB_IRQSAFE_PERCPU: Callback must run in hardirq context
53 * Special mode for tick emultation 53 * Special mode for tick emulation and
54 * scheduler timer. Such timers are per
55 * cpu and not allowed to be migrated on
56 * cpu unplug.
57 * HRTIMER_CB_IRQSAFE_UNLOCKED: Callback should run in hardirq context
58 * with timer->base lock unlocked
59 * used for timers which call wakeup to
60 * avoid lock order problems with rq->lock
54 */ 61 */
55enum hrtimer_cb_mode { 62enum hrtimer_cb_mode {
56 HRTIMER_CB_SOFTIRQ, 63 HRTIMER_CB_SOFTIRQ,
57 HRTIMER_CB_IRQSAFE, 64 HRTIMER_CB_IRQSAFE,
58 HRTIMER_CB_IRQSAFE_NO_RESTART, 65 HRTIMER_CB_IRQSAFE_NO_RESTART,
59 HRTIMER_CB_IRQSAFE_NO_SOFTIRQ, 66 HRTIMER_CB_IRQSAFE_PERCPU,
67 HRTIMER_CB_IRQSAFE_UNLOCKED,
60}; 68};
61 69
62/* 70/*
@@ -69,9 +77,10 @@ enum hrtimer_cb_mode {
69 * 0x02 callback function running 77 * 0x02 callback function running
70 * 0x04 callback pending (high resolution mode) 78 * 0x04 callback pending (high resolution mode)
71 * 79 *
72 * Special case: 80 * Special cases:
73 * 0x03 callback function running and enqueued 81 * 0x03 callback function running and enqueued
74 * (was requeued on another CPU) 82 * (was requeued on another CPU)
83 * 0x09 timer was migrated on CPU hotunplug
75 * The "callback function running and enqueued" status is only possible on 84 * The "callback function running and enqueued" status is only possible on
76 * SMP. It happens for example when a posix timer expired and the callback 85 * SMP. It happens for example when a posix timer expired and the callback
77 * queued a signal. Between dropping the lock which protects the posix timer 86 * queued a signal. Between dropping the lock which protects the posix timer
@@ -89,6 +98,7 @@ enum hrtimer_cb_mode {
89#define HRTIMER_STATE_ENQUEUED 0x01 98#define HRTIMER_STATE_ENQUEUED 0x01
90#define HRTIMER_STATE_CALLBACK 0x02 99#define HRTIMER_STATE_CALLBACK 0x02
91#define HRTIMER_STATE_PENDING 0x04 100#define HRTIMER_STATE_PENDING 0x04
101#define HRTIMER_STATE_MIGRATE 0x08
92 102
93/** 103/**
94 * struct hrtimer - the basic hrtimer structure 104 * struct hrtimer - the basic hrtimer structure