Implement cancellation method for dma async I/O (Avi Kivity)
[qemu-kvm/fedora.git] / hw / primecell.h
blob09e73ed69fee1399573a63e1d455ed9a96dbd8e3
1 #ifndef PRIMECELL_H
2 #define PRIMECELL_H
4 /* Declarations for ARM PrimeCell based periperals. */
5 /* Also includes some devices that are currently only used by the
6 ARM boards. */
8 /* pl031.c */
9 void pl031_init(uint32_t base, qemu_irq irq);
11 /* pl110.c */
12 void *pl110_init(uint32_t base, qemu_irq irq, int);
14 /* pl011.c */
15 enum pl011_type {
16 PL011_ARM,
17 PL011_LUMINARY
20 void pl011_init(uint32_t base, qemu_irq irq, CharDriverState *chr,
21 enum pl011_type type);
23 /* pl022.c */
24 typedef int (*ssi_xfer_cb)(void *, int);
25 void pl022_init(uint32_t base, qemu_irq irq, ssi_xfer_cb xfer_cb,
26 void *opaque);
28 /* pl050.c */
29 void pl050_init(uint32_t base, qemu_irq irq, int is_mouse);
31 /* pl061.c */
32 void pl061_float_high(void *opaque, uint8_t mask);
33 qemu_irq *pl061_init(uint32_t base, qemu_irq irq, qemu_irq **out);
35 /* pl080.c */
36 void *pl080_init(uint32_t base, qemu_irq irq, int nchannels);
38 /* pl181.c */
39 void pl181_init(uint32_t base, BlockDriverState *bd,
40 qemu_irq irq0, qemu_irq irq1);
42 /* pl190.c */
43 qemu_irq *pl190_init(uint32_t base, qemu_irq irq, qemu_irq fiq);
45 /* realview_gic.c */
46 qemu_irq *realview_gic_init(uint32_t base, qemu_irq parent_irq);
48 /* mpcore.c */
49 extern qemu_irq *mpcore_irq_init(qemu_irq *cpu_irq);
51 /* arm-timer.c */
52 void sp804_init(uint32_t base, qemu_irq irq);
53 void icp_pit_init(uint32_t base, qemu_irq *pic, int irq);
55 /* arm_sysctl.c */
56 void arm_sysctl_init(uint32_t base, uint32_t sys_id);
58 /* versatile_pci.c */
59 PCIBus *pci_vpb_init(qemu_irq *pic, int irq, int realview);
61 #endif