| /* 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 = 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 = 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 = 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"; |
| 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_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"; |
| 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_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_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; |
| 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_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; |
| 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_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; |
| } __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_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; |
| __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 */ |