/* Copyright 2018 The Fuchsia Authors. All rights reserved.
   Use of this source code is governed by a BSD-style license that can be
   found in the LICENSE file.
 */

/* NOTE: DO NOT EDIT THIS FILE! It is generated automatically by:
     //src/graphics/lib/magma/include/virtio/virtio_magma.h.gen.py
 */

#ifndef _LINUX_VIRTIO_MAGMA_H
#define _LINUX_VIRTIO_MAGMA_H

#include <linux/virtio_ids.h>
#include <linux/virtio_config.h>
#include <linux/virtmagma.h>

struct virtio_magma_config {
	__le64 dummy;
} __attribute((packed));

enum virtio_magma_ctrl_type {
	/* magma commands
 */
	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_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES = 0x101F,
	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_EXPORT_SEMAPHORE = 0x1028,
	VIRTIO_MAGMA_CMD_IMPORT_SEMAPHORE = 0x1029,
	VIRTIO_MAGMA_CMD_GET_NOTIFICATION_CHANNEL_HANDLE = 0x102A,
	VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL = 0x102C,
	VIRTIO_MAGMA_CMD_INITIALIZE_TRACING = 0x102D,
	VIRTIO_MAGMA_CMD_DEVICE_IMPORT = 0x102E,
	VIRTIO_MAGMA_CMD_DEVICE_RELEASE = 0x102F,
	VIRTIO_MAGMA_CMD_QUERY2 = 0x1030,
	VIRTIO_MAGMA_CMD_QUERY_RETURNS_BUFFER2 = 0x1031,
	VIRTIO_MAGMA_CMD_CREATE_CONNECTION2 = 0x1032,
	VIRTIO_MAGMA_CMD_INITIALIZE_LOGGING = 0x1033,
	VIRTIO_MAGMA_CMD_POLL = 0x1034,
	VIRTIO_MAGMA_CMD_CONNECTION_ACCESS_PERFORMANCE_COUNTERS = 0x1035,
	VIRTIO_MAGMA_CMD_MAP_CONSTRAINED = 0x1036,
	VIRTIO_MAGMA_CMD_BUFFER_SET_PADDING = 0x1037,
	VIRTIO_MAGMA_CMD_CONNECTION_ENABLE_PERFORMANCE_COUNTERS = 0x1038,
	VIRTIO_MAGMA_CMD_CONNECTION_CREATE_PERFORMANCE_COUNTER_BUFFER_POOL = 0x1039,
	VIRTIO_MAGMA_CMD_CONNECTION_RELEASE_PERFORMANCE_COUNTER_BUFFER_POOL = 0x103A,
	VIRTIO_MAGMA_CMD_CONNECTION_ADD_PERFORMANCE_COUNTER_BUFFER_OFFSETS_TO_POOL = 0x103B,
	VIRTIO_MAGMA_CMD_CONNECTION_REMOVE_PERFORMANCE_COUNTER_BUFFER_FROM_POOL = 0x103C,
	VIRTIO_MAGMA_CMD_CONNECTION_DUMP_PERFORMANCE_COUNTERS = 0x103D,
	VIRTIO_MAGMA_CMD_CONNECTION_CLEAR_PERFORMANCE_COUNTERS = 0x103E,
	VIRTIO_MAGMA_CMD_CONNECTION_READ_PERFORMANCE_COUNTER_COMPLETION = 0x103F,
	VIRTIO_MAGMA_CMD_BUFFER_SET_NAME = 0x1040,
	VIRTIO_MAGMA_CMD_BUFFER_RANGE_OP = 0x1041,
	VIRTIO_MAGMA_CMD_BUFFER_GET_INFO = 0x1042,
	VIRTIO_MAGMA_CMD_GET_BUFFER_HANDLE = 0x1043,
	VIRTIO_MAGMA_CMD_INTERNAL_MAP = 0x1044,
	VIRTIO_MAGMA_CMD_INTERNAL_UNMAP = 0x1045,
	/* magma success responses
 */
	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_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES = 0x201F,
	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_EXPORT_SEMAPHORE = 0x2028,
	VIRTIO_MAGMA_RESP_IMPORT_SEMAPHORE = 0x2029,
	VIRTIO_MAGMA_RESP_GET_NOTIFICATION_CHANNEL_HANDLE = 0x202A,
	VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL = 0x202C,
	VIRTIO_MAGMA_RESP_INITIALIZE_TRACING = 0x202D,
	VIRTIO_MAGMA_RESP_DEVICE_IMPORT = 0x202E,
	VIRTIO_MAGMA_RESP_DEVICE_RELEASE = 0x202F,
	VIRTIO_MAGMA_RESP_QUERY2 = 0x2030,
	VIRTIO_MAGMA_RESP_QUERY_RETURNS_BUFFER2 = 0x2031,
	VIRTIO_MAGMA_RESP_CREATE_CONNECTION2 = 0x2032,
	VIRTIO_MAGMA_RESP_INITIALIZE_LOGGING = 0x2033,
	VIRTIO_MAGMA_RESP_POLL = 0x2034,
	VIRTIO_MAGMA_RESP_CONNECTION_ACCESS_PERFORMANCE_COUNTERS = 0x2035,
	VIRTIO_MAGMA_RESP_MAP_CONSTRAINED = 0x2036,
	VIRTIO_MAGMA_RESP_BUFFER_SET_PADDING = 0x2037,
	VIRTIO_MAGMA_RESP_CONNECTION_ENABLE_PERFORMANCE_COUNTERS = 0x2038,
	VIRTIO_MAGMA_RESP_CONNECTION_CREATE_PERFORMANCE_COUNTER_BUFFER_POOL = 0x2039,
	VIRTIO_MAGMA_RESP_CONNECTION_RELEASE_PERFORMANCE_COUNTER_BUFFER_POOL = 0x203A,
	VIRTIO_MAGMA_RESP_CONNECTION_ADD_PERFORMANCE_COUNTER_BUFFER_OFFSETS_TO_POOL = 0x203B,
	VIRTIO_MAGMA_RESP_CONNECTION_REMOVE_PERFORMANCE_COUNTER_BUFFER_FROM_POOL = 0x203C,
	VIRTIO_MAGMA_RESP_CONNECTION_DUMP_PERFORMANCE_COUNTERS = 0x203D,
	VIRTIO_MAGMA_RESP_CONNECTION_CLEAR_PERFORMANCE_COUNTERS = 0x203E,
	VIRTIO_MAGMA_RESP_CONNECTION_READ_PERFORMANCE_COUNTER_COMPLETION = 0x203F,
	VIRTIO_MAGMA_RESP_BUFFER_SET_NAME = 0x2040,
	VIRTIO_MAGMA_RESP_BUFFER_RANGE_OP = 0x2041,
	VIRTIO_MAGMA_RESP_BUFFER_GET_INFO = 0x2042,
	VIRTIO_MAGMA_RESP_GET_BUFFER_HANDLE = 0x2043,
	VIRTIO_MAGMA_RESP_INTERNAL_MAP = 0x2044,
	VIRTIO_MAGMA_RESP_INTERNAL_UNMAP = 0x2045,
	/* magma error responses
 */
	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_RELEASE_CONNECTION: return "VIRTIO_MAGMA_CMD_RELEASE_CONNECTION";
		case VIRTIO_MAGMA_RESP_RELEASE_CONNECTION: return "VIRTIO_MAGMA_RESP_RELEASE_CONNECTION";
		case VIRTIO_MAGMA_CMD_GET_ERROR: return "VIRTIO_MAGMA_CMD_GET_ERROR";
		case VIRTIO_MAGMA_RESP_GET_ERROR: return "VIRTIO_MAGMA_RESP_GET_ERROR";
		case VIRTIO_MAGMA_CMD_CREATE_CONTEXT: return "VIRTIO_MAGMA_CMD_CREATE_CONTEXT";
		case VIRTIO_MAGMA_RESP_CREATE_CONTEXT: return "VIRTIO_MAGMA_RESP_CREATE_CONTEXT";
		case VIRTIO_MAGMA_CMD_RELEASE_CONTEXT: return "VIRTIO_MAGMA_CMD_RELEASE_CONTEXT";
		case VIRTIO_MAGMA_RESP_RELEASE_CONTEXT: return "VIRTIO_MAGMA_RESP_RELEASE_CONTEXT";
		case VIRTIO_MAGMA_CMD_CREATE_BUFFER: return "VIRTIO_MAGMA_CMD_CREATE_BUFFER";
		case VIRTIO_MAGMA_RESP_CREATE_BUFFER: return "VIRTIO_MAGMA_RESP_CREATE_BUFFER";
		case VIRTIO_MAGMA_CMD_RELEASE_BUFFER: return "VIRTIO_MAGMA_CMD_RELEASE_BUFFER";
		case VIRTIO_MAGMA_RESP_RELEASE_BUFFER: return "VIRTIO_MAGMA_RESP_RELEASE_BUFFER";
		case VIRTIO_MAGMA_CMD_DUPLICATE_HANDLE: return "VIRTIO_MAGMA_CMD_DUPLICATE_HANDLE";
		case VIRTIO_MAGMA_RESP_DUPLICATE_HANDLE: return "VIRTIO_MAGMA_RESP_DUPLICATE_HANDLE";
		case VIRTIO_MAGMA_CMD_RELEASE_BUFFER_HANDLE: return "VIRTIO_MAGMA_CMD_RELEASE_BUFFER_HANDLE";
		case VIRTIO_MAGMA_RESP_RELEASE_BUFFER_HANDLE: return "VIRTIO_MAGMA_RESP_RELEASE_BUFFER_HANDLE";
		case VIRTIO_MAGMA_CMD_GET_BUFFER_ID: return "VIRTIO_MAGMA_CMD_GET_BUFFER_ID";
		case VIRTIO_MAGMA_RESP_GET_BUFFER_ID: return "VIRTIO_MAGMA_RESP_GET_BUFFER_ID";
		case VIRTIO_MAGMA_CMD_GET_BUFFER_SIZE: return "VIRTIO_MAGMA_CMD_GET_BUFFER_SIZE";
		case VIRTIO_MAGMA_RESP_GET_BUFFER_SIZE: return "VIRTIO_MAGMA_RESP_GET_BUFFER_SIZE";
		case VIRTIO_MAGMA_CMD_CLEAN_CACHE: return "VIRTIO_MAGMA_CMD_CLEAN_CACHE";
		case VIRTIO_MAGMA_RESP_CLEAN_CACHE: return "VIRTIO_MAGMA_RESP_CLEAN_CACHE";
		case VIRTIO_MAGMA_CMD_SET_CACHE_POLICY: return "VIRTIO_MAGMA_CMD_SET_CACHE_POLICY";
		case VIRTIO_MAGMA_RESP_SET_CACHE_POLICY: return "VIRTIO_MAGMA_RESP_SET_CACHE_POLICY";
		case VIRTIO_MAGMA_CMD_GET_BUFFER_CACHE_POLICY: return "VIRTIO_MAGMA_CMD_GET_BUFFER_CACHE_POLICY";
		case VIRTIO_MAGMA_RESP_GET_BUFFER_CACHE_POLICY: return "VIRTIO_MAGMA_RESP_GET_BUFFER_CACHE_POLICY";
		case VIRTIO_MAGMA_CMD_GET_BUFFER_IS_MAPPABLE: return "VIRTIO_MAGMA_CMD_GET_BUFFER_IS_MAPPABLE";
		case VIRTIO_MAGMA_RESP_GET_BUFFER_IS_MAPPABLE: return "VIRTIO_MAGMA_RESP_GET_BUFFER_IS_MAPPABLE";
		case VIRTIO_MAGMA_CMD_SET_BUFFER_MAPPING_ADDRESS_RANGE: return "VIRTIO_MAGMA_CMD_SET_BUFFER_MAPPING_ADDRESS_RANGE";
		case VIRTIO_MAGMA_RESP_SET_BUFFER_MAPPING_ADDRESS_RANGE: return "VIRTIO_MAGMA_RESP_SET_BUFFER_MAPPING_ADDRESS_RANGE";
		case VIRTIO_MAGMA_CMD_MAP: return "VIRTIO_MAGMA_CMD_MAP";
		case VIRTIO_MAGMA_RESP_MAP: return "VIRTIO_MAGMA_RESP_MAP";
		case VIRTIO_MAGMA_CMD_MAP_ALIGNED: return "VIRTIO_MAGMA_CMD_MAP_ALIGNED";
		case VIRTIO_MAGMA_RESP_MAP_ALIGNED: return "VIRTIO_MAGMA_RESP_MAP_ALIGNED";
		case VIRTIO_MAGMA_CMD_MAP_SPECIFIC: return "VIRTIO_MAGMA_CMD_MAP_SPECIFIC";
		case VIRTIO_MAGMA_RESP_MAP_SPECIFIC: return "VIRTIO_MAGMA_RESP_MAP_SPECIFIC";
		case VIRTIO_MAGMA_CMD_UNMAP: return "VIRTIO_MAGMA_CMD_UNMAP";
		case VIRTIO_MAGMA_RESP_UNMAP: return "VIRTIO_MAGMA_RESP_UNMAP";
		case VIRTIO_MAGMA_CMD_MAP_BUFFER_GPU: return "VIRTIO_MAGMA_CMD_MAP_BUFFER_GPU";
		case VIRTIO_MAGMA_RESP_MAP_BUFFER_GPU: return "VIRTIO_MAGMA_RESP_MAP_BUFFER_GPU";
		case VIRTIO_MAGMA_CMD_UNMAP_BUFFER_GPU: return "VIRTIO_MAGMA_CMD_UNMAP_BUFFER_GPU";
		case VIRTIO_MAGMA_RESP_UNMAP_BUFFER_GPU: return "VIRTIO_MAGMA_RESP_UNMAP_BUFFER_GPU";
		case VIRTIO_MAGMA_CMD_COMMIT_BUFFER: return "VIRTIO_MAGMA_CMD_COMMIT_BUFFER";
		case VIRTIO_MAGMA_RESP_COMMIT_BUFFER: return "VIRTIO_MAGMA_RESP_COMMIT_BUFFER";
		case VIRTIO_MAGMA_CMD_EXPORT: return "VIRTIO_MAGMA_CMD_EXPORT";
		case VIRTIO_MAGMA_RESP_EXPORT: return "VIRTIO_MAGMA_RESP_EXPORT";
		case VIRTIO_MAGMA_CMD_IMPORT: return "VIRTIO_MAGMA_CMD_IMPORT";
		case VIRTIO_MAGMA_RESP_IMPORT: return "VIRTIO_MAGMA_RESP_IMPORT";
		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_COMMANDS2: return "VIRTIO_MAGMA_CMD_EXECUTE_IMMEDIATE_COMMANDS2";
		case VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS2: return "VIRTIO_MAGMA_RESP_EXECUTE_IMMEDIATE_COMMANDS2";
		case VIRTIO_MAGMA_CMD_CREATE_SEMAPHORE: return "VIRTIO_MAGMA_CMD_CREATE_SEMAPHORE";
		case VIRTIO_MAGMA_RESP_CREATE_SEMAPHORE: return "VIRTIO_MAGMA_RESP_CREATE_SEMAPHORE";
		case VIRTIO_MAGMA_CMD_RELEASE_SEMAPHORE: return "VIRTIO_MAGMA_CMD_RELEASE_SEMAPHORE";
		case VIRTIO_MAGMA_RESP_RELEASE_SEMAPHORE: return "VIRTIO_MAGMA_RESP_RELEASE_SEMAPHORE";
		case VIRTIO_MAGMA_CMD_GET_SEMAPHORE_ID: return "VIRTIO_MAGMA_CMD_GET_SEMAPHORE_ID";
		case VIRTIO_MAGMA_RESP_GET_SEMAPHORE_ID: return "VIRTIO_MAGMA_RESP_GET_SEMAPHORE_ID";
		case VIRTIO_MAGMA_CMD_SIGNAL_SEMAPHORE: return "VIRTIO_MAGMA_CMD_SIGNAL_SEMAPHORE";
		case VIRTIO_MAGMA_RESP_SIGNAL_SEMAPHORE: return "VIRTIO_MAGMA_RESP_SIGNAL_SEMAPHORE";
		case VIRTIO_MAGMA_CMD_RESET_SEMAPHORE: return "VIRTIO_MAGMA_CMD_RESET_SEMAPHORE";
		case VIRTIO_MAGMA_RESP_RESET_SEMAPHORE: return "VIRTIO_MAGMA_RESP_RESET_SEMAPHORE";
		case VIRTIO_MAGMA_CMD_EXPORT_SEMAPHORE: return "VIRTIO_MAGMA_CMD_EXPORT_SEMAPHORE";
		case VIRTIO_MAGMA_RESP_EXPORT_SEMAPHORE: return "VIRTIO_MAGMA_RESP_EXPORT_SEMAPHORE";
		case VIRTIO_MAGMA_CMD_IMPORT_SEMAPHORE: return "VIRTIO_MAGMA_CMD_IMPORT_SEMAPHORE";
		case VIRTIO_MAGMA_RESP_IMPORT_SEMAPHORE: return "VIRTIO_MAGMA_RESP_IMPORT_SEMAPHORE";
		case VIRTIO_MAGMA_CMD_GET_NOTIFICATION_CHANNEL_HANDLE: return "VIRTIO_MAGMA_CMD_GET_NOTIFICATION_CHANNEL_HANDLE";
		case VIRTIO_MAGMA_RESP_GET_NOTIFICATION_CHANNEL_HANDLE: return "VIRTIO_MAGMA_RESP_GET_NOTIFICATION_CHANNEL_HANDLE";
		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_CMD_INITIALIZE_TRACING: return "VIRTIO_MAGMA_CMD_INITIALIZE_TRACING";
		case VIRTIO_MAGMA_RESP_INITIALIZE_TRACING: return "VIRTIO_MAGMA_RESP_INITIALIZE_TRACING";
		case VIRTIO_MAGMA_CMD_DEVICE_IMPORT: return "VIRTIO_MAGMA_CMD_DEVICE_IMPORT";
		case VIRTIO_MAGMA_RESP_DEVICE_IMPORT: return "VIRTIO_MAGMA_RESP_DEVICE_IMPORT";
		case VIRTIO_MAGMA_CMD_DEVICE_RELEASE: return "VIRTIO_MAGMA_CMD_DEVICE_RELEASE";
		case VIRTIO_MAGMA_RESP_DEVICE_RELEASE: return "VIRTIO_MAGMA_RESP_DEVICE_RELEASE";
		case VIRTIO_MAGMA_CMD_QUERY2: return "VIRTIO_MAGMA_CMD_QUERY2";
		case VIRTIO_MAGMA_RESP_QUERY2: return "VIRTIO_MAGMA_RESP_QUERY2";
		case VIRTIO_MAGMA_CMD_QUERY_RETURNS_BUFFER2: return "VIRTIO_MAGMA_CMD_QUERY_RETURNS_BUFFER2";
		case VIRTIO_MAGMA_RESP_QUERY_RETURNS_BUFFER2: return "VIRTIO_MAGMA_RESP_QUERY_RETURNS_BUFFER2";
		case VIRTIO_MAGMA_CMD_CREATE_CONNECTION2: return "VIRTIO_MAGMA_CMD_CREATE_CONNECTION2";
		case VIRTIO_MAGMA_RESP_CREATE_CONNECTION2: return "VIRTIO_MAGMA_RESP_CREATE_CONNECTION2";
		case VIRTIO_MAGMA_CMD_INITIALIZE_LOGGING: return "VIRTIO_MAGMA_CMD_INITIALIZE_LOGGING";
		case VIRTIO_MAGMA_RESP_INITIALIZE_LOGGING: return "VIRTIO_MAGMA_RESP_INITIALIZE_LOGGING";
		case VIRTIO_MAGMA_CMD_POLL: return "VIRTIO_MAGMA_CMD_POLL";
		case VIRTIO_MAGMA_RESP_POLL: return "VIRTIO_MAGMA_RESP_POLL";
		case VIRTIO_MAGMA_CMD_CONNECTION_ACCESS_PERFORMANCE_COUNTERS: return "VIRTIO_MAGMA_CMD_CONNECTION_ACCESS_PERFORMANCE_COUNTERS";
		case VIRTIO_MAGMA_RESP_CONNECTION_ACCESS_PERFORMANCE_COUNTERS: return "VIRTIO_MAGMA_RESP_CONNECTION_ACCESS_PERFORMANCE_COUNTERS";
		case VIRTIO_MAGMA_CMD_MAP_CONSTRAINED: return "VIRTIO_MAGMA_CMD_MAP_CONSTRAINED";
		case VIRTIO_MAGMA_RESP_MAP_CONSTRAINED: return "VIRTIO_MAGMA_RESP_MAP_CONSTRAINED";
		case VIRTIO_MAGMA_CMD_BUFFER_SET_PADDING: return "VIRTIO_MAGMA_CMD_BUFFER_SET_PADDING";
		case VIRTIO_MAGMA_RESP_BUFFER_SET_PADDING: return "VIRTIO_MAGMA_RESP_BUFFER_SET_PADDING";
		case VIRTIO_MAGMA_CMD_CONNECTION_ENABLE_PERFORMANCE_COUNTERS: return "VIRTIO_MAGMA_CMD_CONNECTION_ENABLE_PERFORMANCE_COUNTERS";
		case VIRTIO_MAGMA_RESP_CONNECTION_ENABLE_PERFORMANCE_COUNTERS: return "VIRTIO_MAGMA_RESP_CONNECTION_ENABLE_PERFORMANCE_COUNTERS";
		case VIRTIO_MAGMA_CMD_CONNECTION_CREATE_PERFORMANCE_COUNTER_BUFFER_POOL: return "VIRTIO_MAGMA_CMD_CONNECTION_CREATE_PERFORMANCE_COUNTER_BUFFER_POOL";
		case VIRTIO_MAGMA_RESP_CONNECTION_CREATE_PERFORMANCE_COUNTER_BUFFER_POOL: return "VIRTIO_MAGMA_RESP_CONNECTION_CREATE_PERFORMANCE_COUNTER_BUFFER_POOL";
		case VIRTIO_MAGMA_CMD_CONNECTION_RELEASE_PERFORMANCE_COUNTER_BUFFER_POOL: return "VIRTIO_MAGMA_CMD_CONNECTION_RELEASE_PERFORMANCE_COUNTER_BUFFER_POOL";
		case VIRTIO_MAGMA_RESP_CONNECTION_RELEASE_PERFORMANCE_COUNTER_BUFFER_POOL: return "VIRTIO_MAGMA_RESP_CONNECTION_RELEASE_PERFORMANCE_COUNTER_BUFFER_POOL";
		case VIRTIO_MAGMA_CMD_CONNECTION_ADD_PERFORMANCE_COUNTER_BUFFER_OFFSETS_TO_POOL: return "VIRTIO_MAGMA_CMD_CONNECTION_ADD_PERFORMANCE_COUNTER_BUFFER_OFFSETS_TO_POOL";
		case VIRTIO_MAGMA_RESP_CONNECTION_ADD_PERFORMANCE_COUNTER_BUFFER_OFFSETS_TO_POOL: return "VIRTIO_MAGMA_RESP_CONNECTION_ADD_PERFORMANCE_COUNTER_BUFFER_OFFSETS_TO_POOL";
		case VIRTIO_MAGMA_CMD_CONNECTION_REMOVE_PERFORMANCE_COUNTER_BUFFER_FROM_POOL: return "VIRTIO_MAGMA_CMD_CONNECTION_REMOVE_PERFORMANCE_COUNTER_BUFFER_FROM_POOL";
		case VIRTIO_MAGMA_RESP_CONNECTION_REMOVE_PERFORMANCE_COUNTER_BUFFER_FROM_POOL: return "VIRTIO_MAGMA_RESP_CONNECTION_REMOVE_PERFORMANCE_COUNTER_BUFFER_FROM_POOL";
		case VIRTIO_MAGMA_CMD_CONNECTION_DUMP_PERFORMANCE_COUNTERS: return "VIRTIO_MAGMA_CMD_CONNECTION_DUMP_PERFORMANCE_COUNTERS";
		case VIRTIO_MAGMA_RESP_CONNECTION_DUMP_PERFORMANCE_COUNTERS: return "VIRTIO_MAGMA_RESP_CONNECTION_DUMP_PERFORMANCE_COUNTERS";
		case VIRTIO_MAGMA_CMD_CONNECTION_CLEAR_PERFORMANCE_COUNTERS: return "VIRTIO_MAGMA_CMD_CONNECTION_CLEAR_PERFORMANCE_COUNTERS";
		case VIRTIO_MAGMA_RESP_CONNECTION_CLEAR_PERFORMANCE_COUNTERS: return "VIRTIO_MAGMA_RESP_CONNECTION_CLEAR_PERFORMANCE_COUNTERS";
		case VIRTIO_MAGMA_CMD_CONNECTION_READ_PERFORMANCE_COUNTER_COMPLETION: return "VIRTIO_MAGMA_CMD_CONNECTION_READ_PERFORMANCE_COUNTER_COMPLETION";
		case VIRTIO_MAGMA_RESP_CONNECTION_READ_PERFORMANCE_COUNTER_COMPLETION: return "VIRTIO_MAGMA_RESP_CONNECTION_READ_PERFORMANCE_COUNTER_COMPLETION";
		case VIRTIO_MAGMA_CMD_BUFFER_SET_NAME: return "VIRTIO_MAGMA_CMD_BUFFER_SET_NAME";
		case VIRTIO_MAGMA_RESP_BUFFER_SET_NAME: return "VIRTIO_MAGMA_RESP_BUFFER_SET_NAME";
		case VIRTIO_MAGMA_CMD_BUFFER_RANGE_OP: return "VIRTIO_MAGMA_CMD_BUFFER_RANGE_OP";
		case VIRTIO_MAGMA_RESP_BUFFER_RANGE_OP: return "VIRTIO_MAGMA_RESP_BUFFER_RANGE_OP";
		case VIRTIO_MAGMA_CMD_BUFFER_GET_INFO: return "VIRTIO_MAGMA_CMD_BUFFER_GET_INFO";
		case VIRTIO_MAGMA_RESP_BUFFER_GET_INFO: return "VIRTIO_MAGMA_RESP_BUFFER_GET_INFO";
		case VIRTIO_MAGMA_CMD_GET_BUFFER_HANDLE: return "VIRTIO_MAGMA_CMD_GET_BUFFER_HANDLE";
		case VIRTIO_MAGMA_RESP_GET_BUFFER_HANDLE: return "VIRTIO_MAGMA_RESP_GET_BUFFER_HANDLE";
		case VIRTIO_MAGMA_CMD_INTERNAL_MAP: return "VIRTIO_MAGMA_CMD_INTERNAL_MAP";
		case VIRTIO_MAGMA_RESP_INTERNAL_MAP: return "VIRTIO_MAGMA_RESP_INTERNAL_MAP";
		case VIRTIO_MAGMA_CMD_INTERNAL_UNMAP: return "VIRTIO_MAGMA_CMD_INTERNAL_UNMAP";
		case VIRTIO_MAGMA_RESP_INTERNAL_UNMAP: return "VIRTIO_MAGMA_RESP_INTERNAL_UNMAP";
		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";
		case VIRTIO_MAGMA_RESP_ERR_INVALID_COMMAND: return "VIRTIO_MAGMA_RESP_ERR_INVALID_COMMAND";
		case VIRTIO_MAGMA_RESP_ERR_INVALID_ARGUMENT: return "VIRTIO_MAGMA_RESP_ERR_INVALID_ARGUMENT";
		default: return "[invalid virtio_magma_ctrl_type]";
	}
}

