/* * Raspberry Pi emulation (c) 2012 Gregory Estrade * * This work is licensed under the terms of the GNU GPL, version 2 or later. * See the COPYING file in the top-level directory. */ #ifndef BCM2835_MBOX_H #define BCM2835_MBOX_H #include "bcm2835_mbox_defs.h" #include "hw/sysbus.h" #include "qom/object.h" #define TYPE_BCM2835_MBOX "bcm2835-mbox" OBJECT_DECLARE_SIMPLE_TYPE(BCM2835MboxState, BCM2835_MBOX) typedef struct { uint32_t reg[MBOX_SIZE]; uint32_t count; uint32_t status; uint32_t config; } BCM2835Mbox; struct BCM2835MboxState { /*< 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]; }; #endif