Elliott Hughes | 180edef | 2023-11-02 00:08:05 +0000 | [diff] [blame] | 1 | /* |
| 2 | * This file is auto-generated. Modifications will be lost. |
| 3 | * |
| 4 | * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ |
| 5 | * for more information. |
| 6 | */ |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 7 | #ifndef _UAPI_HYPERV_H |
| 8 | #define _UAPI_HYPERV_H |
Christopher Ferris | 2abfa9e | 2021-11-01 16:26:06 -0700 | [diff] [blame] | 9 | #include <linux/types.h> |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 10 | #define UTIL_FW_MINOR 0 |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 11 | #define UTIL_WS2K8_FW_MAJOR 1 |
| 12 | #define UTIL_WS2K8_FW_VERSION (UTIL_WS2K8_FW_MAJOR << 16 | UTIL_FW_MINOR) |
| 13 | #define UTIL_FW_MAJOR 3 |
| 14 | #define UTIL_FW_VERSION (UTIL_FW_MAJOR << 16 | UTIL_FW_MINOR) |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 15 | #define VSS_OP_REGISTER 128 |
Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 16 | #define VSS_OP_REGISTER1 129 |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 17 | enum hv_vss_op { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 18 | VSS_OP_CREATE = 0, |
Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 19 | VSS_OP_DELETE, |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 20 | VSS_OP_HOT_BACKUP, |
| 21 | VSS_OP_GET_DM_INFO, |
| 22 | VSS_OP_BU_COMPLETE, |
Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 23 | VSS_OP_FREEZE, |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 24 | VSS_OP_THAW, |
| 25 | VSS_OP_AUTO_RECOVER, |
| 26 | VSS_OP_COUNT |
Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 27 | }; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 28 | struct hv_vss_hdr { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 29 | __u8 operation; |
| 30 | __u8 reserved[7]; |
Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 31 | } __attribute__((packed)); |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 32 | #define VSS_HBU_NO_AUTO_RECOVERY 0x00000005 |
| 33 | struct hv_vss_check_feature { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 34 | __u32 flags; |
Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 35 | } __attribute__((packed)); |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 36 | struct hv_vss_check_dm_info { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 37 | __u32 flags; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 38 | } __attribute__((packed)); |
Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 39 | struct hv_vss_msg { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 40 | union { |
| 41 | struct hv_vss_hdr vss_hdr; |
| 42 | int error; |
Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 43 | }; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 44 | union { |
| 45 | struct hv_vss_check_feature vss_cf; |
| 46 | struct hv_vss_check_dm_info dm_info; |
Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 47 | }; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 48 | } __attribute__((packed)); |
| 49 | #define FCOPY_VERSION_0 0 |
Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 50 | #define FCOPY_VERSION_1 1 |
Christopher Ferris | 05d08e9 | 2016-02-04 13:16:38 -0800 | [diff] [blame] | 51 | #define FCOPY_CURRENT_VERSION FCOPY_VERSION_1 |
| 52 | #define W_MAX_PATH 260 |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 53 | enum hv_fcopy_op { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 54 | START_FILE_COPY = 0, |
| 55 | WRITE_TO_FILE, |
| 56 | COMPLETE_FCOPY, |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 57 | CANCEL_FCOPY, |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 58 | }; |
| 59 | struct hv_fcopy_hdr { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 60 | __u32 operation; |
Christopher Ferris | af09c70 | 2020-06-01 20:29:29 -0700 | [diff] [blame] | 61 | __u8 service_id0[16]; |
| 62 | __u8 service_id1[16]; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 63 | } __attribute__((packed)); |
| 64 | #define OVER_WRITE 0x1 |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 65 | #define CREATE_PATH 0x2 |
| 66 | struct hv_start_fcopy { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 67 | struct hv_fcopy_hdr hdr; |
| 68 | __u16 file_name[W_MAX_PATH]; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 69 | __u16 path_name[W_MAX_PATH]; |
| 70 | __u32 copy_flags; |
| 71 | __u64 file_size; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 72 | } __attribute__((packed)); |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 73 | #define DATA_FRAGMENT (6 * 1024) |
| 74 | struct hv_do_fcopy { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 75 | struct hv_fcopy_hdr hdr; |
| 76 | __u32 pad; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 77 | __u64 offset; |
| 78 | __u32 size; |
| 79 | __u8 data[DATA_FRAGMENT]; |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 80 | } __attribute__((packed)); |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 81 | #define HV_KVP_EXCHANGE_MAX_VALUE_SIZE (2048) |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 82 | #define HV_KVP_EXCHANGE_MAX_KEY_SIZE (512) |
| 83 | #define REG_SZ 1 |
| 84 | #define REG_U32 4 |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 85 | #define REG_U64 8 |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 86 | #define KVP_OP_REGISTER 4 |
| 87 | #define KVP_OP_REGISTER1 100 |
| 88 | enum hv_kvp_exchg_op { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 89 | KVP_OP_GET = 0, |
| 90 | KVP_OP_SET, |
| 91 | KVP_OP_DELETE, |
| 92 | KVP_OP_ENUMERATE, |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 93 | KVP_OP_GET_IP_INFO, |
| 94 | KVP_OP_SET_IP_INFO, |
| 95 | KVP_OP_COUNT |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 96 | }; |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 97 | enum hv_kvp_exchg_pool { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 98 | KVP_POOL_EXTERNAL = 0, |
| 99 | KVP_POOL_GUEST, |
| 100 | KVP_POOL_AUTO, |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 101 | KVP_POOL_AUTO_EXTERNAL, |
| 102 | KVP_POOL_AUTO_INTERNAL, |
| 103 | KVP_POOL_COUNT |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 104 | }; |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 105 | #define HV_S_OK 0x00000000 |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 106 | #define HV_E_FAIL 0x80004005 |
| 107 | #define HV_S_CONT 0x80070103 |
| 108 | #define HV_ERROR_NOT_SUPPORTED 0x80070032 |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 109 | #define HV_ERROR_MACHINE_LOCKED 0x800704F7 |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 110 | #define HV_ERROR_DEVICE_NOT_CONNECTED 0x8007048F |
| 111 | #define HV_INVALIDARG 0x80070057 |
| 112 | #define HV_GUID_NOTFOUND 0x80041002 |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 113 | #define HV_ERROR_ALREADY_EXISTS 0x80070050 |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 114 | #define HV_ERROR_DISK_FULL 0x80070070 |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 115 | #define ADDR_FAMILY_NONE 0x00 |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 116 | #define ADDR_FAMILY_IPV4 0x01 |
| 117 | #define ADDR_FAMILY_IPV6 0x02 |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 118 | #define MAX_ADAPTER_ID_SIZE 128 |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 119 | #define MAX_IP_ADDR_SIZE 1024 |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 120 | #define MAX_GATEWAY_SIZE 512 |
| 121 | struct hv_kvp_ipaddr_value { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 122 | __u16 adapter_id[MAX_ADAPTER_ID_SIZE]; |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 123 | __u8 addr_family; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 124 | __u8 dhcp_enabled; |
| 125 | __u16 ip_addr[MAX_IP_ADDR_SIZE]; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 126 | __u16 sub_net[MAX_IP_ADDR_SIZE]; |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 127 | __u16 gate_way[MAX_GATEWAY_SIZE]; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 128 | __u16 dns_addr[MAX_IP_ADDR_SIZE]; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 129 | } __attribute__((packed)); |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 130 | struct hv_kvp_hdr { |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 131 | __u8 operation; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 132 | __u8 pool; |
| 133 | __u16 pad; |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 134 | } __attribute__((packed)); |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 135 | struct hv_kvp_exchg_msg_value { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 136 | __u32 value_type; |
| 137 | __u32 key_size; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 138 | __u32 value_size; |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 139 | __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE]; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 140 | union { |
| 141 | __u8 value[HV_KVP_EXCHANGE_MAX_VALUE_SIZE]; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 142 | __u32 value_u32; |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 143 | __u64 value_u64; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 144 | }; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 145 | } __attribute__((packed)); |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 146 | struct hv_kvp_msg_enumerate { |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 147 | __u32 index; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 148 | struct hv_kvp_exchg_msg_value data; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 149 | } __attribute__((packed)); |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 150 | struct hv_kvp_msg_get { |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 151 | struct hv_kvp_exchg_msg_value data; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 152 | }; |
| 153 | struct hv_kvp_msg_set { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 154 | struct hv_kvp_exchg_msg_value data; |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 155 | }; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 156 | struct hv_kvp_msg_delete { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 157 | __u32 key_size; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 158 | __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE]; |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 159 | }; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 160 | struct hv_kvp_register { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 161 | __u8 version[HV_KVP_EXCHANGE_MAX_KEY_SIZE]; |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 162 | }; |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 163 | struct hv_kvp_msg { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 164 | union { |
| 165 | struct hv_kvp_hdr kvp_hdr; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 166 | int error; |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 167 | }; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 168 | union { |
| 169 | struct hv_kvp_msg_get kvp_get; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 170 | struct hv_kvp_msg_set kvp_set; |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 171 | struct hv_kvp_msg_delete kvp_delete; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 172 | struct hv_kvp_msg_enumerate kvp_enum_data; |
| 173 | struct hv_kvp_ipaddr_value kvp_ip_val; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 174 | struct hv_kvp_register kvp_register; |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 175 | } body; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 176 | } __attribute__((packed)); |
| 177 | struct hv_kvp_ip_msg { |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 178 | __u8 operation; |
Christopher Ferris | 106b3a8 | 2016-08-24 12:15:38 -0700 | [diff] [blame] | 179 | __u8 pool; |
Tao Bao | d7db594 | 2015-01-28 10:07:51 -0800 | [diff] [blame] | 180 | struct hv_kvp_ipaddr_value kvp_ip_val; |
Christopher Ferris | ba8d4f4 | 2014-09-03 19:56:49 -0700 | [diff] [blame] | 181 | } __attribute__((packed)); |
Christopher Ferris | 82d7504 | 2015-01-26 10:57:07 -0800 | [diff] [blame] | 182 | #endif |