inline enum virtio_magma_ctrl_type virtio_magma_expected_response_type(enum virtio_magma_ctrl_type type) {
	switch (type) {
		case VIRTIO_MAGMA_CMD_RELEASE_CONNECTION: return VIRTIO_MAGMA_RESP_RELEASE_CONNECTION;
		case VIRTIO_MAGMA_CMD_GET_ERROR: return VIRTIO_MAGMA_RESP_GET_ERROR;
		case VIRTIO_MAGMA_CMD_CREATE_CONTEXT: return VIRTIO_MAGMA_RESP_CREATE_CONTEXT;
		case VIRTIO_MAGMA_CMD_RELEASE_CONTEXT: return VIRTIO_MAGMA_RESP_RELEASE_CONTEXT;
		case VIRTIO_MAGMA_CMD_CREATE_BUFFER: return VIRTIO_MAGMA_RESP_CREATE_BUFFER;
		case VIRTIO_MAGMA_CMD_RELEASE_BUFFER: return VIRTIO_MAGMA_RESP_RELEASE_BUFFER;
		case VIRTIO_MAGMA_CMD_DUPLICATE_HANDLE: return VIRTIO_MAGMA_RESP_DUPLICATE_HANDLE;
		case VIRTIO_MAGMA_CMD_RELEASE_BUFFER_HANDLE: return VIRTIO_MAGMA_RESP_RELEASE_BUFFER_HANDLE;
		case VIRTIO_MAGMA_CMD_GET_BUFFER_ID: return VIRTIO_MAGMA_RESP_GET_BUFFER_ID;
		case VIRTIO_MAGMA_CMD_GET_BUFFER_SIZE: return VIRTIO_MAGMA_RESP_GET_BUFFER_SIZE;
		case VIRTIO_MAGMA_CMD_CLEAN_CACHE: return VIRTIO_MAGMA_RESP_CLEAN_CACHE;
		case VIRTIO_MAGMA_CMD_SET_CACHE_POLICY: return VIRTIO_MAGMA_RESP_SET_CACHE_POLICY;
		case VIRTIO_MAGMA_CMD_GET_BUFFER_CACHE_POLICY: return VIRTIO_MAGMA_RESP_GET_BUFFER_CACHE_POLICY;
		case VIRTIO_MAGMA_CMD_GET_BUFFER_IS_MAPPABLE: return VIRTIO_MAGMA_RESP_GET_BUFFER_IS_MAPPABLE;
		case VIRTIO_MAGMA_CMD_SET_BUFFER_MAPPING_ADDRESS_RANGE: return VIRTIO_MAGMA_RESP_SET_BUFFER_MAPPING_ADDRESS_RANGE;
		case VIRTIO_MAGMA_CMD_MAP: return VIRTIO_MAGMA_RESP_MAP;
		case VIRTIO_MAGMA_CMD_MAP_ALIGNED: return VIRTIO_MAGMA_RESP_MAP_ALIGNED;
		case VIRTIO_MAGMA_CMD_MAP_SPECIFIC: return VIRTIO_MAGMA_RESP_MAP_SPECIFIC;
		case VIRTIO_MAGMA_CMD_UNMAP: return VIRTIO_MAGMA_RESP_UNMAP;
		case VIRTIO_MAGMA_CMD_MAP_BUFFER_GPU: return VIRTIO_MAGMA_RESP_MAP_BUFFER_GPU;
		case VIRTIO_MAGMA_CMD_UNMAP_BUFFER_GPU: return VIRTIO_MAGMA_RESP_UNMAP_BUFFER_GPU;
		case VIRTIO_MAGMA_CMD_COMMIT_BUFFER: return VIRTIO_MAGMA_RESP_COMMIT_BUFFER;
		case VIRTIO_MAGMA_CMD_EXPORT: return VIRTIO_MAGMA_RESP_EXPORT;
		case VIRTIO_MAGMA_CMD_IMPORT: return VIRTIO_MAGMA_RESP_IMPORT;
		case VIRTIO_MAGMA_CMD_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES: return VIRTIO_MAGMA_RESP_EXECUTE_COMMAND_BUFFER_WITH_RESOURCES;
		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;
		case VIRTIO_MAGMA_CMD_RELEASE_SEMAPHORE: return VIRTIO_MAGMA_RESP_RELEASE_SEMAPHORE;
		case VIRTIO_MAGMA_CMD_GET_SEMAPHORE_ID: return VIRTIO_MAGMA_RESP_GET_SEMAPHORE_ID;
		case VIRTIO_MAGMA_CMD_SIGNAL_SEMAPHORE: return VIRTIO_MAGMA_RESP_SIGNAL_SEMAPHORE;
		case VIRTIO_MAGMA_CMD_RESET_SEMAPHORE: return VIRTIO_MAGMA_RESP_RESET_SEMAPHORE;
		case VIRTIO_MAGMA_CMD_EXPORT_SEMAPHORE: return VIRTIO_MAGMA_RESP_EXPORT_SEMAPHORE;
		case VIRTIO_MAGMA_CMD_IMPORT_SEMAPHORE: return VIRTIO_MAGMA_RESP_IMPORT_SEMAPHORE;
		case VIRTIO_MAGMA_CMD_GET_NOTIFICATION_CHANNEL_HANDLE: return VIRTIO_MAGMA_RESP_GET_NOTIFICATION_CHANNEL_HANDLE;
		case VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL: return VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL;
		case VIRTIO_MAGMA_CMD_INITIALIZE_TRACING: return VIRTIO_MAGMA_RESP_INITIALIZE_TRACING;
		case VIRTIO_MAGMA_CMD_DEVICE_IMPORT: return VIRTIO_MAGMA_RESP_DEVICE_IMPORT;
		case VIRTIO_MAGMA_CMD_DEVICE_RELEASE: return VIRTIO_MAGMA_RESP_DEVICE_RELEASE;
		case VIRTIO_MAGMA_CMD_QUERY2: return VIRTIO_MAGMA_RESP_QUERY2;
		case VIRTIO_MAGMA_CMD_QUERY_RETURNS_BUFFER2: return VIRTIO_MAGMA_RESP_QUERY_RETURNS_BUFFER2;
		case VIRTIO_MAGMA_CMD_CREATE_CONNECTION2: return VIRTIO_MAGMA_RESP_CREATE_CONNECTION2;
		case VIRTIO_MAGMA_CMD_INITIALIZE_LOGGING: return VIRTIO_MAGMA_RESP_INITIALIZE_LOGGING;
		case VIRTIO_MAGMA_CMD_POLL: return VIRTIO_MAGMA_RESP_POLL;
		case VIRTIO_MAGMA_CMD_CONNECTION_ACCESS_PERFORMANCE_COUNTERS: return VIRTIO_MAGMA_RESP_CONNECTION_ACCESS_PERFORMANCE_COUNTERS;
		case VIRTIO_MAGMA_CMD_MAP_CONSTRAINED: return VIRTIO_MAGMA_RESP_MAP_CONSTRAINED;
		case VIRTIO_MAGMA_CMD_BUFFER_SET_PADDING: return VIRTIO_MAGMA_RESP_BUFFER_SET_PADDING;
		case VIRTIO_MAGMA_CMD_CONNECTION_ENABLE_PERFORMANCE_COUNTERS: return VIRTIO_MAGMA_RESP_CONNECTION_ENABLE_PERFORMANCE_COUNTERS;
		case VIRTIO_MAGMA_CMD_CONNECTION_CREATE_PERFORMANCE_COUNTER_BUFFER_POOL: return VIRTIO_MAGMA_RESP_CONNECTION_CREATE_PERFORMANCE_COUNTER_BUFFER_POOL;
		case VIRTIO_MAGMA_CMD_CONNECTION_RELEASE_PERFORMANCE_COUNTER_BUFFER_POOL: return VIRTIO_MAGMA_RESP_CONNECTION_RELEASE_PERFORMANCE_COUNTER_BUFFER_POOL;
		case VIRTIO_MAGMA_CMD_CONNECTION_ADD_PERFORMANCE_COUNTER_BUFFER_OFFSETS_TO_POOL: return VIRTIO_MAGMA_RESP_CONNECTION_ADD_PERFORMANCE_COUNTER_BUFFER_OFFSETS_TO_POOL;
		case VIRTIO_MAGMA_CMD_CONNECTION_REMOVE_PERFORMANCE_COUNTER_BUFFER_FROM_POOL: return VIRTIO_MAGMA_RESP_CONNECTION_REMOVE_PERFORMANCE_COUNTER_BUFFER_FROM_POOL;
		case VIRTIO_MAGMA_CMD_CONNECTION_DUMP_PERFORMANCE_COUNTERS: return VIRTIO_MAGMA_RESP_CONNECTION_DUMP_PERFORMANCE_COUNTERS;
		case VIRTIO_MAGMA_CMD_CONNECTION_CLEAR_PERFORMANCE_COUNTERS: return VIRTIO_MAGMA_RESP_CONNECTION_CLEAR_PERFORMANCE_COUNTERS;
		case VIRTIO_MAGMA_CMD_CONNECTION_READ_PERFORMANCE_COUNTER_COMPLETION: return VIRTIO_MAGMA_RESP_CONNECTION_READ_PERFORMANCE_COUNTER_COMPLETION;
		case VIRTIO_MAGMA_CMD_BUFFER_SET_NAME: return VIRTIO_MAGMA_RESP_BUFFER_SET_NAME;
		case VIRTIO_MAGMA_CMD_BUFFER_RANGE_OP: return VIRTIO_MAGMA_RESP_BUFFER_RANGE_OP;
		case VIRTIO_MAGMA_CMD_BUFFER_GET_INFO: return VIRTIO_MAGMA_RESP_BUFFER_GET_INFO;
		case VIRTIO_MAGMA_CMD_GET_BUFFER_HANDLE: return VIRTIO_MAGMA_RESP_GET_BUFFER_HANDLE;
		case VIRTIO_MAGMA_CMD_INTERNAL_MAP: return VIRTIO_MAGMA_RESP_INTERNAL_MAP;
		case VIRTIO_MAGMA_CMD_INTERNAL_UNMAP: return VIRTIO_MAGMA_RESP_INTERNAL_UNMAP;
		default: return VIRTIO_MAGMA_RESP_ERR_INVALID_COMMAND;
	}
}

struct virtio_magma_ctrl_hdr {
	__le32 type;
	__le32 flags;
} __attribute((packed));

struct virtio_magma_release_connection_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
} __attribute((packed));

struct virtio_magma_release_connection_resp {
	struct virtio_magma_ctrl_hdr hdr;
} __attribute((packed));

struct virtio_magma_get_error_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
} __attribute((packed));

struct virtio_magma_get_error_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_create_context_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
} __attribute((packed));

struct virtio_magma_create_context_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 context_id_out;
} __attribute((packed));

struct virtio_magma_release_context_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le32 context_id;
} __attribute((packed));

struct virtio_magma_release_context_resp {
	struct virtio_magma_ctrl_hdr hdr;
} __attribute((packed));

struct virtio_magma_create_buffer_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 size;
} __attribute((packed));

struct virtio_magma_create_buffer_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 size_out;
	__le64 buffer_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_release_buffer_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
} __attribute((packed));

struct virtio_magma_release_buffer_resp {
	struct virtio_magma_ctrl_hdr hdr;
} __attribute((packed));

struct virtio_magma_duplicate_handle_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le32 buffer_handle;
} __attribute((packed));

struct virtio_magma_duplicate_handle_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 buffer_handle_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_release_buffer_handle_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le32 buffer_handle;
} __attribute((packed));

