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 _MSM_IPA_H_
20 #define _MSM_IPA_H_
21 #include <stdint.h>
22 #include <stddef.h>
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #include <sys/stat.h>
25 #include <linux/ioctl.h>
26 #include <linux/types.h>
27 #include <linux/if_ether.h>
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 #define IPA_IOC_MAGIC 0xCF
30 #define IPA_DFLT_RT_TBL_NAME "ipa_dflt_rt"
31 #define IPA_IOCTL_ADD_HDR 0
32 #define IPA_IOCTL_DEL_HDR 1
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 #define IPA_IOCTL_ADD_RT_RULE 2
35 #define IPA_IOCTL_DEL_RT_RULE 3
36 #define IPA_IOCTL_ADD_FLT_RULE 4
37 #define IPA_IOCTL_DEL_FLT_RULE 5
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39 #define IPA_IOCTL_COMMIT_HDR 6
40 #define IPA_IOCTL_RESET_HDR 7
41 #define IPA_IOCTL_COMMIT_RT 8
42 #define IPA_IOCTL_RESET_RT 9
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 #define IPA_IOCTL_COMMIT_FLT 10
45 #define IPA_IOCTL_RESET_FLT 11
46 #define IPA_IOCTL_DUMP 12
47 #define IPA_IOCTL_GET_RT_TBL 13
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define IPA_IOCTL_PUT_RT_TBL 14
50 #define IPA_IOCTL_COPY_HDR 15
51 #define IPA_IOCTL_QUERY_INTF 16
52 #define IPA_IOCTL_QUERY_INTF_TX_PROPS 17
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 #define IPA_IOCTL_QUERY_INTF_RX_PROPS 18
55 #define IPA_IOCTL_GET_HDR 19
56 #define IPA_IOCTL_PUT_HDR 20
57 #define IPA_IOCTL_SET_FLT 21
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59 #define IPA_IOCTL_ALLOC_NAT_MEM 22
60 #define IPA_IOCTL_V4_INIT_NAT 23
61 #define IPA_IOCTL_NAT_DMA 24
62 #define IPA_IOCTL_V4_DEL_NAT 26
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64 #define IPA_IOCTL_PULL_MSG 27
65 #define IPA_IOCTL_GET_NAT_OFFSET 28
66 #define IPA_IOCTL_RM_ADD_DEPENDENCY 29
67 #define IPA_IOCTL_RM_DEL_DEPENDENCY 30
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 #define IPA_IOCTL_GENERATE_FLT_EQ 31
70 #define IPA_IOCTL_QUERY_INTF_EXT_PROPS 32
71 #define IPA_IOCTL_QUERY_EP_MAPPING 33
72 #define IPA_IOCTL_QUERY_RT_TBL_INDEX 34
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 #define IPA_IOCTL_WRITE_QMAPID 35
75 #define IPA_IOCTL_MDFY_FLT_RULE 36
76 #define IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_ADD 37
77 #define IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_DEL 38
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79 #define IPA_IOCTL_NOTIFY_WAN_EMBMS_CONNECTED 39
80 #define IPA_IOCTL_ADD_HDR_PROC_CTX 40
81 #define IPA_IOCTL_DEL_HDR_PROC_CTX 41
82 #define IPA_IOCTL_MDFY_RT_RULE 42
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84 #define IPA_IOCTL_ADD_RT_RULE_AFTER 43
85 #define IPA_IOCTL_ADD_FLT_RULE_AFTER 44
86 #define IPA_IOCTL_GET_HW_VERSION 45
87 #define IPA_IOCTL_MAX 46
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 #define IPA_HDR_MAX_SIZE 64
90 #define IPA_RESOURCE_NAME_MAX 32
91 #define IPA_NUM_PROPS_MAX 35
92 #define IPA_MAC_ADDR_SIZE 6
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94 #define IPA_MBIM_MAX_STREAM_NUM 8
95 #define IPA_WAN_MSG_IPv6_ADDR_GW_LEN 4
96 #define IPA_FLT_TOS (1ul << 0)
97 #define IPA_FLT_PROTOCOL (1ul << 1)
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99 #define IPA_FLT_SRC_ADDR (1ul << 2)
100 #define IPA_FLT_DST_ADDR (1ul << 3)
101 #define IPA_FLT_SRC_PORT_RANGE (1ul << 4)
102 #define IPA_FLT_DST_PORT_RANGE (1ul << 5)
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104 #define IPA_FLT_TYPE (1ul << 6)
105 #define IPA_FLT_CODE (1ul << 7)
106 #define IPA_FLT_SPI (1ul << 8)
107 #define IPA_FLT_SRC_PORT (1ul << 9)
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 #define IPA_FLT_DST_PORT (1ul << 10)
110 #define IPA_FLT_TC (1ul << 11)
111 #define IPA_FLT_FLOW_LABEL (1ul << 12)
112 #define IPA_FLT_NEXT_HDR (1ul << 13)
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114 #define IPA_FLT_META_DATA (1ul << 14)
115 #define IPA_FLT_FRAGMENT (1ul << 15)
116 #define IPA_FLT_TOS_MASKED (1ul << 16)
117 #define IPA_FLT_MAC_SRC_ADDR_ETHER_II (1ul << 17)
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 #define IPA_FLT_MAC_DST_ADDR_ETHER_II (1ul << 18)
120 #define IPA_FLT_MAC_SRC_ADDR_802_3 (1ul << 19)
121 #define IPA_FLT_MAC_DST_ADDR_802_3 (1ul << 20)
122 #define IPA_FLT_MAC_ETHER_TYPE (1ul << 21)
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124 enum ipa_client_type {
125   IPA_CLIENT_PROD,
126   IPA_CLIENT_HSIC1_PROD = IPA_CLIENT_PROD,
127   IPA_CLIENT_WLAN1_PROD,
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129   IPA_CLIENT_HSIC2_PROD,
130   IPA_CLIENT_USB2_PROD,
131   IPA_CLIENT_HSIC3_PROD,
132   IPA_CLIENT_USB3_PROD,
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134   IPA_CLIENT_HSIC4_PROD,
135   IPA_CLIENT_USB4_PROD,
136   IPA_CLIENT_HSIC5_PROD,
137   IPA_CLIENT_USB_PROD,
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139   IPA_CLIENT_A5_WLAN_AMPDU_PROD,
140   IPA_CLIENT_A2_EMBEDDED_PROD,
141   IPA_CLIENT_A2_TETHERED_PROD,
142   IPA_CLIENT_APPS_LAN_PROD,
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144   IPA_CLIENT_APPS_WAN_PROD,
145   IPA_CLIENT_APPS_LAN_WAN_PROD = IPA_CLIENT_APPS_WAN_PROD,
146   IPA_CLIENT_APPS_CMD_PROD,
147   IPA_CLIENT_ODU_PROD,
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149   IPA_CLIENT_MHI_PROD,
150   IPA_CLIENT_Q6_LAN_PROD,
151   IPA_CLIENT_Q6_WAN_PROD,
152   IPA_CLIENT_Q6_CMD_PROD,
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154   IPA_CLIENT_MEMCPY_DMA_SYNC_PROD,
155   IPA_CLIENT_MEMCPY_DMA_ASYNC_PROD,
156   IPA_CLIENT_Q6_DECOMP_PROD,
157   IPA_CLIENT_Q6_DECOMP2_PROD,
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159   IPA_CLIENT_UC_USB_PROD,
160   IPA_CLIENT_TEST_PROD,
161   IPA_CLIENT_TEST1_PROD,
162   IPA_CLIENT_TEST2_PROD,
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164   IPA_CLIENT_TEST3_PROD,
165   IPA_CLIENT_TEST4_PROD,
166   IPA_CLIENT_CONS,
167   IPA_CLIENT_HSIC1_CONS = IPA_CLIENT_CONS,
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169   IPA_CLIENT_WLAN1_CONS,
170   IPA_CLIENT_HSIC2_CONS,
171   IPA_CLIENT_USB2_CONS,
172   IPA_CLIENT_WLAN2_CONS,
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174   IPA_CLIENT_HSIC3_CONS,
175   IPA_CLIENT_USB3_CONS,
176   IPA_CLIENT_WLAN3_CONS,
177   IPA_CLIENT_HSIC4_CONS,
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179   IPA_CLIENT_USB4_CONS,
180   IPA_CLIENT_WLAN4_CONS,
181   IPA_CLIENT_HSIC5_CONS,
182   IPA_CLIENT_USB_CONS,
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184   IPA_CLIENT_USB_DPL_CONS,
185   IPA_CLIENT_A2_EMBEDDED_CONS,
186   IPA_CLIENT_A2_TETHERED_CONS,
187   IPA_CLIENT_A5_LAN_WAN_CONS,
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189   IPA_CLIENT_APPS_LAN_CONS,
190   IPA_CLIENT_APPS_WAN_CONS,
191   IPA_CLIENT_ODU_EMB_CONS,
192   IPA_CLIENT_ODU_TETH_CONS,
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194   IPA_CLIENT_MHI_CONS,
195   IPA_CLIENT_Q6_LAN_CONS,
196   IPA_CLIENT_Q6_WAN_CONS,
197   IPA_CLIENT_Q6_DUN_CONS,
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199   IPA_CLIENT_MEMCPY_DMA_SYNC_CONS,
200   IPA_CLIENT_MEMCPY_DMA_ASYNC_CONS,
201   IPA_CLIENT_Q6_DECOMP_CONS,
202   IPA_CLIENT_Q6_DECOMP2_CONS,
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204   IPA_CLIENT_Q6_LTE_WIFI_AGGR_CONS,
205   IPA_CLIENT_TEST_CONS,
206   IPA_CLIENT_TEST1_CONS,
207   IPA_CLIENT_TEST2_CONS,
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209   IPA_CLIENT_TEST3_CONS,
210   IPA_CLIENT_TEST4_CONS,
211   IPA_CLIENT_MAX,
212 };
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214 #define IPA_CLIENT_IS_APPS_CONS(client) ((client) == IPA_CLIENT_APPS_LAN_CONS || (client) == IPA_CLIENT_APPS_WAN_CONS)
215 #define IPA_CLIENT_IS_USB_CONS(client) ((client) == IPA_CLIENT_USB_CONS || (client) == IPA_CLIENT_USB2_CONS || (client) == IPA_CLIENT_USB3_CONS || (client) == IPA_CLIENT_USB_DPL_CONS || (client) == IPA_CLIENT_USB4_CONS)
216 #define IPA_CLIENT_IS_WLAN_CONS(client) ((client) == IPA_CLIENT_WLAN1_CONS || (client) == IPA_CLIENT_WLAN2_CONS || (client) == IPA_CLIENT_WLAN3_CONS || (client) == IPA_CLIENT_WLAN4_CONS)
217 #define IPA_CLIENT_IS_ODU_CONS(client) ((client) == IPA_CLIENT_ODU_EMB_CONS || (client) == IPA_CLIENT_ODU_TETH_CONS)
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 #define IPA_CLIENT_IS_Q6_CONS(client) ((client) == IPA_CLIENT_Q6_LAN_CONS || (client) == IPA_CLIENT_Q6_WAN_CONS || (client) == IPA_CLIENT_Q6_DUN_CONS || (client) == IPA_CLIENT_Q6_DECOMP_CONS || (client) == IPA_CLIENT_Q6_DECOMP2_CONS || (client) == IPA_CLIENT_Q6_LTE_WIFI_AGGR_CONS)
220 #define IPA_CLIENT_IS_Q6_PROD(client) ((client) == IPA_CLIENT_Q6_LAN_PROD || (client) == IPA_CLIENT_Q6_WAN_PROD || (client) == IPA_CLIENT_Q6_CMD_PROD || (client) == IPA_CLIENT_Q6_DECOMP_PROD || (client) == IPA_CLIENT_Q6_DECOMP2_PROD)
221 #define IPA_CLIENT_IS_Q6_NON_ZIP_CONS(client) ((client) == IPA_CLIENT_Q6_LAN_CONS || (client) == IPA_CLIENT_Q6_WAN_CONS || (client) == IPA_CLIENT_Q6_DUN_CONS || (client) == IPA_CLIENT_Q6_LTE_WIFI_AGGR_CONS)
222 #define IPA_CLIENT_IS_Q6_ZIP_CONS(client) ((client) == IPA_CLIENT_Q6_DECOMP_CONS || (client) == IPA_CLIENT_Q6_DECOMP2_CONS)
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224 #define IPA_CLIENT_IS_Q6_NON_ZIP_PROD(client) ((client) == IPA_CLIENT_Q6_LAN_PROD || (client) == IPA_CLIENT_Q6_WAN_PROD || (client) == IPA_CLIENT_Q6_CMD_PROD)
225 #define IPA_CLIENT_IS_Q6_ZIP_PROD(client) ((client) == IPA_CLIENT_Q6_DECOMP_PROD || (client) == IPA_CLIENT_Q6_DECOMP2_PROD)
226 #define IPA_CLIENT_IS_MEMCPY_DMA_CONS(client) ((client) == IPA_CLIENT_MEMCPY_DMA_SYNC_CONS || (client) == IPA_CLIENT_MEMCPY_DMA_ASYNC_CONS)
227 #define IPA_CLIENT_IS_MEMCPY_DMA_PROD(client) ((client) == IPA_CLIENT_MEMCPY_DMA_SYNC_PROD || (client) == IPA_CLIENT_MEMCPY_DMA_ASYNC_PROD)
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229 #define IPA_CLIENT_IS_MHI_CONS(client) ((client) == IPA_CLIENT_MHI_CONS)
230 #define IPA_CLIENT_IS_MHI(client) ((client) == IPA_CLIENT_MHI_CONS || (client) == IPA_CLIENT_MHI_PROD)
231 #define IPA_CLIENT_IS_TEST_PROD(client) ((client) == IPA_CLIENT_TEST_PROD || (client) == IPA_CLIENT_TEST1_PROD || (client) == IPA_CLIENT_TEST2_PROD || (client) == IPA_CLIENT_TEST3_PROD || (client) == IPA_CLIENT_TEST4_PROD)
232 #define IPA_CLIENT_IS_TEST_CONS(client) ((client) == IPA_CLIENT_TEST_CONS || (client) == IPA_CLIENT_TEST1_CONS || (client) == IPA_CLIENT_TEST2_CONS || (client) == IPA_CLIENT_TEST3_CONS || (client) == IPA_CLIENT_TEST4_CONS)
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234 #define IPA_CLIENT_IS_TEST(client) (IPA_CLIENT_IS_TEST_PROD(client) || IPA_CLIENT_IS_TEST_CONS(client))
235 enum ipa_ip_type {
236   IPA_IP_v4,
237   IPA_IP_v6,
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239   IPA_IP_MAX
240 };
241 enum ipa_rule_type {
242   IPA_RULE_HASHABLE,
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244   IPA_RULE_NON_HASHABLE,
245   IPA_RULE_TYPE_MAX
246 };
247 enum ipa_flt_action {
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249   IPA_PASS_TO_ROUTING,
250   IPA_PASS_TO_SRC_NAT,
251   IPA_PASS_TO_DST_NAT,
252   IPA_PASS_TO_EXCEPTION
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254 };
255 enum ipa_wlan_event {
256   WLAN_CLIENT_CONNECT,
257   WLAN_CLIENT_DISCONNECT,
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259   WLAN_CLIENT_POWER_SAVE_MODE,
260   WLAN_CLIENT_NORMAL_MODE,
261   SW_ROUTING_ENABLE,
262   SW_ROUTING_DISABLE,
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264   WLAN_AP_CONNECT,
265   WLAN_AP_DISCONNECT,
266   WLAN_STA_CONNECT,
267   WLAN_STA_DISCONNECT,
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269   WLAN_CLIENT_CONNECT_EX,
270   WLAN_SWITCH_TO_SCC,
271   WLAN_SWITCH_TO_MCC,
272   WLAN_WDI_ENABLE,
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274   WLAN_WDI_DISABLE,
275   IPA_WLAN_EVENT_MAX
276 };
277 enum ipa_wan_event {
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279   WAN_UPSTREAM_ROUTE_ADD = IPA_WLAN_EVENT_MAX,
280   WAN_UPSTREAM_ROUTE_DEL,
281   WAN_EMBMS_CONNECT,
282   WAN_XLAT_CONNECT,
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284   IPA_WAN_EVENT_MAX
285 };
286 enum ipa_ecm_event {
287   ECM_CONNECT = IPA_WAN_EVENT_MAX,
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289   ECM_DISCONNECT,
290   IPA_ECM_EVENT_MAX,
291 };
292 enum ipa_tethering_stats_event {
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294   IPA_TETHERING_STATS_UPDATE_STATS = IPA_ECM_EVENT_MAX,
295   IPA_TETHERING_STATS_UPDATE_NETWORK_STATS,
296   IPA_TETHERING_STATS_EVENT_MAX,
297 };
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299 enum ipa_quota_event {
300   IPA_QUOTA_REACH = IPA_TETHERING_STATS_EVENT_MAX,
301   IPA_QUOTA_EVENT_MAX,
302 };
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304 enum ipa_ssr_event {
305   IPA_SSR_BEFORE_SHUTDOWN = IPA_QUOTA_EVENT_MAX,
306   IPA_SSR_AFTER_POWERUP,
307   IPA_SSR_EVENT_MAX
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309 };
310 #define IPA_EVENT_MAX_NUM ((int) IPA_SSR_EVENT_MAX)
311 enum ipa_rm_resource_name {
312   IPA_RM_RESOURCE_PROD = 0,
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314   IPA_RM_RESOURCE_Q6_PROD = IPA_RM_RESOURCE_PROD,
315   IPA_RM_RESOURCE_USB_PROD,
316   IPA_RM_RESOURCE_USB_DPL_DUMMY_PROD,
317   IPA_RM_RESOURCE_HSIC_PROD,
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319   IPA_RM_RESOURCE_STD_ECM_PROD,
320   IPA_RM_RESOURCE_RNDIS_PROD,
321   IPA_RM_RESOURCE_WWAN_0_PROD,
322   IPA_RM_RESOURCE_WLAN_PROD,
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324   IPA_RM_RESOURCE_ODU_ADAPT_PROD,
325   IPA_RM_RESOURCE_MHI_PROD,
326   IPA_RM_RESOURCE_PROD_MAX,
327   IPA_RM_RESOURCE_Q6_CONS = IPA_RM_RESOURCE_PROD_MAX,
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329   IPA_RM_RESOURCE_USB_CONS,
330   IPA_RM_RESOURCE_USB_DPL_CONS,
331   IPA_RM_RESOURCE_HSIC_CONS,
332   IPA_RM_RESOURCE_WLAN_CONS,
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334   IPA_RM_RESOURCE_APPS_CONS,
335   IPA_RM_RESOURCE_ODU_ADAPT_CONS,
336   IPA_RM_RESOURCE_MHI_CONS,
337   IPA_RM_RESOURCE_MAX
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339 };
340 enum ipa_hw_type {
341   IPA_HW_None = 0,
342   IPA_HW_v1_0 = 1,
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344   IPA_HW_v1_1 = 2,
345   IPA_HW_v2_0 = 3,
346   IPA_HW_v2_1 = 4,
347   IPA_HW_v2_5 = 5,
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349   IPA_HW_v2_6 = IPA_HW_v2_5,
350   IPA_HW_v2_6L = 6,
351   IPA_HW_v3_0 = 10,
352   IPA_HW_v3_1 = 11,
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354   IPA_HW_v3_5 = 12,
355   IPA_HW_v3_5_1 = 13,
356   IPA_HW_MAX
357 };
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359 struct ipa_rule_attrib {
360   uint32_t attrib_mask;
361   uint16_t src_port_lo;
362   uint16_t src_port_hi;
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364   uint16_t dst_port_lo;
365   uint16_t dst_port_hi;
366   uint8_t type;
367   uint8_t code;
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369   uint8_t tos_value;
370   uint8_t tos_mask;
371   uint32_t spi;
372   uint16_t src_port;
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374   uint16_t dst_port;
375   uint32_t meta_data;
376   uint32_t meta_data_mask;
377   uint8_t src_mac_addr[ETH_ALEN];
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379   uint8_t src_mac_addr_mask[ETH_ALEN];
380   uint8_t dst_mac_addr[ETH_ALEN];
381   uint8_t dst_mac_addr_mask[ETH_ALEN];
382   uint16_t ether_type;
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384   union {
385     struct {
386       uint8_t tos;
387       uint8_t protocol;
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389       uint32_t src_addr;
390       uint32_t src_addr_mask;
391       uint32_t dst_addr;
392       uint32_t dst_addr_mask;
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394     } v4;
395     struct {
396       uint8_t tc;
397       uint32_t flow_label;
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399       uint8_t next_hdr;
400       uint32_t src_addr[4];
401       uint32_t src_addr_mask[4];
402       uint32_t dst_addr[4];
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404       uint32_t dst_addr_mask[4];
405     } v6;
406   } u;
407 };
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409 #define IPA_IPFLTR_NUM_MEQ_32_EQNS 2
410 #define IPA_IPFLTR_NUM_IHL_MEQ_32_EQNS 2
411 #define IPA_IPFLTR_NUM_MEQ_128_EQNS 2
412 #define IPA_IPFLTR_NUM_IHL_RANGE_16_EQNS 2
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414 struct ipa_ipfltr_eq_16 {
415   int8_t offset;
416   uint16_t value;
417 };
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419 struct ipa_ipfltr_eq_32 {
420   int8_t offset;
421   uint32_t value;
422 };
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424 struct ipa_ipfltr_mask_eq_128 {
425   int8_t offset;
426   uint8_t mask[16];
427   uint8_t value[16];
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429 };
430 struct ipa_ipfltr_mask_eq_32 {
431   int8_t offset;
432   uint32_t mask;
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434   uint32_t value;
435 };
436 struct ipa_ipfltr_range_eq_16 {
437   int8_t offset;
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439   uint16_t range_low;
440   uint16_t range_high;
441 };
442 struct ipa_ipfltri_rule_eq {
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444   uint16_t rule_eq_bitmap;
445   uint8_t tos_eq_present;
446   uint8_t tos_eq;
447   uint8_t protocol_eq_present;
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449   uint8_t protocol_eq;
450   uint8_t num_ihl_offset_range_16;
451   struct ipa_ipfltr_range_eq_16 ihl_offset_range_16[IPA_IPFLTR_NUM_IHL_RANGE_16_EQNS];
452   uint8_t num_offset_meq_32;
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454   struct ipa_ipfltr_mask_eq_32 offset_meq_32[IPA_IPFLTR_NUM_MEQ_32_EQNS];
455   uint8_t tc_eq_present;
456   uint8_t tc_eq;
457   uint8_t fl_eq_present;
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459   uint32_t fl_eq;
460   uint8_t ihl_offset_eq_16_present;
461   struct ipa_ipfltr_eq_16 ihl_offset_eq_16;
462   uint8_t ihl_offset_eq_32_present;
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464   struct ipa_ipfltr_eq_32 ihl_offset_eq_32;
465   uint8_t num_ihl_offset_meq_32;
466   struct ipa_ipfltr_mask_eq_32 ihl_offset_meq_32[IPA_IPFLTR_NUM_IHL_MEQ_32_EQNS];
467   uint8_t num_offset_meq_128;
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469   struct ipa_ipfltr_mask_eq_128 offset_meq_128[IPA_IPFLTR_NUM_MEQ_128_EQNS];
470   uint8_t metadata_meq32_present;
471   struct ipa_ipfltr_mask_eq_32 metadata_meq32;
472   uint8_t ipv4_frag_eq_present;
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474 };
475 struct ipa_flt_rule {
476   uint8_t retain_hdr;
477   uint8_t to_uc;
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479   enum ipa_flt_action action;
480   uint32_t rt_tbl_hdl;
481   struct ipa_rule_attrib attrib;
482   struct ipa_ipfltri_rule_eq eq_attrib;
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484   uint32_t rt_tbl_idx;
485   uint8_t eq_attrib_type;
486   uint8_t max_prio;
487   uint8_t hashable;
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489   uint16_t rule_id;
490 };
491 enum ipa_hdr_l2_type {
492   IPA_HDR_L2_NONE,
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494   IPA_HDR_L2_ETHERNET_II,
495   IPA_HDR_L2_802_3,
496   IPA_HDR_L2_MAX,
497 };
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499 enum ipa_hdr_proc_type {
500   IPA_HDR_PROC_NONE,
501   IPA_HDR_PROC_ETHII_TO_ETHII,
502   IPA_HDR_PROC_ETHII_TO_802_3,
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504   IPA_HDR_PROC_802_3_TO_ETHII,
505   IPA_HDR_PROC_802_3_TO_802_3,
506   IPA_HDR_PROC_MAX,
507 };
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509 struct ipa_rt_rule {
510   enum ipa_client_type dst;
511   uint32_t hdr_hdl;
512   uint32_t hdr_proc_ctx_hdl;
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514   struct ipa_rule_attrib attrib;
515   uint8_t max_prio;
516   uint8_t hashable;
517   uint8_t retain_hdr;
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519 };
520 struct ipa_hdr_add {
521   char name[IPA_RESOURCE_NAME_MAX];
522   uint8_t hdr[IPA_HDR_MAX_SIZE];
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524   uint8_t hdr_len;
525   enum ipa_hdr_l2_type type;
526   uint8_t is_partial;
527   uint32_t hdr_hdl;
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529   int status;
530   uint8_t is_eth2_ofst_valid;
531   uint16_t eth2_ofst;
532 };
533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534 struct ipa_ioc_add_hdr {
535   uint8_t commit;
536   uint8_t num_hdrs;
537   struct ipa_hdr_add hdr[0];
538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539 };
540 struct ipa_hdr_proc_ctx_add {
541   enum ipa_hdr_proc_type type;
542   uint32_t hdr_hdl;
543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544   uint32_t proc_ctx_hdl;
545   int status;
546 };
547 struct ipa_ioc_add_hdr_proc_ctx {
548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549   uint8_t commit;
550   uint8_t num_proc_ctxs;
551   struct ipa_hdr_proc_ctx_add proc_ctx[0];
552 };
553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554 struct ipa_ioc_copy_hdr {
555   char name[IPA_RESOURCE_NAME_MAX];
556   uint8_t hdr[IPA_HDR_MAX_SIZE];
557   uint8_t hdr_len;
558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559   enum ipa_hdr_l2_type type;
560   uint8_t is_partial;
561   uint8_t is_eth2_ofst_valid;
562   uint16_t eth2_ofst;
563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564 };
565 struct ipa_ioc_get_hdr {
566   char name[IPA_RESOURCE_NAME_MAX];
567   uint32_t hdl;
568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569 };
570 struct ipa_hdr_del {
571   uint32_t hdl;
572   int status;
573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574 };
575 struct ipa_ioc_del_hdr {
576   uint8_t commit;
577   uint8_t num_hdls;
578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579   struct ipa_hdr_del hdl[0];
580 };
581 struct ipa_hdr_proc_ctx_del {
582   uint32_t hdl;
583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584   int status;
585 };
586 struct ipa_ioc_del_hdr_proc_ctx {
587   uint8_t commit;
588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589   uint8_t num_hdls;
590   struct ipa_hdr_proc_ctx_del hdl[0];
591 };
592 struct ipa_rt_rule_add {
593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594   struct ipa_rt_rule rule;
595   uint8_t at_rear;
596   uint32_t rt_rule_hdl;
597   int status;
598 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599 };
600 struct ipa_ioc_add_rt_rule {
601   uint8_t commit;
602   enum ipa_ip_type ip;
603 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604   char rt_tbl_name[IPA_RESOURCE_NAME_MAX];
605   uint8_t num_rules;
606   struct ipa_rt_rule_add rules[0];
607 };
608 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
609 struct ipa_ioc_add_rt_rule_after {
610   uint8_t commit;
611   enum ipa_ip_type ip;
612   char rt_tbl_name[IPA_RESOURCE_NAME_MAX];
613 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
614   uint8_t num_rules;
615   uint32_t add_after_hdl;
616   struct ipa_rt_rule_add rules[0];
617 };
618 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
619 struct ipa_rt_rule_mdfy {
620   struct ipa_rt_rule rule;
621   uint32_t rt_rule_hdl;
622   int status;
623 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
624 };
625 struct ipa_ioc_mdfy_rt_rule {
626   uint8_t commit;
627   enum ipa_ip_type ip;
628 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
629   uint8_t num_rules;
630   struct ipa_rt_rule_mdfy rules[0];
631 };
632 struct ipa_rt_rule_del {
633 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
634   uint32_t hdl;
635   int status;
636 };
637 struct ipa_ioc_del_rt_rule {
638 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
639   uint8_t commit;
640   enum ipa_ip_type ip;
641   uint8_t num_hdls;
642   struct ipa_rt_rule_del hdl[0];
643 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
644 };
645 struct ipa_ioc_get_rt_tbl_indx {
646   enum ipa_ip_type ip;
647   char name[IPA_RESOURCE_NAME_MAX];
648 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
649   uint32_t idx;
650 };
651 struct ipa_flt_rule_add {
652   struct ipa_flt_rule rule;
653 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
654   uint8_t at_rear;
655   uint32_t flt_rule_hdl;
656   int status;
657 };
658 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
659 struct ipa_ioc_add_flt_rule {
660   uint8_t commit;
661   enum ipa_ip_type ip;
662   enum ipa_client_type ep;
663 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
664   uint8_t global;
665   uint8_t num_rules;
666   struct ipa_flt_rule_add rules[0];
667 };
668 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
669 struct ipa_ioc_add_flt_rule_after {
670   uint8_t commit;
671   enum ipa_ip_type ip;
672   enum ipa_client_type ep;
673 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
674   uint8_t num_rules;
675   uint32_t add_after_hdl;
676   struct ipa_flt_rule_add rules[0];
677 };
678 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
679 struct ipa_flt_rule_mdfy {
680   struct ipa_flt_rule rule;
681   uint32_t rule_hdl;
682   int status;
683 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
684 };
685 struct ipa_ioc_mdfy_flt_rule {
686   uint8_t commit;
687   enum ipa_ip_type ip;
688 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
689   uint8_t num_rules;
690   struct ipa_flt_rule_mdfy rules[0];
691 };
692 struct ipa_flt_rule_del {
693 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
694   uint32_t hdl;
695   int status;
696 };
697 struct ipa_ioc_del_flt_rule {
698 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
699   uint8_t commit;
700   enum ipa_ip_type ip;
701   uint8_t num_hdls;
702   struct ipa_flt_rule_del hdl[0];
703 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
704 };
705 struct ipa_ioc_get_rt_tbl {
706   enum ipa_ip_type ip;
707   char name[IPA_RESOURCE_NAME_MAX];
708 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
709   uint32_t hdl;
710 };
711 struct ipa_ioc_query_intf {
712   char name[IPA_RESOURCE_NAME_MAX];
713 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
714   uint32_t num_tx_props;
715   uint32_t num_rx_props;
716   uint32_t num_ext_props;
717   enum ipa_client_type excp_pipe;
718 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
719 };
720 struct ipa_ioc_tx_intf_prop {
721   enum ipa_ip_type ip;
722   struct ipa_rule_attrib attrib;
723 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
724   enum ipa_client_type dst_pipe;
725   enum ipa_client_type alt_dst_pipe;
726   char hdr_name[IPA_RESOURCE_NAME_MAX];
727   enum ipa_hdr_l2_type hdr_l2_type;
728 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
729 };
730 struct ipa_ioc_query_intf_tx_props {
731   char name[IPA_RESOURCE_NAME_MAX];
732   uint32_t num_tx_props;
733 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
734   struct ipa_ioc_tx_intf_prop tx[0];
735 };
736 struct ipa_ioc_ext_intf_prop {
737   enum ipa_ip_type ip;
738 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
739   struct ipa_ipfltri_rule_eq eq_attrib;
740   enum ipa_flt_action action;
741   uint32_t rt_tbl_idx;
742   uint8_t mux_id;
743 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
744   uint32_t filter_hdl;
745   uint8_t is_xlat_rule;
746   uint32_t rule_id;
747   uint8_t is_rule_hashable;
748 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
749 };
750 struct ipa_ioc_query_intf_ext_props {
751   char name[IPA_RESOURCE_NAME_MAX];
752   uint32_t num_ext_props;
753 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
754   struct ipa_ioc_ext_intf_prop ext[0];
755 };
756 struct ipa_ioc_rx_intf_prop {
757   enum ipa_ip_type ip;
758 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
759   struct ipa_rule_attrib attrib;
760   enum ipa_client_type src_pipe;
761   enum ipa_hdr_l2_type hdr_l2_type;
762 };
763 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
764 struct ipa_ioc_query_intf_rx_props {
765   char name[IPA_RESOURCE_NAME_MAX];
766   uint32_t num_rx_props;
767   struct ipa_ioc_rx_intf_prop rx[0];
768 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
769 };
770 struct ipa_ioc_nat_alloc_mem {
771   char dev_name[IPA_RESOURCE_NAME_MAX];
772   size_t size;
773 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
774   off_t offset;
775 };
776 struct ipa_ioc_v4_nat_init {
777   uint8_t tbl_index;
778 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
779   uint32_t ipv4_rules_offset;
780   uint32_t expn_rules_offset;
781   uint32_t index_offset;
782   uint32_t index_expn_offset;
783 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
784   uint16_t table_entries;
785   uint16_t expn_table_entries;
786   uint32_t ip_addr;
787 };
788 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
789 struct ipa_ioc_v4_nat_del {
790   uint8_t table_index;
791   uint32_t public_ip_addr;
792 };
793 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
794 struct ipa_ioc_nat_dma_one {
795   uint8_t table_index;
796   uint8_t base_addr;
797   uint32_t offset;
798 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
799   uint16_t data;
800 };
801 struct ipa_ioc_nat_dma_cmd {
802   uint8_t entries;
803 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
804   struct ipa_ioc_nat_dma_one dma[0];
805 };
806 struct ipa_msg_meta {
807   uint8_t msg_type;
808 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
809   uint8_t rsvd;
810   uint16_t msg_len;
811 };
812 struct ipa_wlan_msg {
813 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
814   char name[IPA_RESOURCE_NAME_MAX];
815   uint8_t mac_addr[IPA_MAC_ADDR_SIZE];
816 };
817 enum ipa_wlan_hdr_attrib_type {
818 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
819   WLAN_HDR_ATTRIB_MAC_ADDR,
820   WLAN_HDR_ATTRIB_STA_ID
821 };
822 struct ipa_wlan_hdr_attrib_val {
823 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
824   enum ipa_wlan_hdr_attrib_type attrib_type;
825   uint8_t offset;
826   union {
827     uint8_t mac_addr[IPA_MAC_ADDR_SIZE];
828 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
829     uint8_t sta_id;
830   } u;
831 };
832 struct ipa_wlan_msg_ex {
833 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
834   char name[IPA_RESOURCE_NAME_MAX];
835   uint8_t num_of_attribs;
836   struct ipa_wlan_hdr_attrib_val attribs[0];
837 };
838 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
839 struct ipa_ecm_msg {
840   char name[IPA_RESOURCE_NAME_MAX];
841   int ifindex;
842 };
843 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
844 struct ipa_wan_msg {
845   char upstream_ifname[IPA_RESOURCE_NAME_MAX];
846   char tethered_ifname[IPA_RESOURCE_NAME_MAX];
847   enum ipa_ip_type ip;
848 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
849   uint32_t ipv4_addr_gw;
850   uint32_t ipv6_addr_gw[IPA_WAN_MSG_IPv6_ADDR_GW_LEN];
851 };
852 struct ipa_ioc_rm_dependency {
853 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
854   enum ipa_rm_resource_name resource_name;
855   enum ipa_rm_resource_name depends_on_name;
856 };
857 struct ipa_ioc_generate_flt_eq {
858 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
859   enum ipa_ip_type ip;
860   struct ipa_rule_attrib attrib;
861   struct ipa_ipfltri_rule_eq eq_attrib;
862 };
863 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
864 struct ipa_ioc_write_qmapid {
865   enum ipa_client_type client;
866   uint8_t qmap_id;
867 };
868 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
869 enum ipacm_client_enum {
870   IPACM_CLIENT_USB = 1,
871   IPACM_CLIENT_WLAN,
872   IPACM_CLIENT_MAX
873 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
874 };
875 #define IPA_IOC_ADD_HDR _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ADD_HDR, struct ipa_ioc_add_hdr *)
876 #define IPA_IOC_DEL_HDR _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_DEL_HDR, struct ipa_ioc_del_hdr *)
877 #define IPA_IOC_ADD_RT_RULE _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ADD_RT_RULE, struct ipa_ioc_add_rt_rule *)
878 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
879 #define IPA_IOC_ADD_RT_RULE_AFTER _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ADD_RT_RULE_AFTER, struct ipa_ioc_add_rt_rule_after *)
880 #define IPA_IOC_DEL_RT_RULE _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_DEL_RT_RULE, struct ipa_ioc_del_rt_rule *)
881 #define IPA_IOC_ADD_FLT_RULE _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ADD_FLT_RULE, struct ipa_ioc_add_flt_rule *)
882 #define IPA_IOC_ADD_FLT_RULE_AFTER _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ADD_FLT_RULE_AFTER, struct ipa_ioc_add_flt_rule_after *)
883 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
884 #define IPA_IOC_DEL_FLT_RULE _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_DEL_FLT_RULE, struct ipa_ioc_del_flt_rule *)
885 #define IPA_IOC_COMMIT_HDR _IO(IPA_IOC_MAGIC, IPA_IOCTL_COMMIT_HDR)
886 #define IPA_IOC_RESET_HDR _IO(IPA_IOC_MAGIC, IPA_IOCTL_RESET_HDR)
887 #define IPA_IOC_COMMIT_RT _IOW(IPA_IOC_MAGIC, IPA_IOCTL_COMMIT_RT, enum ipa_ip_type)
888 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
889 #define IPA_IOC_RESET_RT _IOW(IPA_IOC_MAGIC, IPA_IOCTL_RESET_RT, enum ipa_ip_type)
890 #define IPA_IOC_COMMIT_FLT _IOW(IPA_IOC_MAGIC, IPA_IOCTL_COMMIT_FLT, enum ipa_ip_type)
891 #define IPA_IOC_RESET_FLT _IOW(IPA_IOC_MAGIC, IPA_IOCTL_RESET_FLT, enum ipa_ip_type)
892 #define IPA_IOC_DUMP _IO(IPA_IOC_MAGIC, IPA_IOCTL_DUMP)
893 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
894 #define IPA_IOC_GET_RT_TBL _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_GET_RT_TBL, struct ipa_ioc_get_rt_tbl *)
895 #define IPA_IOC_PUT_RT_TBL _IOW(IPA_IOC_MAGIC, IPA_IOCTL_PUT_RT_TBL, uint32_t)
896 #define IPA_IOC_COPY_HDR _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_COPY_HDR, struct ipa_ioc_copy_hdr *)
897 #define IPA_IOC_QUERY_INTF _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_QUERY_INTF, struct ipa_ioc_query_intf *)
898 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
899 #define IPA_IOC_QUERY_INTF_TX_PROPS _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_QUERY_INTF_TX_PROPS, struct ipa_ioc_query_intf_tx_props *)
900 #define IPA_IOC_QUERY_INTF_RX_PROPS _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_QUERY_INTF_RX_PROPS, struct ipa_ioc_query_intf_rx_props *)
901 #define IPA_IOC_QUERY_INTF_EXT_PROPS _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_QUERY_INTF_EXT_PROPS, struct ipa_ioc_query_intf_ext_props *)
902 #define IPA_IOC_GET_HDR _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_GET_HDR, struct ipa_ioc_get_hdr *)
903 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
904 #define IPA_IOC_PUT_HDR _IOW(IPA_IOC_MAGIC, IPA_IOCTL_PUT_HDR, uint32_t)
905 #define IPA_IOC_ALLOC_NAT_MEM _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ALLOC_NAT_MEM, struct ipa_ioc_nat_alloc_mem *)
906 #define IPA_IOC_V4_INIT_NAT _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_V4_INIT_NAT, struct ipa_ioc_v4_nat_init *)
907 #define IPA_IOC_NAT_DMA _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_NAT_DMA, struct ipa_ioc_nat_dma_cmd *)
908 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
909 #define IPA_IOC_V4_DEL_NAT _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_V4_DEL_NAT, struct ipa_ioc_v4_nat_del *)
910 #define IPA_IOC_GET_NAT_OFFSET _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_GET_NAT_OFFSET, uint32_t *)
911 #define IPA_IOC_SET_FLT _IOW(IPA_IOC_MAGIC, IPA_IOCTL_SET_FLT, uint32_t)
912 #define IPA_IOC_PULL_MSG _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_PULL_MSG, struct ipa_msg_meta *)
913 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
914 #define IPA_IOC_RM_ADD_DEPENDENCY _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_RM_ADD_DEPENDENCY, struct ipa_ioc_rm_dependency *)
915 #define IPA_IOC_RM_DEL_DEPENDENCY _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_RM_DEL_DEPENDENCY, struct ipa_ioc_rm_dependency *)
916 #define IPA_IOC_GENERATE_FLT_EQ _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_GENERATE_FLT_EQ, struct ipa_ioc_generate_flt_eq *)
917 #define IPA_IOC_QUERY_EP_MAPPING _IOR(IPA_IOC_MAGIC, IPA_IOCTL_QUERY_EP_MAPPING, uint32_t)
918 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
919 #define IPA_IOC_QUERY_RT_TBL_INDEX _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_QUERY_RT_TBL_INDEX, struct ipa_ioc_get_rt_tbl_indx *)
920 #define IPA_IOC_WRITE_QMAPID _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_WRITE_QMAPID, struct ipa_ioc_write_qmapid *)
921 #define IPA_IOC_MDFY_FLT_RULE _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_MDFY_FLT_RULE, struct ipa_ioc_mdfy_flt_rule *)
922 #define IPA_IOC_MDFY_RT_RULE _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_MDFY_RT_RULE, struct ipa_ioc_mdfy_rt_rule *)
923 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
924 #define IPA_IOC_NOTIFY_WAN_UPSTREAM_ROUTE_ADD _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_ADD, struct ipa_wan_msg *)
925 #define IPA_IOC_NOTIFY_WAN_UPSTREAM_ROUTE_DEL _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_DEL, struct ipa_wan_msg *)
926 #define IPA_IOC_NOTIFY_WAN_EMBMS_CONNECTED _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_NOTIFY_WAN_EMBMS_CONNECTED, struct ipa_wan_msg *)
927 #define IPA_IOC_ADD_HDR_PROC_CTX _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ADD_HDR_PROC_CTX, struct ipa_ioc_add_hdr_proc_ctx *)
928 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
929 #define IPA_IOC_DEL_HDR_PROC_CTX _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_DEL_HDR_PROC_CTX, struct ipa_ioc_del_hdr_proc_ctx *)
930 #define IPA_IOC_GET_HW_VERSION _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_GET_HW_VERSION, enum ipa_hw_type *)
931 #define TETH_BRIDGE_IOC_MAGIC 0xCE
932 #define TETH_BRIDGE_IOCTL_SET_BRIDGE_MODE 0
933 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
934 #define TETH_BRIDGE_IOCTL_SET_AGGR_PARAMS 1
935 #define TETH_BRIDGE_IOCTL_GET_AGGR_PARAMS 2
936 #define TETH_BRIDGE_IOCTL_GET_AGGR_CAPABILITIES 3
937 #define TETH_BRIDGE_IOCTL_MAX 4
938 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
939 enum teth_link_protocol_type {
940   TETH_LINK_PROTOCOL_IP,
941   TETH_LINK_PROTOCOL_ETHERNET,
942   TETH_LINK_PROTOCOL_MAX,
943 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
944 };
945 enum teth_aggr_protocol_type {
946   TETH_AGGR_PROTOCOL_NONE,
947   TETH_AGGR_PROTOCOL_MBIM,
948 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
949   TETH_AGGR_PROTOCOL_TLP,
950   TETH_AGGR_PROTOCOL_MAX,
951 };
952 struct teth_aggr_params_link {
953 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
954   enum teth_aggr_protocol_type aggr_prot;
955   uint32_t max_transfer_size_byte;
956   uint32_t max_datagrams;
957 };
958 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
959 struct teth_aggr_params {
960   struct teth_aggr_params_link ul;
961   struct teth_aggr_params_link dl;
962 };
963 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
964 struct teth_aggr_capabilities {
965   uint16_t num_protocols;
966   struct teth_aggr_params_link prot_caps[0];
967 };
968 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
969 struct teth_ioc_set_bridge_mode {
970   enum teth_link_protocol_type link_protocol;
971   uint16_t lcid;
972 };
973 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
974 struct teth_ioc_aggr_params {
975   struct teth_aggr_params aggr_params;
976   uint16_t lcid;
977 };
978 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
979 #define TETH_BRIDGE_IOC_SET_BRIDGE_MODE _IOW(TETH_BRIDGE_IOC_MAGIC, TETH_BRIDGE_IOCTL_SET_BRIDGE_MODE, struct teth_ioc_set_bridge_mode *)
980 #define TETH_BRIDGE_IOC_SET_AGGR_PARAMS _IOW(TETH_BRIDGE_IOC_MAGIC, TETH_BRIDGE_IOCTL_SET_AGGR_PARAMS, struct teth_ioc_aggr_params *)
981 #define TETH_BRIDGE_IOC_GET_AGGR_PARAMS _IOR(TETH_BRIDGE_IOC_MAGIC, TETH_BRIDGE_IOCTL_GET_AGGR_PARAMS, struct teth_ioc_aggr_params *)
982 #define TETH_BRIDGE_IOC_GET_AGGR_CAPABILITIES _IOWR(TETH_BRIDGE_IOC_MAGIC, TETH_BRIDGE_IOCTL_GET_AGGR_CAPABILITIES, struct teth_aggr_capabilities *)
983 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
984 #define ODU_BRIDGE_IOC_MAGIC 0xCD
985 #define ODU_BRIDGE_IOCTL_SET_MODE 0
986 #define ODU_BRIDGE_IOCTL_SET_LLV6_ADDR 1
987 #define ODU_BRIDGE_IOCTL_MAX 2
988 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
989 enum odu_bridge_mode {
990   ODU_BRIDGE_MODE_ROUTER,
991   ODU_BRIDGE_MODE_BRIDGE,
992   ODU_BRIDGE_MODE_MAX,
993 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
994 };
995 #define ODU_BRIDGE_IOC_SET_MODE _IOW(ODU_BRIDGE_IOC_MAGIC, ODU_BRIDGE_IOCTL_SET_MODE, enum odu_bridge_mode)
996 #define ODU_BRIDGE_IOC_SET_LLV6_ADDR _IOW(ODU_BRIDGE_IOC_MAGIC, ODU_BRIDGE_IOCTL_SET_LLV6_ADDR, struct in6_addr *)
997 #endif
998 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
999 
1000