• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
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
30 enum hv_vss_op {
31   VSS_OP_CREATE = 0,
32   VSS_OP_DELETE,
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34   VSS_OP_HOT_BACKUP,
35   VSS_OP_GET_DM_INFO,
36   VSS_OP_BU_COMPLETE,
37   VSS_OP_FREEZE,
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39   VSS_OP_THAW,
40   VSS_OP_AUTO_RECOVER,
41   VSS_OP_COUNT
42 };
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 struct hv_vss_hdr {
45   __u8 operation;
46   __u8 reserved[7];
47 } __attribute__((packed));
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define VSS_HBU_NO_AUTO_RECOVERY 0x00000005
50 struct hv_vss_check_feature {
51   __u32 flags;
52 } __attribute__((packed));
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 struct hv_vss_check_dm_info {
55   __u32 flags;
56 } __attribute__((packed));
57 struct hv_vss_msg {
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59   union {
60     struct hv_vss_hdr vss_hdr;
61     int error;
62   };
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64   union {
65     struct hv_vss_check_feature vss_cf;
66     struct hv_vss_check_dm_info dm_info;
67   };
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 } __attribute__((packed));
70 #define FCOPY_VERSION_0 0
71 #define FCOPY_CURRENT_VERSION FCOPY_VERSION_0
72 #define W_MAX_PATH 260
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 enum hv_fcopy_op {
75   START_FILE_COPY = 0,
76   WRITE_TO_FILE,
77   COMPLETE_FCOPY,
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79   CANCEL_FCOPY,
80 };
81 struct hv_fcopy_hdr {
82   __u32 operation;
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84   uuid_le service_id0;
85   uuid_le service_id1;
86 } __attribute__((packed));
87 #define OVER_WRITE 0x1
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 #define CREATE_PATH 0x2
90 struct hv_start_fcopy {
91   struct hv_fcopy_hdr hdr;
92   __u16 file_name[W_MAX_PATH];
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94   __u16 path_name[W_MAX_PATH];
95   __u32 copy_flags;
96   __u64 file_size;
97 } __attribute__((packed));
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99 #define DATA_FRAGMENT (6 * 1024)
100 struct hv_do_fcopy {
101   struct hv_fcopy_hdr hdr;
102   __u32 pad;
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104   __u64 offset;
105   __u32 size;
106   __u8 data[DATA_FRAGMENT];
107 } __attribute__((packed));
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 #define HV_KVP_EXCHANGE_MAX_VALUE_SIZE (2048)
110 #define HV_KVP_EXCHANGE_MAX_KEY_SIZE (512)
111 #define REG_SZ 1
112 #define REG_U32 4
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114 #define REG_U64 8
115 #define KVP_OP_REGISTER 4
116 #define KVP_OP_REGISTER1 100
117 enum hv_kvp_exchg_op {
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119   KVP_OP_GET = 0,
120   KVP_OP_SET,
121   KVP_OP_DELETE,
122   KVP_OP_ENUMERATE,
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124   KVP_OP_GET_IP_INFO,
125   KVP_OP_SET_IP_INFO,
126   KVP_OP_COUNT
127 };
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129 enum hv_kvp_exchg_pool {
130   KVP_POOL_EXTERNAL = 0,
131   KVP_POOL_GUEST,
132   KVP_POOL_AUTO,
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134   KVP_POOL_AUTO_EXTERNAL,
135   KVP_POOL_AUTO_INTERNAL,
136   KVP_POOL_COUNT
137 };
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 #define HV_S_OK 0x00000000
140 #define HV_E_FAIL 0x80004005
141 #define HV_S_CONT 0x80070103
142 #define HV_ERROR_NOT_SUPPORTED 0x80070032
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144 #define HV_ERROR_MACHINE_LOCKED 0x800704F7
145 #define HV_ERROR_DEVICE_NOT_CONNECTED 0x8007048F
146 #define HV_INVALIDARG 0x80070057
147 #define HV_GUID_NOTFOUND 0x80041002
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149 #define HV_ERROR_ALREADY_EXISTS 0x80070050
150 #define ADDR_FAMILY_NONE 0x00
151 #define ADDR_FAMILY_IPV4 0x01
152 #define ADDR_FAMILY_IPV6 0x02
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154 #define MAX_ADAPTER_ID_SIZE 128
155 #define MAX_IP_ADDR_SIZE 1024
156 #define MAX_GATEWAY_SIZE 512
157 struct hv_kvp_ipaddr_value {
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159   __u16 adapter_id[MAX_ADAPTER_ID_SIZE];
160   __u8 addr_family;
161   __u8 dhcp_enabled;
162   __u16 ip_addr[MAX_IP_ADDR_SIZE];
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164   __u16 sub_net[MAX_IP_ADDR_SIZE];
165   __u16 gate_way[MAX_GATEWAY_SIZE];
166   __u16 dns_addr[MAX_IP_ADDR_SIZE];
167 } __attribute__((packed));
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169 struct hv_kvp_hdr {
170   __u8 operation;
171   __u8 pool;
172   __u16 pad;
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174 } __attribute__((packed));
175 struct hv_kvp_exchg_msg_value {
176   __u32 value_type;
177   __u32 key_size;
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179   __u32 value_size;
180   __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE];
181   union {
182     __u8 value[HV_KVP_EXCHANGE_MAX_VALUE_SIZE];
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184     __u32 value_u32;
185     __u64 value_u64;
186   };
187 } __attribute__((packed));
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189 struct hv_kvp_msg_enumerate {
190   __u32 index;
191   struct hv_kvp_exchg_msg_value data;
192 } __attribute__((packed));
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194 struct hv_kvp_msg_get {
195   struct hv_kvp_exchg_msg_value data;
196 };
197 struct hv_kvp_msg_set {
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199   struct hv_kvp_exchg_msg_value data;
200 };
201 struct hv_kvp_msg_delete {
202   __u32 key_size;
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204   __u8 key[HV_KVP_EXCHANGE_MAX_KEY_SIZE];
205 };
206 struct hv_kvp_register {
207   __u8 version[HV_KVP_EXCHANGE_MAX_KEY_SIZE];
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209 };
210 struct hv_kvp_msg {
211   union {
212     struct hv_kvp_hdr kvp_hdr;
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214     int error;
215   };
216   union {
217     struct hv_kvp_msg_get kvp_get;
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219     struct hv_kvp_msg_set kvp_set;
220     struct hv_kvp_msg_delete kvp_delete;
221     struct hv_kvp_msg_enumerate kvp_enum_data;
222     struct hv_kvp_ipaddr_value kvp_ip_val;
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224     struct hv_kvp_register kvp_register;
225   } body;
226 } __attribute__((packed));
227 struct hv_kvp_ip_msg {
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229   __u8 operation;
230   __u8 pool;
231   struct hv_kvp_ipaddr_value kvp_ip_val;
232 } __attribute__((packed));
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234 #endif
235