struct virtio_magma_release_buffer_handle_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_get_buffer_id_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 buffer;
} __attribute((packed));

struct virtio_magma_get_buffer_id_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_get_buffer_size_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 buffer;
} __attribute((packed));

struct virtio_magma_get_buffer_size_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_clean_cache_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 buffer;
	__le64 offset;
	__le64 size;
	__le64 operation;
} __attribute((packed));

struct virtio_magma_clean_cache_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_set_cache_policy_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 buffer;
	__le64 policy;
} __attribute((packed));

struct virtio_magma_set_cache_policy_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_get_buffer_cache_policy_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 buffer;
} __attribute((packed));

struct virtio_magma_get_buffer_cache_policy_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 cache_policy_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_get_buffer_is_mappable_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 buffer;
	__le32 flags;
} __attribute((packed));

struct virtio_magma_get_buffer_is_mappable_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 is_mappable_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_set_buffer_mapping_address_range_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 buffer;
	__le32 handle;
} __attribute((packed));

struct virtio_magma_set_buffer_mapping_address_range_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_map_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
} __attribute((packed));

struct virtio_magma_map_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 addr_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_map_aligned_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
	__le64 alignment;
} __attribute((packed));

struct virtio_magma_map_aligned_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 addr_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_map_specific_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
	__le64 addr;
	__le64 offset;
	__le64 length;
} __attribute((packed));

