[virtmagma] update virtio header

Test: ran virtmagma_vulkan_unit_tests
Change-Id: I8fb92b518293f9013afffb5e3dd3f90df8aa61d0
diff --git a/include/uapi/linux/virtio_magma.h b/include/uapi/linux/virtio_magma.h
index 74f441d..64e8c42 100644
--- a/include/uapi/linux/virtio_magma.h
+++ b/include/uapi/linux/virtio_magma.h
@@ -18,104 +18,110 @@
 
 enum virtio_magma_ctrl_type {
 	/* magma commands */
-	VIRTIO_MAGMA_CMD_QUERY = 0x0400,
-	VIRTIO_MAGMA_CMD_CREATE_CONNECTION,
-	VIRTIO_MAGMA_CMD_RELEASE_CONNECTION,
-	VIRTIO_MAGMA_CMD_GET_ERROR,
-	VIRTIO_MAGMA_CMD_CREATE_CONTEXT,
-	VIRTIO_MAGMA_CMD_RELEASE_CONTEXT,
-	VIRTIO_MAGMA_CMD_CREATE_BUFFER,
-	VIRTIO_MAGMA_CMD_RELEASE_BUFFER,
-	VIRTIO_MAGMA_CMD_DUPLICATE_HANDLE,
-	VIRTIO_MAGMA_CMD_RELEASE_BUFFER_HANDLE,
-	VIRTIO_MAGMA_CMD_GET_BUFFER_ID,
-	VIRTIO_MAGMA_CMD_GET_BUFFER_SIZE,
-	VIRTIO_MAGMA_CMD_CLEAN_CACHE,
-	VIRTIO_MAGMA_CMD_SET_CACHE_POLICY,
-	VIRTIO_MAGMA_CMD_GET_BUFFER_CACHE_POLICY,
-	VIRTIO_MAGMA_CMD_GET_BUFFER_IS_MAPPABLE,
-	VIRTIO_MAGMA_CMD_SET_BUFFER_MAPPING_ADDRESS_RANGE,
-	VIRTIO_MAGMA_CMD_MAP,
-	VIRTIO_MAGMA_CMD_MAP_ALIGNED,
-	VIRTIO_MAGMA_CMD_MAP_SPECIFIC,
-	VIRTIO_MAGMA_CMD_UNMAP,
-	VIRTIO_MAGMA_CMD_MAP_BUFFER_GPU,
-	VIRTIO_MAGMA_CMD_UNMAP_BUFFER_GPU,
-	VIRTIO_MAGMA_CMD_COMMIT_BUFFER,
-	VIRTIO_MAGMA_CMD_EXPORT,
-	VIRTIO_MAGMA_CMD_IMPORT,
-	VIRTIO_MAGMA_CMD_CREATE_COMMAND_BUFFER,
-	VIRTIO_MAGMA_CMD_RELEASE_COMMAND_BUFFER,
-	VIRTIO_MAGMA_CMD_SUBMIT_COMMAND_BUFFER,
-	VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS,
-	VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS2,
-	VIRTIO_MAGMA_CMD_CREATE_SEMAPHORE,
-	VIRTIO_MAGMA_CMD_RELEASE_SEMAPHORE,
-	VIRTIO_MAGMA_CMD_GET_SEMAPHORE_ID,
-	VIRTIO_MAGMA_CMD_SIGNAL_SEMAPHORE,
-	VIRTIO_MAGMA_CMD_RESET_SEMAPHORE,
-	VIRTIO_MAGMA_CMD_WAIT_SEMAPHORES,
-	VIRTIO_MAGMA_CMD_EXPORT_SEMAPHORE,
-	VIRTIO_MAGMA_CMD_IMPORT_SEMAPHORE,
-	VIRTIO_MAGMA_CMD_GET_NOTIFICATION_CHANNEL_HANDLE,
-	VIRTIO_MAGMA_CMD_WAIT_NOTIFICATION_CHANNEL,
-	VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL,
+	VIRTIO_MAGMA_CMD_QUERY = 0x1001,
+	VIRTIO_MAGMA_CMD_QUERY_RETURNS_BUFFER = 0x1002,
+	VIRTIO_MAGMA_CMD_CREATE_CONNECTION = 0x1003,
+	VIRTIO_MAGMA_CMD_RELEASE_CONNECTION = 0x1004,
+	VIRTIO_MAGMA_CMD_GET_ERROR = 0x1005,
+	VIRTIO_MAGMA_CMD_CREATE_CONTEXT = 0x1006,
+	VIRTIO_MAGMA_CMD_RELEASE_CONTEXT = 0x1007,
+	VIRTIO_MAGMA_CMD_CREATE_BUFFER = 0x1008,
+	VIRTIO_MAGMA_CMD_RELEASE_BUFFER = 0x1009,
+	VIRTIO_MAGMA_CMD_DUPLICATE_HANDLE = 0x100A,
+	VIRTIO_MAGMA_CMD_RELEASE_BUFFER_HANDLE = 0x100B,
+	VIRTIO_MAGMA_CMD_GET_BUFFER_ID = 0x100C,
+	VIRTIO_MAGMA_CMD_GET_BUFFER_SIZE = 0x100D,
+	VIRTIO_MAGMA_CMD_CLEAN_CACHE = 0x100E,
+	VIRTIO_MAGMA_CMD_SET_CACHE_POLICY = 0x100F,
+	VIRTIO_MAGMA_CMD_GET_BUFFER_CACHE_POLICY = 0x1010,
+	VIRTIO_MAGMA_CMD_GET_BUFFER_IS_MAPPABLE = 0x1011,
+	VIRTIO_MAGMA_CMD_SET_BUFFER_MAPPING_ADDRESS_RANGE = 0x1012,
+	VIRTIO_MAGMA_CMD_MAP = 0x1013,
+	VIRTIO_MAGMA_CMD_MAP_ALIGNED = 0x1014,
+	VIRTIO_MAGMA_CMD_MAP_SPECIFIC = 0x1015,
+	VIRTIO_MAGMA_CMD_UNMAP = 0x1016,
+	VIRTIO_MAGMA_CMD_MAP_BUFFER_GPU = 0x1017,
+	VIRTIO_MAGMA_CMD_UNMAP_BUFFER_GPU = 0x1018,
+	VIRTIO_MAGMA_CMD_COMMIT_BUFFER = 0x1019,
+	VIRTIO_MAGMA_CMD_EXPORT = 0x101A,
+	VIRTIO_MAGMA_CMD_IMPORT = 0x101B,
+	VIRTIO_MAGMA_CMD_CREATE_COMMAND_BUFFER = 0x101C,
+	VIRTIO_MAGMA_CMD_RELEASE_COMMAND_BUFFER = 0x101D,
+	VIRTIO_MAGMA_CMD_SUBMIT_COMMAND_BUFFER = 0x101E,
+	VIRTIO_MAGMA_CMD_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES = 0x101F,
+	VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS = 0x1020,
+	VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS2 = 0x1021,
+	VIRTIO_MAGMA_CMD_CREATE_SEMAPHORE = 0x1022,
+	VIRTIO_MAGMA_CMD_RELEASE_SEMAPHORE = 0x1023,
+	VIRTIO_MAGMA_CMD_GET_SEMAPHORE_ID = 0x1024,
+	VIRTIO_MAGMA_CMD_SIGNAL_SEMAPHORE = 0x1025,
+	VIRTIO_MAGMA_CMD_RESET_SEMAPHORE = 0x1026,
+	VIRTIO_MAGMA_CMD_WAIT_SEMAPHORES = 0x1027,
+	VIRTIO_MAGMA_CMD_EXPORT_SEMAPHORE = 0x1028,
+	VIRTIO_MAGMA_CMD_IMPORT_SEMAPHORE = 0x1029,
+	VIRTIO_MAGMA_CMD_GET_NOTIFICATION_CHANNEL_HANDLE = 0x102A,
+	VIRTIO_MAGMA_CMD_WAIT_NOTIFICATION_CHANNEL = 0x102B,
+	VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL = 0x102C,
 	/* magma success responses */
-	VIRTIO_MAGMA_RESP_QUERY = 0x1180,
-	VIRTIO_MAGMA_RESP_CREATE_CONNECTION,
-	VIRTIO_MAGMA_RESP_RELEASE_CONNECTION,
-	VIRTIO_MAGMA_RESP_GET_ERROR,
-	VIRTIO_MAGMA_RESP_CREATE_CONTEXT,
-	VIRTIO_MAGMA_RESP_RELEASE_CONTEXT,
-	VIRTIO_MAGMA_RESP_CREATE_BUFFER,
-	VIRTIO_MAGMA_RESP_RELEASE_BUFFER,
-	VIRTIO_MAGMA_RESP_DUPLICATE_HANDLE,
-	VIRTIO_MAGMA_RESP_RELEASE_BUFFER_HANDLE,
-	VIRTIO_MAGMA_RESP_GET_BUFFER_ID,
-	VIRTIO_MAGMA_RESP_GET_BUFFER_SIZE,
-	VIRTIO_MAGMA_RESP_CLEAN_CACHE,
-	VIRTIO_MAGMA_RESP_SET_CACHE_POLICY,
-	VIRTIO_MAGMA_RESP_GET_BUFFER_CACHE_POLICY,
-	VIRTIO_MAGMA_RESP_GET_BUFFER_IS_MAPPABLE,
-	VIRTIO_MAGMA_RESP_SET_BUFFER_MAPPING_ADDRESS_RANGE,
-	VIRTIO_MAGMA_RESP_MAP,
-	VIRTIO_MAGMA_RESP_MAP_ALIGNED,
-	VIRTIO_MAGMA_RESP_MAP_SPECIFIC,
-	VIRTIO_MAGMA_RESP_UNMAP,
-	VIRTIO_MAGMA_RESP_MAP_BUFFER_GPU,
-	VIRTIO_MAGMA_RESP_UNMAP_BUFFER_GPU,
-	VIRTIO_MAGMA_RESP_COMMIT_BUFFER,
-	VIRTIO_MAGMA_RESP_EXPORT,
-	VIRTIO_MAGMA_RESP_IMPORT,
-	VIRTIO_MAGMA_RESP_CREATE_COMMAND_BUFFER,
-	VIRTIO_MAGMA_RESP_RELEASE_COMMAND_BUFFER,
-	VIRTIO_MAGMA_RESP_SUBMIT_COMMAND_BUFFER,
-	VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS,
-	VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS2,
-	VIRTIO_MAGMA_RESP_CREATE_SEMAPHORE,
-	VIRTIO_MAGMA_RESP_RELEASE_SEMAPHORE,
-	VIRTIO_MAGMA_RESP_GET_SEMAPHORE_ID,
-	VIRTIO_MAGMA_RESP_SIGNAL_SEMAPHORE,
-	VIRTIO_MAGMA_RESP_RESET_SEMAPHORE,
-	VIRTIO_MAGMA_RESP_WAIT_SEMAPHORES,
-	VIRTIO_MAGMA_RESP_EXPORT_SEMAPHORE,
-	VIRTIO_MAGMA_RESP_IMPORT_SEMAPHORE,
-	VIRTIO_MAGMA_RESP_GET_NOTIFICATION_CHANNEL_HANDLE,
-	VIRTIO_MAGMA_RESP_WAIT_NOTIFICATION_CHANNEL,
-	VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL,
+	VIRTIO_MAGMA_RESP_QUERY = 0x2001,
+	VIRTIO_MAGMA_RESP_QUERY_RETURNS_BUFFER = 0x2002,
+	VIRTIO_MAGMA_RESP_CREATE_CONNECTION = 0x2003,
+	VIRTIO_MAGMA_RESP_RELEASE_CONNECTION = 0x2004,
+	VIRTIO_MAGMA_RESP_GET_ERROR = 0x2005,
+	VIRTIO_MAGMA_RESP_CREATE_CONTEXT = 0x2006,
+	VIRTIO_MAGMA_RESP_RELEASE_CONTEXT = 0x2007,
+	VIRTIO_MAGMA_RESP_CREATE_BUFFER = 0x2008,
+	VIRTIO_MAGMA_RESP_RELEASE_BUFFER = 0x2009,
+	VIRTIO_MAGMA_RESP_DUPLICATE_HANDLE = 0x200A,
+	VIRTIO_MAGMA_RESP_RELEASE_BUFFER_HANDLE = 0x200B,
+	VIRTIO_MAGMA_RESP_GET_BUFFER_ID = 0x200C,
+	VIRTIO_MAGMA_RESP_GET_BUFFER_SIZE = 0x200D,
+	VIRTIO_MAGMA_RESP_CLEAN_CACHE = 0x200E,
+	VIRTIO_MAGMA_RESP_SET_CACHE_POLICY = 0x200F,
+	VIRTIO_MAGMA_RESP_GET_BUFFER_CACHE_POLICY = 0x2010,
+	VIRTIO_MAGMA_RESP_GET_BUFFER_IS_MAPPABLE = 0x2011,
+	VIRTIO_MAGMA_RESP_SET_BUFFER_MAPPING_ADDRESS_RANGE = 0x2012,
+	VIRTIO_MAGMA_RESP_MAP = 0x2013,
+	VIRTIO_MAGMA_RESP_MAP_ALIGNED = 0x2014,
+	VIRTIO_MAGMA_RESP_MAP_SPECIFIC = 0x2015,
+	VIRTIO_MAGMA_RESP_UNMAP = 0x2016,
+	VIRTIO_MAGMA_RESP_MAP_BUFFER_GPU = 0x2017,
+	VIRTIO_MAGMA_RESP_UNMAP_BUFFER_GPU = 0x2018,
+	VIRTIO_MAGMA_RESP_COMMIT_BUFFER = 0x2019,
+	VIRTIO_MAGMA_RESP_EXPORT = 0x201A,
+	VIRTIO_MAGMA_RESP_IMPORT = 0x201B,
+	VIRTIO_MAGMA_RESP_CREATE_COMMAND_BUFFER = 0x201C,
+	VIRTIO_MAGMA_RESP_RELEASE_COMMAND_BUFFER = 0x201D,
+	VIRTIO_MAGMA_RESP_SUBMIT_COMMAND_BUFFER = 0x201E,
+	VIRTIO_MAGMA_RESP_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES = 0x201F,
+	VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS = 0x2020,
+	VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS2 = 0x2021,
+	VIRTIO_MAGMA_RESP_CREATE_SEMAPHORE = 0x2022,
+	VIRTIO_MAGMA_RESP_RELEASE_SEMAPHORE = 0x2023,
+	VIRTIO_MAGMA_RESP_GET_SEMAPHORE_ID = 0x2024,
+	VIRTIO_MAGMA_RESP_SIGNAL_SEMAPHORE = 0x2025,
+	VIRTIO_MAGMA_RESP_RESET_SEMAPHORE = 0x2026,
+	VIRTIO_MAGMA_RESP_WAIT_SEMAPHORES = 0x2027,
+	VIRTIO_MAGMA_RESP_EXPORT_SEMAPHORE = 0x2028,
+	VIRTIO_MAGMA_RESP_IMPORT_SEMAPHORE = 0x2029,
+	VIRTIO_MAGMA_RESP_GET_NOTIFICATION_CHANNEL_HANDLE = 0x202A,
+	VIRTIO_MAGMA_RESP_WAIT_NOTIFICATION_CHANNEL = 0x202B,
+	VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL = 0x202C,
 	/* magma error responses */
-	VIRTIO_MAGMA_RESP_ERR_UNIMPLEMENTED = 0x1280,
-	VIRTIO_MAGMA_RESP_ERR_INTERNAL,
-	VIRTIO_MAGMA_RESP_ERR_HOST_DISCONNECTED,
-	VIRTIO_MAGMA_RESP_ERR_OUT_OF_MEMORY,
-	VIRTIO_MAGMA_RESP_ERR_INVALID_COMMAND,
-	VIRTIO_MAGMA_RESP_ERR_INVALID_ARGUMENT,
+	VIRTIO_MAGMA_RESP_ERR_UNIMPLEMENTED = 0x3001,
+	VIRTIO_MAGMA_RESP_ERR_INTERNAL = 0x3002,
+	VIRTIO_MAGMA_RESP_ERR_HOST_DISCONNECTED = 0x3003,
+	VIRTIO_MAGMA_RESP_ERR_OUT_OF_MEMORY = 0x3004,
+	VIRTIO_MAGMA_RESP_ERR_INVALID_COMMAND = 0x3005,
+	VIRTIO_MAGMA_RESP_ERR_INVALID_ARGUMENT = 0x3006,
 } __attribute((packed));
 
 inline const char* virtio_magma_ctrl_type_string(enum virtio_magma_ctrl_type type) {
 	switch (type) {
 		case VIRTIO_MAGMA_CMD_QUERY: return "VIRTIO_MAGMA_CMD_QUERY";
 		case VIRTIO_MAGMA_RESP_QUERY: return "VIRTIO_MAGMA_RESP_QUERY";
+		case VIRTIO_MAGMA_CMD_QUERY_RETURNS_BUFFER: return "VIRTIO_MAGMA_CMD_QUERY_RETURNS_BUFFER";
+		case VIRTIO_MAGMA_RESP_QUERY_RETURNS_BUFFER: return "VIRTIO_MAGMA_RESP_QUERY_RETURNS_BUFFER";
 		case VIRTIO_MAGMA_CMD_CREATE_CONNECTION: return "VIRTIO_MAGMA_CMD_CREATE_CONNECTION";
 		case VIRTIO_MAGMA_RESP_CREATE_CONNECTION: return "VIRTIO_MAGMA_RESP_CREATE_CONNECTION";
 		case VIRTIO_MAGMA_CMD_RELEASE_CONNECTION: return "VIRTIO_MAGMA_CMD_RELEASE_CONNECTION";
@@ -172,6 +178,8 @@
 		case VIRTIO_MAGMA_RESP_RELEASE_COMMAND_BUFFER: return "VIRTIO_MAGMA_RESP_RELEASE_COMMAND_BUFFER";
 		case VIRTIO_MAGMA_CMD_SUBMIT_COMMAND_BUFFER: return "VIRTIO_MAGMA_CMD_SUBMIT_COMMAND_BUFFER";
 		case VIRTIO_MAGMA_RESP_SUBMIT_COMMAND_BUFFER: return "VIRTIO_MAGMA_RESP_SUBMIT_COMMAND_BUFFER";
+		case VIRTIO_MAGMA_CMD_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES: return "VIRTIO_MAGMA_CMD_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES";
+		case VIRTIO_MAGMA_RESP_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES: return "VIRTIO_MAGMA_RESP_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES";
 		case VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS: return "VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS";
 		case VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS: return "VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS";
 		case VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS2: return "VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS2";
@@ -198,6 +206,7 @@
 		case VIRTIO_MAGMA_RESP_WAIT_NOTIFICATION_CHANNEL: return "VIRTIO_MAGMA_RESP_WAIT_NOTIFICATION_CHANNEL";
 		case VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL: return "VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL";
 		case VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL: return "VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL";
+		case VIRTIO_MAGMA_RESP_ERR_UNIMPLEMENTED: return "VIRTIO_MAGMA_RESP_ERR_UNIMPLEMENTED";
 		case VIRTIO_MAGMA_RESP_ERR_INTERNAL: return "VIRTIO_MAGMA_RESP_ERR_INTERNAL";
 		case VIRTIO_MAGMA_RESP_ERR_HOST_DISCONNECTED: return "VIRTIO_MAGMA_RESP_ERR_HOST_DISCONNECTED";
 		case VIRTIO_MAGMA_RESP_ERR_OUT_OF_MEMORY: return "VIRTIO_MAGMA_RESP_ERR_OUT_OF_MEMORY";
@@ -210,6 +219,7 @@
 inline enum virtio_magma_ctrl_type virtio_magma_expected_response_type(enum virtio_magma_ctrl_type type) {
 	switch (type) {
 		case VIRTIO_MAGMA_CMD_QUERY: return VIRTIO_MAGMA_RESP_QUERY;
+		case VIRTIO_MAGMA_CMD_QUERY_RETURNS_BUFFER: return VIRTIO_MAGMA_RESP_QUERY_RETURNS_BUFFER;
 		case VIRTIO_MAGMA_CMD_CREATE_CONNECTION: return VIRTIO_MAGMA_RESP_CREATE_CONNECTION;
 		case VIRTIO_MAGMA_CMD_RELEASE_CONNECTION: return VIRTIO_MAGMA_RESP_RELEASE_CONNECTION;
 		case VIRTIO_MAGMA_CMD_GET_ERROR: return VIRTIO_MAGMA_RESP_GET_ERROR;
@@ -238,6 +248,7 @@
 		case VIRTIO_MAGMA_CMD_CREATE_COMMAND_BUFFER: return VIRTIO_MAGMA_RESP_CREATE_COMMAND_BUFFER;
 		case VIRTIO_MAGMA_CMD_RELEASE_COMMAND_BUFFER: return VIRTIO_MAGMA_RESP_RELEASE_COMMAND_BUFFER;
 		case VIRTIO_MAGMA_CMD_SUBMIT_COMMAND_BUFFER: return VIRTIO_MAGMA_RESP_SUBMIT_COMMAND_BUFFER;
+		case VIRTIO_MAGMA_CMD_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES: return VIRTIO_MAGMA_RESP_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES;
 		case VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS: return VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS;
 		case VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS2: return VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS2;
 		case VIRTIO_MAGMA_CMD_CREATE_SEMAPHORE: return VIRTIO_MAGMA_RESP_CREATE_SEMAPHORE;
@@ -272,6 +283,18 @@
 	__le64 result_return;
 } __attribute((packed));
 
+struct virtio_magma_query_returns_buffer_ctrl {
+	struct virtio_magma_ctrl_hdr hdr;
+	__le32 file_descriptor;
+	__le64 id;
+} __attribute((packed));
+
+struct virtio_magma_query_returns_buffer_resp {
+	struct virtio_magma_ctrl_hdr hdr;
+	__le64 handle_out;
+	__le64 result_return;
+} __attribute((packed));
+
 struct virtio_magma_create_connection_ctrl {
 	struct virtio_magma_ctrl_hdr hdr;
 	__le32 file_descriptor;
@@ -588,6 +611,19 @@
 	struct virtio_magma_ctrl_hdr hdr;
 } __attribute((packed));
 
+struct virtio_magma_execute_command_buffer_with_resources_ctrl {
+	struct virtio_magma_ctrl_hdr hdr;
+	__le64 connection;
+	__le32 context_id;
+	__le64 command_buffer;
+	__le64 resources;
+	__le64 semaphore_ids;
+} __attribute((packed));
+
+struct virtio_magma_execute_command_buffer_with_resources_resp {
+	struct virtio_magma_ctrl_hdr hdr;
+} __attribute((packed));
+
 struct virtio_magma_execute_immediate_commands_ctrl {
 	struct virtio_magma_ctrl_hdr hdr;
 	__le64 connection;