Statistics
| Branch: | Revision:

root / hw / irq.h @ 95499a1d

History | View | Annotate | Download (821 Bytes)

1 87ecb68b pbrook
#ifndef QEMU_IRQ_H
2 87ecb68b pbrook
#define QEMU_IRQ_H
3 87ecb68b pbrook
4 d537cf6c pbrook
/* Generic IRQ/GPIO pin infrastructure.  */
5 d537cf6c pbrook
6 d537cf6c pbrook
typedef void (*qemu_irq_handler)(void *opaque, int n, int level);
7 d537cf6c pbrook
8 d537cf6c pbrook
void qemu_set_irq(qemu_irq irq, int level);
9 d537cf6c pbrook
10 d537cf6c pbrook
static inline void qemu_irq_raise(qemu_irq irq)
11 d537cf6c pbrook
{
12 d537cf6c pbrook
    qemu_set_irq(irq, 1);
13 d537cf6c pbrook
}
14 d537cf6c pbrook
15 d537cf6c pbrook
static inline void qemu_irq_lower(qemu_irq irq)
16 d537cf6c pbrook
{
17 d537cf6c pbrook
    qemu_set_irq(irq, 0);
18 d537cf6c pbrook
}
19 d537cf6c pbrook
20 106627d0 balrog
static inline void qemu_irq_pulse(qemu_irq irq)
21 106627d0 balrog
{
22 106627d0 balrog
    qemu_set_irq(irq, 1);
23 106627d0 balrog
    qemu_set_irq(irq, 0);
24 106627d0 balrog
}
25 106627d0 balrog
26 d537cf6c pbrook
/* Returns an array of N IRQs.  */
27 d537cf6c pbrook
qemu_irq *qemu_allocate_irqs(qemu_irq_handler handler, void *opaque, int n);
28 51bf9e7e aliguori
void qemu_free_irqs(qemu_irq *s);
29 d537cf6c pbrook
30 b50a6563 balrog
/* Returns a new IRQ with opposite polarity.  */
31 b50a6563 balrog
qemu_irq qemu_irq_invert(qemu_irq irq);
32 87ecb68b pbrook
33 9793212b Peter Maydell
/* Returns a new IRQ which feeds into both the passed IRQs */
34 9793212b Peter Maydell
qemu_irq qemu_irq_split(qemu_irq irq1, qemu_irq irq2);
35 9793212b Peter Maydell
36 87ecb68b pbrook
#endif