struct virtio_magma_map_specific_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_unmap_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
} __attribute((packed));

struct virtio_magma_unmap_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_map_buffer_gpu_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
	__le64 page_offset;
	__le64 page_count;
	__le64 gpu_va;
	__le64 map_flags;
} __attribute((packed));

struct virtio_magma_map_buffer_gpu_resp {
	struct virtio_magma_ctrl_hdr hdr;
} __attribute((packed));

struct virtio_magma_unmap_buffer_gpu_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
	__le64 gpu_va;
} __attribute((packed));

struct virtio_magma_unmap_buffer_gpu_resp {
	struct virtio_magma_ctrl_hdr hdr;
} __attribute((packed));

struct virtio_magma_commit_buffer_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
	__le64 page_offset;
	__le64 page_count;
} __attribute((packed));

struct virtio_magma_commit_buffer_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_export_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
} __attribute((packed));

struct virtio_magma_export_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 buffer_handle_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_import_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le32 buffer_handle;
} __attribute((packed));

struct virtio_magma_import_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 buffer_out;
	__le64 result_return;
} __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_commands2_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le32 context_id;
	__le64 command_count;
	__le64 command_buffers;
} __attribute((packed));

struct virtio_magma_execute_immediate_commands2_resp {
	struct virtio_magma_ctrl_hdr hdr;
} __attribute((packed));

