#ifndef PRIMECELL_H #define PRIMECELL_H /* Declarations for ARM PrimeCell based periperals. */ /* Also includes some devices that are currently only used by the ARM boards. */ /* pl031.c */ void pl031_init(uint32_t base, qemu_irq irq); /* pl110.c */ void *pl110_init(uint32_t base, qemu_irq irq, int); /* pl011.c */ enum pl011_type { PL011_ARM, PL011_LUMINARY }; void pl011_init(uint32_t base, qemu_irq irq, CharDriverState *chr, enum pl011_type type); /* pl022.c */ typedef int (*ssi_xfer_cb)(void *, int); void pl022_init(uint32_t base, qemu_irq irq, ssi_xfer_cb xfer_cb, void *opaque); /* pl050.c */ void pl050_init(uint32_t base, qemu_irq irq, int is_mouse); /* pl061.c */ void pl061_float_high(void *opaque, uint8_t mask); qemu_irq *pl061_init(uint32_t base, qemu_irq irq, qemu_irq **out); /* pl080.c */ void *pl080_init(uint32_t base, qemu_irq irq, int nchannels); /* pl181.c */ void pl181_init(uint32_t base, BlockDriverState *bd, qemu_irq irq0, qemu_irq irq1); /* pl190.c */ qemu_irq *pl190_init(uint32_t base, qemu_irq irq, qemu_irq fiq); /* realview_gic.c */ qemu_irq *realview_gic_init(uint32_t base, qemu_irq parent_irq); /* mpcore.c */ extern qemu_irq *mpcore_irq_init(qemu_irq *cpu_irq); /* arm-timer.c */ void sp804_init(uint32_t base, qemu_irq irq); void icp_pit_init(uint32_t base, qemu_irq *pic, int irq); /* arm_sysctl.c */ void arm_sysctl_init(uint32_t base, uint32_t sys_id); /* versatile_pci.c */ PCIBus *pci_vpb_init(qemu_irq *pic, int irq, int realview); #endif