/* * Raspberry Pi emulation (c) 2012 Gregory Estrade * Upstreaming code cleanup [including bcm2835_*] (c) 2013 Jan Petrous * * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft * Written by Andrew Baumann * * This code is licensed under the GNU GPLv2 and later. */ #ifndef BCM2835_FB_H #define BCM2835_FB_H #include "hw/sysbus.h" #include "exec/address-spaces.h" #include "ui/console.h" #define TYPE_BCM2835_FB "bcm2835-fb" #define BCM2835_FB(obj) OBJECT_CHECK(BCM2835FBState, (obj), TYPE_BCM2835_FB) typedef struct { /*< private >*/ SysBusDevice busdev; /*< public >*/ uint32_t vcram_base, vcram_size; MemoryRegion *dma_mr; AddressSpace dma_as; MemoryRegion iomem; MemoryRegionSection fbsection; QemuConsole *con; qemu_irq mbox_irq; bool lock, invalidate, pending; uint32_t xres, yres; uint32_t xres_virtual, yres_virtual; uint32_t xoffset, yoffset; uint32_t bpp; uint32_t base, pitch, size; uint32_t pixo, alpha; } BCM2835FBState; void bcm2835_fb_reconfigure(BCM2835FBState *s, uint32_t *xres, uint32_t *yres, uint32_t *xoffset, uint32_t *yoffset, uint32_t *bpp, uint32_t *pixo, uint32_t *alpha); #endif