struct virtio_magma_create_semaphore_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
} __attribute((packed));

struct virtio_magma_create_semaphore_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 semaphore_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_release_semaphore_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 semaphore;
} __attribute((packed));

struct virtio_magma_release_semaphore_resp {
	struct virtio_magma_ctrl_hdr hdr;
} __attribute((packed));

struct virtio_magma_get_semaphore_id_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 semaphore;
} __attribute((packed));

struct virtio_magma_get_semaphore_id_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_signal_semaphore_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 semaphore;
} __attribute((packed));

struct virtio_magma_signal_semaphore_resp {
	struct virtio_magma_ctrl_hdr hdr;
} __attribute((packed));

struct virtio_magma_reset_semaphore_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 semaphore;
} __attribute((packed));

struct virtio_magma_reset_semaphore_resp {
	struct virtio_magma_ctrl_hdr hdr;
} __attribute((packed));

struct virtio_magma_export_semaphore_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 semaphore;
} __attribute((packed));

struct virtio_magma_export_semaphore_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 semaphore_handle_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_import_semaphore_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le32 semaphore_handle;
} __attribute((packed));

struct virtio_magma_import_semaphore_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 semaphore_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_get_notification_channel_handle_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
} __attribute((packed));

struct virtio_magma_get_notification_channel_handle_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le32 result_return;
} __attribute((packed));

