summaryrefslogtreecommitdiffstats
path: root/arch/s390/include/asm/airq.h
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2014-02-13 13:02:32 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2014-02-21 08:50:22 +0100
commitfe7c30a420761654777d3cc15412fc7626407e93 (patch)
tree95f4377d7aced89fb5511fa2de3521e30347dac8 /arch/s390/include/asm/airq.h
parents390/mm: enable split page table lock for PMD level (diff)
downloadlinux-fe7c30a420761654777d3cc15412fc7626407e93.tar.xz
linux-fe7c30a420761654777d3cc15412fc7626407e93.zip
s390/airq: add support for irq ranges
Add airq_iv_alloc and airq_iv_free to allocate and free consecutive ranges of irqs from the interrupt vector. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/airq.h')
-rw-r--r--arch/s390/include/asm/airq.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/arch/s390/include/asm/airq.h b/arch/s390/include/asm/airq.h
index 4bbb5957ed1b..bd93ff6661b8 100644
--- a/arch/s390/include/asm/airq.h
+++ b/arch/s390/include/asm/airq.h
@@ -44,11 +44,21 @@ struct airq_iv {
struct airq_iv *airq_iv_create(unsigned long bits, unsigned long flags);
void airq_iv_release(struct airq_iv *iv);
-unsigned long airq_iv_alloc_bit(struct airq_iv *iv);
-void airq_iv_free_bit(struct airq_iv *iv, unsigned long bit);
+unsigned long airq_iv_alloc(struct airq_iv *iv, unsigned long num);
+void airq_iv_free(struct airq_iv *iv, unsigned long bit, unsigned long num);
unsigned long airq_iv_scan(struct airq_iv *iv, unsigned long start,
unsigned long end);
+static inline unsigned long airq_iv_alloc_bit(struct airq_iv *iv)
+{
+ return airq_iv_alloc(iv, 1);
+}
+
+static inline void airq_iv_free_bit(struct airq_iv *iv, unsigned long bit)
+{
+ airq_iv_free(iv, bit, 1);
+}
+
static inline unsigned long airq_iv_end(struct airq_iv *iv)
{
return iv->end;