1 /* 2 * QEMU Motorola 680x0 Macintosh Video Card Emulation 3 * Copyright (c) 2012-2018 Laurent Vivier 4 * 5 * some parts from QEMU G364 framebuffer Emulator. 6 * Copyright (c) 2007-2011 Herve Poussineau 7 * 8 * This work is licensed under the terms of the GNU GPL, version 2 or later. 9 * See the COPYING file in the top-level directory. 10 * 11 */ 12 13 #ifndef MACFB_H 14 #define MACFB_H 15 16 #include "exec/memory.h" 17 #include "ui/console.h" 18 #include "qom/object.h" 19 20 typedef struct MacfbState { 21 MemoryRegion mem_vram; 22 MemoryRegion mem_ctrl; 23 QemuConsole *con; 24 25 uint8_t *vram; 26 uint32_t vram_bit_mask; 27 uint32_t palette_current; 28 uint8_t color_palette[256 * 3]; 29 uint32_t width, height; /* in pixels */ 30 uint8_t depth; 31 } MacfbState; 32 33 #define TYPE_MACFB "sysbus-macfb" 34 OBJECT_DECLARE_SIMPLE_TYPE(MacfbSysBusState, MACFB) 35 36 struct MacfbSysBusState { 37 SysBusDevice busdev; 38 39 MacfbState macfb; 40 }; 41 42 #define TYPE_NUBUS_MACFB "nubus-macfb" 43 OBJECT_DECLARE_TYPE(MacfbNubusState, MacfbNubusDeviceClass, NUBUS_MACFB) 44 45 struct MacfbNubusDeviceClass { 46 DeviceClass parent_class; 47 48 DeviceRealize parent_realize; 49 }; 50 51 52 struct MacfbNubusState { 53 NubusDevice busdev; 54 55 MacfbState macfb; 56 }; 57 58 #endif 59