1#![allow(dead_code)]
10#![allow(non_camel_case_types)]
11#![allow(non_snake_case)]
12#![allow(non_upper_case_globals)]
13#![allow(clippy::missing_safety_doc)]
14#![allow(clippy::undocumented_unsafe_blocks, reason = "bindgen-generated code")]
15
16use zerocopy::{FromBytes, Immutable, IntoBytes, KnownLayout, TryFromBytes};
23
24pub const EPERM: u32 = 1;
25pub const ENOENT: u32 = 2;
26pub const ESRCH: u32 = 3;
27pub const EINTR: u32 = 4;
28pub const EIO: u32 = 5;
29pub const ENXIO: u32 = 6;
30pub const ENOEXEC: u32 = 8;
31pub const EBADF: u32 = 9;
32pub const ECHILD: u32 = 10;
33pub const EAGAIN: u32 = 11;
34pub const ENOMEM: u32 = 12;
35pub const EACCES: u32 = 13;
36pub const EFAULT: u32 = 14;
37pub const ENOTBLK: u32 = 15;
38pub const EBUSY: u32 = 16;
39pub const EEXIST: u32 = 17;
40pub const EXDEV: u32 = 18;
41pub const ENODEV: u32 = 19;
42pub const ENOTDIR: u32 = 20;
43pub const EISDIR: u32 = 21;
44pub const EINVAL: u32 = 22;
45pub const ENFILE: u32 = 23;
46pub const EMFILE: u32 = 24;
47pub const ENOTTY: u32 = 25;
48pub const ETXTBSY: u32 = 26;
49pub const EFBIG: u32 = 27;
50pub const ENOSPC: u32 = 28;
51pub const ESPIPE: u32 = 29;
52pub const EROFS: u32 = 30;
53pub const EMLINK: u32 = 31;
54pub const EPIPE: u32 = 32;
55pub const EDOM: u32 = 33;
56pub const ERANGE: u32 = 34;
57pub const EDEADLK: u32 = 35;
58pub const ENAMETOOLONG: u32 = 36;
59pub const ENOLCK: u32 = 37;
60pub const ENOSYS: u32 = 38;
61pub const ENOTEMPTY: u32 = 39;
62pub const ELOOP: u32 = 40;
63pub const EWOULDBLOCK: u32 = 11;
64pub const ENOMSG: u32 = 42;
65pub const EIDRM: u32 = 43;
66pub const ECHRNG: u32 = 44;
67pub const ELNRNG: u32 = 48;
68pub const EUNATCH: u32 = 49;
69pub const ENOCSI: u32 = 50;
70pub const EBADE: u32 = 52;
71pub const EBADR: u32 = 53;
72pub const EXFULL: u32 = 54;
73pub const ENOANO: u32 = 55;
74pub const EBADRQC: u32 = 56;
75pub const EBADSLT: u32 = 57;
76pub const EDEADLOCK: u32 = 35;
77pub const EBFONT: u32 = 59;
78pub const ENOSTR: u32 = 60;
79pub const ENODATA: u32 = 61;
80pub const ETIME: u32 = 62;
81pub const ENOSR: u32 = 63;
82pub const ENONET: u32 = 64;
83pub const ENOPKG: u32 = 65;
84pub const EREMOTE: u32 = 66;
85pub const ENOLINK: u32 = 67;
86pub const EADV: u32 = 68;
87pub const ESRMNT: u32 = 69;
88pub const ECOMM: u32 = 70;
89pub const EPROTO: u32 = 71;
90pub const EMULTIHOP: u32 = 72;
91pub const EDOTDOT: u32 = 73;
92pub const EBADMSG: u32 = 74;
93pub const EOVERFLOW: u32 = 75;
94pub const ENOTUNIQ: u32 = 76;
95pub const EBADFD: u32 = 77;
96pub const EREMCHG: u32 = 78;
97pub const ELIBACC: u32 = 79;
98pub const ELIBBAD: u32 = 80;
99pub const ELIBSCN: u32 = 81;
100pub const ELIBMAX: u32 = 82;
101pub const ELIBEXEC: u32 = 83;
102pub const EILSEQ: u32 = 84;
103pub const ERESTART: u32 = 85;
104pub const ESTRPIPE: u32 = 86;
105pub const EUSERS: u32 = 87;
106pub const ENOTSOCK: u32 = 88;
107pub const EDESTADDRREQ: u32 = 89;
108pub const EMSGSIZE: u32 = 90;
109pub const EPROTOTYPE: u32 = 91;
110pub const ENOPROTOOPT: u32 = 92;
111pub const EPROTONOSUPPORT: u32 = 93;
112pub const ESOCKTNOSUPPORT: u32 = 94;
113pub const EOPNOTSUPP: u32 = 95;
114pub const ENOTSUP: u32 = 95;
115pub const EPFNOSUPPORT: u32 = 96;
116pub const EAFNOSUPPORT: u32 = 97;
117pub const EADDRINUSE: u32 = 98;
118pub const EADDRNOTAVAIL: u32 = 99;
119pub const ENETDOWN: u32 = 100;
120pub const ENETUNREACH: u32 = 101;
121pub const ENETRESET: u32 = 102;
122pub const ECONNABORTED: u32 = 103;
123pub const ECONNRESET: u32 = 104;
124pub const ENOBUFS: u32 = 105;
125pub const EISCONN: u32 = 106;
126pub const ENOTCONN: u32 = 107;
127pub const ESHUTDOWN: u32 = 108;
128pub const ETOOMANYREFS: u32 = 109;
129pub const ETIMEDOUT: u32 = 110;
130pub const ECONNREFUSED: u32 = 111;
131pub const EHOSTDOWN: u32 = 112;
132pub const EHOSTUNREACH: u32 = 113;
133pub const EALREADY: u32 = 114;
134pub const EINPROGRESS: u32 = 115;
135pub const ESTALE: u32 = 116;
136pub const EUCLEAN: u32 = 117;
137pub const ENOTNAM: u32 = 118;
138pub const ENAVAIL: u32 = 119;
139pub const EISNAM: u32 = 120;
140pub const EREMOTEIO: u32 = 121;
141pub const EDQUOT: u32 = 122;
142pub const ENOMEDIUM: u32 = 123;
143pub const EMEDIUMTYPE: u32 = 124;
144pub const ECANCELED: u32 = 125;
145pub const ENOKEY: u32 = 126;
146pub const EKEYEXPIRED: u32 = 127;
147pub const EKEYREVOKED: u32 = 128;
148pub const EKEYREJECTED: u32 = 129;
149pub const EOWNERDEAD: u32 = 130;
150pub const ENOTRECOVERABLE: u32 = 131;
151pub const ERFKILL: u32 = 132;
152pub const EHWPOISON: u32 = 133;
153pub const SOCK_STREAM: u32 = 1;
154pub const SOCK_DGRAM: u32 = 2;
155pub const SOCK_RAW: u32 = 3;
156pub const SOCK_RDM: u32 = 4;
157pub const SOCK_SEQPACKET: u32 = 5;
158pub const SOCK_DCCP: u32 = 6;
159pub const SOCK_PACKET: u32 = 10;
160pub const SOCK_CLOEXEC: u32 = 524288;
161pub const SOCK_NONBLOCK: u32 = 2048;
162pub const AF_UNSPEC: u32 = 0;
163pub const AF_LOCAL: u32 = 1;
164pub const AF_UNIX: u32 = 1;
165pub const AF_FILE: u32 = 1;
166pub const AF_INET: u32 = 2;
167pub const AF_AX25: u32 = 3;
168pub const AF_IPX: u32 = 4;
169pub const AF_APPLETALK: u32 = 5;
170pub const AF_NETROM: u32 = 6;
171pub const AF_BRIDGE: u32 = 7;
172pub const AF_ATMPVC: u32 = 8;
173pub const AF_X25: u32 = 9;
174pub const AF_INET6: u32 = 10;
175pub const AF_ROSE: u32 = 11;
176pub const AF_DECnet: u32 = 12;
177pub const AF_NETBEUI: u32 = 13;
178pub const AF_SECURITY: u32 = 14;
179pub const AF_KEY: u32 = 15;
180pub const AF_NETLINK: u32 = 16;
181pub const AF_ROUTE: u32 = 16;
182pub const AF_PACKET: u32 = 17;
183pub const AF_ASH: u32 = 18;
184pub const AF_ECONET: u32 = 19;
185pub const AF_ATMSVC: u32 = 20;
186pub const AF_RDS: u32 = 21;
187pub const AF_SNA: u32 = 22;
188pub const AF_IRDA: u32 = 23;
189pub const AF_PPPOX: u32 = 24;
190pub const AF_WANPIPE: u32 = 25;
191pub const AF_LLC: u32 = 26;
192pub const AF_IB: u32 = 27;
193pub const AF_MPLS: u32 = 28;
194pub const AF_CAN: u32 = 29;
195pub const AF_TIPC: u32 = 30;
196pub const AF_BLUETOOTH: u32 = 31;
197pub const AF_IUCV: u32 = 32;
198pub const AF_RXRPC: u32 = 33;
199pub const AF_ISDN: u32 = 34;
200pub const AF_PHONET: u32 = 35;
201pub const AF_IEEE802154: u32 = 36;
202pub const AF_CAIF: u32 = 37;
203pub const AF_ALG: u32 = 38;
204pub const AF_NFC: u32 = 39;
205pub const AF_VSOCK: u32 = 40;
206pub const AF_KCM: u32 = 41;
207pub const AF_QIPCRTR: u32 = 42;
208pub const AF_SMC: u32 = 43;
209pub const AF_XDP: u32 = 44;
210pub const AF_MAX: u32 = 45;
211pub const SO_DEBUG: u32 = 1;
212pub const SO_REUSEADDR: u32 = 2;
213pub const SO_TYPE: u32 = 3;
214pub const SO_ERROR: u32 = 4;
215pub const SO_DONTROUTE: u32 = 5;
216pub const SO_BROADCAST: u32 = 6;
217pub const SO_SNDBUF: u32 = 7;
218pub const SO_RCVBUF: u32 = 8;
219pub const SO_KEEPALIVE: u32 = 9;
220pub const SO_OOBINLINE: u32 = 10;
221pub const SO_NO_CHECK: u32 = 11;
222pub const SO_PRIORITY: u32 = 12;
223pub const SO_LINGER: u32 = 13;
224pub const SO_BSDCOMPAT: u32 = 14;
225pub const SO_REUSEPORT: u32 = 15;
226pub const SO_PASSCRED: u32 = 16;
227pub const SO_PEERCRED: u32 = 17;
228pub const SO_RCVLOWAT: u32 = 18;
229pub const SO_SNDLOWAT: u32 = 19;
230pub const SO_ACCEPTCONN: u32 = 30;
231pub const SO_PEERSEC: u32 = 31;
232pub const SO_SNDBUFFORCE: u32 = 32;
233pub const SO_RCVBUFFORCE: u32 = 33;
234pub const SO_PROTOCOL: u32 = 38;
235pub const SO_DOMAIN: u32 = 39;
236pub const SO_RCVTIMEO: u32 = 20;
237pub const SO_SNDTIMEO: u32 = 21;
238pub const SO_TIMESTAMP: u32 = 29;
239pub const SO_TIMESTAMPNS: u32 = 35;
240pub const SO_TIMESTAMPING: u32 = 37;
241pub const SO_SECURITY_AUTHENTICATION: u32 = 22;
242pub const SO_SECURITY_ENCRYPTION_TRANSPORT: u32 = 23;
243pub const SO_SECURITY_ENCRYPTION_NETWORK: u32 = 24;
244pub const SO_BINDTODEVICE: u32 = 25;
245pub const SO_ATTACH_FILTER: u32 = 26;
246pub const SO_DETACH_FILTER: u32 = 27;
247pub const SO_GET_FILTER: u32 = 26;
248pub const SO_PEERNAME: u32 = 28;
249pub const SO_PASSSEC: u32 = 34;
250pub const SO_MARK: u32 = 36;
251pub const SO_RXQ_OVFL: u32 = 40;
252pub const SO_WIFI_STATUS: u32 = 41;
253pub const SO_PEEK_OFF: u32 = 42;
254pub const SO_NOFCS: u32 = 43;
255pub const SO_LOCK_FILTER: u32 = 44;
256pub const SO_SELECT_ERR_QUEUE: u32 = 45;
257pub const SO_BUSY_POLL: u32 = 46;
258pub const SO_MAX_PACING_RATE: u32 = 47;
259pub const SO_BPF_EXTENSIONS: u32 = 48;
260pub const SO_INCOMING_CPU: u32 = 49;
261pub const SO_ATTACH_BPF: u32 = 50;
262pub const SO_DETACH_BPF: u32 = 27;
263pub const SO_ATTACH_REUSEPORT_CBPF: u32 = 51;
264pub const SO_ATTACH_REUSEPORT_EBPF: u32 = 52;
265pub const SO_CNX_ADVICE: u32 = 53;
266pub const SO_MEMINFO: u32 = 55;
267pub const SO_INCOMING_NAPI_ID: u32 = 56;
268pub const SO_COOKIE: u32 = 57;
269pub const SO_PEERGROUPS: u32 = 59;
270pub const SO_ZEROCOPY: u32 = 60;
271pub const SO_TXTIME: u32 = 61;
272pub const SO_BINDTOIFINDEX: u32 = 62;
273pub const SO_DETACH_REUSEPORT_BPF: u32 = 68;
274pub const SO_ORIGINAL_DST: u32 = 80;
275pub const SOL_SOCKET: u32 = 1;
276pub const SOL_IP: u32 = 0;
277pub const SOL_IPV6: u32 = 41;
278pub const SOL_ICMPV6: u32 = 58;
279pub const SOL_RAW: u32 = 255;
280pub const SOL_DECNET: u32 = 261;
281pub const SOL_X25: u32 = 262;
282pub const SOL_PACKET: u32 = 263;
283pub const SOL_ATM: u32 = 264;
284pub const SOL_AAL: u32 = 265;
285pub const SOL_IRDA: u32 = 266;
286pub const SOL_NETBEUI: u32 = 267;
287pub const SOL_LLC: u32 = 268;
288pub const SOL_DCCP: u32 = 269;
289pub const SOL_NETLINK: u32 = 270;
290pub const SOL_TIPC: u32 = 271;
291pub const SOL_RXRPC: u32 = 272;
292pub const SOL_PPPOL2TP: u32 = 273;
293pub const SOL_BLUETOOTH: u32 = 274;
294pub const SOL_PNPIPE: u32 = 275;
295pub const SOL_RDS: u32 = 276;
296pub const SOL_IUCV: u32 = 277;
297pub const SOL_CAIF: u32 = 278;
298pub const SOL_ALG: u32 = 279;
299pub const SOL_NFC: u32 = 280;
300pub const SOL_KCM: u32 = 281;
301pub const SOL_TLS: u32 = 282;
302pub const SOL_XDP: u32 = 283;
303pub const SOMAXCONN: u32 = 128;
304pub const MSG_OOB: u32 = 1;
305pub const MSG_PEEK: u32 = 2;
306pub const MSG_DONTROUTE: u32 = 4;
307pub const MSG_CTRUNC: u32 = 8;
308pub const MSG_PROXY: u32 = 16;
309pub const MSG_TRUNC: u32 = 32;
310pub const MSG_DONTWAIT: u32 = 64;
311pub const MSG_EOR: u32 = 128;
312pub const MSG_WAITALL: u32 = 256;
313pub const MSG_FIN: u32 = 512;
314pub const MSG_SYN: u32 = 1024;
315pub const MSG_CONFIRM: u32 = 2048;
316pub const MSG_RST: u32 = 4096;
317pub const MSG_ERRQUEUE: u32 = 8192;
318pub const MSG_NOSIGNAL: u32 = 16384;
319pub const MSG_MORE: u32 = 32768;
320pub const MSG_WAITFORONE: u32 = 65536;
321pub const MSG_BATCH: u32 = 262144;
322pub const MSG_ZEROCOPY: u32 = 67108864;
323pub const MSG_FASTOPEN: u32 = 536870912;
324pub const MSG_CMSG_CLOEXEC: u32 = 1073741824;
325pub const SO_FUCHSIA_MARK: u32 = 10000;
326pub const IPPROTO_IP: u32 = 0;
327pub const IPPROTO_HOPOPTS: u32 = 0;
328pub const IPPROTO_ICMP: u32 = 1;
329pub const IPPROTO_IGMP: u32 = 2;
330pub const IPPROTO_IPIP: u32 = 4;
331pub const IPPROTO_TCP: u32 = 6;
332pub const IPPROTO_EGP: u32 = 8;
333pub const IPPROTO_PUP: u32 = 12;
334pub const IPPROTO_UDP: u32 = 17;
335pub const IPPROTO_IDP: u32 = 22;
336pub const IPPROTO_TP: u32 = 29;
337pub const IPPROTO_DCCP: u32 = 33;
338pub const IPPROTO_IPV6: u32 = 41;
339pub const IPPROTO_ROUTING: u32 = 43;
340pub const IPPROTO_FRAGMENT: u32 = 44;
341pub const IPPROTO_RSVP: u32 = 46;
342pub const IPPROTO_GRE: u32 = 47;
343pub const IPPROTO_ESP: u32 = 50;
344pub const IPPROTO_AH: u32 = 51;
345pub const IPPROTO_ICMPV6: u32 = 58;
346pub const IPPROTO_NONE: u32 = 59;
347pub const IPPROTO_DSTOPTS: u32 = 60;
348pub const IPPROTO_MTP: u32 = 92;
349pub const IPPROTO_BEETPH: u32 = 94;
350pub const IPPROTO_ENCAP: u32 = 98;
351pub const IPPROTO_PIM: u32 = 103;
352pub const IPPROTO_COMP: u32 = 108;
353pub const IPPROTO_SCTP: u32 = 132;
354pub const IPPROTO_MH: u32 = 135;
355pub const IPPROTO_UDPLITE: u32 = 136;
356pub const IPPROTO_MPLS: u32 = 137;
357pub const IPPROTO_RAW: u32 = 255;
358pub const IPPROTO_MAX: u32 = 256;
359pub const IP_TOS: u32 = 1;
360pub const IP_TTL: u32 = 2;
361pub const IP_HDRINCL: u32 = 3;
362pub const IP_OPTIONS: u32 = 4;
363pub const IP_ROUTER_ALERT: u32 = 5;
364pub const IP_RECVOPTS: u32 = 6;
365pub const IP_RETOPTS: u32 = 7;
366pub const IP_PKTINFO: u32 = 8;
367pub const IP_PKTOPTIONS: u32 = 9;
368pub const IP_PMTUDISC: u32 = 10;
369pub const IP_MTU_DISCOVER: u32 = 10;
370pub const IP_RECVERR: u32 = 11;
371pub const IP_RECVTTL: u32 = 12;
372pub const IP_RECVTOS: u32 = 13;
373pub const IP_MTU: u32 = 14;
374pub const IP_FREEBIND: u32 = 15;
375pub const IP_IPSEC_POLICY: u32 = 16;
376pub const IP_XFRM_POLICY: u32 = 17;
377pub const IP_PASSSEC: u32 = 18;
378pub const IP_TRANSPARENT: u32 = 19;
379pub const IP_ORIGDSTADDR: u32 = 20;
380pub const IP_RECVORIGDSTADDR: u32 = 20;
381pub const IP_MINTTL: u32 = 21;
382pub const IP_NODEFRAG: u32 = 22;
383pub const IP_CHECKSUM: u32 = 23;
384pub const IP_BIND_ADDRESS_NO_PORT: u32 = 24;
385pub const IP_MULTICAST_IF: u32 = 32;
386pub const IP_MULTICAST_TTL: u32 = 33;
387pub const IP_MULTICAST_LOOP: u32 = 34;
388pub const IP_ADD_MEMBERSHIP: u32 = 35;
389pub const IP_DROP_MEMBERSHIP: u32 = 36;
390pub const IP_UNBLOCK_SOURCE: u32 = 37;
391pub const IP_BLOCK_SOURCE: u32 = 38;
392pub const IP_ADD_SOURCE_MEMBERSHIP: u32 = 39;
393pub const IP_DROP_SOURCE_MEMBERSHIP: u32 = 40;
394pub const IP_MSFILTER: u32 = 41;
395pub const IP_MULTICAST_ALL: u32 = 49;
396pub const IP_UNICAST_IF: u32 = 50;
397pub const IP_RECVRETOPTS: u32 = 7;
398pub const IP_PMTUDISC_DONT: u32 = 0;
399pub const IP_PMTUDISC_WANT: u32 = 1;
400pub const IP_PMTUDISC_DO: u32 = 2;
401pub const IP_PMTUDISC_PROBE: u32 = 3;
402pub const IP_PMTUDISC_INTERFACE: u32 = 4;
403pub const IP_PMTUDISC_OMIT: u32 = 5;
404pub const IP_DEFAULT_MULTICAST_TTL: u32 = 1;
405pub const IP_DEFAULT_MULTICAST_LOOP: u32 = 1;
406pub const IP_MAX_MEMBERSHIPS: u32 = 20;
407pub const IPV6_ADDRFORM: u32 = 1;
408pub const IPV6_2292PKTINFO: u32 = 2;
409pub const IPV6_2292HOPOPTS: u32 = 3;
410pub const IPV6_2292DSTOPTS: u32 = 4;
411pub const IPV6_2292RTHDR: u32 = 5;
412pub const IPV6_2292PKTOPTIONS: u32 = 6;
413pub const IPV6_CHECKSUM: u32 = 7;
414pub const IPV6_2292HOPLIMIT: u32 = 8;
415pub const IPV6_NEXTHOP: u32 = 9;
416pub const IPV6_AUTHHDR: u32 = 10;
417pub const IPV6_UNICAST_HOPS: u32 = 16;
418pub const IPV6_MULTICAST_IF: u32 = 17;
419pub const IPV6_MULTICAST_HOPS: u32 = 18;
420pub const IPV6_MULTICAST_LOOP: u32 = 19;
421pub const IPV6_JOIN_GROUP: u32 = 20;
422pub const IPV6_LEAVE_GROUP: u32 = 21;
423pub const IPV6_ROUTER_ALERT: u32 = 22;
424pub const IPV6_MTU_DISCOVER: u32 = 23;
425pub const IPV6_MTU: u32 = 24;
426pub const IPV6_RECVERR: u32 = 25;
427pub const IPV6_V6ONLY: u32 = 26;
428pub const IPV6_JOIN_ANYCAST: u32 = 27;
429pub const IPV6_LEAVE_ANYCAST: u32 = 28;
430pub const IPV6_IPSEC_POLICY: u32 = 34;
431pub const IPV6_XFRM_POLICY: u32 = 35;
432pub const IPV6_HDRINCL: u32 = 36;
433pub const IPV6_RECVPKTINFO: u32 = 49;
434pub const IPV6_PKTINFO: u32 = 50;
435pub const IPV6_RECVHOPLIMIT: u32 = 51;
436pub const IPV6_HOPLIMIT: u32 = 52;
437pub const IPV6_RECVHOPOPTS: u32 = 53;
438pub const IPV6_HOPOPTS: u32 = 54;
439pub const IPV6_RTHDRDSTOPTS: u32 = 55;
440pub const IPV6_RECVRTHDR: u32 = 56;
441pub const IPV6_RTHDR: u32 = 57;
442pub const IPV6_RECVDSTOPTS: u32 = 58;
443pub const IPV6_DSTOPTS: u32 = 59;
444pub const IPV6_RECVPATHMTU: u32 = 60;
445pub const IPV6_PATHMTU: u32 = 61;
446pub const IPV6_DONTFRAG: u32 = 62;
447pub const IPV6_RECVTCLASS: u32 = 66;
448pub const IPV6_TCLASS: u32 = 67;
449pub const IPV6_AUTOFLOWLABEL: u32 = 70;
450pub const IPV6_ADDR_PREFERENCES: u32 = 72;
451pub const IPV6_MINHOPCOUNT: u32 = 73;
452pub const IPV6_ORIGDSTADDR: u32 = 74;
453pub const IPV6_RECVORIGDSTADDR: u32 = 74;
454pub const IPV6_TRANSPARENT: u32 = 75;
455pub const IPV6_UNICAST_IF: u32 = 76;
456pub const IPV6_ADD_MEMBERSHIP: u32 = 20;
457pub const IPV6_DROP_MEMBERSHIP: u32 = 21;
458pub const IPV6_RXHOPOPTS: u32 = 54;
459pub const IPV6_RXDSTOPTS: u32 = 59;
460pub const IPV6_PMTUDISC_DONT: u32 = 0;
461pub const IPV6_PMTUDISC_WANT: u32 = 1;
462pub const IPV6_PMTUDISC_DO: u32 = 2;
463pub const IPV6_PMTUDISC_PROBE: u32 = 3;
464pub const IPV6_PMTUDISC_INTERFACE: u32 = 4;
465pub const IPV6_PMTUDISC_OMIT: u32 = 5;
466pub const IPV6_PREFER_SRC_TMP: u32 = 1;
467pub const IPV6_PREFER_SRC_PUBLIC: u32 = 2;
468pub const IPV6_PREFER_SRC_PUBTMP_DEFAULT: u32 = 256;
469pub const IPV6_PREFER_SRC_COA: u32 = 4;
470pub const IPV6_PREFER_SRC_HOME: u32 = 1024;
471pub const IPV6_PREFER_SRC_CGA: u32 = 8;
472pub const IPV6_PREFER_SRC_NONCGA: u32 = 2048;
473pub const IPV6_RTHDR_LOOSE: u32 = 0;
474pub const IPV6_RTHDR_STRICT: u32 = 1;
475pub const IPV6_RTHDR_TYPE_0: u32 = 0;
476pub type zx_rights_t = u32;
477pub type time_t = ::std::os::raw::c_long;
478#[repr(C)]
479#[derive(Clone, Copy, Debug, Default, Immutable, IntoBytes, FromBytes, KnownLayout)]
480pub struct timespec {
481 pub tv_sec: time_t,
482 pub tv_nsec: ::std::os::raw::c_long,
483}
484pub type zx_time_t = i64;
485pub type zx_handle_t = u32;
486pub type zx_status_t = i32;
487pub type zx_signals_t = u32;
488pub type zx_koid_t = u64;
489pub type zx_off_t = u64;
490#[repr(C)]
491#[derive(Debug, Copy, Clone)]
492pub struct zx_iovec {
493 pub buffer: *mut ::std::os::raw::c_void,
494 pub capacity: usize,
495}
496impl Default for zx_iovec {
497 fn default() -> Self {
498 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
499 unsafe {
500 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
501 s.assume_init()
502 }
503 }
504}
505pub type zx_iovec_t = zx_iovec;
506pub type zx_obj_type_t = u32;
507pub type zxio_flags_t = u32;
508pub type zxio_vmo_flags_t = u32;
509pub type zxio_signals_t = u32;
510#[repr(C)]
511#[derive(Debug, Default, Copy, Clone)]
512pub struct zxio_tag {
513 pub reserved: [u64; 4usize],
514}
515pub type zxio_t = zxio_tag;
516#[repr(C)]
517#[derive(Debug, Default, Copy, Clone)]
518pub struct zxio_fsverity_descriptor {
519 pub hash_algorithm: u8,
520 pub salt_size: u8,
521 pub salt: [u8; 32usize],
522}
523pub type zxio_fsverity_descriptor_t = zxio_fsverity_descriptor;
524#[repr(C)]
525#[derive(Debug, Default, Copy, Clone)]
526pub struct zxio_private {
527 pub reserved: [u64; 30usize],
528}
529pub type zxio_private_t = zxio_private;
530#[repr(C)]
531#[derive(Debug, Default, Copy, Clone)]
532pub struct zxio_storage {
533 pub io: zxio_t,
534 pub reserved: zxio_private_t,
535}
536pub type zxio_storage_t = zxio_storage;
537pub type zxio_object_type_t = u32;
538pub type zxio_storage_alloc = ::std::option::Option<
539 unsafe extern "C" fn(
540 type_: zxio_object_type_t,
541 out_storage: *mut *mut zxio_storage_t,
542 out_context: *mut *mut ::std::os::raw::c_void,
543 ) -> zx_status_t,
544>;
545pub type zxio_node_protocols_t = u64;
546pub type zxio_id_t = u64;
547pub type zxio_operations_t = u64;
548pub type zxio_abilities_t = zxio_operations_t;
549pub type zxio_hash_algorithm_t = u8;
550#[repr(C)]
551#[derive(Debug, Default, Copy, Clone)]
552pub struct zxio_verification_options {
553 pub salt: [u8; 32usize],
554 pub salt_size: usize,
555 pub hash_alg: zxio_hash_algorithm_t,
556 pub __bindgen_padding_0: [u8; 7usize],
557}
558pub type zxio_verification_options_t = zxio_verification_options;
559pub type zxio_selinux_context_state_t = u8;
560#[repr(C)]
561#[derive(Debug, Copy, Clone)]
562pub struct zxio_node_attr {
563 pub protocols: zxio_node_protocols_t,
564 pub abilities: zxio_abilities_t,
565 pub id: zxio_id_t,
566 pub content_size: u64,
567 pub storage_size: u64,
568 pub link_count: u64,
569 pub creation_time: u64,
570 pub modification_time: u64,
571 pub change_time: u64,
572 pub access_time: u64,
573 pub selinux_context: *mut u8,
574 pub selinux_context_length: u16,
575 pub selinux_context_state: zxio_selinux_context_state_t,
576 pub __bindgen_padding_0: u8,
577 pub mode: u32,
578 pub uid: u32,
579 pub gid: u32,
580 pub rdev: u64,
581 pub fsverity_options: zxio_verification_options_t,
582 pub fsverity_root_hash: *mut u8,
583 pub fsverity_enabled: bool,
584 pub casefold: bool,
585 pub __bindgen_padding_1: [u8; 2usize],
586 pub object_type: zxio_object_type_t,
587 pub wrapping_key_id: [u8; 16usize],
588 pub has: zxio_node_attr_zxio_node_attr_has_t,
589 pub __bindgen_padding_2: [u8; 2usize],
590}
591#[repr(C)]
592#[derive(Debug, Default, Copy, Clone)]
593pub struct zxio_node_attr_zxio_node_attr_has_t {
594 pub protocols: bool,
595 pub abilities: bool,
596 pub id: bool,
597 pub content_size: bool,
598 pub storage_size: bool,
599 pub link_count: bool,
600 pub creation_time: bool,
601 pub modification_time: bool,
602 pub change_time: bool,
603 pub access_time: bool,
604 pub mode: bool,
605 pub uid: bool,
606 pub gid: bool,
607 pub rdev: bool,
608 pub fsverity_options: bool,
609 pub fsverity_root_hash: bool,
610 pub fsverity_enabled: bool,
611 pub object_type: bool,
612 pub casefold: bool,
613 pub wrapping_key_id: bool,
614 pub selinux_context: bool,
615 pub pending_access_time_update: bool,
616}
617impl Default for zxio_node_attr {
618 fn default() -> Self {
619 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
620 unsafe {
621 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
622 s.assume_init()
623 }
624 }
625}
626pub type zxio_node_attributes_t = zxio_node_attr;
627pub type zxio_seek_origin_t = u32;
628#[repr(C)]
629#[derive(Debug, Copy, Clone)]
630pub struct zxio_dirent_iterator {
631 pub io: *mut zxio_t,
632 pub opaque: [u8; 65584usize],
633}
634impl Default for zxio_dirent_iterator {
635 fn default() -> Self {
636 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
637 unsafe {
638 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
639 s.assume_init()
640 }
641 }
642}
643pub type zxio_dirent_iterator_t = zxio_dirent_iterator;
644#[repr(C)]
645#[derive(Debug, Copy, Clone)]
646pub struct zxio_dirent {
647 pub protocols: zxio_node_protocols_t,
648 pub abilities: zxio_abilities_t,
649 pub id: zxio_id_t,
650 pub has: zxio_dirent_zxio_dirent_has_t,
651 pub name_length: u8,
652 pub __bindgen_padding_0: [u8; 4usize],
653 pub name: *mut ::std::os::raw::c_char,
654}
655#[repr(C)]
656#[derive(Debug, Default, Copy, Clone)]
657pub struct zxio_dirent_zxio_dirent_has_t {
658 pub protocols: bool,
659 pub abilities: bool,
660 pub id: bool,
661}
662impl Default for zxio_dirent {
663 fn default() -> Self {
664 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
665 unsafe {
666 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
667 s.assume_init()
668 }
669 }
670}
671pub type zxio_dirent_t = zxio_dirent;
672pub type zxio_shutdown_options_t = u32;
673pub type zxio_xattr_set_mode_t = u32;
674#[repr(C)]
675#[derive(Debug, Copy, Clone)]
676pub struct zxio_xattr_data {
677 pub data: *mut ::std::os::raw::c_void,
678 pub vmo: zx_handle_t,
679 pub __bindgen_padding_0: [u8; 4usize],
680 pub len: usize,
681}
682impl Default for zxio_xattr_data {
683 fn default() -> Self {
684 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
685 unsafe {
686 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
687 s.assume_init()
688 }
689 }
690}
691pub type zxio_xattr_data_t = zxio_xattr_data;
692pub type zxio_allocate_mode_t = u32;
693pub type zxio_open_flags_t = u64;
694#[repr(C)]
695#[derive(Debug, Copy, Clone)]
696pub struct zxio_open_options {
697 pub inout_attr: *mut zxio_node_attributes_t,
698 pub create_attr: *const zxio_node_attributes_t,
699}
700impl Default for zxio_open_options {
701 fn default() -> Self {
702 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
703 unsafe {
704 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
705 s.assume_init()
706 }
707 }
708}
709pub type zxio_open_options_t = zxio_open_options;
710pub type zxio_token_type_t = u32;
711pub type zxio_token_resolver_t = ::std::option::Option<
712 unsafe extern "C" fn(io: *mut zxio_t, type_: zxio_token_type_t) -> zx_handle_t,
713>;
714pub type va_list = __builtin_va_list;
715#[repr(C)]
716#[derive(Debug, Default, Copy, Clone)]
717pub struct zx_info_handle_basic {
718 pub koid: zx_koid_t,
719 pub rights: zx_rights_t,
720 pub type_: zx_obj_type_t,
721 pub related_koid: zx_koid_t,
722 pub reserved: u32,
723 pub padding1: [u8; 4usize],
724}
725pub type zx_info_handle_basic_t = zx_info_handle_basic;
726unsafe extern "C" {
727 pub fn zxio_create(handle: zx_handle_t, storage: *mut zxio_storage_t) -> zx_status_t;
728}
729unsafe extern "C" {
730 pub fn zxio_create_with_on_representation(
731 handle: zx_handle_t,
732 inout_attr: *mut zxio_node_attributes_t,
733 storage: *mut zxio_storage_t,
734 ) -> zx_status_t;
735}
736unsafe extern "C" {
737 pub fn zxio_create_with_info(
738 handle: zx_handle_t,
739 handle_info: *const zx_info_handle_basic_t,
740 storage: *mut zxio_storage_t,
741 ) -> zx_status_t;
742}
743unsafe extern "C" {
744 pub fn zxio_create_with_type(
745 storage: *mut zxio_storage_t,
746 type_: zxio_object_type_t,
747 ...
748 ) -> zx_status_t;
749}
750unsafe extern "C" {
751 pub fn zxio_destroy(io: *mut zxio_t);
752}
753unsafe extern "C" {
754 pub fn zxio_close(io: *mut zxio_t) -> zx_status_t;
755}
756unsafe extern "C" {
757 pub fn zxio_release(io: *mut zxio_t, out_handle: *mut zx_handle_t) -> zx_status_t;
758}
759unsafe extern "C" {
760 pub fn zxio_borrow(io: *mut zxio_t, out_handle: *mut zx_handle_t) -> zx_status_t;
761}
762unsafe extern "C" {
763 pub fn zxio_clone(io: *mut zxio_t, out_handle: *mut zx_handle_t) -> zx_status_t;
764}
765unsafe extern "C" {
766 pub fn zxio_wait_one(
767 io: *mut zxio_t,
768 signals: zxio_signals_t,
769 deadline: zx_time_t,
770 out_observed: *mut zxio_signals_t,
771 ) -> zx_status_t;
772}
773unsafe extern "C" {
774 pub fn zxio_wait_begin(
775 io: *mut zxio_t,
776 zxio_signals: zxio_signals_t,
777 out_handle: *mut zx_handle_t,
778 out_zx_signals: *mut zx_signals_t,
779 );
780}
781unsafe extern "C" {
782 pub fn zxio_wait_end(
783 io: *mut zxio_t,
784 zx_signals: zx_signals_t,
785 out_zxio_signals: *mut zxio_signals_t,
786 );
787}
788unsafe extern "C" {
789 pub fn zxio_sync(io: *mut zxio_t) -> zx_status_t;
790}
791unsafe extern "C" {
792 pub fn zxio_attr_get(io: *mut zxio_t, inout_attr: *mut zxio_node_attributes_t) -> zx_status_t;
793}
794unsafe extern "C" {
795 pub fn zxio_attr_set(io: *mut zxio_t, attr: *const zxio_node_attributes_t) -> zx_status_t;
796}
797unsafe extern "C" {
798 pub fn zxio_read(
799 io: *mut zxio_t,
800 buffer: *mut ::std::os::raw::c_void,
801 capacity: usize,
802 flags: zxio_flags_t,
803 out_actual: *mut usize,
804 ) -> zx_status_t;
805}
806unsafe extern "C" {
807 pub fn zxio_read_at(
808 io: *mut zxio_t,
809 offset: zx_off_t,
810 buffer: *mut ::std::os::raw::c_void,
811 capacity: usize,
812 flags: zxio_flags_t,
813 out_actual: *mut usize,
814 ) -> zx_status_t;
815}
816unsafe extern "C" {
817 pub fn zxio_write(
818 io: *mut zxio_t,
819 buffer: *const ::std::os::raw::c_void,
820 capacity: usize,
821 flags: zxio_flags_t,
822 out_actual: *mut usize,
823 ) -> zx_status_t;
824}
825unsafe extern "C" {
826 pub fn zxio_write_at(
827 io: *mut zxio_t,
828 offset: zx_off_t,
829 buffer: *const ::std::os::raw::c_void,
830 capacity: usize,
831 flags: zxio_flags_t,
832 out_actual: *mut usize,
833 ) -> zx_status_t;
834}
835unsafe extern "C" {
836 pub fn zxio_readv(
837 io: *mut zxio_t,
838 vector: *const zx_iovec_t,
839 vector_count: usize,
840 flags: zxio_flags_t,
841 out_actual: *mut usize,
842 ) -> zx_status_t;
843}
844unsafe extern "C" {
845 pub fn zxio_readv_at(
846 io: *mut zxio_t,
847 offset: zx_off_t,
848 vector: *const zx_iovec_t,
849 vector_count: usize,
850 flags: zxio_flags_t,
851 out_actual: *mut usize,
852 ) -> zx_status_t;
853}
854unsafe extern "C" {
855 pub fn zxio_writev(
856 io: *mut zxio_t,
857 vector: *const zx_iovec_t,
858 vector_count: usize,
859 flags: zxio_flags_t,
860 out_actual: *mut usize,
861 ) -> zx_status_t;
862}
863unsafe extern "C" {
864 pub fn zxio_writev_at(
865 io: *mut zxio_t,
866 offset: zx_off_t,
867 vector: *const zx_iovec_t,
868 vector_count: usize,
869 flags: zxio_flags_t,
870 out_actual: *mut usize,
871 ) -> zx_status_t;
872}
873unsafe extern "C" {
874 pub fn zxio_seek(
875 io: *mut zxio_t,
876 start: zxio_seek_origin_t,
877 offset: i64,
878 out_offset: *mut usize,
879 ) -> zx_status_t;
880}
881unsafe extern "C" {
882 pub fn zxio_truncate(io: *mut zxio_t, length: u64) -> zx_status_t;
883}
884unsafe extern "C" {
885 pub fn zxio_deprecated_flags_get(io: *mut zxio_t, out_flags: *mut u32) -> zx_status_t;
886}
887unsafe extern "C" {
888 pub fn zxio_deprecated_flags_set(io: *mut zxio_t, flags: u32) -> zx_status_t;
889}
890unsafe extern "C" {
891 pub fn zxio_flags_get(io: *mut zxio_t, out_flags: *mut u64) -> zx_status_t;
892}
893unsafe extern "C" {
894 pub fn zxio_flags_set(io: *mut zxio_t, flags: u64) -> zx_status_t;
895}
896unsafe extern "C" {
897 pub fn zxio_token_get(io: *mut zxio_t, out_token: *mut zx_handle_t) -> zx_status_t;
898}
899unsafe extern "C" {
900 pub fn zxio_vmo_get(
901 io: *mut zxio_t,
902 flags: zxio_vmo_flags_t,
903 out_vmo: *mut zx_handle_t,
904 ) -> zx_status_t;
905}
906unsafe extern "C" {
907 pub fn zxio_on_mapped(io: *mut zxio_t, ptr: *mut ::std::os::raw::c_void) -> zx_status_t;
908}
909unsafe extern "C" {
910 pub fn zxio_vmo_get_copy(io: *mut zxio_t, out_vmo: *mut zx_handle_t) -> zx_status_t;
911}
912unsafe extern "C" {
913 pub fn zxio_vmo_get_clone(io: *mut zxio_t, out_vmo: *mut zx_handle_t) -> zx_status_t;
914}
915unsafe extern "C" {
916 pub fn zxio_vmo_get_exact(io: *mut zxio_t, out_vmo: *mut zx_handle_t) -> zx_status_t;
917}
918unsafe extern "C" {
919 pub fn zxio_vmo_get_exec(io: *mut zxio_t, out_vmo: *mut zx_handle_t) -> zx_status_t;
920}
921unsafe extern "C" {
922 pub fn zxio_get_read_buffer_available(
923 io: *mut zxio_t,
924 out_available: *mut usize,
925 ) -> zx_status_t;
926}
927unsafe extern "C" {
928 pub fn zxio_shutdown(
929 io: *mut zxio_t,
930 options: zxio_shutdown_options_t,
931 out_code: *mut i16,
932 ) -> zx_status_t;
933}
934unsafe extern "C" {
935 pub fn zxio_open(
936 directory: *mut zxio_t,
937 path: *const ::std::os::raw::c_char,
938 path_len: usize,
939 flags: zxio_open_flags_t,
940 options: *const zxio_open_options_t,
941 storage: *mut zxio_storage_t,
942 ) -> zx_status_t;
943}
944unsafe extern "C" {
945 pub fn zxio_unlink(
946 directory: *mut zxio_t,
947 name: *const ::std::os::raw::c_char,
948 name_len: usize,
949 flags: ::std::os::raw::c_int,
950 ) -> zx_status_t;
951}
952unsafe extern "C" {
953 pub fn zxio_rename(
954 old_directory: *mut zxio_t,
955 old_path: *const ::std::os::raw::c_char,
956 old_path_len: usize,
957 new_directory_token: zx_handle_t,
958 new_path: *const ::std::os::raw::c_char,
959 new_path_len: usize,
960 ) -> zx_status_t;
961}
962unsafe extern "C" {
963 pub fn zxio_link(
964 src_directory: *mut zxio_t,
965 src_path: *const ::std::os::raw::c_char,
966 src_path_len: usize,
967 dst_directory_token: zx_handle_t,
968 dst_path: *const ::std::os::raw::c_char,
969 dst_path_len: usize,
970 ) -> zx_status_t;
971}
972unsafe extern "C" {
973 pub fn zxio_link_into(
974 object: *mut zxio_t,
975 dst_directory_token: zx_handle_t,
976 dst_path: *const ::std::os::raw::c_char,
977 dst_path_len: usize,
978 ) -> zx_status_t;
979}
980unsafe extern "C" {
981 pub fn zxio_dirent_iterator_init(
982 iterator: *mut zxio_dirent_iterator_t,
983 directory: *mut zxio_t,
984 ) -> zx_status_t;
985}
986unsafe extern "C" {
987 pub fn zxio_dirent_iterator_next(
988 iterator: *mut zxio_dirent_iterator_t,
989 inout_entry: *mut zxio_dirent_t,
990 ) -> zx_status_t;
991}
992unsafe extern "C" {
993 pub fn zxio_dirent_iterator_rewind(iterator: *mut zxio_dirent_iterator_t) -> zx_status_t;
994}
995unsafe extern "C" {
996 pub fn zxio_dirent_iterator_destroy(iterator: *mut zxio_dirent_iterator_t);
997}
998unsafe extern "C" {
999 pub fn zxio_isatty(io: *mut zxio_t, tty: *mut bool) -> zx_status_t;
1000}
1001unsafe extern "C" {
1002 pub fn zxio_get_window_size(io: *mut zxio_t, width: *mut u32, height: *mut u32) -> zx_status_t;
1003}
1004unsafe extern "C" {
1005 pub fn zxio_set_window_size(io: *mut zxio_t, width: u32, height: u32) -> zx_status_t;
1006}
1007unsafe extern "C" {
1008 pub fn zxio_ioctl(
1009 io: *mut zxio_t,
1010 request: ::std::os::raw::c_int,
1011 out_code: *mut i16,
1012 va: *mut __va_list_tag,
1013 ) -> zx_status_t;
1014}
1015unsafe extern "C" {
1016 pub fn zxio_read_link(
1017 io: *mut zxio_t,
1018 out_target: *mut *const u8,
1019 out_target_len: *mut usize,
1020 ) -> zx_status_t;
1021}
1022unsafe extern "C" {
1023 pub fn zxio_create_symlink(
1024 io: *mut zxio_t,
1025 name: *const ::std::os::raw::c_char,
1026 name_len: usize,
1027 target: *const u8,
1028 target_len: usize,
1029 storage: *mut zxio_storage_t,
1030 ) -> zx_status_t;
1031}
1032unsafe extern "C" {
1033 pub fn zxio_xattr_list(
1034 io: *mut zxio_t,
1035 callback: ::std::option::Option<
1036 unsafe extern "C" fn(
1037 context: *mut ::std::os::raw::c_void,
1038 name: *const u8,
1039 name_len: usize,
1040 ),
1041 >,
1042 context: *mut ::std::os::raw::c_void,
1043 ) -> zx_status_t;
1044}
1045unsafe extern "C" {
1046 pub fn zxio_xattr_get(
1047 io: *mut zxio_t,
1048 name: *const u8,
1049 name_len: usize,
1050 callback: ::std::option::Option<
1051 unsafe extern "C" fn(
1052 context: *mut ::std::os::raw::c_void,
1053 data: zxio_xattr_data_t,
1054 ) -> zx_status_t,
1055 >,
1056 context: *mut ::std::os::raw::c_void,
1057 ) -> zx_status_t;
1058}
1059unsafe extern "C" {
1060 pub fn zxio_xattr_set(
1061 io: *mut zxio_t,
1062 name: *const u8,
1063 name_len: usize,
1064 value: *const u8,
1065 value_len: usize,
1066 mode: zxio_xattr_set_mode_t,
1067 ) -> zx_status_t;
1068}
1069unsafe extern "C" {
1070 pub fn zxio_xattr_remove(io: *mut zxio_t, name: *const u8, name_len: usize) -> zx_status_t;
1071}
1072unsafe extern "C" {
1073 pub fn zxio_allocate(
1074 io: *mut zxio_t,
1075 offset: u64,
1076 len: u64,
1077 mode: zxio_allocate_mode_t,
1078 ) -> zx_status_t;
1079}
1080unsafe extern "C" {
1081 pub fn zxio_enable_verity(
1082 io: *mut zxio_t,
1083 descriptor: *const zxio_fsverity_descriptor_t,
1084 ) -> zx_status_t;
1085}
1086#[repr(C)]
1087#[derive(Debug, Copy, Clone)]
1088pub struct iovec {
1089 pub iov_base: *mut ::std::os::raw::c_void,
1090 pub iov_len: usize,
1091}
1092impl Default for iovec {
1093 fn default() -> Self {
1094 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1095 unsafe {
1096 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1097 s.assume_init()
1098 }
1099 }
1100}
1101pub type socklen_t = ::std::os::raw::c_uint;
1102pub type sa_family_t = ::std::os::raw::c_ushort;
1103#[repr(C)]
1104#[derive(Debug, Copy, Clone)]
1105pub struct msghdr {
1106 pub msg_name: *mut ::std::os::raw::c_void,
1107 pub msg_namelen: socklen_t,
1108 pub __bindgen_padding_0: [u8; 4usize],
1109 pub msg_iov: *mut iovec,
1110 pub msg_iovlen: ::std::os::raw::c_int,
1111 pub __bindgen_padding_1: [u8; 4usize],
1112 pub msg_control: *mut ::std::os::raw::c_void,
1113 pub msg_controllen: socklen_t,
1114 pub msg_flags: ::std::os::raw::c_int,
1115}
1116impl Default for msghdr {
1117 fn default() -> Self {
1118 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1119 unsafe {
1120 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1121 s.assume_init()
1122 }
1123 }
1124}
1125#[repr(C)]
1126#[derive(Clone, Copy, Debug, Default, FromBytes, Immutable, IntoBytes, KnownLayout)]
1127pub struct cmsghdr {
1128 pub cmsg_len: socklen_t,
1129 pub cmsg_level: ::std::os::raw::c_int,
1130 pub cmsg_type: ::std::os::raw::c_int,
1131}
1132#[repr(C)]
1133#[derive(Debug, Default, Copy, Clone)]
1134pub struct sockaddr {
1135 pub sa_family: sa_family_t,
1136 pub sa_data: [::std::os::raw::c_char; 14usize],
1137}
1138#[repr(C)]
1139#[derive(Debug, Copy, Clone)]
1140pub struct sockaddr_storage {
1141 pub ss_family: sa_family_t,
1142 pub __ss_padding: [::std::os::raw::c_char; 118usize],
1143 pub __ss_align: ::std::os::raw::c_ulong,
1144}
1145impl Default for sockaddr_storage {
1146 fn default() -> Self {
1147 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1148 unsafe {
1149 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1150 s.assume_init()
1151 }
1152 }
1153}
1154pub type zxio_service_connector = ::std::option::Option<
1155 unsafe extern "C" fn(
1156 service_name: *const ::std::os::raw::c_char,
1157 provider_handle: *mut zx_handle_t,
1158 ) -> zx_status_t,
1159>;
1160unsafe extern "C" {
1161 pub fn zxio_socket(
1162 service_connector: zxio_service_connector,
1163 domain: ::std::os::raw::c_int,
1164 type_: ::std::os::raw::c_int,
1165 protocol: ::std::os::raw::c_int,
1166 allocator: zxio_storage_alloc,
1167 out_context: *mut *mut ::std::os::raw::c_void,
1168 out_code: *mut i16,
1169 ) -> zx_status_t;
1170}
1171unsafe extern "C" {
1172 pub fn zxio_bind(
1173 io: *mut zxio_t,
1174 addr: *const sockaddr,
1175 addrlen: socklen_t,
1176 out_code: *mut i16,
1177 ) -> zx_status_t;
1178}
1179unsafe extern "C" {
1180 pub fn zxio_connect(
1181 io: *mut zxio_t,
1182 addr: *const sockaddr,
1183 addrlen: socklen_t,
1184 out_code: *mut i16,
1185 ) -> zx_status_t;
1186}
1187unsafe extern "C" {
1188 pub fn zxio_listen(
1189 io: *mut zxio_t,
1190 backlog: ::std::os::raw::c_int,
1191 out_code: *mut i16,
1192 ) -> zx_status_t;
1193}
1194unsafe extern "C" {
1195 pub fn zxio_accept(
1196 io: *mut zxio_t,
1197 addr: *mut sockaddr,
1198 addrlen: *mut socklen_t,
1199 out_storage: *mut zxio_storage_t,
1200 out_code: *mut i16,
1201 ) -> zx_status_t;
1202}
1203unsafe extern "C" {
1204 pub fn zxio_getsockname(
1205 io: *mut zxio_t,
1206 addr: *mut sockaddr,
1207 addrlen: *mut socklen_t,
1208 out_code: *mut i16,
1209 ) -> zx_status_t;
1210}
1211unsafe extern "C" {
1212 pub fn zxio_getpeername(
1213 io: *mut zxio_t,
1214 addr: *mut sockaddr,
1215 addrlen: *mut socklen_t,
1216 out_code: *mut i16,
1217 ) -> zx_status_t;
1218}
1219unsafe extern "C" {
1220 pub fn zxio_getsockopt(
1221 io: *mut zxio_t,
1222 level: ::std::os::raw::c_int,
1223 optname: ::std::os::raw::c_int,
1224 optval: *mut ::std::os::raw::c_void,
1225 optlen: *mut socklen_t,
1226 out_code: *mut i16,
1227 ) -> zx_status_t;
1228}
1229unsafe extern "C" {
1230 pub fn zxio_setsockopt(
1231 io: *mut zxio_t,
1232 level: ::std::os::raw::c_int,
1233 optname: ::std::os::raw::c_int,
1234 optval: *const ::std::os::raw::c_void,
1235 optlen: socklen_t,
1236 out_code: *mut i16,
1237 ) -> zx_status_t;
1238}
1239unsafe extern "C" {
1240 pub fn zxio_recvmsg(
1241 io: *mut zxio_t,
1242 msg: *mut msghdr,
1243 flags: ::std::os::raw::c_int,
1244 out_actual: *mut usize,
1245 out_code: *mut i16,
1246 ) -> zx_status_t;
1247}
1248unsafe extern "C" {
1249 pub fn zxio_sendmsg(
1250 io: *mut zxio_t,
1251 msg: *const msghdr,
1252 flags: ::std::os::raw::c_int,
1253 out_actual: *mut usize,
1254 out_code: *mut i16,
1255 ) -> zx_status_t;
1256}
1257pub type zxio_socket_mark_domain_t = u8;
1258#[repr(C)]
1259#[derive(Clone, Copy, Debug, Default, Immutable, IntoBytes, KnownLayout, TryFromBytes)]
1260pub struct zxio_socket_mark {
1261 pub value: u32,
1262 pub domain: zxio_socket_mark_domain_t,
1263 pub is_present: bool,
1264 pub __bindgen_padding_0: [u8; 2usize],
1265}
1266pub type zxio_socket_mark_t = zxio_socket_mark;
1267#[repr(C)]
1268#[derive(Debug, Copy, Clone)]
1269pub struct zxio_socket_creation_options {
1270 pub num_marks: usize,
1271 pub marks: *mut zxio_socket_mark_t,
1272 pub wake_group: zx_handle_t,
1273 pub __bindgen_padding_0: [u8; 4usize],
1274}
1275impl Default for zxio_socket_creation_options {
1276 fn default() -> Self {
1277 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1278 unsafe {
1279 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1280 s.assume_init()
1281 }
1282 }
1283}
1284pub type zxio_socket_creation_options_t = zxio_socket_creation_options;
1285unsafe extern "C" {
1286 pub fn zxio_socket_with_options(
1287 service_connector: zxio_service_connector,
1288 domain: ::std::os::raw::c_int,
1289 type_: ::std::os::raw::c_int,
1290 protocol: ::std::os::raw::c_int,
1291 opts: zxio_socket_creation_options_t,
1292 allocator: zxio_storage_alloc,
1293 out_context: *mut *mut ::std::os::raw::c_void,
1294 out_code: *mut i16,
1295 ) -> zx_status_t;
1296}
1297unsafe extern "C" {
1298 pub fn zxio_set_token_resolver(io: *mut zxio_t, resolver: zxio_token_resolver_t)
1299 -> zx_status_t;
1300}
1301unsafe extern "C" {
1302 pub fn zxio_default_maybe_faultable_copy(
1303 dest: *mut ::std::os::raw::c_uchar,
1304 src: *const ::std::os::raw::c_uchar,
1305 count: usize,
1306 ret_dest: bool,
1307 ) -> bool;
1308}
1309unsafe extern "C" {
1310 pub fn zxio_maybe_faultable_copy(
1311 dest: *mut ::std::os::raw::c_uchar,
1312 src: *const ::std::os::raw::c_uchar,
1313 count: usize,
1314 ret_dest: bool,
1315 ) -> bool;
1316}
1317unsafe extern "C" {
1318 pub fn zxio_fault_catching_disabled() -> bool;
1319}
1320pub type in_port_t = u16;
1321pub type in_addr_t = u32;
1322#[repr(C)]
1323#[derive(
1324 Clone, Copy, Debug, Default, Eq, FromBytes, Immutable, IntoBytes, KnownLayout, PartialEq,
1325)]
1326pub struct in_addr {
1327 pub s_addr: in_addr_t,
1328}
1329#[repr(C)]
1330#[derive(
1331 Clone, Copy, Debug, Default, Eq, FromBytes, Immutable, IntoBytes, KnownLayout, PartialEq,
1332)]
1333pub struct sockaddr_in {
1334 pub sin_family: sa_family_t,
1335 pub sin_port: in_port_t,
1336 pub sin_addr: in_addr,
1337 pub sin_zero: [u8; 8usize],
1338}
1339#[repr(C)]
1340#[derive(Clone, Copy, FromBytes, Immutable, IntoBytes, KnownLayout)]
1341pub struct in6_addr {
1342 pub __in6_union: in6_addr__bindgen_ty_1,
1343}
1344#[repr(C)]
1345#[derive(Clone, Copy, FromBytes, Immutable, IntoBytes, KnownLayout)]
1346pub union in6_addr__bindgen_ty_1 {
1347 pub __s6_addr: [u8; 16usize],
1348 pub __s6_addr16: [u16; 8usize],
1349 pub __s6_addr32: [u32; 4usize],
1350}
1351impl Default for in6_addr__bindgen_ty_1 {
1352 fn default() -> Self {
1353 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1354 unsafe {
1355 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1356 s.assume_init()
1357 }
1358 }
1359}
1360impl Default for in6_addr {
1361 fn default() -> Self {
1362 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1363 unsafe {
1364 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1365 s.assume_init()
1366 }
1367 }
1368}
1369#[repr(C)]
1370#[derive(Copy, Clone)]
1371pub struct sockaddr_in6 {
1372 pub sin6_family: sa_family_t,
1373 pub sin6_port: in_port_t,
1374 pub sin6_flowinfo: u32,
1375 pub sin6_addr: in6_addr,
1376 pub sin6_scope_id: u32,
1377}
1378impl Default for sockaddr_in6 {
1379 fn default() -> Self {
1380 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1381 unsafe {
1382 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1383 s.assume_init()
1384 }
1385 }
1386}
1387#[repr(C)]
1388#[derive(Clone, Copy, Immutable, IntoBytes, FromBytes, KnownLayout)]
1389pub struct in6_pktinfo {
1390 pub ipi6_addr: in6_addr,
1391 pub ipi6_ifindex: ::std::os::raw::c_uint,
1392}
1393impl Default for in6_pktinfo {
1394 fn default() -> Self {
1395 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1396 unsafe {
1397 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1398 s.assume_init()
1399 }
1400 }
1401}
1402pub type suseconds_t = ::std::os::raw::c_long;
1403#[repr(C)]
1404#[derive(Clone, Copy, Debug, Default, Immutable, IntoBytes, FromBytes, KnownLayout)]
1405pub struct timeval {
1406 pub tv_sec: time_t,
1407 pub tv_usec: suseconds_t,
1408}
1409pub const ZXIO_SHUTDOWN_OPTIONS_READ: zxio_shutdown_options_t = 2;
1410pub const ZXIO_SHUTDOWN_OPTIONS_WRITE: zxio_shutdown_options_t = 1;
1411pub const ZXIO_NODE_PROTOCOL_NONE: zxio_node_protocols_t = 0;
1412pub const ZXIO_NODE_PROTOCOL_CONNECTOR: zxio_node_protocols_t = 1;
1413pub const ZXIO_NODE_PROTOCOL_DIRECTORY: zxio_node_protocols_t = 2;
1414pub const ZXIO_NODE_PROTOCOL_FILE: zxio_node_protocols_t = 4;
1415pub const ZXIO_NODE_PROTOCOL_SYMLINK: zxio_node_protocols_t = 8;
1416pub const ZXIO_SEEK_ORIGIN_START: zxio_seek_origin_t = 0;
1417pub const ZXIO_SEEK_ORIGIN_CURRENT: zxio_seek_origin_t = 1;
1418pub const ZXIO_SEEK_ORIGIN_END: zxio_seek_origin_t = 2;
1419pub const ZXIO_ALLOCATE_KEEP_SIZE: zxio_allocate_mode_t = 1;
1420pub const ZXIO_ALLOCATE_UNSHARE_RANGE: zxio_allocate_mode_t = 2;
1421pub const ZXIO_ALLOCATE_PUNCH_HOLE: zxio_allocate_mode_t = 4;
1422pub const ZXIO_ALLOCATE_COLLAPSE_RANGE: zxio_allocate_mode_t = 8;
1423pub const ZXIO_ALLOCATE_ZERO_RANGE: zxio_allocate_mode_t = 16;
1424pub const ZXIO_ALLOCATE_INSERT_RANGE: zxio_allocate_mode_t = 32;
1425pub const ZXIO_OBJECT_TYPE_NONE: zxio_object_type_t = 0;
1426pub const ZXIO_OBJECT_TYPE_NODE: zxio_object_type_t = 1;
1427pub const ZXIO_OBJECT_TYPE_DIR: zxio_object_type_t = 2;
1428pub const ZXIO_OBJECT_TYPE_SERVICE: zxio_object_type_t = 3;
1429pub const ZXIO_OBJECT_TYPE_FILE: zxio_object_type_t = 4;
1430pub const ZXIO_OBJECT_TYPE_TTY: zxio_object_type_t = 5;
1431pub const ZXIO_OBJECT_TYPE_VMO: zxio_object_type_t = 6;
1432pub const ZXIO_OBJECT_TYPE_DEBUGLOG: zxio_object_type_t = 7;
1433pub const ZXIO_OBJECT_TYPE_PIPE: zxio_object_type_t = 8;
1434pub const ZXIO_OBJECT_TYPE_SYNCHRONOUS_DATAGRAM_SOCKET: zxio_object_type_t = 9;
1435pub const ZXIO_OBJECT_TYPE_STREAM_SOCKET: zxio_object_type_t = 10;
1436pub const ZXIO_OBJECT_TYPE_RAW_SOCKET: zxio_object_type_t = 11;
1437pub const ZXIO_OBJECT_TYPE_PACKET_SOCKET: zxio_object_type_t = 12;
1438pub const ZXIO_OBJECT_TYPE_DATAGRAM_SOCKET: zxio_object_type_t = 13;
1439pub const ZXIO_OBJECT_TYPE_SYMLINK: zxio_object_type_t = 14;
1440pub const ZXIO_SELINUX_CONTEXT_STATE_DATA: zxio_selinux_context_state_t = 0;
1441pub const ZXIO_SELINUX_CONTEXT_STATE_USE_XATTRS: zxio_selinux_context_state_t = 1;
1442pub const ZXIO_SOCKET_MARK_DOMAIN_1: zxio_socket_mark_domain_t = 1;
1443pub const ZXIO_SOCKET_MARK_DOMAIN_2: zxio_socket_mark_domain_t = 2;
1444pub const ZXIO_TOKEN_TYPE_SHARING_DOMAIN: zxio_token_type_t = 1;
1445pub type __builtin_va_list = [__va_list_tag; 1usize];
1446#[repr(C)]
1447#[derive(Debug, Copy, Clone)]
1448pub struct __va_list_tag {
1449 pub gp_offset: ::std::os::raw::c_uint,
1450 pub fp_offset: ::std::os::raw::c_uint,
1451 pub overflow_arg_area: *mut ::std::os::raw::c_void,
1452 pub reg_save_area: *mut ::std::os::raw::c_void,
1453}
1454impl Default for __va_list_tag {
1455 fn default() -> Self {
1456 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1457 unsafe {
1458 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1459 s.assume_init()
1460 }
1461 }
1462}
1463
1464