struct virtio_magma_read_notification_channel_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
	__le64 buffer_size;
} __attribute((packed));

struct virtio_magma_read_notification_channel_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 buffer_size_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_initialize_tracing_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le32 channel;
} __attribute((packed));

struct virtio_magma_initialize_tracing_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_device_import_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le32 device_channel;
} __attribute((packed));

struct virtio_magma_device_import_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 device_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_device_release_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 device;
} __attribute((packed));

struct virtio_magma_device_release_resp {
	struct virtio_magma_ctrl_hdr hdr;
} __attribute((packed));

struct virtio_magma_query2_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 device;
	__le64 id;
} __attribute((packed));

struct virtio_magma_query2_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 value_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_query_returns_buffer2_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 device;
	__le64 id;
} __attribute((packed));

struct virtio_magma_query_returns_buffer2_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 handle_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_create_connection2_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 device;
} __attribute((packed));

struct virtio_magma_create_connection2_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_initialize_logging_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le32 channel;
} __attribute((packed));

struct virtio_magma_initialize_logging_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_poll_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 items;
	__le32 count;
	__le64 timeout_ns;
} __attribute((packed));

struct virtio_magma_poll_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_connection_access_performance_counters_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le32 channel;
} __attribute((packed));

struct virtio_magma_connection_access_performance_counters_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_map_constrained_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
	__le64 length;
	__le64 upper_limit;
	__le64 alignment;
} __attribute((packed));

