blob: 74f441d988cef68da17c527589949170fdb50079 [file] [log] [blame]
/* 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:
//garnet/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_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,
/* 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,
/* 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,
} __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_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";
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_CREATE_COMMAND_BUFFER: return "VIRTIO_MAGMA_CMD_CREATE_COMMAND_BUFFER";
case VIRTIO_MAGMA_RESP_CREATE_COMMAND_BUFFER: return "VIRTIO_MAGMA_RESP_CREATE_COMMAND_BUFFER";
case VIRTIO_MAGMA_CMD_RELEASE_COMMAND_BUFFER: return "VIRTIO_MAGMA_CMD_RELEASE_COMMAND_BUFFER";
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_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";
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_WAIT_SEMAPHORES: return "VIRTIO_MAGMA_CMD_WAIT_SEMAPHORES";
case VIRTIO_MAGMA_RESP_WAIT_SEMAPHORES: return "VIRTIO_MAGMA_RESP_WAIT_SEMAPHORES";
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_WAIT_NOTIFICATION_CHANNEL: return "VIRTIO_MAGMA_CMD_WAIT_NOTIFICATION_CHANNEL";
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_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_QUERY: return VIRTIO_MAGMA_RESP_QUERY;
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;
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_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_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;
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_WAIT_SEMAPHORES: return VIRTIO_MAGMA_RESP_WAIT_SEMAPHORES;
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_WAIT_NOTIFICATION_CHANNEL: return VIRTIO_MAGMA_RESP_WAIT_NOTIFICATION_CHANNEL;
case VIRTIO_MAGMA_CMD_READ_NOTIFICATION_CHANNEL: return VIRTIO_MAGMA_RESP_READ_NOTIFICATION_CHANNEL;
default: return VIRTIO_MAGMA_RESP_ERR_INVALID_COMMAND;
}
}
struct virtio_magma_ctrl_hdr {
__le32 type;
__le32 flags;
} __attribute((packed));
struct virtio_magma_query_ctrl {
struct virtio_magma_ctrl_hdr hdr;
__le32 file_descriptor;
__le64 id;
} __attribute((packed));
struct virtio_magma_query_resp {
struct virtio_magma_ctrl_hdr hdr;
__le64 value_out;
__le64 result_return;
} __attribute((packed));
struct virtio_magma_create_connection_ctrl {
struct virtio_magma_ctrl_hdr hdr;
__le32 file_descriptor;
} __attribute((packed));
struct virtio_magma_create_connection_resp {
struct virtio_magma_ctrl_hdr hdr;
__le64 connection_out;
__le64 result_return;
} __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;
} __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_create_command_buffer_ctrl {
struct virtio_magma_ctrl_hdr hdr;
__le64 connection;
__le64 size;
} __attribute((packed));
struct virtio_magma_create_command_buffer_resp {
struct virtio_magma_ctrl_hdr hdr;
__le64 buffer_out;
__le64 result_return;
} __attribute((packed));
struct virtio_magma_release_command_buffer_ctrl {
struct virtio_magma_ctrl_hdr hdr;
__le64 connection;
__le64 command_buffer;
} __attribute((packed));
struct virtio_magma_release_command_buffer_resp {
struct virtio_magma_ctrl_hdr hdr;
} __attribute((packed));
struct virtio_magma_submit_command_buffer_ctrl {
struct virtio_magma_ctrl_hdr hdr;
__le64 connection;
__le64 command_buffer;
__le32 context_id;
} __attribute((packed));
struct virtio_magma_submit_command_buffer_resp {
struct virtio_magma_ctrl_hdr hdr;
} __attribute((packed));
struct virtio_magma_execute_immediate_commands_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_commands_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_wait_semaphores_ctrl {
struct virtio_magma_ctrl_hdr hdr;
__le64 semaphores;
__le32 count;
__le64 timeout_ms;
u8 wait_all;
} __attribute((packed));
struct virtio_magma_wait_semaphores_resp {
struct virtio_magma_ctrl_hdr hdr;
__le64 result_return;
} __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_wait_notification_channel_ctrl {
struct virtio_magma_ctrl_hdr hdr;
__le64 connection;
__le64 timeout_ns;
} __attribute((packed));
struct virtio_magma_wait_notification_channel_resp {
struct virtio_magma_ctrl_hdr hdr;
__le64 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));
#endif /* _LINUX_VIRTIO_MAGMA_H */