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 "qemu/osdep.h" 17#include "exec/memory.h" 18#include "ui/console.h" 19#include "qom/object.h" 20 21typedef struct MacfbState { 22 MemoryRegion mem_vram; 23 MemoryRegion mem_ctrl; 24 QemuConsole *con; 25 26 uint8_t *vram; 27 uint32_t vram_bit_mask; 28 uint32_t palette_current; 29 uint8_t color_palette[256 * 3]; 30 uint32_t width, height; /* in pixels */ 31 uint8_t depth; 32} MacfbState; 33 34#define TYPE_MACFB "sysbus-macfb" 35OBJECT_DECLARE_SIMPLE_TYPE(MacfbSysBusState, MACFB) 36 37struct MacfbSysBusState { 38 SysBusDevice busdev; 39 40 MacfbState macfb; 41}; 42 43#define TYPE_NUBUS_MACFB "nubus-macfb" 44OBJECT_DECLARE_TYPE(MacfbNubusState, MacfbNubusDeviceClass, NUBUS_MACFB) 45 46struct MacfbNubusDeviceClass { 47 DeviceClass parent_class; 48 49 DeviceRealize parent_realize; 50}; 51 52 53struct MacfbNubusState { 54 NubusDevice busdev; 55 56 MacfbState macfb; 57}; 58 59#endif 60