struct virtio_magma_map_constrained_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 addr_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_buffer_set_padding_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
	__le64 padding;
} __attribute((packed));

struct virtio_magma_buffer_set_padding_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_connection_enable_performance_counters_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 counters;
	__le64 counters_count;
} __attribute((packed));

struct virtio_magma_connection_enable_performance_counters_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_connection_create_performance_counter_buffer_pool_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
} __attribute((packed));

struct virtio_magma_connection_create_performance_counter_buffer_pool_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 pool_out;
	__le64 notification_handle_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_connection_release_performance_counter_buffer_pool_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 pool;
} __attribute((packed));

struct virtio_magma_connection_release_performance_counter_buffer_pool_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_connection_add_performance_counter_buffer_offsets_to_pool_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 pool;
	__le64 offsets;
	__le64 offsets_count;
} __attribute((packed));

struct virtio_magma_connection_add_performance_counter_buffer_offsets_to_pool_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_connection_remove_performance_counter_buffer_from_pool_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 pool_id;
	__le64 buffer;
} __attribute((packed));

struct virtio_magma_connection_remove_performance_counter_buffer_from_pool_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_connection_dump_performance_counters_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 pool;
	__le32 trigger_id;
} __attribute((packed));

struct virtio_magma_connection_dump_performance_counters_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_connection_clear_performance_counters_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 counters;
	__le64 counters_count;
} __attribute((packed));

struct virtio_magma_connection_clear_performance_counters_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_connection_read_performance_counter_completion_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 pool;
} __attribute((packed));

struct virtio_magma_connection_read_performance_counter_completion_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 trigger_id_out;
	__le64 buffer_id_out;
	__le64 buffer_offset_out;
	__le64 time_out;
	__le64 result_flags_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_buffer_set_name_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
	__le64 name;
} __attribute((packed));

struct virtio_magma_buffer_set_name_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_buffer_range_op_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
	__le32 options;
	__le64 start_offset;
	__le64 length;
} __attribute((packed));

struct virtio_magma_buffer_range_op_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_buffer_get_info_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
} __attribute((packed));

struct virtio_magma_buffer_get_info_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 info_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_get_buffer_handle_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
} __attribute((packed));

struct virtio_magma_get_buffer_handle_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 handle_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_internal_map_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
	__le64 length;
} __attribute((packed));

struct virtio_magma_internal_map_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 address_out;
	__le64 result_return;
} __attribute((packed));

struct virtio_magma_internal_unmap_ctrl {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 connection;
	__le64 buffer;
	__le64 address;
} __attribute((packed));

struct virtio_magma_internal_unmap_resp {
	struct virtio_magma_ctrl_hdr hdr;
	__le64 result_return;
} __attribute((packed));

#endif /* _LINUX_VIRTIO_MAGMA_H
 */
