1// Copyright 2009 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build ignore
6
7/*
8Input to cgo -godefs.  See README.md
9*/
10
11// +godefs map struct_in_addr [4]byte /* in_addr */
12// +godefs map struct_in6_addr [16]byte /* in6_addr */
13
14package unix
15
16/*
17#define _LARGEFILE_SOURCE
18#define _LARGEFILE64_SOURCE
19#define _FILE_OFFSET_BITS 64
20#define _GNU_SOURCE
21
22#include <dirent.h>
23#include <netinet/in.h>
24#include <netinet/tcp.h>
25#include <poll.h>
26#include <sched.h>
27#include <signal.h>
28#include <stdio.h>
29#include <sys/epoll.h>
30#include <sys/inotify.h>
31#include <sys/ioctl.h>
32#include <sys/mman.h>
33#include <sys/mount.h>
34#include <sys/param.h>
35#include <sys/ptrace.h>
36#include <sys/resource.h>
37#include <sys/select.h>
38#include <sys/signal.h>
39#include <sys/signalfd.h>
40#include <sys/statfs.h>
41#include <sys/statvfs.h>
42#include <sys/sysinfo.h>
43#include <sys/time.h>
44#include <sys/times.h>
45#include <sys/timex.h>
46#include <sys/un.h>
47#include <sys/user.h>
48#include <sys/utsname.h>
49#include <sys/wait.h>
50#include <linux/errqueue.h>
51#include <linux/fanotify.h>
52#include <linux/filter.h>
53#include <linux/icmpv6.h>
54#include <linux/if_pppox.h>
55#include <linux/keyctl.h>
56#include <linux/netfilter/nf_tables.h>
57#include <linux/netfilter/nfnetlink.h>
58#include <linux/netfilter.h>
59#include <linux/netlink.h>
60#include <linux/perf_event.h>
61#include <linux/rtnetlink.h>
62#include <linux/stat.h>
63#if defined(__sparc__)
64// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the
65// definition in glibc. Duplicate the kernel version here.
66#if defined(__arch64__)
67typedef unsigned int tcflag_t;
68#else
69typedef unsigned long tcflag_t;
70#endif
71
72struct termios2 {
73	tcflag_t c_iflag;
74	tcflag_t c_oflag;
75	tcflag_t c_cflag;
76	tcflag_t c_lflag;
77	unsigned char c_line;
78	unsigned char c_cc[19];
79	unsigned int c_ispeed;
80	unsigned int c_ospeed;
81};
82#else
83#include <asm/termbits.h>
84#endif
85#include <asm/ptrace.h>
86#include <time.h>
87#include <unistd.h>
88#include <utime.h>
89#include <linux/can.h>
90#include <linux/if_alg.h>
91#include <linux/if_packet.h>
92#include <linux/fs.h>
93#include <linux/vm_sockets.h>
94#include <linux/random.h>
95#include <linux/taskstats.h>
96#include <linux/cgroupstats.h>
97#include <linux/genetlink.h>
98#include <linux/socket.h>
99#include <linux/hdreg.h>
100#include <linux/rtc.h>
101#include <linux/blkpg.h>
102#include <linux/net_namespace.h>
103#include <linux/net_tstamp.h>
104#include <linux/if_xdp.h>
105#include <linux/ncsi.h>
106
107// abi/abi.h generated by mkall.go.
108#include "abi/abi.h"
109
110// On mips64, the glibc stat and kernel stat do not agree
111#if (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI64)
112
113// Use the stat defined by the kernel with a few modifications. These are:
114//	* The time fields (like st_atime and st_atimensec) use the timespec
115//	  struct (like st_atim) for consistency with the glibc fields.
116//	* The padding fields get different names to not break compatibility.
117//	* st_blocks is signed, again for compatibility.
118struct stat {
119	unsigned int		st_dev;
120	unsigned int		st_pad1[3]; // Reserved for st_dev expansion
121
122	unsigned long		st_ino;
123
124	mode_t			st_mode;
125	__u32			st_nlink;
126
127	uid_t			st_uid;
128	gid_t			st_gid;
129
130	unsigned int		st_rdev;
131	unsigned int		st_pad2[3]; // Reserved for st_rdev expansion
132
133	off_t			st_size;
134
135	// These are declared as separate fields in the kernel. Here we use
136	// the timespec struct for consistency with the other stat structs.
137	struct timespec		st_atim;
138	struct timespec		st_mtim;
139	struct timespec		st_ctim;
140
141	unsigned int		st_blksize;
142	unsigned int		st_pad4;
143
144	long			st_blocks;
145};
146
147// These are needed because we do not include fcntl.h or sys/types.h
148#include <linux/fcntl.h>
149#include <linux/fadvise.h>
150
151#else
152
153// Use the stat defined by glibc
154#include <fcntl.h>
155#include <sys/types.h>
156
157#endif
158
159// These are defined in linux/fcntl.h, but including it globally causes
160// conflicts with fcntl.h
161#ifndef AT_STATX_SYNC_TYPE
162# define AT_STATX_SYNC_TYPE	0x6000	// Type of synchronisation required from statx()
163#endif
164#ifndef AT_STATX_SYNC_AS_STAT
165# define AT_STATX_SYNC_AS_STAT	0x0000	// - Do whatever stat() does
166#endif
167#ifndef AT_STATX_FORCE_SYNC
168# define AT_STATX_FORCE_SYNC	0x2000	// - Force the attributes to be sync'd with the server
169#endif
170#ifndef AT_STATX_DONT_SYNC
171# define AT_STATX_DONT_SYNC	0x4000	// - Don't sync attributes with the server
172#endif
173
174#ifndef AT_EACCESS
175# define AT_EACCESS		0x200	// Test access permitted for effective IDs, not real IDs.
176#endif
177
178#ifdef TCSETS2
179// On systems that have "struct termios2" use this as type Termios.
180typedef struct termios2 termios_t;
181#else
182typedef struct termios termios_t;
183#endif
184
185enum {
186	sizeofPtr = sizeof(void*),
187};
188
189union sockaddr_all {
190	struct sockaddr s1;	// this one gets used for fields
191	struct sockaddr_in s2;	// these pad it out
192	struct sockaddr_in6 s3;
193	struct sockaddr_un s4;
194	struct sockaddr_ll s5;
195	struct sockaddr_nl s6;
196	struct sockaddr_pppox s7;
197};
198
199struct sockaddr_any {
200	struct sockaddr addr;
201	char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
202};
203
204// copied from /usr/include/bluetooth/hci.h
205struct sockaddr_hci {
206        sa_family_t     hci_family;
207        unsigned short  hci_dev;
208        unsigned short  hci_channel;
209};
210
211// copied from /usr/include/bluetooth/bluetooth.h
212#define BDADDR_BREDR           0x00
213#define BDADDR_LE_PUBLIC       0x01
214#define BDADDR_LE_RANDOM       0x02
215
216// copied from /usr/include/bluetooth/l2cap.h
217struct sockaddr_l2 {
218	sa_family_t	l2_family;
219	unsigned short	l2_psm;
220	uint8_t		l2_bdaddr[6];
221	unsigned short	l2_cid;
222	uint8_t		l2_bdaddr_type;
223};
224
225// copied from /usr/include/net/bluetooth/rfcomm.h
226struct sockaddr_rc {
227	sa_family_t rc_family;
228	uint8_t     rc_bdaddr[6];
229	uint8_t     rc_channel;
230};
231
232// copied from /usr/include/linux/un.h
233struct my_sockaddr_un {
234	sa_family_t sun_family;
235#if defined(__ARM_EABI__) || defined(__powerpc64__) || defined(__riscv)
236	// on some platforms char is unsigned by default
237	signed char sun_path[108];
238#else
239	char sun_path[108];
240#endif
241};
242
243#ifdef __ARM_EABI__
244typedef struct user_regs PtraceRegs;
245#elif defined(__aarch64__)
246typedef struct user_pt_regs PtraceRegs;
247#elif defined(__mips__) || defined(__powerpc64__)
248typedef struct pt_regs PtraceRegs;
249#elif defined(__s390x__)
250typedef struct _user_regs_struct PtraceRegs;
251#elif defined(__sparc__)
252#include <asm/ptrace.h>
253typedef struct pt_regs PtraceRegs;
254#else
255typedef struct user_regs_struct PtraceRegs;
256#endif
257
258#if defined(__s390x__)
259typedef struct _user_psw_struct ptracePsw;
260typedef struct _user_fpregs_struct ptraceFpregs;
261typedef struct _user_per_struct ptracePer;
262#else
263typedef struct {} ptracePsw;
264typedef struct {} ptraceFpregs;
265typedef struct {} ptracePer;
266#endif
267
268// The real epoll_event is a union, and godefs doesn't handle it well.
269struct my_epoll_event {
270	uint32_t events;
271#if defined(__ARM_EABI__) || defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABIO32)
272	// padding is not specified in linux/eventpoll.h but added to conform to the
273	// alignment requirements of EABI
274	int32_t padFd;
275#elif defined(__powerpc64__) || defined(__s390x__) || defined(__sparc__)
276	int32_t _padFd;
277#endif
278	int32_t fd;
279	int32_t pad;
280};
281
282// Copied from <linux/perf_event.h> with the following modifications:
283// 1) bit field after read_format redeclared as '__u64 bits' to make it
284//    accessible from Go
285// 2) collapsed the unions, to avoid confusing godoc for the generated output
286//    (e.g. having to use BpAddr as an extension of Config)
287struct perf_event_attr_go {
288	__u32 type;
289
290	__u32 size;
291	__u64 config;
292
293	// union {
294	//   __u64 sample_period;
295	//   __u64 sample_freq;
296	// };
297	__u64 sample;
298
299	__u64 sample_type;
300	__u64 read_format;
301
302	// Replaces the bit field. Flags are defined as constants.
303	__u64 bits;
304
305	// union {
306	//   __u32 wakeup_events;
307	//   __u32 wakeup_watermark;
308	// };
309	__u32 wakeup;
310
311	__u32 bp_type;
312
313	// union {
314	//   __u64 bp_addr;
315	//   __u64 config1;
316	// };
317	__u64 ext1;
318
319	// union {
320	//   __u64 bp_len;
321	//   __u64 config2;
322	// };
323	__u64 ext2;
324
325	__u64 branch_sample_type;
326
327	__u64 sample_regs_user;
328
329	__u32 sample_stack_user;
330
331	__s32 clockid;
332	__u64 sample_regs_intr;
333	__u32 aux_watermark;
334	__u16 sample_max_stack;
335	__u16 __reserved_2;
336};
337
338// ustat is deprecated and glibc 2.28 removed ustat.h. Provide the type here for
339// backwards compatibility. Copied from /usr/include/bits/ustat.h
340struct ustat {
341	__daddr_t f_tfree;
342	__ino_t f_tinode;
343	char f_fname[6];
344	char f_fpack[6];
345};
346
347// my_blkpg_partition is blkpg_partition with unsigned devname & volname.
348struct my_blkpg_partition {
349	long long start;
350	long long length;
351	int pno;
352	unsigned char devname[BLKPG_DEVNAMELTH];
353	unsigned char volname[BLKPG_VOLNAMELTH];
354};
355
356*/
357import "C"
358
359// Machine characteristics
360
361const (
362	SizeofPtr      = C.sizeofPtr
363	SizeofShort    = C.sizeof_short
364	SizeofInt      = C.sizeof_int
365	SizeofLong     = C.sizeof_long
366	SizeofLongLong = C.sizeof_longlong
367	PathMax        = C.PATH_MAX
368)
369
370// Basic types
371
372type (
373	_C_short     C.short
374	_C_int       C.int
375	_C_long      C.long
376	_C_long_long C.longlong
377)
378
379// Time
380
381type Timespec C.struct_timespec
382
383type Timeval C.struct_timeval
384
385type Timex C.struct_timex
386
387type Time_t C.time_t
388
389type Tms C.struct_tms
390
391type Utimbuf C.struct_utimbuf
392
393// Processes
394
395type Rusage C.struct_rusage
396
397type Rlimit C.struct_rlimit
398
399type _Gid_t C.gid_t
400
401// Files
402
403type Stat_t C.struct_stat
404
405type StatxTimestamp C.struct_statx_timestamp
406
407type Statx_t C.struct_statx
408
409type Dirent C.struct_dirent
410
411type Fsid C.fsid_t
412
413type Flock_t C.struct_flock
414
415// Filesystem Encryption
416
417type FscryptPolicy C.struct_fscrypt_policy
418
419type FscryptKey C.struct_fscrypt_key
420
421// Structure for Keyctl
422
423type KeyctlDHParams C.struct_keyctl_dh_params
424
425// Advice to Fadvise
426
427const (
428	FADV_NORMAL     = C.POSIX_FADV_NORMAL
429	FADV_RANDOM     = C.POSIX_FADV_RANDOM
430	FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL
431	FADV_WILLNEED   = C.POSIX_FADV_WILLNEED
432	FADV_DONTNEED   = C.POSIX_FADV_DONTNEED
433	FADV_NOREUSE    = C.POSIX_FADV_NOREUSE
434)
435
436// Sockets
437
438type RawSockaddrInet4 C.struct_sockaddr_in
439
440type RawSockaddrInet6 C.struct_sockaddr_in6
441
442type RawSockaddrUnix C.struct_my_sockaddr_un
443
444type RawSockaddrLinklayer C.struct_sockaddr_ll
445
446type RawSockaddrNetlink C.struct_sockaddr_nl
447
448type RawSockaddrHCI C.struct_sockaddr_hci
449
450type RawSockaddrL2 C.struct_sockaddr_l2
451
452type RawSockaddrRFCOMM C.struct_sockaddr_rc
453
454type RawSockaddrCAN C.struct_sockaddr_can
455
456type RawSockaddrALG C.struct_sockaddr_alg
457
458type RawSockaddrVM C.struct_sockaddr_vm
459
460type RawSockaddrXDP C.struct_sockaddr_xdp
461
462type RawSockaddrPPPoX [C.sizeof_struct_sockaddr_pppox]byte
463
464type RawSockaddr C.struct_sockaddr
465
466type RawSockaddrAny C.struct_sockaddr_any
467
468type _Socklen C.socklen_t
469
470type Linger C.struct_linger
471
472type Iovec C.struct_iovec
473
474type IPMreq C.struct_ip_mreq
475
476type IPMreqn C.struct_ip_mreqn
477
478type IPv6Mreq C.struct_ipv6_mreq
479
480type PacketMreq C.struct_packet_mreq
481
482type Msghdr C.struct_msghdr
483
484type Cmsghdr C.struct_cmsghdr
485
486type Inet4Pktinfo C.struct_in_pktinfo
487
488type Inet6Pktinfo C.struct_in6_pktinfo
489
490type IPv6MTUInfo C.struct_ip6_mtuinfo
491
492type ICMPv6Filter C.struct_icmp6_filter
493
494type Ucred C.struct_ucred
495
496type TCPInfo C.struct_tcp_info
497
498type CanFilter C.struct_can_filter
499
500const (
501	SizeofSockaddrInet4     = C.sizeof_struct_sockaddr_in
502	SizeofSockaddrInet6     = C.sizeof_struct_sockaddr_in6
503	SizeofSockaddrAny       = C.sizeof_struct_sockaddr_any
504	SizeofSockaddrUnix      = C.sizeof_struct_sockaddr_un
505	SizeofSockaddrLinklayer = C.sizeof_struct_sockaddr_ll
506	SizeofSockaddrNetlink   = C.sizeof_struct_sockaddr_nl
507	SizeofSockaddrHCI       = C.sizeof_struct_sockaddr_hci
508	SizeofSockaddrL2        = C.sizeof_struct_sockaddr_l2
509	SizeofSockaddrRFCOMM    = C.sizeof_struct_sockaddr_rc
510	SizeofSockaddrCAN       = C.sizeof_struct_sockaddr_can
511	SizeofSockaddrALG       = C.sizeof_struct_sockaddr_alg
512	SizeofSockaddrVM        = C.sizeof_struct_sockaddr_vm
513	SizeofSockaddrXDP       = C.sizeof_struct_sockaddr_xdp
514	SizeofSockaddrPPPoX     = C.sizeof_struct_sockaddr_pppox
515	SizeofLinger            = C.sizeof_struct_linger
516	SizeofIovec             = C.sizeof_struct_iovec
517	SizeofIPMreq            = C.sizeof_struct_ip_mreq
518	SizeofIPMreqn           = C.sizeof_struct_ip_mreqn
519	SizeofIPv6Mreq          = C.sizeof_struct_ipv6_mreq
520	SizeofPacketMreq        = C.sizeof_struct_packet_mreq
521	SizeofMsghdr            = C.sizeof_struct_msghdr
522	SizeofCmsghdr           = C.sizeof_struct_cmsghdr
523	SizeofInet4Pktinfo      = C.sizeof_struct_in_pktinfo
524	SizeofInet6Pktinfo      = C.sizeof_struct_in6_pktinfo
525	SizeofIPv6MTUInfo       = C.sizeof_struct_ip6_mtuinfo
526	SizeofICMPv6Filter      = C.sizeof_struct_icmp6_filter
527	SizeofUcred             = C.sizeof_struct_ucred
528	SizeofTCPInfo           = C.sizeof_struct_tcp_info
529	SizeofCanFilter         = C.sizeof_struct_can_filter
530)
531
532// Netlink routing and interface messages
533
534const (
535	IFA_UNSPEC           = C.IFA_UNSPEC
536	IFA_ADDRESS          = C.IFA_ADDRESS
537	IFA_LOCAL            = C.IFA_LOCAL
538	IFA_LABEL            = C.IFA_LABEL
539	IFA_BROADCAST        = C.IFA_BROADCAST
540	IFA_ANYCAST          = C.IFA_ANYCAST
541	IFA_CACHEINFO        = C.IFA_CACHEINFO
542	IFA_MULTICAST        = C.IFA_MULTICAST
543	IFLA_UNSPEC          = C.IFLA_UNSPEC
544	IFLA_ADDRESS         = C.IFLA_ADDRESS
545	IFLA_BROADCAST       = C.IFLA_BROADCAST
546	IFLA_IFNAME          = C.IFLA_IFNAME
547	IFLA_INFO_KIND       = C.IFLA_INFO_KIND
548	IFLA_MTU             = C.IFLA_MTU
549	IFLA_LINK            = C.IFLA_LINK
550	IFLA_QDISC           = C.IFLA_QDISC
551	IFLA_STATS           = C.IFLA_STATS
552	IFLA_COST            = C.IFLA_COST
553	IFLA_PRIORITY        = C.IFLA_PRIORITY
554	IFLA_MASTER          = C.IFLA_MASTER
555	IFLA_WIRELESS        = C.IFLA_WIRELESS
556	IFLA_PROTINFO        = C.IFLA_PROTINFO
557	IFLA_TXQLEN          = C.IFLA_TXQLEN
558	IFLA_MAP             = C.IFLA_MAP
559	IFLA_WEIGHT          = C.IFLA_WEIGHT
560	IFLA_OPERSTATE       = C.IFLA_OPERSTATE
561	IFLA_LINKMODE        = C.IFLA_LINKMODE
562	IFLA_LINKINFO        = C.IFLA_LINKINFO
563	IFLA_NET_NS_PID      = C.IFLA_NET_NS_PID
564	IFLA_IFALIAS         = C.IFLA_IFALIAS
565	IFLA_NUM_VF          = C.IFLA_NUM_VF
566	IFLA_VFINFO_LIST     = C.IFLA_VFINFO_LIST
567	IFLA_STATS64         = C.IFLA_STATS64
568	IFLA_VF_PORTS        = C.IFLA_VF_PORTS
569	IFLA_PORT_SELF       = C.IFLA_PORT_SELF
570	IFLA_AF_SPEC         = C.IFLA_AF_SPEC
571	IFLA_GROUP           = C.IFLA_GROUP
572	IFLA_NET_NS_FD       = C.IFLA_NET_NS_FD
573	IFLA_EXT_MASK        = C.IFLA_EXT_MASK
574	IFLA_PROMISCUITY     = C.IFLA_PROMISCUITY
575	IFLA_NUM_TX_QUEUES   = C.IFLA_NUM_TX_QUEUES
576	IFLA_NUM_RX_QUEUES   = C.IFLA_NUM_RX_QUEUES
577	IFLA_CARRIER         = C.IFLA_CARRIER
578	IFLA_PHYS_PORT_ID    = C.IFLA_PHYS_PORT_ID
579	IFLA_CARRIER_CHANGES = C.IFLA_CARRIER_CHANGES
580	IFLA_PHYS_SWITCH_ID  = C.IFLA_PHYS_SWITCH_ID
581	IFLA_LINK_NETNSID    = C.IFLA_LINK_NETNSID
582	IFLA_PHYS_PORT_NAME  = C.IFLA_PHYS_PORT_NAME
583	IFLA_PROTO_DOWN      = C.IFLA_PROTO_DOWN
584	IFLA_GSO_MAX_SEGS    = C.IFLA_GSO_MAX_SEGS
585	IFLA_GSO_MAX_SIZE    = C.IFLA_GSO_MAX_SIZE
586	IFLA_PAD             = C.IFLA_PAD
587	IFLA_XDP             = C.IFLA_XDP
588	IFLA_EVENT           = C.IFLA_EVENT
589	IFLA_NEW_NETNSID     = C.IFLA_NEW_NETNSID
590	IFLA_IF_NETNSID      = C.IFLA_IF_NETNSID
591	IFLA_MAX             = C.IFLA_MAX
592	RT_SCOPE_UNIVERSE    = C.RT_SCOPE_UNIVERSE
593	RT_SCOPE_SITE        = C.RT_SCOPE_SITE
594	RT_SCOPE_LINK        = C.RT_SCOPE_LINK
595	RT_SCOPE_HOST        = C.RT_SCOPE_HOST
596	RT_SCOPE_NOWHERE     = C.RT_SCOPE_NOWHERE
597	RT_TABLE_UNSPEC      = C.RT_TABLE_UNSPEC
598	RT_TABLE_COMPAT      = C.RT_TABLE_COMPAT
599	RT_TABLE_DEFAULT     = C.RT_TABLE_DEFAULT
600	RT_TABLE_MAIN        = C.RT_TABLE_MAIN
601	RT_TABLE_LOCAL       = C.RT_TABLE_LOCAL
602	RT_TABLE_MAX         = C.RT_TABLE_MAX
603	RTA_UNSPEC           = C.RTA_UNSPEC
604	RTA_DST              = C.RTA_DST
605	RTA_SRC              = C.RTA_SRC
606	RTA_IIF              = C.RTA_IIF
607	RTA_OIF              = C.RTA_OIF
608	RTA_GATEWAY          = C.RTA_GATEWAY
609	RTA_PRIORITY         = C.RTA_PRIORITY
610	RTA_PREFSRC          = C.RTA_PREFSRC
611	RTA_METRICS          = C.RTA_METRICS
612	RTA_MULTIPATH        = C.RTA_MULTIPATH
613	RTA_FLOW             = C.RTA_FLOW
614	RTA_CACHEINFO        = C.RTA_CACHEINFO
615	RTA_TABLE            = C.RTA_TABLE
616	RTA_MARK             = C.RTA_MARK
617	RTA_MFC_STATS        = C.RTA_MFC_STATS
618	RTA_VIA              = C.RTA_VIA
619	RTA_NEWDST           = C.RTA_NEWDST
620	RTA_PREF             = C.RTA_PREF
621	RTA_ENCAP_TYPE       = C.RTA_ENCAP_TYPE
622	RTA_ENCAP            = C.RTA_ENCAP
623	RTA_EXPIRES          = C.RTA_EXPIRES
624	RTA_PAD              = C.RTA_PAD
625	RTA_UID              = C.RTA_UID
626	RTA_TTL_PROPAGATE    = C.RTA_TTL_PROPAGATE
627	RTA_IP_PROTO         = C.RTA_IP_PROTO
628	RTA_SPORT            = C.RTA_SPORT
629	RTA_DPORT            = C.RTA_DPORT
630	RTN_UNSPEC           = C.RTN_UNSPEC
631	RTN_UNICAST          = C.RTN_UNICAST
632	RTN_LOCAL            = C.RTN_LOCAL
633	RTN_BROADCAST        = C.RTN_BROADCAST
634	RTN_ANYCAST          = C.RTN_ANYCAST
635	RTN_MULTICAST        = C.RTN_MULTICAST
636	RTN_BLACKHOLE        = C.RTN_BLACKHOLE
637	RTN_UNREACHABLE      = C.RTN_UNREACHABLE
638	RTN_PROHIBIT         = C.RTN_PROHIBIT
639	RTN_THROW            = C.RTN_THROW
640	RTN_NAT              = C.RTN_NAT
641	RTN_XRESOLVE         = C.RTN_XRESOLVE
642	RTNLGRP_NONE         = C.RTNLGRP_NONE
643	RTNLGRP_LINK         = C.RTNLGRP_LINK
644	RTNLGRP_NOTIFY       = C.RTNLGRP_NOTIFY
645	RTNLGRP_NEIGH        = C.RTNLGRP_NEIGH
646	RTNLGRP_TC           = C.RTNLGRP_TC
647	RTNLGRP_IPV4_IFADDR  = C.RTNLGRP_IPV4_IFADDR
648	RTNLGRP_IPV4_MROUTE  = C.RTNLGRP_IPV4_MROUTE
649	RTNLGRP_IPV4_ROUTE   = C.RTNLGRP_IPV4_ROUTE
650	RTNLGRP_IPV4_RULE    = C.RTNLGRP_IPV4_RULE
651	RTNLGRP_IPV6_IFADDR  = C.RTNLGRP_IPV6_IFADDR
652	RTNLGRP_IPV6_MROUTE  = C.RTNLGRP_IPV6_MROUTE
653	RTNLGRP_IPV6_ROUTE   = C.RTNLGRP_IPV6_ROUTE
654	RTNLGRP_IPV6_IFINFO  = C.RTNLGRP_IPV6_IFINFO
655	RTNLGRP_IPV6_PREFIX  = C.RTNLGRP_IPV6_PREFIX
656	RTNLGRP_IPV6_RULE    = C.RTNLGRP_IPV6_RULE
657	RTNLGRP_ND_USEROPT   = C.RTNLGRP_ND_USEROPT
658	SizeofNlMsghdr       = C.sizeof_struct_nlmsghdr
659	SizeofNlMsgerr       = C.sizeof_struct_nlmsgerr
660	SizeofRtGenmsg       = C.sizeof_struct_rtgenmsg
661	SizeofNlAttr         = C.sizeof_struct_nlattr
662	SizeofRtAttr         = C.sizeof_struct_rtattr
663	SizeofIfInfomsg      = C.sizeof_struct_ifinfomsg
664	SizeofIfAddrmsg      = C.sizeof_struct_ifaddrmsg
665	SizeofRtMsg          = C.sizeof_struct_rtmsg
666	SizeofRtNexthop      = C.sizeof_struct_rtnexthop
667	SizeofNdUseroptmsg   = C.sizeof_struct_nduseroptmsg
668)
669
670type NlMsghdr C.struct_nlmsghdr
671
672type NlMsgerr C.struct_nlmsgerr
673
674type RtGenmsg C.struct_rtgenmsg
675
676type NlAttr C.struct_nlattr
677
678type RtAttr C.struct_rtattr
679
680type IfInfomsg C.struct_ifinfomsg
681
682type IfAddrmsg C.struct_ifaddrmsg
683
684type RtMsg C.struct_rtmsg
685
686type RtNexthop C.struct_rtnexthop
687
688type NdUseroptmsg C.struct_nduseroptmsg
689
690// Linux socket filter
691
692const (
693	SizeofSockFilter = C.sizeof_struct_sock_filter
694	SizeofSockFprog  = C.sizeof_struct_sock_fprog
695)
696
697type SockFilter C.struct_sock_filter
698
699type SockFprog C.struct_sock_fprog
700
701// Inotify
702
703type InotifyEvent C.struct_inotify_event
704
705const SizeofInotifyEvent = C.sizeof_struct_inotify_event
706
707// Ptrace
708
709// Register structures
710type PtraceRegs C.PtraceRegs
711
712// Structures contained in PtraceRegs on s390x (exported by mkpost.go)
713type PtracePsw C.ptracePsw
714
715type PtraceFpregs C.ptraceFpregs
716
717type PtracePer C.ptracePer
718
719// Misc
720
721type FdSet C.fd_set
722
723type Sysinfo_t C.struct_sysinfo
724
725type Utsname C.struct_utsname
726
727type Ustat_t C.struct_ustat
728
729type EpollEvent C.struct_my_epoll_event
730
731const (
732	AT_EMPTY_PATH   = C.AT_EMPTY_PATH
733	AT_FDCWD        = C.AT_FDCWD
734	AT_NO_AUTOMOUNT = C.AT_NO_AUTOMOUNT
735	AT_REMOVEDIR    = C.AT_REMOVEDIR
736
737	AT_STATX_SYNC_AS_STAT = C.AT_STATX_SYNC_AS_STAT
738	AT_STATX_FORCE_SYNC   = C.AT_STATX_FORCE_SYNC
739	AT_STATX_DONT_SYNC    = C.AT_STATX_DONT_SYNC
740
741	AT_SYMLINK_FOLLOW   = C.AT_SYMLINK_FOLLOW
742	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
743
744	AT_EACCESS = C.AT_EACCESS
745)
746
747type PollFd C.struct_pollfd
748
749const (
750	POLLIN    = C.POLLIN
751	POLLPRI   = C.POLLPRI
752	POLLOUT   = C.POLLOUT
753	POLLRDHUP = C.POLLRDHUP
754	POLLERR   = C.POLLERR
755	POLLHUP   = C.POLLHUP
756	POLLNVAL  = C.POLLNVAL
757)
758
759type Sigset_t C.sigset_t
760
761type SignalfdSiginfo C.struct_signalfd_siginfo
762
763const PERF_IOC_FLAG_GROUP = C.PERF_IOC_FLAG_GROUP
764
765// Terminal handling
766
767type Termios C.termios_t
768
769type Winsize C.struct_winsize
770
771// Taskstats and cgroup stats.
772
773type Taskstats C.struct_taskstats
774
775const (
776	TASKSTATS_CMD_UNSPEC                  = C.TASKSTATS_CMD_UNSPEC
777	TASKSTATS_CMD_GET                     = C.TASKSTATS_CMD_GET
778	TASKSTATS_CMD_NEW                     = C.TASKSTATS_CMD_NEW
779	TASKSTATS_TYPE_UNSPEC                 = C.TASKSTATS_TYPE_UNSPEC
780	TASKSTATS_TYPE_PID                    = C.TASKSTATS_TYPE_PID
781	TASKSTATS_TYPE_TGID                   = C.TASKSTATS_TYPE_TGID
782	TASKSTATS_TYPE_STATS                  = C.TASKSTATS_TYPE_STATS
783	TASKSTATS_TYPE_AGGR_PID               = C.TASKSTATS_TYPE_AGGR_PID
784	TASKSTATS_TYPE_AGGR_TGID              = C.TASKSTATS_TYPE_AGGR_TGID
785	TASKSTATS_TYPE_NULL                   = C.TASKSTATS_TYPE_NULL
786	TASKSTATS_CMD_ATTR_UNSPEC             = C.TASKSTATS_CMD_ATTR_UNSPEC
787	TASKSTATS_CMD_ATTR_PID                = C.TASKSTATS_CMD_ATTR_PID
788	TASKSTATS_CMD_ATTR_TGID               = C.TASKSTATS_CMD_ATTR_TGID
789	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = C.TASKSTATS_CMD_ATTR_REGISTER_CPUMASK
790	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = C.TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK
791)
792
793type CGroupStats C.struct_cgroupstats
794
795const (
796	CGROUPSTATS_CMD_UNSPEC        = C.__TASKSTATS_CMD_MAX
797	CGROUPSTATS_CMD_GET           = C.CGROUPSTATS_CMD_GET
798	CGROUPSTATS_CMD_NEW           = C.CGROUPSTATS_CMD_NEW
799	CGROUPSTATS_TYPE_UNSPEC       = C.CGROUPSTATS_TYPE_UNSPEC
800	CGROUPSTATS_TYPE_CGROUP_STATS = C.CGROUPSTATS_TYPE_CGROUP_STATS
801	CGROUPSTATS_CMD_ATTR_UNSPEC   = C.CGROUPSTATS_CMD_ATTR_UNSPEC
802	CGROUPSTATS_CMD_ATTR_FD       = C.CGROUPSTATS_CMD_ATTR_FD
803)
804
805// Generic netlink
806
807type Genlmsghdr C.struct_genlmsghdr
808
809const (
810	CTRL_CMD_UNSPEC            = C.CTRL_CMD_UNSPEC
811	CTRL_CMD_NEWFAMILY         = C.CTRL_CMD_NEWFAMILY
812	CTRL_CMD_DELFAMILY         = C.CTRL_CMD_DELFAMILY
813	CTRL_CMD_GETFAMILY         = C.CTRL_CMD_GETFAMILY
814	CTRL_CMD_NEWOPS            = C.CTRL_CMD_NEWOPS
815	CTRL_CMD_DELOPS            = C.CTRL_CMD_DELOPS
816	CTRL_CMD_GETOPS            = C.CTRL_CMD_GETOPS
817	CTRL_CMD_NEWMCAST_GRP      = C.CTRL_CMD_NEWMCAST_GRP
818	CTRL_CMD_DELMCAST_GRP      = C.CTRL_CMD_DELMCAST_GRP
819	CTRL_CMD_GETMCAST_GRP      = C.CTRL_CMD_GETMCAST_GRP
820	CTRL_ATTR_UNSPEC           = C.CTRL_ATTR_UNSPEC
821	CTRL_ATTR_FAMILY_ID        = C.CTRL_ATTR_FAMILY_ID
822	CTRL_ATTR_FAMILY_NAME      = C.CTRL_ATTR_FAMILY_NAME
823	CTRL_ATTR_VERSION          = C.CTRL_ATTR_VERSION
824	CTRL_ATTR_HDRSIZE          = C.CTRL_ATTR_HDRSIZE
825	CTRL_ATTR_MAXATTR          = C.CTRL_ATTR_MAXATTR
826	CTRL_ATTR_OPS              = C.CTRL_ATTR_OPS
827	CTRL_ATTR_MCAST_GROUPS     = C.CTRL_ATTR_MCAST_GROUPS
828	CTRL_ATTR_OP_UNSPEC        = C.CTRL_ATTR_OP_UNSPEC
829	CTRL_ATTR_OP_ID            = C.CTRL_ATTR_OP_ID
830	CTRL_ATTR_OP_FLAGS         = C.CTRL_ATTR_OP_FLAGS
831	CTRL_ATTR_MCAST_GRP_UNSPEC = C.CTRL_ATTR_MCAST_GRP_UNSPEC
832	CTRL_ATTR_MCAST_GRP_NAME   = C.CTRL_ATTR_MCAST_GRP_NAME
833	CTRL_ATTR_MCAST_GRP_ID     = C.CTRL_ATTR_MCAST_GRP_ID
834)
835
836// CPU affinity
837
838type cpuMask C.__cpu_mask
839
840const (
841	_CPU_SETSIZE = C.__CPU_SETSIZE
842	_NCPUBITS    = C.__NCPUBITS
843)
844
845// Bluetooth
846
847const (
848	BDADDR_BREDR     = C.BDADDR_BREDR
849	BDADDR_LE_PUBLIC = C.BDADDR_LE_PUBLIC
850	BDADDR_LE_RANDOM = C.BDADDR_LE_RANDOM
851)
852
853// Perf subsystem
854
855type PerfEventAttr C.struct_perf_event_attr_go
856
857type PerfEventMmapPage C.struct_perf_event_mmap_page
858
859// Bit field in struct perf_event_attr expanded as flags.
860// Set these on PerfEventAttr.Bits by ORing them together.
861const (
862	PerfBitDisabled               uint64 = CBitFieldMaskBit0
863	PerfBitInherit                       = CBitFieldMaskBit1
864	PerfBitPinned                        = CBitFieldMaskBit2
865	PerfBitExclusive                     = CBitFieldMaskBit3
866	PerfBitExcludeUser                   = CBitFieldMaskBit4
867	PerfBitExcludeKernel                 = CBitFieldMaskBit5
868	PerfBitExcludeHv                     = CBitFieldMaskBit6
869	PerfBitExcludeIdle                   = CBitFieldMaskBit7
870	PerfBitMmap                          = CBitFieldMaskBit8
871	PerfBitComm                          = CBitFieldMaskBit9
872	PerfBitFreq                          = CBitFieldMaskBit10
873	PerfBitInheritStat                   = CBitFieldMaskBit11
874	PerfBitEnableOnExec                  = CBitFieldMaskBit12
875	PerfBitTask                          = CBitFieldMaskBit13
876	PerfBitWatermark                     = CBitFieldMaskBit14
877	PerfBitPreciseIPBit1                 = CBitFieldMaskBit15
878	PerfBitPreciseIPBit2                 = CBitFieldMaskBit16
879	PerfBitMmapData                      = CBitFieldMaskBit17
880	PerfBitSampleIDAll                   = CBitFieldMaskBit18
881	PerfBitExcludeHost                   = CBitFieldMaskBit19
882	PerfBitExcludeGuest                  = CBitFieldMaskBit20
883	PerfBitExcludeCallchainKernel        = CBitFieldMaskBit21
884	PerfBitExcludeCallchainUser          = CBitFieldMaskBit22
885	PerfBitMmap2                         = CBitFieldMaskBit23
886	PerfBitCommExec                      = CBitFieldMaskBit24
887	PerfBitUseClockID                    = CBitFieldMaskBit25
888	PerfBitContextSwitch                 = CBitFieldMaskBit26
889)
890
891const (
892	PERF_TYPE_HARDWARE   = C.PERF_TYPE_HARDWARE
893	PERF_TYPE_SOFTWARE   = C.PERF_TYPE_SOFTWARE
894	PERF_TYPE_TRACEPOINT = C.PERF_TYPE_TRACEPOINT
895	PERF_TYPE_HW_CACHE   = C.PERF_TYPE_HW_CACHE
896	PERF_TYPE_RAW        = C.PERF_TYPE_RAW
897	PERF_TYPE_BREAKPOINT = C.PERF_TYPE_BREAKPOINT
898
899	PERF_COUNT_HW_CPU_CYCLES              = C.PERF_COUNT_HW_CPU_CYCLES
900	PERF_COUNT_HW_INSTRUCTIONS            = C.PERF_COUNT_HW_INSTRUCTIONS
901	PERF_COUNT_HW_CACHE_REFERENCES        = C.PERF_COUNT_HW_CACHE_REFERENCES
902	PERF_COUNT_HW_CACHE_MISSES            = C.PERF_COUNT_HW_CACHE_MISSES
903	PERF_COUNT_HW_BRANCH_INSTRUCTIONS     = C.PERF_COUNT_HW_BRANCH_INSTRUCTIONS
904	PERF_COUNT_HW_BRANCH_MISSES           = C.PERF_COUNT_HW_BRANCH_MISSES
905	PERF_COUNT_HW_BUS_CYCLES              = C.PERF_COUNT_HW_BUS_CYCLES
906	PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = C.PERF_COUNT_HW_STALLED_CYCLES_FRONTEND
907	PERF_COUNT_HW_STALLED_CYCLES_BACKEND  = C.PERF_COUNT_HW_STALLED_CYCLES_BACKEND
908	PERF_COUNT_HW_REF_CPU_CYCLES          = C.PERF_COUNT_HW_REF_CPU_CYCLES
909
910	PERF_COUNT_HW_CACHE_L1D  = C.PERF_COUNT_HW_CACHE_L1D
911	PERF_COUNT_HW_CACHE_L1I  = C.PERF_COUNT_HW_CACHE_L1I
912	PERF_COUNT_HW_CACHE_LL   = C.PERF_COUNT_HW_CACHE_LL
913	PERF_COUNT_HW_CACHE_DTLB = C.PERF_COUNT_HW_CACHE_DTLB
914	PERF_COUNT_HW_CACHE_ITLB = C.PERF_COUNT_HW_CACHE_ITLB
915	PERF_COUNT_HW_CACHE_BPU  = C.PERF_COUNT_HW_CACHE_BPU
916	PERF_COUNT_HW_CACHE_NODE = C.PERF_COUNT_HW_CACHE_NODE
917
918	PERF_COUNT_HW_CACHE_OP_READ     = C.PERF_COUNT_HW_CACHE_OP_READ
919	PERF_COUNT_HW_CACHE_OP_WRITE    = C.PERF_COUNT_HW_CACHE_OP_WRITE
920	PERF_COUNT_HW_CACHE_OP_PREFETCH = C.PERF_COUNT_HW_CACHE_OP_PREFETCH
921
922	PERF_COUNT_HW_CACHE_RESULT_ACCESS = C.PERF_COUNT_HW_CACHE_RESULT_ACCESS
923	PERF_COUNT_HW_CACHE_RESULT_MISS   = C.PERF_COUNT_HW_CACHE_RESULT_MISS
924
925	PERF_COUNT_SW_CPU_CLOCK        = C.PERF_COUNT_SW_CPU_CLOCK
926	PERF_COUNT_SW_TASK_CLOCK       = C.PERF_COUNT_SW_TASK_CLOCK
927	PERF_COUNT_SW_PAGE_FAULTS      = C.PERF_COUNT_SW_PAGE_FAULTS
928	PERF_COUNT_SW_CONTEXT_SWITCHES = C.PERF_COUNT_SW_CONTEXT_SWITCHES
929	PERF_COUNT_SW_CPU_MIGRATIONS   = C.PERF_COUNT_SW_CPU_MIGRATIONS
930	PERF_COUNT_SW_PAGE_FAULTS_MIN  = C.PERF_COUNT_SW_PAGE_FAULTS_MIN
931	PERF_COUNT_SW_PAGE_FAULTS_MAJ  = C.PERF_COUNT_SW_PAGE_FAULTS_MAJ
932	PERF_COUNT_SW_ALIGNMENT_FAULTS = C.PERF_COUNT_SW_ALIGNMENT_FAULTS
933	PERF_COUNT_SW_EMULATION_FAULTS = C.PERF_COUNT_SW_EMULATION_FAULTS
934	PERF_COUNT_SW_DUMMY            = C.PERF_COUNT_SW_DUMMY
935	PERF_COUNT_SW_BPF_OUTPUT       = C.PERF_COUNT_SW_BPF_OUTPUT
936
937	PERF_SAMPLE_IP           = C.PERF_SAMPLE_IP
938	PERF_SAMPLE_TID          = C.PERF_SAMPLE_TID
939	PERF_SAMPLE_TIME         = C.PERF_SAMPLE_TIME
940	PERF_SAMPLE_ADDR         = C.PERF_SAMPLE_ADDR
941	PERF_SAMPLE_READ         = C.PERF_SAMPLE_READ
942	PERF_SAMPLE_CALLCHAIN    = C.PERF_SAMPLE_CALLCHAIN
943	PERF_SAMPLE_ID           = C.PERF_SAMPLE_ID
944	PERF_SAMPLE_CPU          = C.PERF_SAMPLE_CPU
945	PERF_SAMPLE_PERIOD       = C.PERF_SAMPLE_PERIOD
946	PERF_SAMPLE_STREAM_ID    = C.PERF_SAMPLE_STREAM_ID
947	PERF_SAMPLE_RAW          = C.PERF_SAMPLE_RAW
948	PERF_SAMPLE_BRANCH_STACK = C.PERF_SAMPLE_BRANCH_STACK
949
950	PERF_SAMPLE_BRANCH_USER       = C.PERF_SAMPLE_BRANCH_USER
951	PERF_SAMPLE_BRANCH_KERNEL     = C.PERF_SAMPLE_BRANCH_KERNEL
952	PERF_SAMPLE_BRANCH_HV         = C.PERF_SAMPLE_BRANCH_HV
953	PERF_SAMPLE_BRANCH_ANY        = C.PERF_SAMPLE_BRANCH_ANY
954	PERF_SAMPLE_BRANCH_ANY_CALL   = C.PERF_SAMPLE_BRANCH_ANY_CALL
955	PERF_SAMPLE_BRANCH_ANY_RETURN = C.PERF_SAMPLE_BRANCH_ANY_RETURN
956	PERF_SAMPLE_BRANCH_IND_CALL   = C.PERF_SAMPLE_BRANCH_IND_CALL
957	PERF_SAMPLE_BRANCH_ABORT_TX   = C.PERF_SAMPLE_BRANCH_ABORT_TX
958	PERF_SAMPLE_BRANCH_IN_TX      = C.PERF_SAMPLE_BRANCH_IN_TX
959	PERF_SAMPLE_BRANCH_NO_TX      = C.PERF_SAMPLE_BRANCH_NO_TX
960	PERF_SAMPLE_BRANCH_COND       = C.PERF_SAMPLE_BRANCH_COND
961	PERF_SAMPLE_BRANCH_CALL_STACK = C.PERF_SAMPLE_BRANCH_CALL_STACK
962	PERF_SAMPLE_BRANCH_IND_JUMP   = C.PERF_SAMPLE_BRANCH_IND_JUMP
963	PERF_SAMPLE_BRANCH_CALL       = C.PERF_SAMPLE_BRANCH_CALL
964	PERF_SAMPLE_BRANCH_NO_FLAGS   = C.PERF_SAMPLE_BRANCH_NO_FLAGS
965	PERF_SAMPLE_BRANCH_NO_CYCLES  = C.PERF_SAMPLE_BRANCH_NO_CYCLES
966	PERF_SAMPLE_BRANCH_TYPE_SAVE  = C.PERF_SAMPLE_BRANCH_TYPE_SAVE
967
968	PERF_FORMAT_TOTAL_TIME_ENABLED = C.PERF_FORMAT_TOTAL_TIME_ENABLED
969	PERF_FORMAT_TOTAL_TIME_RUNNING = C.PERF_FORMAT_TOTAL_TIME_RUNNING
970	PERF_FORMAT_ID                 = C.PERF_FORMAT_ID
971	PERF_FORMAT_GROUP              = C.PERF_FORMAT_GROUP
972
973	PERF_RECORD_MMAP            = C.PERF_RECORD_MMAP
974	PERF_RECORD_LOST            = C.PERF_RECORD_LOST
975	PERF_RECORD_COMM            = C.PERF_RECORD_COMM
976	PERF_RECORD_EXIT            = C.PERF_RECORD_EXIT
977	PERF_RECORD_THROTTLE        = C.PERF_RECORD_THROTTLE
978	PERF_RECORD_UNTHROTTLE      = C.PERF_RECORD_UNTHROTTLE
979	PERF_RECORD_FORK            = C.PERF_RECORD_FORK
980	PERF_RECORD_READ            = C.PERF_RECORD_READ
981	PERF_RECORD_SAMPLE          = C.PERF_RECORD_SAMPLE
982	PERF_RECORD_MMAP2           = C.PERF_RECORD_MMAP2
983	PERF_RECORD_AUX             = C.PERF_RECORD_AUX
984	PERF_RECORD_ITRACE_START    = C.PERF_RECORD_ITRACE_START
985	PERF_RECORD_LOST_SAMPLES    = C.PERF_RECORD_LOST_SAMPLES
986	PERF_RECORD_SWITCH          = C.PERF_RECORD_SWITCH
987	PERF_RECORD_SWITCH_CPU_WIDE = C.PERF_RECORD_SWITCH_CPU_WIDE
988	PERF_RECORD_NAMESPACES      = C.PERF_RECORD_NAMESPACES
989
990	PERF_CONTEXT_HV     = C.PERF_CONTEXT_HV
991	PERF_CONTEXT_KERNEL = C.PERF_CONTEXT_KERNEL
992	PERF_CONTEXT_USER   = C.PERF_CONTEXT_USER
993
994	PERF_CONTEXT_GUEST        = C.PERF_CONTEXT_GUEST
995	PERF_CONTEXT_GUEST_KERNEL = C.PERF_CONTEXT_GUEST_KERNEL
996	PERF_CONTEXT_GUEST_USER   = C.PERF_CONTEXT_GUEST_USER
997
998	PERF_FLAG_FD_NO_GROUP = C.PERF_FLAG_FD_NO_GROUP
999	PERF_FLAG_FD_OUTPUT   = C.PERF_FLAG_FD_OUTPUT
1000	PERF_FLAG_PID_CGROUP  = C.PERF_FLAG_PID_CGROUP
1001	PERF_FLAG_FD_CLOEXEC  = C.PERF_FLAG_FD_CLOEXEC
1002)
1003
1004// Platform ABI and calling convention
1005
1006// Bit field masks for interoperability with C code that uses bit fields.
1007// Each mask corresponds to a single bit set - bit field behavior can be replicated by combining
1008// the masks with bitwise OR.
1009const (
1010	CBitFieldMaskBit0  = C.BITFIELD_MASK_0
1011	CBitFieldMaskBit1  = C.BITFIELD_MASK_1
1012	CBitFieldMaskBit2  = C.BITFIELD_MASK_2
1013	CBitFieldMaskBit3  = C.BITFIELD_MASK_3
1014	CBitFieldMaskBit4  = C.BITFIELD_MASK_4
1015	CBitFieldMaskBit5  = C.BITFIELD_MASK_5
1016	CBitFieldMaskBit6  = C.BITFIELD_MASK_6
1017	CBitFieldMaskBit7  = C.BITFIELD_MASK_7
1018	CBitFieldMaskBit8  = C.BITFIELD_MASK_8
1019	CBitFieldMaskBit9  = C.BITFIELD_MASK_9
1020	CBitFieldMaskBit10 = C.BITFIELD_MASK_10
1021	CBitFieldMaskBit11 = C.BITFIELD_MASK_11
1022	CBitFieldMaskBit12 = C.BITFIELD_MASK_12
1023	CBitFieldMaskBit13 = C.BITFIELD_MASK_13
1024	CBitFieldMaskBit14 = C.BITFIELD_MASK_14
1025	CBitFieldMaskBit15 = C.BITFIELD_MASK_15
1026	CBitFieldMaskBit16 = C.BITFIELD_MASK_16
1027	CBitFieldMaskBit17 = C.BITFIELD_MASK_17
1028	CBitFieldMaskBit18 = C.BITFIELD_MASK_18
1029	CBitFieldMaskBit19 = C.BITFIELD_MASK_19
1030	CBitFieldMaskBit20 = C.BITFIELD_MASK_20
1031	CBitFieldMaskBit21 = C.BITFIELD_MASK_21
1032	CBitFieldMaskBit22 = C.BITFIELD_MASK_22
1033	CBitFieldMaskBit23 = C.BITFIELD_MASK_23
1034	CBitFieldMaskBit24 = C.BITFIELD_MASK_24
1035	CBitFieldMaskBit25 = C.BITFIELD_MASK_25
1036	CBitFieldMaskBit26 = C.BITFIELD_MASK_26
1037	CBitFieldMaskBit27 = C.BITFIELD_MASK_27
1038	CBitFieldMaskBit28 = C.BITFIELD_MASK_28
1039	CBitFieldMaskBit29 = C.BITFIELD_MASK_29
1040	CBitFieldMaskBit30 = C.BITFIELD_MASK_30
1041	CBitFieldMaskBit31 = C.BITFIELD_MASK_31
1042	CBitFieldMaskBit32 = C.BITFIELD_MASK_32
1043	CBitFieldMaskBit33 = C.BITFIELD_MASK_33
1044	CBitFieldMaskBit34 = C.BITFIELD_MASK_34
1045	CBitFieldMaskBit35 = C.BITFIELD_MASK_35
1046	CBitFieldMaskBit36 = C.BITFIELD_MASK_36
1047	CBitFieldMaskBit37 = C.BITFIELD_MASK_37
1048	CBitFieldMaskBit38 = C.BITFIELD_MASK_38
1049	CBitFieldMaskBit39 = C.BITFIELD_MASK_39
1050	CBitFieldMaskBit40 = C.BITFIELD_MASK_40
1051	CBitFieldMaskBit41 = C.BITFIELD_MASK_41
1052	CBitFieldMaskBit42 = C.BITFIELD_MASK_42
1053	CBitFieldMaskBit43 = C.BITFIELD_MASK_43
1054	CBitFieldMaskBit44 = C.BITFIELD_MASK_44
1055	CBitFieldMaskBit45 = C.BITFIELD_MASK_45
1056	CBitFieldMaskBit46 = C.BITFIELD_MASK_46
1057	CBitFieldMaskBit47 = C.BITFIELD_MASK_47
1058	CBitFieldMaskBit48 = C.BITFIELD_MASK_48
1059	CBitFieldMaskBit49 = C.BITFIELD_MASK_49
1060	CBitFieldMaskBit50 = C.BITFIELD_MASK_50
1061	CBitFieldMaskBit51 = C.BITFIELD_MASK_51
1062	CBitFieldMaskBit52 = C.BITFIELD_MASK_52
1063	CBitFieldMaskBit53 = C.BITFIELD_MASK_53
1064	CBitFieldMaskBit54 = C.BITFIELD_MASK_54
1065	CBitFieldMaskBit55 = C.BITFIELD_MASK_55
1066	CBitFieldMaskBit56 = C.BITFIELD_MASK_56
1067	CBitFieldMaskBit57 = C.BITFIELD_MASK_57
1068	CBitFieldMaskBit58 = C.BITFIELD_MASK_58
1069	CBitFieldMaskBit59 = C.BITFIELD_MASK_59
1070	CBitFieldMaskBit60 = C.BITFIELD_MASK_60
1071	CBitFieldMaskBit61 = C.BITFIELD_MASK_61
1072	CBitFieldMaskBit62 = C.BITFIELD_MASK_62
1073	CBitFieldMaskBit63 = C.BITFIELD_MASK_63
1074)
1075
1076// TCP-MD5 signature.
1077
1078type SockaddrStorage C.struct_sockaddr_storage
1079
1080type TCPMD5Sig C.struct_tcp_md5sig
1081
1082// Disk drive operations.
1083
1084type HDDriveCmdHdr C.struct_hd_drive_cmd_hdr
1085
1086type HDGeometry C.struct_hd_geometry
1087
1088type HDDriveID C.struct_hd_driveid
1089
1090// Statfs
1091
1092type Statfs_t C.struct_statfs
1093
1094const (
1095	ST_MANDLOCK    = C.ST_MANDLOCK
1096	ST_NOATIME     = C.ST_NOATIME
1097	ST_NODEV       = C.ST_NODEV
1098	ST_NODIRATIME  = C.ST_NODIRATIME
1099	ST_NOEXEC      = C.ST_NOEXEC
1100	ST_NOSUID      = C.ST_NOSUID
1101	ST_RDONLY      = C.ST_RDONLY
1102	ST_RELATIME    = C.ST_RELATIME
1103	ST_SYNCHRONOUS = C.ST_SYNCHRONOUS
1104)
1105
1106// TPacket
1107
1108type TpacketHdr C.struct_tpacket_hdr
1109
1110type Tpacket2Hdr C.struct_tpacket2_hdr
1111
1112type Tpacket3Hdr C.struct_tpacket3_hdr
1113
1114type TpacketHdrVariant1 C.struct_tpacket_hdr_variant1
1115
1116type TpacketBlockDesc C.struct_tpacket_block_desc
1117
1118type TpacketReq C.struct_tpacket_req
1119
1120type TpacketReq3 C.struct_tpacket_req3
1121
1122type TpacketStats C.struct_tpacket_stats
1123
1124type TpacketStatsV3 C.struct_tpacket_stats_v3
1125
1126type TpacketAuxdata C.struct_tpacket_auxdata
1127
1128const (
1129	TPACKET_V1 = C.TPACKET_V1
1130	TPACKET_V2 = C.TPACKET_V2
1131	TPACKET_V3 = C.TPACKET_V3
1132)
1133
1134const (
1135	SizeofTpacketHdr  = C.sizeof_struct_tpacket_hdr
1136	SizeofTpacket2Hdr = C.sizeof_struct_tpacket2_hdr
1137	SizeofTpacket3Hdr = C.sizeof_struct_tpacket3_hdr
1138
1139	SizeofTpacketStats   = C.sizeof_struct_tpacket_stats
1140	SizeofTpacketStatsV3 = C.sizeof_struct_tpacket_stats_v3
1141)
1142
1143// netfilter
1144// generated using:
1145// perl -nlE '/^\s*(NF\w+)/ && say "$1 = C.$1"' /usr/include/linux/netfilter.h
1146const (
1147	NF_INET_PRE_ROUTING  = C.NF_INET_PRE_ROUTING
1148	NF_INET_LOCAL_IN     = C.NF_INET_LOCAL_IN
1149	NF_INET_FORWARD      = C.NF_INET_FORWARD
1150	NF_INET_LOCAL_OUT    = C.NF_INET_LOCAL_OUT
1151	NF_INET_POST_ROUTING = C.NF_INET_POST_ROUTING
1152	NF_INET_NUMHOOKS     = C.NF_INET_NUMHOOKS
1153)
1154
1155const (
1156	NF_NETDEV_INGRESS  = C.NF_NETDEV_INGRESS
1157	NF_NETDEV_NUMHOOKS = C.NF_NETDEV_NUMHOOKS
1158)
1159
1160const (
1161	NFPROTO_UNSPEC   = C.NFPROTO_UNSPEC
1162	NFPROTO_INET     = C.NFPROTO_INET
1163	NFPROTO_IPV4     = C.NFPROTO_IPV4
1164	NFPROTO_ARP      = C.NFPROTO_ARP
1165	NFPROTO_NETDEV   = C.NFPROTO_NETDEV
1166	NFPROTO_BRIDGE   = C.NFPROTO_BRIDGE
1167	NFPROTO_IPV6     = C.NFPROTO_IPV6
1168	NFPROTO_DECNET   = C.NFPROTO_DECNET
1169	NFPROTO_NUMPROTO = C.NFPROTO_NUMPROTO
1170)
1171
1172// netfilter nfnetlink
1173type Nfgenmsg C.struct_nfgenmsg
1174
1175const (
1176	NFNL_BATCH_UNSPEC = C.NFNL_BATCH_UNSPEC
1177	NFNL_BATCH_GENID  = C.NFNL_BATCH_GENID
1178)
1179
1180// netfilter nf_tables
1181// generated using:
1182// perl -nlE '/^\s*(NFT\w+)/ && say "$1 = C.$1"' /usr/include/linux/netfilter/nf_tables.h
1183const (
1184	NFT_REG_VERDICT                   = C.NFT_REG_VERDICT
1185	NFT_REG_1                         = C.NFT_REG_1
1186	NFT_REG_2                         = C.NFT_REG_2
1187	NFT_REG_3                         = C.NFT_REG_3
1188	NFT_REG_4                         = C.NFT_REG_4
1189	NFT_REG32_00                      = C.NFT_REG32_00
1190	NFT_REG32_01                      = C.NFT_REG32_01
1191	NFT_REG32_02                      = C.NFT_REG32_02
1192	NFT_REG32_03                      = C.NFT_REG32_03
1193	NFT_REG32_04                      = C.NFT_REG32_04
1194	NFT_REG32_05                      = C.NFT_REG32_05
1195	NFT_REG32_06                      = C.NFT_REG32_06
1196	NFT_REG32_07                      = C.NFT_REG32_07
1197	NFT_REG32_08                      = C.NFT_REG32_08
1198	NFT_REG32_09                      = C.NFT_REG32_09
1199	NFT_REG32_10                      = C.NFT_REG32_10
1200	NFT_REG32_11                      = C.NFT_REG32_11
1201	NFT_REG32_12                      = C.NFT_REG32_12
1202	NFT_REG32_13                      = C.NFT_REG32_13
1203	NFT_REG32_14                      = C.NFT_REG32_14
1204	NFT_REG32_15                      = C.NFT_REG32_15
1205	NFT_CONTINUE                      = C.NFT_CONTINUE
1206	NFT_BREAK                         = C.NFT_BREAK
1207	NFT_JUMP                          = C.NFT_JUMP
1208	NFT_GOTO                          = C.NFT_GOTO
1209	NFT_RETURN                        = C.NFT_RETURN
1210	NFT_MSG_NEWTABLE                  = C.NFT_MSG_NEWTABLE
1211	NFT_MSG_GETTABLE                  = C.NFT_MSG_GETTABLE
1212	NFT_MSG_DELTABLE                  = C.NFT_MSG_DELTABLE
1213	NFT_MSG_NEWCHAIN                  = C.NFT_MSG_NEWCHAIN
1214	NFT_MSG_GETCHAIN                  = C.NFT_MSG_GETCHAIN
1215	NFT_MSG_DELCHAIN                  = C.NFT_MSG_DELCHAIN
1216	NFT_MSG_NEWRULE                   = C.NFT_MSG_NEWRULE
1217	NFT_MSG_GETRULE                   = C.NFT_MSG_GETRULE
1218	NFT_MSG_DELRULE                   = C.NFT_MSG_DELRULE
1219	NFT_MSG_NEWSET                    = C.NFT_MSG_NEWSET
1220	NFT_MSG_GETSET                    = C.NFT_MSG_GETSET
1221	NFT_MSG_DELSET                    = C.NFT_MSG_DELSET
1222	NFT_MSG_NEWSETELEM                = C.NFT_MSG_NEWSETELEM
1223	NFT_MSG_GETSETELEM                = C.NFT_MSG_GETSETELEM
1224	NFT_MSG_DELSETELEM                = C.NFT_MSG_DELSETELEM
1225	NFT_MSG_NEWGEN                    = C.NFT_MSG_NEWGEN
1226	NFT_MSG_GETGEN                    = C.NFT_MSG_GETGEN
1227	NFT_MSG_TRACE                     = C.NFT_MSG_TRACE
1228	NFT_MSG_NEWOBJ                    = C.NFT_MSG_NEWOBJ
1229	NFT_MSG_GETOBJ                    = C.NFT_MSG_GETOBJ
1230	NFT_MSG_DELOBJ                    = C.NFT_MSG_DELOBJ
1231	NFT_MSG_GETOBJ_RESET              = C.NFT_MSG_GETOBJ_RESET
1232	NFT_MSG_MAX                       = C.NFT_MSG_MAX
1233	NFTA_LIST_UNPEC                   = C.NFTA_LIST_UNPEC
1234	NFTA_LIST_ELEM                    = C.NFTA_LIST_ELEM
1235	NFTA_HOOK_UNSPEC                  = C.NFTA_HOOK_UNSPEC
1236	NFTA_HOOK_HOOKNUM                 = C.NFTA_HOOK_HOOKNUM
1237	NFTA_HOOK_PRIORITY                = C.NFTA_HOOK_PRIORITY
1238	NFTA_HOOK_DEV                     = C.NFTA_HOOK_DEV
1239	NFT_TABLE_F_DORMANT               = C.NFT_TABLE_F_DORMANT
1240	NFTA_TABLE_UNSPEC                 = C.NFTA_TABLE_UNSPEC
1241	NFTA_TABLE_NAME                   = C.NFTA_TABLE_NAME
1242	NFTA_TABLE_FLAGS                  = C.NFTA_TABLE_FLAGS
1243	NFTA_TABLE_USE                    = C.NFTA_TABLE_USE
1244	NFTA_CHAIN_UNSPEC                 = C.NFTA_CHAIN_UNSPEC
1245	NFTA_CHAIN_TABLE                  = C.NFTA_CHAIN_TABLE
1246	NFTA_CHAIN_HANDLE                 = C.NFTA_CHAIN_HANDLE
1247	NFTA_CHAIN_NAME                   = C.NFTA_CHAIN_NAME
1248	NFTA_CHAIN_HOOK                   = C.NFTA_CHAIN_HOOK
1249	NFTA_CHAIN_POLICY                 = C.NFTA_CHAIN_POLICY
1250	NFTA_CHAIN_USE                    = C.NFTA_CHAIN_USE
1251	NFTA_CHAIN_TYPE                   = C.NFTA_CHAIN_TYPE
1252	NFTA_CHAIN_COUNTERS               = C.NFTA_CHAIN_COUNTERS
1253	NFTA_CHAIN_PAD                    = C.NFTA_CHAIN_PAD
1254	NFTA_RULE_UNSPEC                  = C.NFTA_RULE_UNSPEC
1255	NFTA_RULE_TABLE                   = C.NFTA_RULE_TABLE
1256	NFTA_RULE_CHAIN                   = C.NFTA_RULE_CHAIN
1257	NFTA_RULE_HANDLE                  = C.NFTA_RULE_HANDLE
1258	NFTA_RULE_EXPRESSIONS             = C.NFTA_RULE_EXPRESSIONS
1259	NFTA_RULE_COMPAT                  = C.NFTA_RULE_COMPAT
1260	NFTA_RULE_POSITION                = C.NFTA_RULE_POSITION
1261	NFTA_RULE_USERDATA                = C.NFTA_RULE_USERDATA
1262	NFTA_RULE_PAD                     = C.NFTA_RULE_PAD
1263	NFTA_RULE_ID                      = C.NFTA_RULE_ID
1264	NFT_RULE_COMPAT_F_INV             = C.NFT_RULE_COMPAT_F_INV
1265	NFT_RULE_COMPAT_F_MASK            = C.NFT_RULE_COMPAT_F_MASK
1266	NFTA_RULE_COMPAT_UNSPEC           = C.NFTA_RULE_COMPAT_UNSPEC
1267	NFTA_RULE_COMPAT_PROTO            = C.NFTA_RULE_COMPAT_PROTO
1268	NFTA_RULE_COMPAT_FLAGS            = C.NFTA_RULE_COMPAT_FLAGS
1269	NFT_SET_ANONYMOUS                 = C.NFT_SET_ANONYMOUS
1270	NFT_SET_CONSTANT                  = C.NFT_SET_CONSTANT
1271	NFT_SET_INTERVAL                  = C.NFT_SET_INTERVAL
1272	NFT_SET_MAP                       = C.NFT_SET_MAP
1273	NFT_SET_TIMEOUT                   = C.NFT_SET_TIMEOUT
1274	NFT_SET_EVAL                      = C.NFT_SET_EVAL
1275	NFT_SET_OBJECT                    = C.NFT_SET_OBJECT
1276	NFT_SET_POL_PERFORMANCE           = C.NFT_SET_POL_PERFORMANCE
1277	NFT_SET_POL_MEMORY                = C.NFT_SET_POL_MEMORY
1278	NFTA_SET_DESC_UNSPEC              = C.NFTA_SET_DESC_UNSPEC
1279	NFTA_SET_DESC_SIZE                = C.NFTA_SET_DESC_SIZE
1280	NFTA_SET_UNSPEC                   = C.NFTA_SET_UNSPEC
1281	NFTA_SET_TABLE                    = C.NFTA_SET_TABLE
1282	NFTA_SET_NAME                     = C.NFTA_SET_NAME
1283	NFTA_SET_FLAGS                    = C.NFTA_SET_FLAGS
1284	NFTA_SET_KEY_TYPE                 = C.NFTA_SET_KEY_TYPE
1285	NFTA_SET_KEY_LEN                  = C.NFTA_SET_KEY_LEN
1286	NFTA_SET_DATA_TYPE                = C.NFTA_SET_DATA_TYPE
1287	NFTA_SET_DATA_LEN                 = C.NFTA_SET_DATA_LEN
1288	NFTA_SET_POLICY                   = C.NFTA_SET_POLICY
1289	NFTA_SET_DESC                     = C.NFTA_SET_DESC
1290	NFTA_SET_ID                       = C.NFTA_SET_ID
1291	NFTA_SET_TIMEOUT                  = C.NFTA_SET_TIMEOUT
1292	NFTA_SET_GC_INTERVAL              = C.NFTA_SET_GC_INTERVAL
1293	NFTA_SET_USERDATA                 = C.NFTA_SET_USERDATA
1294	NFTA_SET_PAD                      = C.NFTA_SET_PAD
1295	NFTA_SET_OBJ_TYPE                 = C.NFTA_SET_OBJ_TYPE
1296	NFT_SET_ELEM_INTERVAL_END         = C.NFT_SET_ELEM_INTERVAL_END
1297	NFTA_SET_ELEM_UNSPEC              = C.NFTA_SET_ELEM_UNSPEC
1298	NFTA_SET_ELEM_KEY                 = C.NFTA_SET_ELEM_KEY
1299	NFTA_SET_ELEM_DATA                = C.NFTA_SET_ELEM_DATA
1300	NFTA_SET_ELEM_FLAGS               = C.NFTA_SET_ELEM_FLAGS
1301	NFTA_SET_ELEM_TIMEOUT             = C.NFTA_SET_ELEM_TIMEOUT
1302	NFTA_SET_ELEM_EXPIRATION          = C.NFTA_SET_ELEM_EXPIRATION
1303	NFTA_SET_ELEM_USERDATA            = C.NFTA_SET_ELEM_USERDATA
1304	NFTA_SET_ELEM_EXPR                = C.NFTA_SET_ELEM_EXPR
1305	NFTA_SET_ELEM_PAD                 = C.NFTA_SET_ELEM_PAD
1306	NFTA_SET_ELEM_OBJREF              = C.NFTA_SET_ELEM_OBJREF
1307	NFTA_SET_ELEM_LIST_UNSPEC         = C.NFTA_SET_ELEM_LIST_UNSPEC
1308	NFTA_SET_ELEM_LIST_TABLE          = C.NFTA_SET_ELEM_LIST_TABLE
1309	NFTA_SET_ELEM_LIST_SET            = C.NFTA_SET_ELEM_LIST_SET
1310	NFTA_SET_ELEM_LIST_ELEMENTS       = C.NFTA_SET_ELEM_LIST_ELEMENTS
1311	NFTA_SET_ELEM_LIST_SET_ID         = C.NFTA_SET_ELEM_LIST_SET_ID
1312	NFT_DATA_VALUE                    = C.NFT_DATA_VALUE
1313	NFT_DATA_VERDICT                  = C.NFT_DATA_VERDICT
1314	NFTA_DATA_UNSPEC                  = C.NFTA_DATA_UNSPEC
1315	NFTA_DATA_VALUE                   = C.NFTA_DATA_VALUE
1316	NFTA_DATA_VERDICT                 = C.NFTA_DATA_VERDICT
1317	NFTA_VERDICT_UNSPEC               = C.NFTA_VERDICT_UNSPEC
1318	NFTA_VERDICT_CODE                 = C.NFTA_VERDICT_CODE
1319	NFTA_VERDICT_CHAIN                = C.NFTA_VERDICT_CHAIN
1320	NFTA_EXPR_UNSPEC                  = C.NFTA_EXPR_UNSPEC
1321	NFTA_EXPR_NAME                    = C.NFTA_EXPR_NAME
1322	NFTA_EXPR_DATA                    = C.NFTA_EXPR_DATA
1323	NFTA_IMMEDIATE_UNSPEC             = C.NFTA_IMMEDIATE_UNSPEC
1324	NFTA_IMMEDIATE_DREG               = C.NFTA_IMMEDIATE_DREG
1325	NFTA_IMMEDIATE_DATA               = C.NFTA_IMMEDIATE_DATA
1326	NFTA_BITWISE_UNSPEC               = C.NFTA_BITWISE_UNSPEC
1327	NFTA_BITWISE_SREG                 = C.NFTA_BITWISE_SREG
1328	NFTA_BITWISE_DREG                 = C.NFTA_BITWISE_DREG
1329	NFTA_BITWISE_LEN                  = C.NFTA_BITWISE_LEN
1330	NFTA_BITWISE_MASK                 = C.NFTA_BITWISE_MASK
1331	NFTA_BITWISE_XOR                  = C.NFTA_BITWISE_XOR
1332	NFT_BYTEORDER_NTOH                = C.NFT_BYTEORDER_NTOH
1333	NFT_BYTEORDER_HTON                = C.NFT_BYTEORDER_HTON
1334	NFTA_BYTEORDER_UNSPEC             = C.NFTA_BYTEORDER_UNSPEC
1335	NFTA_BYTEORDER_SREG               = C.NFTA_BYTEORDER_SREG
1336	NFTA_BYTEORDER_DREG               = C.NFTA_BYTEORDER_DREG
1337	NFTA_BYTEORDER_OP                 = C.NFTA_BYTEORDER_OP
1338	NFTA_BYTEORDER_LEN                = C.NFTA_BYTEORDER_LEN
1339	NFTA_BYTEORDER_SIZE               = C.NFTA_BYTEORDER_SIZE
1340	NFT_CMP_EQ                        = C.NFT_CMP_EQ
1341	NFT_CMP_NEQ                       = C.NFT_CMP_NEQ
1342	NFT_CMP_LT                        = C.NFT_CMP_LT
1343	NFT_CMP_LTE                       = C.NFT_CMP_LTE
1344	NFT_CMP_GT                        = C.NFT_CMP_GT
1345	NFT_CMP_GTE                       = C.NFT_CMP_GTE
1346	NFTA_CMP_UNSPEC                   = C.NFTA_CMP_UNSPEC
1347	NFTA_CMP_SREG                     = C.NFTA_CMP_SREG
1348	NFTA_CMP_OP                       = C.NFTA_CMP_OP
1349	NFTA_CMP_DATA                     = C.NFTA_CMP_DATA
1350	NFT_RANGE_EQ                      = C.NFT_RANGE_EQ
1351	NFT_RANGE_NEQ                     = C.NFT_RANGE_NEQ
1352	NFTA_RANGE_UNSPEC                 = C.NFTA_RANGE_UNSPEC
1353	NFTA_RANGE_SREG                   = C.NFTA_RANGE_SREG
1354	NFTA_RANGE_OP                     = C.NFTA_RANGE_OP
1355	NFTA_RANGE_FROM_DATA              = C.NFTA_RANGE_FROM_DATA
1356	NFTA_RANGE_TO_DATA                = C.NFTA_RANGE_TO_DATA
1357	NFT_LOOKUP_F_INV                  = C.NFT_LOOKUP_F_INV
1358	NFTA_LOOKUP_UNSPEC                = C.NFTA_LOOKUP_UNSPEC
1359	NFTA_LOOKUP_SET                   = C.NFTA_LOOKUP_SET
1360	NFTA_LOOKUP_SREG                  = C.NFTA_LOOKUP_SREG
1361	NFTA_LOOKUP_DREG                  = C.NFTA_LOOKUP_DREG
1362	NFTA_LOOKUP_SET_ID                = C.NFTA_LOOKUP_SET_ID
1363	NFTA_LOOKUP_FLAGS                 = C.NFTA_LOOKUP_FLAGS
1364	NFT_DYNSET_OP_ADD                 = C.NFT_DYNSET_OP_ADD
1365	NFT_DYNSET_OP_UPDATE              = C.NFT_DYNSET_OP_UPDATE
1366	NFT_DYNSET_F_INV                  = C.NFT_DYNSET_F_INV
1367	NFTA_DYNSET_UNSPEC                = C.NFTA_DYNSET_UNSPEC
1368	NFTA_DYNSET_SET_NAME              = C.NFTA_DYNSET_SET_NAME
1369	NFTA_DYNSET_SET_ID                = C.NFTA_DYNSET_SET_ID
1370	NFTA_DYNSET_OP                    = C.NFTA_DYNSET_OP
1371	NFTA_DYNSET_SREG_KEY              = C.NFTA_DYNSET_SREG_KEY
1372	NFTA_DYNSET_SREG_DATA             = C.NFTA_DYNSET_SREG_DATA
1373	NFTA_DYNSET_TIMEOUT               = C.NFTA_DYNSET_TIMEOUT
1374	NFTA_DYNSET_EXPR                  = C.NFTA_DYNSET_EXPR
1375	NFTA_DYNSET_PAD                   = C.NFTA_DYNSET_PAD
1376	NFTA_DYNSET_FLAGS                 = C.NFTA_DYNSET_FLAGS
1377	NFT_PAYLOAD_LL_HEADER             = C.NFT_PAYLOAD_LL_HEADER
1378	NFT_PAYLOAD_NETWORK_HEADER        = C.NFT_PAYLOAD_NETWORK_HEADER
1379	NFT_PAYLOAD_TRANSPORT_HEADER      = C.NFT_PAYLOAD_TRANSPORT_HEADER
1380	NFT_PAYLOAD_CSUM_NONE             = C.NFT_PAYLOAD_CSUM_NONE
1381	NFT_PAYLOAD_CSUM_INET             = C.NFT_PAYLOAD_CSUM_INET
1382	NFT_PAYLOAD_L4CSUM_PSEUDOHDR      = C.NFT_PAYLOAD_L4CSUM_PSEUDOHDR
1383	NFTA_PAYLOAD_UNSPEC               = C.NFTA_PAYLOAD_UNSPEC
1384	NFTA_PAYLOAD_DREG                 = C.NFTA_PAYLOAD_DREG
1385	NFTA_PAYLOAD_BASE                 = C.NFTA_PAYLOAD_BASE
1386	NFTA_PAYLOAD_OFFSET               = C.NFTA_PAYLOAD_OFFSET
1387	NFTA_PAYLOAD_LEN                  = C.NFTA_PAYLOAD_LEN
1388	NFTA_PAYLOAD_SREG                 = C.NFTA_PAYLOAD_SREG
1389	NFTA_PAYLOAD_CSUM_TYPE            = C.NFTA_PAYLOAD_CSUM_TYPE
1390	NFTA_PAYLOAD_CSUM_OFFSET          = C.NFTA_PAYLOAD_CSUM_OFFSET
1391	NFTA_PAYLOAD_CSUM_FLAGS           = C.NFTA_PAYLOAD_CSUM_FLAGS
1392	NFT_EXTHDR_F_PRESENT              = C.NFT_EXTHDR_F_PRESENT
1393	NFT_EXTHDR_OP_IPV6                = C.NFT_EXTHDR_OP_IPV6
1394	NFT_EXTHDR_OP_TCPOPT              = C.NFT_EXTHDR_OP_TCPOPT
1395	NFTA_EXTHDR_UNSPEC                = C.NFTA_EXTHDR_UNSPEC
1396	NFTA_EXTHDR_DREG                  = C.NFTA_EXTHDR_DREG
1397	NFTA_EXTHDR_TYPE                  = C.NFTA_EXTHDR_TYPE
1398	NFTA_EXTHDR_OFFSET                = C.NFTA_EXTHDR_OFFSET
1399	NFTA_EXTHDR_LEN                   = C.NFTA_EXTHDR_LEN
1400	NFTA_EXTHDR_FLAGS                 = C.NFTA_EXTHDR_FLAGS
1401	NFTA_EXTHDR_OP                    = C.NFTA_EXTHDR_OP
1402	NFTA_EXTHDR_SREG                  = C.NFTA_EXTHDR_SREG
1403	NFT_META_LEN                      = C.NFT_META_LEN
1404	NFT_META_PROTOCOL                 = C.NFT_META_PROTOCOL
1405	NFT_META_PRIORITY                 = C.NFT_META_PRIORITY
1406	NFT_META_MARK                     = C.NFT_META_MARK
1407	NFT_META_IIF                      = C.NFT_META_IIF
1408	NFT_META_OIF                      = C.NFT_META_OIF
1409	NFT_META_IIFNAME                  = C.NFT_META_IIFNAME
1410	NFT_META_OIFNAME                  = C.NFT_META_OIFNAME
1411	NFT_META_IIFTYPE                  = C.NFT_META_IIFTYPE
1412	NFT_META_OIFTYPE                  = C.NFT_META_OIFTYPE
1413	NFT_META_SKUID                    = C.NFT_META_SKUID
1414	NFT_META_SKGID                    = C.NFT_META_SKGID
1415	NFT_META_NFTRACE                  = C.NFT_META_NFTRACE
1416	NFT_META_RTCLASSID                = C.NFT_META_RTCLASSID
1417	NFT_META_SECMARK                  = C.NFT_META_SECMARK
1418	NFT_META_NFPROTO                  = C.NFT_META_NFPROTO
1419	NFT_META_L4PROTO                  = C.NFT_META_L4PROTO
1420	NFT_META_BRI_IIFNAME              = C.NFT_META_BRI_IIFNAME
1421	NFT_META_BRI_OIFNAME              = C.NFT_META_BRI_OIFNAME
1422	NFT_META_PKTTYPE                  = C.NFT_META_PKTTYPE
1423	NFT_META_CPU                      = C.NFT_META_CPU
1424	NFT_META_IIFGROUP                 = C.NFT_META_IIFGROUP
1425	NFT_META_OIFGROUP                 = C.NFT_META_OIFGROUP
1426	NFT_META_CGROUP                   = C.NFT_META_CGROUP
1427	NFT_META_PRANDOM                  = C.NFT_META_PRANDOM
1428	NFT_RT_CLASSID                    = C.NFT_RT_CLASSID
1429	NFT_RT_NEXTHOP4                   = C.NFT_RT_NEXTHOP4
1430	NFT_RT_NEXTHOP6                   = C.NFT_RT_NEXTHOP6
1431	NFT_RT_TCPMSS                     = C.NFT_RT_TCPMSS
1432	NFT_HASH_JENKINS                  = C.NFT_HASH_JENKINS
1433	NFT_HASH_SYM                      = C.NFT_HASH_SYM
1434	NFTA_HASH_UNSPEC                  = C.NFTA_HASH_UNSPEC
1435	NFTA_HASH_SREG                    = C.NFTA_HASH_SREG
1436	NFTA_HASH_DREG                    = C.NFTA_HASH_DREG
1437	NFTA_HASH_LEN                     = C.NFTA_HASH_LEN
1438	NFTA_HASH_MODULUS                 = C.NFTA_HASH_MODULUS
1439	NFTA_HASH_SEED                    = C.NFTA_HASH_SEED
1440	NFTA_HASH_OFFSET                  = C.NFTA_HASH_OFFSET
1441	NFTA_HASH_TYPE                    = C.NFTA_HASH_TYPE
1442	NFTA_META_UNSPEC                  = C.NFTA_META_UNSPEC
1443	NFTA_META_DREG                    = C.NFTA_META_DREG
1444	NFTA_META_KEY                     = C.NFTA_META_KEY
1445	NFTA_META_SREG                    = C.NFTA_META_SREG
1446	NFTA_RT_UNSPEC                    = C.NFTA_RT_UNSPEC
1447	NFTA_RT_DREG                      = C.NFTA_RT_DREG
1448	NFTA_RT_KEY                       = C.NFTA_RT_KEY
1449	NFT_CT_STATE                      = C.NFT_CT_STATE
1450	NFT_CT_DIRECTION                  = C.NFT_CT_DIRECTION
1451	NFT_CT_STATUS                     = C.NFT_CT_STATUS
1452	NFT_CT_MARK                       = C.NFT_CT_MARK
1453	NFT_CT_SECMARK                    = C.NFT_CT_SECMARK
1454	NFT_CT_EXPIRATION                 = C.NFT_CT_EXPIRATION
1455	NFT_CT_HELPER                     = C.NFT_CT_HELPER
1456	NFT_CT_L3PROTOCOL                 = C.NFT_CT_L3PROTOCOL
1457	NFT_CT_SRC                        = C.NFT_CT_SRC
1458	NFT_CT_DST                        = C.NFT_CT_DST
1459	NFT_CT_PROTOCOL                   = C.NFT_CT_PROTOCOL
1460	NFT_CT_PROTO_SRC                  = C.NFT_CT_PROTO_SRC
1461	NFT_CT_PROTO_DST                  = C.NFT_CT_PROTO_DST
1462	NFT_CT_LABELS                     = C.NFT_CT_LABELS
1463	NFT_CT_PKTS                       = C.NFT_CT_PKTS
1464	NFT_CT_BYTES                      = C.NFT_CT_BYTES
1465	NFT_CT_AVGPKT                     = C.NFT_CT_AVGPKT
1466	NFT_CT_ZONE                       = C.NFT_CT_ZONE
1467	NFT_CT_EVENTMASK                  = C.NFT_CT_EVENTMASK
1468	NFTA_CT_UNSPEC                    = C.NFTA_CT_UNSPEC
1469	NFTA_CT_DREG                      = C.NFTA_CT_DREG
1470	NFTA_CT_KEY                       = C.NFTA_CT_KEY
1471	NFTA_CT_DIRECTION                 = C.NFTA_CT_DIRECTION
1472	NFTA_CT_SREG                      = C.NFTA_CT_SREG
1473	NFT_LIMIT_PKTS                    = C.NFT_LIMIT_PKTS
1474	NFT_LIMIT_PKT_BYTES               = C.NFT_LIMIT_PKT_BYTES
1475	NFT_LIMIT_F_INV                   = C.NFT_LIMIT_F_INV
1476	NFTA_LIMIT_UNSPEC                 = C.NFTA_LIMIT_UNSPEC
1477	NFTA_LIMIT_RATE                   = C.NFTA_LIMIT_RATE
1478	NFTA_LIMIT_UNIT                   = C.NFTA_LIMIT_UNIT
1479	NFTA_LIMIT_BURST                  = C.NFTA_LIMIT_BURST
1480	NFTA_LIMIT_TYPE                   = C.NFTA_LIMIT_TYPE
1481	NFTA_LIMIT_FLAGS                  = C.NFTA_LIMIT_FLAGS
1482	NFTA_LIMIT_PAD                    = C.NFTA_LIMIT_PAD
1483	NFTA_COUNTER_UNSPEC               = C.NFTA_COUNTER_UNSPEC
1484	NFTA_COUNTER_BYTES                = C.NFTA_COUNTER_BYTES
1485	NFTA_COUNTER_PACKETS              = C.NFTA_COUNTER_PACKETS
1486	NFTA_COUNTER_PAD                  = C.NFTA_COUNTER_PAD
1487	NFTA_LOG_UNSPEC                   = C.NFTA_LOG_UNSPEC
1488	NFTA_LOG_GROUP                    = C.NFTA_LOG_GROUP
1489	NFTA_LOG_PREFIX                   = C.NFTA_LOG_PREFIX
1490	NFTA_LOG_SNAPLEN                  = C.NFTA_LOG_SNAPLEN
1491	NFTA_LOG_QTHRESHOLD               = C.NFTA_LOG_QTHRESHOLD
1492	NFTA_LOG_LEVEL                    = C.NFTA_LOG_LEVEL
1493	NFTA_LOG_FLAGS                    = C.NFTA_LOG_FLAGS
1494	NFTA_QUEUE_UNSPEC                 = C.NFTA_QUEUE_UNSPEC
1495	NFTA_QUEUE_NUM                    = C.NFTA_QUEUE_NUM
1496	NFTA_QUEUE_TOTAL                  = C.NFTA_QUEUE_TOTAL
1497	NFTA_QUEUE_FLAGS                  = C.NFTA_QUEUE_FLAGS
1498	NFTA_QUEUE_SREG_QNUM              = C.NFTA_QUEUE_SREG_QNUM
1499	NFT_QUOTA_F_INV                   = C.NFT_QUOTA_F_INV
1500	NFT_QUOTA_F_DEPLETED              = C.NFT_QUOTA_F_DEPLETED
1501	NFTA_QUOTA_UNSPEC                 = C.NFTA_QUOTA_UNSPEC
1502	NFTA_QUOTA_BYTES                  = C.NFTA_QUOTA_BYTES
1503	NFTA_QUOTA_FLAGS                  = C.NFTA_QUOTA_FLAGS
1504	NFTA_QUOTA_PAD                    = C.NFTA_QUOTA_PAD
1505	NFTA_QUOTA_CONSUMED               = C.NFTA_QUOTA_CONSUMED
1506	NFT_REJECT_ICMP_UNREACH           = C.NFT_REJECT_ICMP_UNREACH
1507	NFT_REJECT_TCP_RST                = C.NFT_REJECT_TCP_RST
1508	NFT_REJECT_ICMPX_UNREACH          = C.NFT_REJECT_ICMPX_UNREACH
1509	NFT_REJECT_ICMPX_NO_ROUTE         = C.NFT_REJECT_ICMPX_NO_ROUTE
1510	NFT_REJECT_ICMPX_PORT_UNREACH     = C.NFT_REJECT_ICMPX_PORT_UNREACH
1511	NFT_REJECT_ICMPX_HOST_UNREACH     = C.NFT_REJECT_ICMPX_HOST_UNREACH
1512	NFT_REJECT_ICMPX_ADMIN_PROHIBITED = C.NFT_REJECT_ICMPX_ADMIN_PROHIBITED
1513	NFTA_REJECT_UNSPEC                = C.NFTA_REJECT_UNSPEC
1514	NFTA_REJECT_TYPE                  = C.NFTA_REJECT_TYPE
1515	NFTA_REJECT_ICMP_CODE             = C.NFTA_REJECT_ICMP_CODE
1516	NFT_NAT_SNAT                      = C.NFT_NAT_SNAT
1517	NFT_NAT_DNAT                      = C.NFT_NAT_DNAT
1518	NFTA_NAT_UNSPEC                   = C.NFTA_NAT_UNSPEC
1519	NFTA_NAT_TYPE                     = C.NFTA_NAT_TYPE
1520	NFTA_NAT_FAMILY                   = C.NFTA_NAT_FAMILY
1521	NFTA_NAT_REG_ADDR_MIN             = C.NFTA_NAT_REG_ADDR_MIN
1522	NFTA_NAT_REG_ADDR_MAX             = C.NFTA_NAT_REG_ADDR_MAX
1523	NFTA_NAT_REG_PROTO_MIN            = C.NFTA_NAT_REG_PROTO_MIN
1524	NFTA_NAT_REG_PROTO_MAX            = C.NFTA_NAT_REG_PROTO_MAX
1525	NFTA_NAT_FLAGS                    = C.NFTA_NAT_FLAGS
1526	NFTA_MASQ_UNSPEC                  = C.NFTA_MASQ_UNSPEC
1527	NFTA_MASQ_FLAGS                   = C.NFTA_MASQ_FLAGS
1528	NFTA_MASQ_REG_PROTO_MIN           = C.NFTA_MASQ_REG_PROTO_MIN
1529	NFTA_MASQ_REG_PROTO_MAX           = C.NFTA_MASQ_REG_PROTO_MAX
1530	NFTA_REDIR_UNSPEC                 = C.NFTA_REDIR_UNSPEC
1531	NFTA_REDIR_REG_PROTO_MIN          = C.NFTA_REDIR_REG_PROTO_MIN
1532	NFTA_REDIR_REG_PROTO_MAX          = C.NFTA_REDIR_REG_PROTO_MAX
1533	NFTA_REDIR_FLAGS                  = C.NFTA_REDIR_FLAGS
1534	NFTA_DUP_UNSPEC                   = C.NFTA_DUP_UNSPEC
1535	NFTA_DUP_SREG_ADDR                = C.NFTA_DUP_SREG_ADDR
1536	NFTA_DUP_SREG_DEV                 = C.NFTA_DUP_SREG_DEV
1537	NFTA_FWD_UNSPEC                   = C.NFTA_FWD_UNSPEC
1538	NFTA_FWD_SREG_DEV                 = C.NFTA_FWD_SREG_DEV
1539	NFTA_OBJREF_UNSPEC                = C.NFTA_OBJREF_UNSPEC
1540	NFTA_OBJREF_IMM_TYPE              = C.NFTA_OBJREF_IMM_TYPE
1541	NFTA_OBJREF_IMM_NAME              = C.NFTA_OBJREF_IMM_NAME
1542	NFTA_OBJREF_SET_SREG              = C.NFTA_OBJREF_SET_SREG
1543	NFTA_OBJREF_SET_NAME              = C.NFTA_OBJREF_SET_NAME
1544	NFTA_OBJREF_SET_ID                = C.NFTA_OBJREF_SET_ID
1545	NFTA_GEN_UNSPEC                   = C.NFTA_GEN_UNSPEC
1546	NFTA_GEN_ID                       = C.NFTA_GEN_ID
1547	NFTA_GEN_PROC_PID                 = C.NFTA_GEN_PROC_PID
1548	NFTA_GEN_PROC_NAME                = C.NFTA_GEN_PROC_NAME
1549	NFTA_FIB_UNSPEC                   = C.NFTA_FIB_UNSPEC
1550	NFTA_FIB_DREG                     = C.NFTA_FIB_DREG
1551	NFTA_FIB_RESULT                   = C.NFTA_FIB_RESULT
1552	NFTA_FIB_FLAGS                    = C.NFTA_FIB_FLAGS
1553	NFT_FIB_RESULT_UNSPEC             = C.NFT_FIB_RESULT_UNSPEC
1554	NFT_FIB_RESULT_OIF                = C.NFT_FIB_RESULT_OIF
1555	NFT_FIB_RESULT_OIFNAME            = C.NFT_FIB_RESULT_OIFNAME
1556	NFT_FIB_RESULT_ADDRTYPE           = C.NFT_FIB_RESULT_ADDRTYPE
1557	NFTA_FIB_F_SADDR                  = C.NFTA_FIB_F_SADDR
1558	NFTA_FIB_F_DADDR                  = C.NFTA_FIB_F_DADDR
1559	NFTA_FIB_F_MARK                   = C.NFTA_FIB_F_MARK
1560	NFTA_FIB_F_IIF                    = C.NFTA_FIB_F_IIF
1561	NFTA_FIB_F_OIF                    = C.NFTA_FIB_F_OIF
1562	NFTA_FIB_F_PRESENT                = C.NFTA_FIB_F_PRESENT
1563	NFTA_CT_HELPER_UNSPEC             = C.NFTA_CT_HELPER_UNSPEC
1564	NFTA_CT_HELPER_NAME               = C.NFTA_CT_HELPER_NAME
1565	NFTA_CT_HELPER_L3PROTO            = C.NFTA_CT_HELPER_L3PROTO
1566	NFTA_CT_HELPER_L4PROTO            = C.NFTA_CT_HELPER_L4PROTO
1567	NFTA_OBJ_UNSPEC                   = C.NFTA_OBJ_UNSPEC
1568	NFTA_OBJ_TABLE                    = C.NFTA_OBJ_TABLE
1569	NFTA_OBJ_NAME                     = C.NFTA_OBJ_NAME
1570	NFTA_OBJ_TYPE                     = C.NFTA_OBJ_TYPE
1571	NFTA_OBJ_DATA                     = C.NFTA_OBJ_DATA
1572	NFTA_OBJ_USE                      = C.NFTA_OBJ_USE
1573	NFTA_TRACE_UNSPEC                 = C.NFTA_TRACE_UNSPEC
1574	NFTA_TRACE_TABLE                  = C.NFTA_TRACE_TABLE
1575	NFTA_TRACE_CHAIN                  = C.NFTA_TRACE_CHAIN
1576	NFTA_TRACE_RULE_HANDLE            = C.NFTA_TRACE_RULE_HANDLE
1577	NFTA_TRACE_TYPE                   = C.NFTA_TRACE_TYPE
1578	NFTA_TRACE_VERDICT                = C.NFTA_TRACE_VERDICT
1579	NFTA_TRACE_ID                     = C.NFTA_TRACE_ID
1580	NFTA_TRACE_LL_HEADER              = C.NFTA_TRACE_LL_HEADER
1581	NFTA_TRACE_NETWORK_HEADER         = C.NFTA_TRACE_NETWORK_HEADER
1582	NFTA_TRACE_TRANSPORT_HEADER       = C.NFTA_TRACE_TRANSPORT_HEADER
1583	NFTA_TRACE_IIF                    = C.NFTA_TRACE_IIF
1584	NFTA_TRACE_IIFTYPE                = C.NFTA_TRACE_IIFTYPE
1585	NFTA_TRACE_OIF                    = C.NFTA_TRACE_OIF
1586	NFTA_TRACE_OIFTYPE                = C.NFTA_TRACE_OIFTYPE
1587	NFTA_TRACE_MARK                   = C.NFTA_TRACE_MARK
1588	NFTA_TRACE_NFPROTO                = C.NFTA_TRACE_NFPROTO
1589	NFTA_TRACE_POLICY                 = C.NFTA_TRACE_POLICY
1590	NFTA_TRACE_PAD                    = C.NFTA_TRACE_PAD
1591	NFT_TRACETYPE_UNSPEC              = C.NFT_TRACETYPE_UNSPEC
1592	NFT_TRACETYPE_POLICY              = C.NFT_TRACETYPE_POLICY
1593	NFT_TRACETYPE_RETURN              = C.NFT_TRACETYPE_RETURN
1594	NFT_TRACETYPE_RULE                = C.NFT_TRACETYPE_RULE
1595	NFTA_NG_UNSPEC                    = C.NFTA_NG_UNSPEC
1596	NFTA_NG_DREG                      = C.NFTA_NG_DREG
1597	NFTA_NG_MODULUS                   = C.NFTA_NG_MODULUS
1598	NFTA_NG_TYPE                      = C.NFTA_NG_TYPE
1599	NFTA_NG_OFFSET                    = C.NFTA_NG_OFFSET
1600	NFT_NG_INCREMENTAL                = C.NFT_NG_INCREMENTAL
1601	NFT_NG_RANDOM                     = C.NFT_NG_RANDOM
1602)
1603
1604type RTCTime C.struct_rtc_time
1605
1606type RTCWkAlrm C.struct_rtc_wkalrm
1607
1608type RTCPLLInfo C.struct_rtc_pll_info
1609
1610// BLKPG ioctl:
1611
1612type BlkpgIoctlArg C.struct_blkpg_ioctl_arg
1613
1614type BlkpgPartition C.struct_my_blkpg_partition
1615
1616const (
1617	BLKPG                  = C.BLKPG
1618	BLKPG_ADD_PARTITION    = C.BLKPG_ADD_PARTITION
1619	BLKPG_DEL_PARTITION    = C.BLKPG_DEL_PARTITION
1620	BLKPG_RESIZE_PARTITION = C.BLKPG_RESIZE_PARTITION
1621)
1622
1623// netlink namespace
1624// generated from
1625// perl -nlE '/^\s*(NETNSA\w+)/ && say "$1 = C.$1"' /usr/include/linux/net_namespace.h
1626const (
1627	NETNSA_NONE = C.NETNSA_NONE
1628	NETNSA_NSID = C.NETNSA_NSID
1629	NETNSA_PID  = C.NETNSA_PID
1630	NETNSA_FD   = C.NETNSA_FD
1631)
1632
1633// AF_XDP:
1634
1635type XDPRingOffset C.struct_xdp_ring_offset
1636
1637type XDPMmapOffsets C.struct_xdp_mmap_offsets
1638
1639type XDPUmemReg C.struct_xdp_umem_reg
1640
1641type XDPStatistics C.struct_xdp_statistics
1642
1643type XDPDesc C.struct_xdp_desc
1644
1645// NCSI generic netlink:
1646
1647const (
1648	NCSI_CMD_UNSPEC                 = C.NCSI_CMD_UNSPEC
1649	NCSI_CMD_PKG_INFO               = C.NCSI_CMD_PKG_INFO
1650	NCSI_CMD_SET_INTERFACE          = C.NCSI_CMD_SET_INTERFACE
1651	NCSI_CMD_CLEAR_INTERFACE        = C.NCSI_CMD_CLEAR_INTERFACE
1652	NCSI_ATTR_UNSPEC                = C.NCSI_ATTR_UNSPEC
1653	NCSI_ATTR_IFINDEX               = C.NCSI_ATTR_IFINDEX
1654	NCSI_ATTR_PACKAGE_LIST          = C.NCSI_ATTR_PACKAGE_LIST
1655	NCSI_ATTR_PACKAGE_ID            = C.NCSI_ATTR_PACKAGE_ID
1656	NCSI_ATTR_CHANNEL_ID            = C.NCSI_ATTR_CHANNEL_ID
1657	NCSI_PKG_ATTR_UNSPEC            = C.NCSI_PKG_ATTR_UNSPEC
1658	NCSI_PKG_ATTR                   = C.NCSI_PKG_ATTR
1659	NCSI_PKG_ATTR_ID                = C.NCSI_PKG_ATTR_ID
1660	NCSI_PKG_ATTR_FORCED            = C.NCSI_PKG_ATTR_FORCED
1661	NCSI_PKG_ATTR_CHANNEL_LIST      = C.NCSI_PKG_ATTR_CHANNEL_LIST
1662	NCSI_CHANNEL_ATTR_UNSPEC        = C.NCSI_CHANNEL_ATTR_UNSPEC
1663	NCSI_CHANNEL_ATTR               = C.NCSI_CHANNEL_ATTR
1664	NCSI_CHANNEL_ATTR_ID            = C.NCSI_CHANNEL_ATTR_ID
1665	NCSI_CHANNEL_ATTR_VERSION_MAJOR = C.NCSI_CHANNEL_ATTR_VERSION_MAJOR
1666	NCSI_CHANNEL_ATTR_VERSION_MINOR = C.NCSI_CHANNEL_ATTR_VERSION_MINOR
1667	NCSI_CHANNEL_ATTR_VERSION_STR   = C.NCSI_CHANNEL_ATTR_VERSION_STR
1668	NCSI_CHANNEL_ATTR_LINK_STATE    = C.NCSI_CHANNEL_ATTR_LINK_STATE
1669	NCSI_CHANNEL_ATTR_ACTIVE        = C.NCSI_CHANNEL_ATTR_ACTIVE
1670	NCSI_CHANNEL_ATTR_FORCED        = C.NCSI_CHANNEL_ATTR_FORCED
1671	NCSI_CHANNEL_ATTR_VLAN_LIST     = C.NCSI_CHANNEL_ATTR_VLAN_LIST
1672	NCSI_CHANNEL_ATTR_VLAN_ID       = C.NCSI_CHANNEL_ATTR_VLAN_ID
1673)
1674
1675// Timestamping
1676
1677type ScmTimestamping C.struct_scm_timestamping
1678
1679const (
1680	SOF_TIMESTAMPING_TX_HARDWARE  = C.SOF_TIMESTAMPING_TX_HARDWARE
1681	SOF_TIMESTAMPING_TX_SOFTWARE  = C.SOF_TIMESTAMPING_TX_SOFTWARE
1682	SOF_TIMESTAMPING_RX_HARDWARE  = C.SOF_TIMESTAMPING_RX_HARDWARE
1683	SOF_TIMESTAMPING_RX_SOFTWARE  = C.SOF_TIMESTAMPING_RX_SOFTWARE
1684	SOF_TIMESTAMPING_SOFTWARE     = C.SOF_TIMESTAMPING_SOFTWARE
1685	SOF_TIMESTAMPING_SYS_HARDWARE = C.SOF_TIMESTAMPING_SYS_HARDWARE
1686	SOF_TIMESTAMPING_RAW_HARDWARE = C.SOF_TIMESTAMPING_RAW_HARDWARE
1687	SOF_TIMESTAMPING_OPT_ID       = C.SOF_TIMESTAMPING_OPT_ID
1688	SOF_TIMESTAMPING_TX_SCHED     = C.SOF_TIMESTAMPING_TX_SCHED
1689	SOF_TIMESTAMPING_TX_ACK       = C.SOF_TIMESTAMPING_TX_ACK
1690	SOF_TIMESTAMPING_OPT_CMSG     = C.SOF_TIMESTAMPING_OPT_CMSG
1691	SOF_TIMESTAMPING_OPT_TSONLY   = C.SOF_TIMESTAMPING_OPT_TSONLY
1692	SOF_TIMESTAMPING_OPT_STATS    = C.SOF_TIMESTAMPING_OPT_STATS
1693	SOF_TIMESTAMPING_OPT_PKTINFO  = C.SOF_TIMESTAMPING_OPT_PKTINFO
1694	SOF_TIMESTAMPING_OPT_TX_SWHW  = C.SOF_TIMESTAMPING_OPT_TX_SWHW
1695
1696	SOF_TIMESTAMPING_LAST = C.SOF_TIMESTAMPING_LAST
1697	SOF_TIMESTAMPING_MASK = C.SOF_TIMESTAMPING_MASK
1698
1699	SCM_TSTAMP_SND   = C.SCM_TSTAMP_SND
1700	SCM_TSTAMP_SCHED = C.SCM_TSTAMP_SCHED
1701	SCM_TSTAMP_ACK   = C.SCM_TSTAMP_ACK
1702)
1703
1704// Socket error queue
1705
1706type SockExtendedErr C.struct_sock_extended_err
1707
1708// Fanotify
1709
1710type FanotifyEventMetadata C.struct_fanotify_event_metadata
1711
1712type FanotifyResponse C.struct_fanotify_response
1713