/* * Raspberry Pi emulation (c) 2012 Gregory Estrade * This code is licensed under the GNU GPLv2 and later. */ #ifndef BCM2835_MBOX_H #define BCM2835_MBOX_H #include "bcm2835_mbox_defs.h" #include "hw/sysbus.h" #include "exec/address-spaces.h" #define TYPE_BCM2835_MBOX "bcm2835-mbox" #define BCM2835_MBOX(obj) \ OBJECT_CHECK(BCM2835MboxState, (obj), TYPE_BCM2835_MBOX) typedef struct { uint32_t reg[MBOX_SIZE]; uint32_t count; uint32_t status; uint32_t config; } BCM2835Mbox; typedef struct { /*< private >*/ SysBusDevice busdev; /*< public >*/ MemoryRegion *mbox_mr; AddressSpace mbox_as; MemoryRegion iomem; qemu_irq arm_irq; bool mbox_irq_disabled; bool available[MBOX_CHAN_COUNT]; BCM2835Mbox mbox[2]; } BCM2835MboxState; #endif