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