Statistics
| Branch: | Revision:

root / hw / irq.h @ 9a31334f

History | View | Annotate | Download (703 Bytes)

1
#ifndef QEMU_IRQ_H
2
#define QEMU_IRQ_H
3

    
4
/* Generic IRQ/GPIO pin infrastructure.  */
5

    
6
typedef void (*qemu_irq_handler)(void *opaque, int n, int level);
7

    
8
void qemu_set_irq(qemu_irq irq, int level);
9

    
10
static inline void qemu_irq_raise(qemu_irq irq)
11
{
12
    qemu_set_irq(irq, 1);
13
}
14

    
15
static inline void qemu_irq_lower(qemu_irq irq)
16
{
17
    qemu_set_irq(irq, 0);
18
}
19

    
20
static inline void qemu_irq_pulse(qemu_irq irq)
21
{
22
    qemu_set_irq(irq, 1);
23
    qemu_set_irq(irq, 0);
24
}
25

    
26
/* Returns an array of N IRQs.  */
27
qemu_irq *qemu_allocate_irqs(qemu_irq_handler handler, void *opaque, int n);
28
void qemu_free_irqs(qemu_irq *s);
29

    
30
/* Returns a new IRQ with opposite polarity.  */
31
qemu_irq qemu_irq_invert(qemu_irq irq);
32

    
33
#endif