xref: /openbmc/qemu/include/hw/display/macfb.h (revision 77c05b0b)
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