blob: 7993306d8fe0705d53fdc17868099028dbb7992b [file] [log] [blame]
Christopher Ferrisba8d4f42014-09-03 19:56:49 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _UAPI_HYPERV_H
20#define _UAPI_HYPERV_H
21#include <linux/uuid.h>
22#define UTIL_FW_MINOR 0
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24#define UTIL_WS2K8_FW_MAJOR 1
25#define UTIL_WS2K8_FW_VERSION (UTIL_WS2K8_FW_MAJOR << 16 | UTIL_FW_MINOR)
26#define UTIL_FW_MAJOR 3
27#define UTIL_FW_VERSION (UTIL_FW_MAJOR << 16 | UTIL_FW_MINOR)
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29#define VSS_OP_REGISTER 128
Christopher Ferris05d08e92016-02-04 13:16:38 -080030#define VSS_OP_REGISTER1 129
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070031enum hv_vss_op {
Tao Baod7db5942015-01-28 10:07:51 -080032 VSS_OP_CREATE = 0,
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080034 VSS_OP_DELETE,
Tao Baod7db5942015-01-28 10:07:51 -080035 VSS_OP_HOT_BACKUP,
36 VSS_OP_GET_DM_INFO,
37 VSS_OP_BU_COMPLETE,
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080039 VSS_OP_FREEZE,
Tao Baod7db5942015-01-28 10:07:51 -080040 VSS_OP_THAW,
41 VSS_OP_AUTO_RECOVER,
42 VSS_OP_COUNT
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080044};
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070045struct hv_vss_hdr {
Tao Baod7db5942015-01-28 10:07:51 -080046 __u8 operation;
47 __u8 reserved[7];
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080049} __attribute__((packed));
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070050#define VSS_HBU_NO_AUTO_RECOVERY 0x00000005
51struct hv_vss_check_feature {
Tao Baod7db5942015-01-28 10:07:51 -080052 __u32 flags;
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080054} __attribute__((packed));
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070055struct hv_vss_check_dm_info {
Tao Baod7db5942015-01-28 10:07:51 -080056 __u32 flags;
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070057} __attribute__((packed));
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080059struct hv_vss_msg {
Tao Baod7db5942015-01-28 10:07:51 -080060 union {
61 struct hv_vss_hdr vss_hdr;
62 int error;
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080064 };
Tao Baod7db5942015-01-28 10:07:51 -080065 union {
66 struct hv_vss_check_feature vss_cf;
67 struct hv_vss_check_dm_info dm_info;
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080069 };
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070070} __attribute__((packed));
71#define FCOPY_VERSION_0 0
Christopher Ferris05d08e92016-02-04 13:16:38 -080072#define FCOPY_VERSION_1 1
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris05d08e92016-02-04 13:16:38 -080074#define FCOPY_CURRENT_VERSION FCOPY_VERSION_1
75#define W_MAX_PATH 260
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070076enum hv_fcopy_op {
Tao Baod7db5942015-01-28 10:07:51 -080077 START_FILE_COPY = 0,
Christopher Ferris05d08e92016-02-04 13:16:38 -080078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -080079 WRITE_TO_FILE,
80 COMPLETE_FCOPY,
Tao Baod7db5942015-01-28 10:07:51 -080081 CANCEL_FCOPY,
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070082};
Christopher Ferris05d08e92016-02-04 13:16:38 -080083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070084struct hv_fcopy_hdr {
Tao Baod7db5942015-01-28 10:07:51 -080085 __u32 operation;
Tao Baod7db5942015-01-28 10:07:51 -080086 uuid_le service_id0;
87 uuid_le service_id1;
Christopher Ferris05d08e92016-02-04 13:16:38 -080088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070089} __attribute__((packed));
90#define OVER_WRITE 0x1
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070091#define CREATE_PATH 0x2
92struct hv_start_fcopy {
Christopher Ferris05d08e92016-02-04 13:16:38 -080093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -080094 struct hv_fcopy_hdr hdr;
95 __u16 file_name[W_MAX_PATH];
Tao Baod7db5942015-01-28 10:07:51 -080096 __u16 path_name[W_MAX_PATH];
97 __u32 copy_flags;
Christopher Ferris05d08e92016-02-04 13:16:38 -080098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -080099 __u64 file_size;
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700100} __attribute__((packed));
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700101#define DATA_FRAGMENT (6 * 1024)
102struct hv_do_fcopy {
Christopher Ferris05d08e92016-02-04 13:16:38 -0800103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800104 struct hv_fcopy_hdr hdr;
105 __u32 pad;
Tao Baod7db5942015-01-28 10:07:51 -0800106 __u64 offset;
107 __u32 size;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800109 __u8 data[DATA_FRAGMENT];
Christopher Ferris82d75042015-01-26 10:57:07 -0800110} __attribute__((packed));
Christopher Ferris82d75042015-01-26 10:57:07 -0800111#define HV_KVP_EXCHANGE_MAX_VALUE_SIZE (2048)
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700112#define HV_KVP_EXCHANGE_MAX_KEY_SIZE (512)
Christopher Ferris05d08e92016-02-04 13:16:38 -0800113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700114#define REG_SZ 1
115#define REG_U32 4
Christopher Ferris82d75042015-01-26 10:57:07 -0800116#define REG_U64 8
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700117#define KVP_OP_REGISTER 4
Christopher Ferris05d08e92016-02-04 13:16:38 -0800118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700119#define KVP_OP_REGISTER1 100
120enum hv_kvp_exchg_op {
Tao Baod7db5942015-01-28 10:07:51 -0800121 KVP_OP_GET = 0,
122 KVP_OP_SET,
Christopher Ferris05d08e92016-02-04 13:16:38 -0800123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800124 KVP_OP_DELETE,
125 KVP_OP_ENUMERATE,
Tao Baod7db5942015-01-28 10:07:51 -0800126 KVP_OP_GET_IP_INFO,
127 KVP_OP_SET_IP_INFO,
Christopher Ferris05d08e92016-02-04 13:16:38 -0800128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800129 KVP_OP_COUNT
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700130};
Christopher Ferris82d75042015-01-26 10:57:07 -0800131enum hv_kvp_exchg_pool {
Tao Baod7db5942015-01-28 10:07:51 -0800132 KVP_POOL_EXTERNAL = 0,
Christopher Ferris05d08e92016-02-04 13:16:38 -0800133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800134 KVP_POOL_GUEST,
135 KVP_POOL_AUTO,
Tao Baod7db5942015-01-28 10:07:51 -0800136 KVP_POOL_AUTO_EXTERNAL,
137 KVP_POOL_AUTO_INTERNAL,
Christopher Ferris05d08e92016-02-04 13:16:38 -0800138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Tao Baod7db5942015-01-28 10:07:51 -0800139 KVP_POOL_COUNT
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700140};
Christopher Ferris82d75042015-01-26 10:57:07 -0800141#define HV_S_OK 0x00000000
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700142#define HV_E_FAIL 0x80004005
Christopher Ferris05d08e92016-02-04 13:16:38 -0800143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700144#define HV_S_CONT 0x80070103
145#define HV_ERROR_NOT_SUPPORTED 0x80070032
Christopher Ferris82d75042015-01-26 10:57:07 -0800146#define HV_ERROR_MACHINE_LOCKED 0x800704F7
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700147#define HV_ERROR_DEVICE_NOT_CONNECTED 0x8007048F
Christopher Ferris05d08e92016-02-04 13:16:38 -0800148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700149#define HV_INVALIDARG 0x80070057
150#define HV_GUID_NOTFOUND 0x80041002
Christopher Ferris82d75042015-01-26 10:57:07 -0800151#define HV_ERROR_ALREADY_EXISTS 0x80070050
Christopher Ferris106b3a82016-08-24 12:15:38 -0700152#define HV_ERROR_DISK_FULL 0x80070070
Christopher Ferris05d08e92016-02-04 13:16:38 -0800153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700154#define ADDR_FAMILY_NONE 0x00
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700155#define ADDR_FAMILY_IPV4 0x01
156#define ADDR_FAMILY_IPV6 0x02
Christopher Ferris82d75042015-01-26 10:57:07 -0800157#define MAX_ADAPTER_ID_SIZE 128
Christopher Ferris05d08e92016-02-04 13:16:38 -0800158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700159#define MAX_IP_ADDR_SIZE 1024
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700160#define MAX_GATEWAY_SIZE 512
161struct hv_kvp_ipaddr_value {
Tao Baod7db5942015-01-28 10:07:51 -0800162 __u16 adapter_id[MAX_ADAPTER_ID_SIZE];
Christopher Ferris05d08e92016-02-04 13:16:38 -0800163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700164 __u8 addr_family;
Tao Baod7db5942015-01-28 10:07:51 -0800165 __u8 dhcp_enabled;
166 __u16 ip_addr[MAX_IP_ADDR_SIZE];
Tao Baod7db5942015-01-28 10:07:51 -0800167 __u16 sub_net[MAX_IP_ADDR_SIZE];
Christopher Ferris05d08e92016-02-04 13:16:38 -0800168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700169 __u16 gate_way[MAX_GATEWAY_SIZE];
Tao Baod7db5942015-01-28 10:07:51 -0800170 __u16 dns_addr[MAX_IP_ADDR_SIZE];
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700171} __attribute__((packed));
Christopher Ferris82d75042015-01-26 10:57:07 -0800172struct hv_kvp_hdr {
Christopher Ferris05d08e92016-02-04 13:16:38 -0800173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700174 __u8 operation;
Tao Baod7db5942015-01-28 10:07:51 -0800175 __u8 pool;
176 __u16 pad;
Christopher Ferris82d75042015-01-26 10:57:07 -0800177} __attribute__((packed));
Christopher Ferris05d08e92016-02-04 13:16:38 -0800178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700179struct hv_kvp_exchg_msg_value {
Tao Baod7db5942015-01-28 10:07:51 -0800180 __u32 value_type;
181 __u32 key_size;
Tao Baod7db5942015-01-28 10:07:51 -0800182 __u32 value_size;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700184 __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE];
Tao Baod7db5942015-01-28 10:07:51 -0800185 union {
186 __u8 value[HV_KVP_EXCHANGE_MAX_VALUE_SIZE];
Tao Baod7db5942015-01-28 10:07:51 -0800187 __u32 value_u32;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700189 __u64 value_u64;
Tao Baod7db5942015-01-28 10:07:51 -0800190 };
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700191} __attribute__((packed));
Christopher Ferris82d75042015-01-26 10:57:07 -0800192struct hv_kvp_msg_enumerate {
Christopher Ferris05d08e92016-02-04 13:16:38 -0800193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700194 __u32 index;
Tao Baod7db5942015-01-28 10:07:51 -0800195 struct hv_kvp_exchg_msg_value data;
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700196} __attribute__((packed));
Christopher Ferris82d75042015-01-26 10:57:07 -0800197struct hv_kvp_msg_get {
Christopher Ferris05d08e92016-02-04 13:16:38 -0800198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700199 struct hv_kvp_exchg_msg_value data;
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700200};
201struct hv_kvp_msg_set {
Tao Baod7db5942015-01-28 10:07:51 -0800202 struct hv_kvp_exchg_msg_value data;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700204};
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700205struct hv_kvp_msg_delete {
Tao Baod7db5942015-01-28 10:07:51 -0800206 __u32 key_size;
Tao Baod7db5942015-01-28 10:07:51 -0800207 __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE];
Christopher Ferris05d08e92016-02-04 13:16:38 -0800208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700209};
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700210struct hv_kvp_register {
Tao Baod7db5942015-01-28 10:07:51 -0800211 __u8 version[HV_KVP_EXCHANGE_MAX_KEY_SIZE];
Christopher Ferris82d75042015-01-26 10:57:07 -0800212};
Christopher Ferris05d08e92016-02-04 13:16:38 -0800213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700214struct hv_kvp_msg {
Tao Baod7db5942015-01-28 10:07:51 -0800215 union {
216 struct hv_kvp_hdr kvp_hdr;
Tao Baod7db5942015-01-28 10:07:51 -0800217 int error;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700219 };
Tao Baod7db5942015-01-28 10:07:51 -0800220 union {
221 struct hv_kvp_msg_get kvp_get;
Tao Baod7db5942015-01-28 10:07:51 -0800222 struct hv_kvp_msg_set kvp_set;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700224 struct hv_kvp_msg_delete kvp_delete;
Tao Baod7db5942015-01-28 10:07:51 -0800225 struct hv_kvp_msg_enumerate kvp_enum_data;
226 struct hv_kvp_ipaddr_value kvp_ip_val;
Tao Baod7db5942015-01-28 10:07:51 -0800227 struct hv_kvp_register kvp_register;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700229 } body;
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700230} __attribute__((packed));
231struct hv_kvp_ip_msg {
Tao Baod7db5942015-01-28 10:07:51 -0800232 __u8 operation;
Christopher Ferris05d08e92016-02-04 13:16:38 -0800233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Christopher Ferris106b3a82016-08-24 12:15:38 -0700234 __u8 pool;
Tao Baod7db5942015-01-28 10:07:51 -0800235 struct hv_kvp_ipaddr_value kvp_ip_val;
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700236} __attribute__((packed));
Christopher Ferris82d75042015-01-26 10:57:07 -0800237#endif
Christopher Ferris106b3a82016-08-24 12:15:38 -0700238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */