Lines Matching defs:qxl
31 #include "qxl.h"
34 /* TODO: taken from qemu qxl.c, try to remove duplication */
68 void xspice_init_qxl_ram(qxl_screen_t *qxl)
70 QXLRam *ram = get_ram_header(qxl);
83 static void qxl_reset_state(qxl_screen_t *qxl)
85 QXLRam *ram = get_ram_header(qxl);
89 qxl->shadow_rom.update_id = 0;
90 *qxl->rom = qxl->shadow_rom;
91 xspice_init_qxl_ram(qxl);
92 qxl->num_free_res = 0;
93 qxl->last_release = NULL;
95 //memset(&qxl->ssd.dirty, 0, sizeof(qxl->ssd.dirty));
98 static void qxl_check_state(qxl_screen_t *qxl)
100 QXLRam *ram = get_ram_header(qxl);
106 static void qxl_soft_reset(qxl_screen_t *qxl)
109 qxl_check_state(qxl);
112 static void qxl_reset_surfaces(qxl_screen_t *qxl)
115 spice_qxl_destroy_surfaces(&qxl->display_sin);
120 static void qxl_hard_reset(qxl_screen_t *qxl)
124 spice_qxl_reset_cursor(&qxl->display_sin);
125 spice_qxl_reset_image_cache(&qxl->display_sin);
126 qxl_reset_surfaces(qxl);
128 qxl_reset_state(qxl);
129 qxl_soft_reset(qxl);
134 static void qxl_create_guest_primary(qxl_screen_t *qxl)
137 QXLSurfaceCreate *sc = &qxl->guest_primary.surface;
152 qxl->cmdflags = 0;
153 spice_qxl_create_primary_surface(&qxl->display_sin, 0, &surface);
156 static void qxl_destroy_primary(qxl_screen_t *qxl)
160 spice_qxl_destroy_primary_surface(&qxl->display_sin, 0);
164 static void qxl_set_mode(qxl_screen_t *qxl, int modenr)
166 struct QXLMode *mode = qxl->modes + modenr;
167 uint64_t devmem = pointer_to_u64(qxl->ram);
175 .mem = devmem + qxl->shadow_rom.draw_area_offset,
180 qxl_hard_reset(qxl);
182 qxl->guest_primary.surface = surface;
183 qxl_create_guest_primary(qxl);
185 qxl->cmdflags = QXL_COMMAND_FLAG_COMPAT;
188 qxl->cmdflags |= QXL_COMMAND_FLAG_COMPAT_16BPP;
191 qxl->shadow_rom.mode = modenr;
192 qxl->rom->mode = modenr;
196 void ioport_write(qxl_screen_t *qxl, uint32_t io_port, uint32_t val)
198 QXLRam *header = get_ram_header(qxl);
200 if (!qxl->worker_running) {
208 spice_qxl_update_area(&qxl->display_sin, header->update_surface,
213 spice_qxl_wakeup(&qxl->display_sin);
216 spice_qxl_wakeup(&qxl->display_sin);
230 spice_qxl_oom(&qxl->display_sin);
234 qxl_set_mode(qxl, val);
237 fprintf(stderr, "qxl/guest: %s", header->log_buf);
241 qxl_hard_reset(qxl);
252 qxl->guest_primary.surface =
254 qxl_create_guest_primary(qxl);
259 qxl_destroy_primary(qxl);
262 spice_qxl_destroy_surface_wait(&qxl->display_sin, val);
265 spice_qxl_destroy_surfaces(&qxl->display_sin);
269 spice_qxl_flush_surfaces_async(&qxl->display_sin, 0);