summaryrefslogtreecommitdiffstats
path: root/include/linux/interrupt.h
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-07-23 18:43:48 +0900
committerPaul Mundt <lethal@linux-sh.org>2009-07-23 18:43:48 +0900
commita3beddd0aa267986de7b13b6d9cd0e1869fcf1fc (patch)
treebfdc42183f5aac21f605a30a4a511298ab91e3c5 /include/linux/interrupt.h
parent955c9863bb5855a994751843e7066017edc00410 (diff)
parent5bdef865eb358b6f3760e25e591ae115e9eeddef (diff)
downloadkernel-crypto-a3beddd0aa267986de7b13b6d9cd0e1869fcf1fc.tar.gz
kernel-crypto-a3beddd0aa267986de7b13b6d9cd0e1869fcf1fc.tar.xz
kernel-crypto-a3beddd0aa267986de7b13b6d9cd0e1869fcf1fc.zip
Merge branch 'sh/kfr2r09'
Diffstat (limited to 'include/linux/interrupt.h')
-rw-r--r--include/linux/interrupt.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 2721f07e935..35e7df1e9f3 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -14,6 +14,7 @@
#include <linux/irqflags.h>
#include <linux/smp.h>
#include <linux/percpu.h>
+#include <linux/hrtimer.h>
#include <asm/atomic.h>
#include <asm/ptrace.h>
@@ -64,11 +65,13 @@
* IRQTF_RUNTHREAD - signals that the interrupt handler thread should run
* IRQTF_DIED - handler thread died
* IRQTF_WARNED - warning "IRQ_WAKE_THREAD w/o thread_fn" has been printed
+ * IRQTF_AFFINITY - irq thread is requested to adjust affinity
*/
enum {
IRQTF_RUNTHREAD,
IRQTF_DIED,
IRQTF_WARNED,
+ IRQTF_AFFINITY,
};
typedef irqreturn_t (*irq_handler_t)(int, void *);
@@ -517,6 +520,31 @@ extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu);
extern void tasklet_init(struct tasklet_struct *t,
void (*func)(unsigned long), unsigned long data);
+struct tasklet_hrtimer {
+ struct hrtimer timer;
+ struct tasklet_struct tasklet;
+ enum hrtimer_restart (*function)(struct hrtimer *);
+};
+
+extern void
+tasklet_hrtimer_init(struct tasklet_hrtimer *ttimer,
+ enum hrtimer_restart (*function)(struct hrtimer *),
+ clockid_t which_clock, enum hrtimer_mode mode);
+
+static inline
+int tasklet_hrtimer_start(struct tasklet_hrtimer *ttimer, ktime_t time,
+ const enum hrtimer_mode mode)
+{
+ return hrtimer_start(&ttimer->timer, time, mode);
+}
+
+static inline
+void tasklet_hrtimer_cancel(struct tasklet_hrtimer *ttimer)
+{
+ hrtimer_cancel(&ttimer->timer);
+ tasklet_kill(&ttimer->tasklet);
+}
+
/*
* Autoprobing for irqs:
*