[virtio_magma] Update to latest API Removes magma_wait_semaphores. The new APIs aren't tested on Linux yet so we ignore them. Bug:62444 Change-Id: I366cf8cb5fa83395b7b7fc22704652682599c7a8
diff --git a/drivers/virtio/virtio_magma.c b/drivers/virtio/virtio_magma.c index 6d12129..58f5c31 100644 --- a/drivers/virtio/virtio_magma.c +++ b/drivers/virtio/virtio_magma.c
@@ -1040,40 +1040,6 @@ static int virtmagma_command_magma_map(struct virtmagma_instance *instance, return 0; } -static int virtmagma_command_magma_wait_semaphores( - struct virtmagma_instance *instance, - struct virtmagma_virtio_command *command) -{ - int ret; - size_t semaphores_size; - struct virtio_magma_wait_semaphores_ctrl *request = - command->request_ptr; - struct virtio_magma_wait_semaphores_resp *response = - command->response_ptr; - - if (!COMMAND_OK(command, request, response)) - return -EINVAL; - - /* reallocate request buffer with enough space for the semaphores */ - semaphores_size = request->count * sizeof(uint64_t); - command->request_size = sizeof(*request) + semaphores_size; - command->request_ptr = kzalloc(command->request_size, GFP_KERNEL); - if (!command->request_ptr) - return -ENOMEM; - - memcpy(command->request_ptr, request, sizeof(*request)); - ret = copy_from_user((char *)command->request_ptr + sizeof(*request), - (void *)request->semaphores, semaphores_size); - if (ret) - return ret; - - ret = vq_out_send_sync(instance->vi, command); - if (ret) - return ret; - - return virtmagma_check_expected_response_type(request, response); -} - static int virtmagma_command_magma_poll(struct virtmagma_instance *instance, struct virtmagma_virtio_command *command) @@ -1337,10 +1303,6 @@ int virtmagma_ioctl_magma_command(struct file *filp, void __user *ptr) case VIRTIO_MAGMA_CMD_MAP: ret = virtmagma_command_magma_map(instance, &command); break; - case VIRTIO_MAGMA_CMD_WAIT_SEMAPHORES: - ret = virtmagma_command_magma_wait_semaphores(instance, - &command); - break; case VIRTIO_MAGMA_CMD_POLL: ret = virtmagma_command_magma_poll(instance, &command); break; @@ -1368,7 +1330,6 @@ int virtmagma_ioctl_magma_command(struct file *filp, void __user *ptr) case VIRTIO_MAGMA_CMD_SIGNAL_SEMAPHORE: case VIRTIO_MAGMA_CMD_RESET_SEMAPHORE: case VIRTIO_MAGMA_CMD_GET_NOTIFICATION_CHANNEL_HANDLE: - case VIRTIO_MAGMA_CMD_WAIT_NOTIFICATION_CHANNEL: case VIRTIO_MAGMA_CMD_DEVICE_IMPORT: case VIRTIO_MAGMA_CMD_DEVICE_RELEASE: case VIRTIO_MAGMA_CMD_RELEASE_BUFFER_HANDLE:
diff --git a/include/uapi/linux/virtio_magma.h b/include/uapi/linux/virtio_magma.h index fcf55b1..afb67ee 100644 --- a/include/uapi/linux/virtio_magma.h +++ b/include/uapi/linux/virtio_magma.h
@@ -1,9 +1,11 @@ /* 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. */ + 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 */ + //src/graphics/lib/magma/include/virtio/virtio_magma.h.gen.py + */ #ifndef _LINUX_VIRTIO_MAGMA_H #define _LINUX_VIRTIO_MAGMA_H @@ -17,7 +19,8 @@ struct virtio_magma_config { } __attribute((packed)); enum virtio_magma_ctrl_type { - /* magma commands */ + /* magma commands + */ VIRTIO_MAGMA_CMD_RELEASE_CONNECTION = 0x1004, VIRTIO_MAGMA_CMD_GET_ERROR = 0x1005, VIRTIO_MAGMA_CMD_CREATE_CONTEXT = 0x1006, @@ -49,11 +52,9 @@ enum virtio_magma_ctrl_type { 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, VIRTIO_MAGMA_CMD_INITIALIZE_TRACING = 0x102D, VIRTIO_MAGMA_CMD_DEVICE_IMPORT = 0x102E, @@ -63,7 +64,22 @@ enum virtio_magma_ctrl_type { VIRTIO_MAGMA_CMD_CREATE_CONNECTION2 = 0x1032, VIRTIO_MAGMA_CMD_INITIALIZE_LOGGING = 0x1033, VIRTIO_MAGMA_CMD_POLL = 0x1034, - /* magma success responses */ + 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, + /* magma success responses + */ VIRTIO_MAGMA_RESP_RELEASE_CONNECTION = 0x2004, VIRTIO_MAGMA_RESP_GET_ERROR = 0x2005, VIRTIO_MAGMA_RESP_CREATE_CONTEXT = 0x2006, @@ -95,11 +111,9 @@ enum virtio_magma_ctrl_type { 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, VIRTIO_MAGMA_RESP_INITIALIZE_TRACING = 0x202D, VIRTIO_MAGMA_RESP_DEVICE_IMPORT = 0x202E, @@ -109,7 +123,22 @@ enum virtio_magma_ctrl_type { VIRTIO_MAGMA_RESP_CREATE_CONNECTION2 = 0x2032, VIRTIO_MAGMA_RESP_INITIALIZE_LOGGING = 0x2033, VIRTIO_MAGMA_RESP_POLL = 0x2034, - /* magma error responses */ + 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, + /* magma error responses + */ VIRTIO_MAGMA_RESP_ERR_UNIMPLEMENTED = 0x3001, VIRTIO_MAGMA_RESP_ERR_INTERNAL = 0x3002, VIRTIO_MAGMA_RESP_ERR_HOST_DISCONNECTED = 0x3003, @@ -182,16 +211,12 @@ inline const char* virtio_magma_ctrl_type_string(enum virtio_magma_ctrl_type typ 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_CMD_INITIALIZE_TRACING: return "VIRTIO_MAGMA_CMD_INITIALIZE_TRACING"; @@ -210,6 +235,34 @@ inline const char* virtio_magma_ctrl_type_string(enum virtio_magma_ctrl_type typ 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_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"; @@ -253,11 +306,9 @@ inline enum virtio_magma_ctrl_type virtio_magma_expected_response_type(enum virt 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; case VIRTIO_MAGMA_CMD_INITIALIZE_TRACING: return VIRTIO_MAGMA_RESP_INITIALIZE_TRACING; case VIRTIO_MAGMA_CMD_DEVICE_IMPORT: return VIRTIO_MAGMA_RESP_DEVICE_IMPORT; @@ -267,6 +318,20 @@ inline enum virtio_magma_ctrl_type virtio_magma_expected_response_type(enum virt 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; default: return VIRTIO_MAGMA_RESP_ERR_INVALID_COMMAND; } } @@ -623,19 +688,6 @@ 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; @@ -670,17 +722,6 @@ struct virtio_magma_get_notification_channel_handle_resp { __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; @@ -781,4 +822,181 @@ struct virtio_magma_poll_resp { __le64 result_return; } __attribute((packed)); -#endif /* _LINUX_VIRTIO_MAGMA_H */ +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)); + +#endif /* _LINUX_VIRTIO_MAGMA_H + */