summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann <ssp@redhat.com>2010-04-21 10:51:50 -0400
committerSøren Sandmann Pedersen <ssp@redhat.com>2010-09-14 06:32:08 -0400
commit0ce5e9a3f459685ebdd900bfe2f85e073565f4bc (patch)
treee50a125d3db4044f5863d19d5ea4dd86ed09a08c
parent586669561b01e289f989911cd363810420539435 (diff)
Update qxl.h to deal with surface0
-rw-r--r--src/qxl.h103
1 files changed, 61 insertions, 42 deletions
diff --git a/src/qxl.h b/src/qxl.h
index cb2439a..4ee30e4 100644
--- a/src/qxl.h
+++ b/src/qxl.h
@@ -58,10 +58,14 @@ enum {
QXL_IO_UPDATE_IRQ,
QXL_IO_NOTIFY_OOM,
QXL_IO_RESET,
- QXL_IO_SET_MODE,
QXL_IO_LOG,
QXL_IO_MEMSLOT_ADD,
- QXL_IO_MEMSLOT_DEL
+ QXL_IO_MEMSLOT_DEL,
+ QXL_IO_DETACH_PRIMARY,
+ QXL_IO_ATTACH_PRIMARY,
+ QXL_IO_CREATE_PRIMARY,
+ QXL_IO_DESTROY_PRIMARY,
+ QXL_IO_DESTROY_SURFACE_WAIT
};
struct qxl_mode {
@@ -102,6 +106,11 @@ union qxl_release_info {
uint64_t next;
};
+struct qxl_release_info_ext {
+ union qxl_release_info * info;
+ uint32_t group_id;
+};
+
struct qxl_clip {
uint32_t type;
uint64_t address;
@@ -340,28 +349,28 @@ typedef enum {
} qxl_draw_type;
struct qxl_drawable {
- union qxl_release_info release_info;
- unsigned char effect;
- unsigned char type;
- unsigned short bitmap_offset;
- struct qxl_rect bitmap_area;
- struct qxl_rect bbox;
- struct qxl_clip clip;
- uint32_t mm_time;
+ union qxl_release_info release_info;
+ uint8_t effect;
+ uint8_t type;
+ uint8_t self_bitmap;
+ struct qxl_rect bitmap_area;
+ struct qxl_rect bbox;
+ struct qxl_clip clip;
+ uint32_t mm_time;
union {
- struct qxl_fill fill;
- struct qxl_opaque opaque;
- struct qxl_copy copy;
- struct qxl_transparent transparent;
- struct qxl_alpha_blend alpha_blend;
- struct qxl_copy_bits copy_bits;
- struct qxl_blend blend;
- struct qxl_rop3 rop3;
- struct qxl_stroke stroke;
- struct qxl_text text;
- struct qxl_blackness blackness;
- struct qxl_inverse inverse;
- struct qxl_whiteness whiteness;
+ struct qxl_fill fill;
+ struct qxl_opaque opaque;
+ struct qxl_copy copy;
+ struct qxl_transparent transparent;
+ struct qxl_alpha_blend alpha_blend;
+ struct qxl_copy_bits copy_bits;
+ struct qxl_blend blend;
+ struct qxl_rop3 rop3;
+ struct qxl_stroke stroke;
+ struct qxl_text text;
+ struct qxl_blackness blackness;
+ struct qxl_inverse inverse;
+ struct qxl_whiteness whiteness;
} u;
};
@@ -435,12 +444,9 @@ struct qxl_rom {
uint32_t update_id;
uint32_t compression_level;
uint32_t log_level;
- uint32_t mode;
uint32_t modes_offset;
- uint32_t num_io_pages;
- uint32_t pages_offset;
- uint32_t draw_area_offset;
- uint32_t draw_area_size;
+ uint32_t num_pages;
+ uint32_t surface0_area_size;
uint32_t ram_header_offset;
uint32_t mm_clock;
uint64_t flags;
@@ -459,23 +465,36 @@ struct qxl_ring_header {
uint32_t notify_on_cons;
};
+struct qxl_surface_create {
+ uint32_t width;
+ uint32_t height;
+ int32_t stride;
+ uint32_t depth;
+ uint32_t position;
+ uint32_t mouse_mode;
+ uint32_t flags;
+ uint32_t type;
+ uint64_t mem;
+};
+
#define QXL_LOG_BUF_SIZE 4096
struct qxl_ram_header {
- uint32_t magic;
- uint32_t int_pending;
- uint32_t int_mask;
- unsigned char log_buf[QXL_LOG_BUF_SIZE];
- struct qxl_ring_header cmd_ring_hdr;
- struct qxl_command cmd_ring[32];
- struct qxl_ring_header cursor_ring_hdr;
- struct qxl_command cursor_ring[32];
- struct qxl_ring_header release_ring_hdr;
- uint64_t release_ring[8];
- struct qxl_rect update_area;
- uint64_t mem_slot_start;
- uint64_t mem_slot_end;
- uint64_t flags;
+ uint32_t magic;
+ uint32_t int_pending;
+ uint32_t int_mask;
+ unsigned char log_buf[QXL_LOG_BUF_SIZE];
+ struct qxl_ring_header cmd_ring_hdr;
+ struct qxl_command cmd_ring[32];
+ struct qxl_ring_header cursor_ring_hdr;
+ struct qxl_command cursor_ring[32];
+ struct qxl_ring_header release_ring_hdr;
+ uint64_t release_ring[8];
+ struct qxl_rect update_area;
+ uint64_t mem_slot_start;
+ uint64_t mem_slot_end;
+ struct qxl_surface_create create_surface;
+ uint64_t flags;
};
#pragma pack(pop)