]>
Commit | Line | Data |
---|---|---|
87ecb68b PB |
1 | #ifndef QEMU_IRQ_H |
2 | #define QEMU_IRQ_H | |
3 | ||
d537cf6c PB |
4 | /* Generic IRQ/GPIO pin infrastructure. */ |
5 | ||
87ecb68b | 6 | /* FIXME: Rmove one of these. */ |
d537cf6c | 7 | typedef void (*qemu_irq_handler)(void *opaque, int n, int level); |
87ecb68b | 8 | typedef void SetIRQFunc(void *opaque, int irq_num, int level); |
d537cf6c PB |
9 | |
10 | void qemu_set_irq(qemu_irq irq, int level); | |
11 | ||
12 | static inline void qemu_irq_raise(qemu_irq irq) | |
13 | { | |
14 | qemu_set_irq(irq, 1); | |
15 | } | |
16 | ||
17 | static inline void qemu_irq_lower(qemu_irq irq) | |
18 | { | |
19 | qemu_set_irq(irq, 0); | |
20 | } | |
21 | ||
106627d0 AZ |
22 | static inline void qemu_irq_pulse(qemu_irq irq) |
23 | { | |
24 | qemu_set_irq(irq, 1); | |
25 | qemu_set_irq(irq, 0); | |
26 | } | |
27 | ||
d537cf6c PB |
28 | /* Returns an array of N IRQs. */ |
29 | qemu_irq *qemu_allocate_irqs(qemu_irq_handler handler, void *opaque, int n); | |
51bf9e7e | 30 | void qemu_free_irqs(qemu_irq *s); |
d537cf6c | 31 | |
b50a6563 AZ |
32 | /* Returns a new IRQ with opposite polarity. */ |
33 | qemu_irq qemu_irq_invert(qemu_irq irq); | |
87ecb68b PB |
34 | |
35 | #endif |