summaryrefslogtreecommitdiffstats
path: root/server/vd_interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'server/vd_interface.h')
-rw-r--r--server/vd_interface.h27
1 files changed, 21 insertions, 6 deletions
diff --git a/server/vd_interface.h b/server/vd_interface.h
index 12dbd5ff..7b91d11f 100644
--- a/server/vd_interface.h
+++ b/server/vd_interface.h
@@ -93,11 +93,12 @@ struct CoreInterface {
};
#define VD_INTERFACE_QXL "qxl"
-#define VD_INTERFACE_QXL_MAJOR 1
-#define VD_INTERFACE_QXL_MINOR 2
+#define VD_INTERFACE_QXL_MAJOR 2
+#define VD_INTERFACE_QXL_MINOR 0
typedef struct QXLInterface QXLInterface;
typedef void (*qxl_mode_change_notifier_t)(void *opaque);
typedef struct QXLWorker QXLWorker;
+typedef struct QXLDevMemSlot QXLDevMemSlot;
union QXLReleaseInfo;
struct QXLCommand;
struct QXLWorker {
@@ -112,6 +113,9 @@ struct QXLWorker {
void (*start)(QXLWorker *worker);
void (*stop)(QXLWorker *worker);
void (*update_area)(QXLWorker *worker);
+ void (*add_memslot)(QXLWorker *worker, QXLDevMemSlot *slot);
+ void (*del_memslot)(QXLWorker *worker, uint32_t slot_id);
+ void (*reset_memslots)(QXLWorker *worker);
};
typedef struct DrawArea {
@@ -124,10 +128,6 @@ typedef struct DrawArea {
} DrawArea;
typedef struct QXLDevInfo {
- long phys_delta;
- unsigned long phys_start;
- unsigned long phys_end;
-
uint32_t x_res;
uint32_t y_res;
uint32_t bits;
@@ -138,6 +138,20 @@ typedef struct QXLDevInfo {
uint32_t ram_size;
} QXLDevInfo;
+typedef struct QXLDevInitInfo {
+ uint32_t num_memslots;
+ uint8_t memslot_gen_bits;
+ uint8_t memslot_id_bits;
+} QXLDevInitInfo;
+
+struct QXLDevMemSlot {
+ uint32_t slot_id;
+ uint32_t generation;
+ unsigned long virt_start;
+ unsigned long virt_end;
+ uint64_t addr_delta;
+};
+
struct QXLInterface {
VDInterface base;
@@ -152,6 +166,7 @@ struct QXLInterface {
void *opaque);
void (*unregister_mode_change)(QXLInterface *qxl, VDObjectRef notifier);
+ void (*get_init_info)(QXLInterface *qxl, QXLDevInitInfo *info);
void (*get_info)(QXLInterface *qxl, QXLDevInfo *info);
int (*get_command)(QXLInterface *qxl, struct QXLCommand *cmd);
int (*req_cmd_notification)(QXLInterface *qxl);