1ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris/**************************************************************************** 2ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris **************************************************************************** 3ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** 4ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** This header was automatically generated from a Linux kernel header 5ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** of the same name, to make information necessary for userspace to 6ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** call into the kernel available to libc. It contains only constants, 7ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** structures, and macros generated from the original header, and thus, 8ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** contains no copyrightable information. 9ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** 10ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** To edit the content of this header, modify the corresponding 11ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** source file (e.g. under external/kernel-headers/original/) then 12ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** run bionic/libc/kernel/tools/update_all.py 13ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** 14ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** Any manual change here will be lost the next time this script will 15ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** be run. You've been warned! 16ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris *** 17ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris **************************************************************************** 18ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris ****************************************************************************/ 19ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#ifndef _UAPI_HYPERV_H 20ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define _UAPI_HYPERV_H 21ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#include <linux/uuid.h> 22ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define UTIL_FW_MINOR 0 23ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define UTIL_WS2K8_FW_MAJOR 1 24ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define UTIL_WS2K8_FW_VERSION (UTIL_WS2K8_FW_MAJOR << 16 | UTIL_FW_MINOR) 25ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define UTIL_FW_MAJOR 3 26ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define UTIL_FW_VERSION (UTIL_FW_MAJOR << 16 | UTIL_FW_MINOR) 27ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define VSS_OP_REGISTER 128 2805d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define VSS_OP_REGISTER1 129 29ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisenum hv_vss_op { 30d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao VSS_OP_CREATE = 0, 3105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris VSS_OP_DELETE, 32d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao VSS_OP_HOT_BACKUP, 33d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao VSS_OP_GET_DM_INFO, 34d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao VSS_OP_BU_COMPLETE, 3505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris VSS_OP_FREEZE, 36d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao VSS_OP_THAW, 37d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao VSS_OP_AUTO_RECOVER, 38d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao VSS_OP_COUNT 3905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris}; 40ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct hv_vss_hdr { 41d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 operation; 42d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 reserved[7]; 4305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __attribute__((packed)); 44ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define VSS_HBU_NO_AUTO_RECOVERY 0x00000005 45ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct hv_vss_check_feature { 46d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 flags; 4705d08e9716b5974d6ed08973f44930804890b902Christopher Ferris} __attribute__((packed)); 48ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct hv_vss_check_dm_info { 49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 flags; 50ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris} __attribute__((packed)); 5105d08e9716b5974d6ed08973f44930804890b902Christopher Ferrisstruct hv_vss_msg { 52d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao union { 53d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_vss_hdr vss_hdr; 54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int error; 5505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris }; 56d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao union { 57d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_vss_check_feature vss_cf; 58d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_vss_check_dm_info dm_info; 5905d08e9716b5974d6ed08973f44930804890b902Christopher Ferris }; 60ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris} __attribute__((packed)); 61ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define FCOPY_VERSION_0 0 6205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define FCOPY_VERSION_1 1 6305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define FCOPY_CURRENT_VERSION FCOPY_VERSION_1 6405d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define W_MAX_PATH 260 65ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisenum hv_fcopy_op { 66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao START_FILE_COPY = 0, 67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao WRITE_TO_FILE, 68d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao COMPLETE_FCOPY, 69d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao CANCEL_FCOPY, 70ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris}; 71ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct hv_fcopy_hdr { 72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 operation; 73d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao uuid_le service_id0; 74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao uuid_le service_id1; 75ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris} __attribute__((packed)); 76ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define OVER_WRITE 0x1 77ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define CREATE_PATH 0x2 78ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct hv_start_fcopy { 79d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_fcopy_hdr hdr; 80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 file_name[W_MAX_PATH]; 81d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 path_name[W_MAX_PATH]; 82d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 copy_flags; 83d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 file_size; 84ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris} __attribute__((packed)); 85ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define DATA_FRAGMENT (6 * 1024) 86ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct hv_do_fcopy { 87d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_fcopy_hdr hdr; 88d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 pad; 89d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u64 offset; 90d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 size; 91d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 data[DATA_FRAGMENT]; 9282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris} __attribute__((packed)); 9382d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define HV_KVP_EXCHANGE_MAX_VALUE_SIZE (2048) 94ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define HV_KVP_EXCHANGE_MAX_KEY_SIZE (512) 95ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define REG_SZ 1 96ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define REG_U32 4 9782d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define REG_U64 8 98ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define KVP_OP_REGISTER 4 99ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define KVP_OP_REGISTER1 100 100ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisenum hv_kvp_exchg_op { 101d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_OP_GET = 0, 102d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_OP_SET, 103d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_OP_DELETE, 104d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_OP_ENUMERATE, 105d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_OP_GET_IP_INFO, 106d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_OP_SET_IP_INFO, 107d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_OP_COUNT 108ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris}; 10982d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisenum hv_kvp_exchg_pool { 110d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_POOL_EXTERNAL = 0, 111d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_POOL_GUEST, 112d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_POOL_AUTO, 113d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_POOL_AUTO_EXTERNAL, 114d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_POOL_AUTO_INTERNAL, 115d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao KVP_POOL_COUNT 116ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris}; 11782d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define HV_S_OK 0x00000000 118ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define HV_E_FAIL 0x80004005 119ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define HV_S_CONT 0x80070103 120ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define HV_ERROR_NOT_SUPPORTED 0x80070032 12182d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define HV_ERROR_MACHINE_LOCKED 0x800704F7 122ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define HV_ERROR_DEVICE_NOT_CONNECTED 0x8007048F 123ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define HV_INVALIDARG 0x80070057 124ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define HV_GUID_NOTFOUND 0x80041002 12582d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define HV_ERROR_ALREADY_EXISTS 0x80070050 126106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define HV_ERROR_DISK_FULL 0x80070070 127106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define ADDR_FAMILY_NONE 0x00 128ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define ADDR_FAMILY_IPV4 0x01 129ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define ADDR_FAMILY_IPV6 0x02 13082d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#define MAX_ADAPTER_ID_SIZE 128 131106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define MAX_IP_ADDR_SIZE 1024 132ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define MAX_GATEWAY_SIZE 512 133ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct hv_kvp_ipaddr_value { 134d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 adapter_id[MAX_ADAPTER_ID_SIZE]; 135106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 addr_family; 136d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 dhcp_enabled; 137d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 ip_addr[MAX_IP_ADDR_SIZE]; 138d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 sub_net[MAX_IP_ADDR_SIZE]; 139106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u16 gate_way[MAX_GATEWAY_SIZE]; 140d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 dns_addr[MAX_IP_ADDR_SIZE]; 141ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris} __attribute__((packed)); 14282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisstruct hv_kvp_hdr { 143106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 operation; 144d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 pool; 145d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 pad; 14682d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris} __attribute__((packed)); 147106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct hv_kvp_exchg_msg_value { 148d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 value_type; 149d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 key_size; 150d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 value_size; 151106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE]; 152d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao union { 153d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 value[HV_KVP_EXCHANGE_MAX_VALUE_SIZE]; 154d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 value_u32; 155106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u64 value_u64; 156d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao }; 157ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris} __attribute__((packed)); 15882d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisstruct hv_kvp_msg_enumerate { 159106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 index; 160d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_kvp_exchg_msg_value data; 161ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris} __attribute__((packed)); 16282d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferrisstruct hv_kvp_msg_get { 163106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris struct hv_kvp_exchg_msg_value data; 164ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris}; 165ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct hv_kvp_msg_set { 166d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_kvp_exchg_msg_value data; 167106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris}; 168ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct hv_kvp_msg_delete { 169d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 key_size; 170d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE]; 171106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris}; 172ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct hv_kvp_register { 173d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 version[HV_KVP_EXCHANGE_MAX_KEY_SIZE]; 17482d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris}; 175106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferrisstruct hv_kvp_msg { 176d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao union { 177d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_kvp_hdr kvp_hdr; 178d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao int error; 179106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris }; 180d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao union { 181d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_kvp_msg_get kvp_get; 182d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_kvp_msg_set kvp_set; 183106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris struct hv_kvp_msg_delete kvp_delete; 184d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_kvp_msg_enumerate kvp_enum_data; 185d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_kvp_ipaddr_value kvp_ip_val; 186d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_kvp_register kvp_register; 187106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris } body; 188ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris} __attribute__((packed)); 189ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferrisstruct hv_kvp_ip_msg { 190d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 operation; 191106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 pool; 192d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct hv_kvp_ipaddr_value kvp_ip_val; 193ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris} __attribute__((packed)); 19482d7504cd7d5c8d2175fb3b1a4ee3518cad6aa0fChristopher Ferris#endif 195