#ifndef HW_QXL_H
-#define HW_QXL_H 1
+#define HW_QXL_H
#include "qemu-common.h"
#define QXL_NUM_DIRTY_RECTS 64
+#define QXL_PAGE_BITS 12
+#define QXL_PAGE_SIZE (1 << QXL_PAGE_BITS);
+
typedef struct PCIQXLDevice {
PCIDevice pci;
+ PortioList vga_port_list;
SimpleSpiceDisplay ssd;
int id;
uint32_t debug;
struct guest_slots {
QXLMemSlot slot;
- void *ptr;
+ MemoryRegion *mr;
+ uint64_t offset;
uint64_t size;
uint64_t delta;
uint32_t active;
QemuMutex track_lock;
/* thread signaling */
- QemuThread main;
- int pipe[2];
+ QEMUBH *update_irq;
/* ram pci bar */
QXLRam *ram;
QXLModes *modes;
uint32_t rom_size;
MemoryRegion rom_bar;
+#if SPICE_SERVER_VERSION >= 0x000c06 /* release 0.12.6 */
+ uint16_t max_outputs;
+#endif
/* vram pci bar */
- uint32_t vram_size;
+ uint64_t vram_size;
MemoryRegion vram_bar;
- uint32_t vram32_size;
+ uint64_t vram32_size;
MemoryRegion vram32_bar;
/* io bar */
QEMUBH *update_area_bh;
} PCIQXLDevice;
+#define TYPE_PCI_QXL "pci-qxl"
+#define PCI_QXL(obj) OBJECT_CHECK(PCIQXLDevice, (obj), TYPE_PCI_QXL)
+
#define PANIC_ON(x) if ((x)) { \
printf("%s: PANIC %s failed\n", __FUNCTION__, #x); \
abort(); \