Statistics
| Branch: | Revision:

root / hw / irq.h @ 8af7a3ab

History | View | Annotate | Download (800 Bytes)

1
#ifndef QEMU_IRQ_H
2
#define QEMU_IRQ_H
3

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

    
6
/* FIXME: Rmove one of these.  */
7
typedef void (*qemu_irq_handler)(void *opaque, int n, int level);
8
typedef void SetIRQFunc(void *opaque, int irq_num, int level);
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

    
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

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

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

    
35
#endif