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 <poll.h>
24#include <sched.h>
25#include <signal.h>
26#include <stdio.h>
27#include <time.h>
28#include <unistd.h>
29#include <utime.h>
30
31#include <netinet/in.h>
32#include <netinet/tcp.h>
33
34#include <sys/epoll.h>
35#include <sys/inotify.h>
36#include <sys/ioctl.h>
37#include <sys/mman.h>
38#include <sys/mount.h>
39#include <sys/param.h>
40#include <sys/ptrace.h>
41#include <sys/resource.h>
42#include <sys/select.h>
43#include <sys/signal.h>
44#include <sys/signalfd.h>
45#include <sys/statfs.h>
46#include <sys/statvfs.h>
47#include <sys/sysinfo.h>
48#include <sys/time.h>
49#include <sys/timerfd.h>
50#include <sys/times.h>
51#include <sys/timex.h>
52#include <sys/un.h>
53#include <sys/user.h>
54#include <sys/utsname.h>
55#include <sys/wait.h>
56
57#if defined(__sparc__)
58// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the
59// definition in glibc. Duplicate the kernel version here.
60#if defined(__arch64__)
61typedef unsigned int tcflag_t;
62#else
63typedef unsigned long tcflag_t;
64#endif
65
66struct termios2 {
67	tcflag_t c_iflag;
68	tcflag_t c_oflag;
69	tcflag_t c_cflag;
70	tcflag_t c_lflag;
71	unsigned char c_line;
72	unsigned char c_cc[19];
73	unsigned int c_ispeed;
74	unsigned int c_ospeed;
75};
76#else
77#include <asm/termbits.h>
78#endif
79#include <asm/ptrace.h>
80
81#include <linux/blkpg.h>
82#include <linux/bpf.h>
83#include <linux/can.h>
84#include <linux/can/raw.h>
85#include <linux/capability.h>
86#include <linux/cgroupstats.h>
87#include <linux/cryptouser.h>
88#include <linux/devlink.h>
89#include <linux/dm-ioctl.h>
90#include <linux/errqueue.h>
91#include <linux/fanotify.h>
92#include <linux/filter.h>
93#include <linux/fs.h>
94#include <linux/fsverity.h>
95#include <linux/genetlink.h>
96#include <linux/hdreg.h>
97#include <linux/icmpv6.h>
98#include <linux/if_alg.h>
99#include <linux/if_bridge.h>
100#include <linux/if_packet.h>
101#include <linux/if_pppox.h>
102#include <linux/if_xdp.h>
103#include <linux/keyctl.h>
104#include <linux/loop.h>
105#include <linux/ncsi.h>
106#include <linux/net_namespace.h>
107#include <linux/net_tstamp.h>
108#include <linux/netfilter/nf_tables.h>
109#include <linux/netfilter/nf_tables_compat.h>
110#include <linux/netfilter/nfnetlink.h>
111#include <linux/netfilter.h>
112#include <linux/netlink.h>
113#include <linux/nexthop.h>
114#include <linux/openat2.h>
115#include <linux/perf_event.h>
116#include <linux/random.h>
117#include <linux/rtc.h>
118#include <linux/rtnetlink.h>
119#include <linux/socket.h>
120#include <linux/stat.h>
121#include <linux/taskstats.h>
122#include <linux/tipc.h>
123#include <linux/watchdog.h>
124#include <linux/vm_sockets.h>
125
126// abi/abi.h generated by mkall.go.
127#include "abi/abi.h"
128
129// On mips64, the glibc stat and kernel stat do not agree
130#if (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI64)
131
132// Use the stat defined by the kernel with a few modifications. These are:
133//	* The time fields (like st_atime and st_atimensec) use the timespec
134//	  struct (like st_atim) for consistency with the glibc fields.
135//	* The padding fields get different names to not break compatibility.
136//	* st_blocks is signed, again for compatibility.
137struct stat {
138	unsigned int		st_dev;
139	unsigned int		st_pad1[3]; // Reserved for st_dev expansion
140
141	unsigned long		st_ino;
142
143	mode_t			st_mode;
144	__u32			st_nlink;
145
146	uid_t			st_uid;
147	gid_t			st_gid;
148
149	unsigned int		st_rdev;
150	unsigned int		st_pad2[3]; // Reserved for st_rdev expansion
151
152	off_t			st_size;
153
154	// These are declared as separate fields in the kernel. Here we use
155	// the timespec struct for consistency with the other stat structs.
156	struct timespec		st_atim;
157	struct timespec		st_mtim;
158	struct timespec		st_ctim;
159
160	unsigned int		st_blksize;
161	unsigned int		st_pad4;
162
163	long			st_blocks;
164};
165
166// These are needed because we do not include fcntl.h or sys/types.h
167#include <linux/fcntl.h>
168#include <linux/fadvise.h>
169
170#else
171
172// Use the stat defined by glibc
173#include <fcntl.h>
174#include <sys/types.h>
175
176#endif
177
178// These are defined in linux/fcntl.h, but including it globally causes
179// conflicts with fcntl.h
180#ifndef AT_STATX_SYNC_TYPE
181# define AT_STATX_SYNC_TYPE	0x6000	// Type of synchronisation required from statx()
182#endif
183#ifndef AT_STATX_SYNC_AS_STAT
184# define AT_STATX_SYNC_AS_STAT	0x0000	// - Do whatever stat() does
185#endif
186#ifndef AT_STATX_FORCE_SYNC
187# define AT_STATX_FORCE_SYNC	0x2000	// - Force the attributes to be sync'd with the server
188#endif
189#ifndef AT_STATX_DONT_SYNC
190# define AT_STATX_DONT_SYNC	0x4000	// - Don't sync attributes with the server
191#endif
192
193#ifndef AT_EACCESS
194# define AT_EACCESS		0x200	// Test access permitted for effective IDs, not real IDs.
195#endif
196
197#ifdef TCSETS2
198// On systems that have "struct termios2" use this as type Termios.
199typedef struct termios2 termios_t;
200#else
201typedef struct termios termios_t;
202#endif
203
204enum {
205	sizeofPtr = sizeof(void*),
206};
207
208union sockaddr_all {
209	struct sockaddr s1;	// this one gets used for fields
210	struct sockaddr_in s2;	// these pad it out
211	struct sockaddr_in6 s3;
212	struct sockaddr_un s4;
213	struct sockaddr_ll s5;
214	struct sockaddr_nl s6;
215	struct sockaddr_pppox s7;
216	struct sockaddr_l2tpip s8;
217	struct sockaddr_l2tpip6 s9;
218};
219
220struct sockaddr_any {
221	struct sockaddr addr;
222	char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
223};
224
225// copied from /usr/include/bluetooth/hci.h
226struct sockaddr_hci {
227        sa_family_t     hci_family;
228        unsigned short  hci_dev;
229        unsigned short  hci_channel;
230};
231
232// copied from /usr/include/bluetooth/bluetooth.h
233#define BDADDR_BREDR           0x00
234#define BDADDR_LE_PUBLIC       0x01
235#define BDADDR_LE_RANDOM       0x02
236
237// copied from /usr/include/bluetooth/l2cap.h
238struct sockaddr_l2 {
239	sa_family_t	l2_family;
240	unsigned short	l2_psm;
241	uint8_t		l2_bdaddr[6];
242	unsigned short	l2_cid;
243	uint8_t		l2_bdaddr_type;
244};
245
246// copied from /usr/include/net/bluetooth/rfcomm.h
247struct sockaddr_rc {
248	sa_family_t rc_family;
249	uint8_t     rc_bdaddr[6];
250	uint8_t     rc_channel;
251};
252
253// copied from /usr/include/linux/un.h
254struct my_sockaddr_un {
255	sa_family_t sun_family;
256#if defined(__ARM_EABI__) || defined(__powerpc64__) || defined(__riscv)
257	// on some platforms char is unsigned by default
258	signed char sun_path[108];
259#else
260	char sun_path[108];
261#endif
262};
263
264// copied from /usr/include/netiucv/iucv.h modified with explicit signed chars.
265struct sockaddr_iucv {
266	sa_family_t siucv_family;
267	unsigned short siucv_port;
268	unsigned int siucv_addr;
269	signed char siucv_nodeid[8];
270	signed char siucv_user_id[8];
271	signed char siucv_name[8];
272};
273
274#ifdef __ARM_EABI__
275typedef struct user_regs PtraceRegs;
276#elif defined(__aarch64__)
277typedef struct user_pt_regs PtraceRegs;
278#elif defined(__mips__) || defined(__powerpc64__)
279typedef struct pt_regs PtraceRegs;
280#elif defined(__s390x__)
281typedef struct _user_regs_struct PtraceRegs;
282#elif defined(__sparc__)
283#include <asm/ptrace.h>
284typedef struct pt_regs PtraceRegs;
285#else
286typedef struct user_regs_struct PtraceRegs;
287#endif
288
289#if defined(__s390x__)
290typedef struct _user_psw_struct ptracePsw;
291typedef struct _user_fpregs_struct ptraceFpregs;
292typedef struct _user_per_struct ptracePer;
293#else
294typedef struct {} ptracePsw;
295typedef struct {} ptraceFpregs;
296typedef struct {} ptracePer;
297#endif
298
299// The real epoll_event is a union, and godefs doesn't handle it well.
300struct my_epoll_event {
301	uint32_t events;
302#if defined(__ARM_EABI__) || defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABIO32)
303	// padding is not specified in linux/eventpoll.h but added to conform to the
304	// alignment requirements of EABI
305	int32_t padFd;
306#elif defined(__powerpc64__) || defined(__s390x__) || defined(__sparc__) || defined(__riscv) \
307		|| (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI64)
308	int32_t _padFd;
309#endif
310	int32_t fd;
311	int32_t pad;
312};
313
314// Copied from <linux/perf_event.h> with the following modifications:
315// 1) bit field after read_format redeclared as '__u64 bits' to make it
316//    accessible from Go
317// 2) collapsed the unions, to avoid confusing godoc for the generated output
318//    (e.g. having to use BpAddr as an extension of Config)
319struct perf_event_attr_go {
320	__u32 type;
321
322	__u32 size;
323	__u64 config;
324
325	// union {
326	//   __u64 sample_period;
327	//   __u64 sample_freq;
328	// };
329	__u64 sample;
330
331	__u64 sample_type;
332	__u64 read_format;
333
334	// Replaces the bit field. Flags are defined as constants.
335	__u64 bits;
336
337	// union {
338	//   __u32 wakeup_events;
339	//   __u32 wakeup_watermark;
340	// };
341	__u32 wakeup;
342
343	__u32 bp_type;
344
345	// union {
346	//   __u64 bp_addr;
347	//   __u64 config1;
348	// };
349	__u64 ext1;
350
351	// union {
352	//   __u64 bp_len;
353	//   __u64 config2;
354	// };
355	__u64 ext2;
356
357	__u64 branch_sample_type;
358
359	__u64 sample_regs_user;
360
361	__u32 sample_stack_user;
362
363	__s32 clockid;
364	__u64 sample_regs_intr;
365	__u32 aux_watermark;
366	__u16 sample_max_stack;
367	__u16 __reserved_2;
368};
369
370// ustat is deprecated and glibc 2.28 removed ustat.h. Provide the type here for
371// backwards compatibility. Copied from /usr/include/bits/ustat.h
372struct ustat {
373	__daddr_t f_tfree;
374	__ino_t f_tinode;
375	char f_fname[6];
376	char f_fpack[6];
377};
378
379// my_blkpg_partition is blkpg_partition with unsigned devname & volname.
380struct my_blkpg_partition {
381	long long start;
382	long long length;
383	int pno;
384	unsigned char devname[BLKPG_DEVNAMELTH];
385	unsigned char volname[BLKPG_VOLNAMELTH];
386};
387
388// tipc_service_name is a copied and slightly modified form of the "name"
389// variant in sockaddr_tipc's union in tipc.h, so it can be exported as part of
390// SockaddrTIPC's API.
391struct tipc_service_name {
392	// From tipc_service_addr.
393	__u32 type;
394	__u32 instance;
395	// From the union.
396	__u32 domain;
397};
398*/
399import "C"
400
401// Machine characteristics
402
403const (
404	SizeofPtr      = C.sizeofPtr
405	SizeofShort    = C.sizeof_short
406	SizeofInt      = C.sizeof_int
407	SizeofLong     = C.sizeof_long
408	SizeofLongLong = C.sizeof_longlong
409	PathMax        = C.PATH_MAX
410)
411
412// Basic types
413
414type (
415	_C_short     C.short
416	_C_int       C.int
417	_C_long      C.long
418	_C_long_long C.longlong
419)
420
421// Time
422
423type Timespec C.struct_timespec
424
425type Timeval C.struct_timeval
426
427type Timex C.struct_timex
428
429type ItimerSpec C.struct_itimerspec
430
431const (
432	TIME_OK    = C.TIME_OK
433	TIME_INS   = C.TIME_INS
434	TIME_DEL   = C.TIME_DEL
435	TIME_OOP   = C.TIME_OOP
436	TIME_WAIT  = C.TIME_WAIT
437	TIME_ERROR = C.TIME_ERROR
438	TIME_BAD   = C.TIME_BAD
439)
440
441type Time_t C.time_t
442
443type Tms C.struct_tms
444
445type Utimbuf C.struct_utimbuf
446
447// Processes
448
449type Rusage C.struct_rusage
450
451type Rlimit C.struct_rlimit
452
453type _Gid_t C.gid_t
454
455// Files
456
457type Stat_t C.struct_stat
458
459type StatxTimestamp C.struct_statx_timestamp
460
461type Statx_t C.struct_statx
462
463type Dirent C.struct_dirent
464
465type Fsid C.fsid_t
466
467type Flock_t C.struct_flock
468
469type FileCloneRange C.struct_file_clone_range
470
471type FileDedupeRange C.struct_file_dedupe_range
472
473// Filesystem Encryption
474
475type FscryptPolicy C.struct_fscrypt_policy
476
477type FscryptKey C.struct_fscrypt_key
478
479type FscryptPolicyV1 C.struct_fscrypt_policy_v1
480
481type FscryptPolicyV2 C.struct_fscrypt_policy_v2
482
483type FscryptGetPolicyExArg C.struct_fscrypt_get_policy_ex_arg
484
485type FscryptKeySpecifier C.struct_fscrypt_key_specifier
486
487type FscryptAddKeyArg C.struct_fscrypt_add_key_arg
488
489type FscryptRemoveKeyArg C.struct_fscrypt_remove_key_arg
490
491type FscryptGetKeyStatusArg C.struct_fscrypt_get_key_status_arg
492
493// Device Mapper
494
495type DmIoctl C.struct_dm_ioctl
496
497type DmTargetSpec C.struct_dm_target_spec
498
499type DmTargetDeps C.struct_dm_target_deps
500
501type DmNameList C.struct_dm_name_list
502
503type DmTargetVersions C.struct_dm_target_versions
504
505type DmTargetMsg C.struct_dm_target_msg
506
507const (
508	SizeofDmIoctl      = C.sizeof_struct_dm_ioctl
509	SizeofDmTargetSpec = C.sizeof_struct_dm_target_spec
510)
511
512// Structure for Keyctl
513
514type KeyctlDHParams C.struct_keyctl_dh_params
515
516// Advice to Fadvise
517
518const (
519	FADV_NORMAL     = C.POSIX_FADV_NORMAL
520	FADV_RANDOM     = C.POSIX_FADV_RANDOM
521	FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL
522	FADV_WILLNEED   = C.POSIX_FADV_WILLNEED
523	FADV_DONTNEED   = C.POSIX_FADV_DONTNEED
524	FADV_NOREUSE    = C.POSIX_FADV_NOREUSE
525)
526
527// Sockets
528
529type RawSockaddrInet4 C.struct_sockaddr_in
530
531type RawSockaddrInet6 C.struct_sockaddr_in6
532
533type RawSockaddrUnix C.struct_my_sockaddr_un
534
535type RawSockaddrLinklayer C.struct_sockaddr_ll
536
537type RawSockaddrNetlink C.struct_sockaddr_nl
538
539type RawSockaddrHCI C.struct_sockaddr_hci
540
541type RawSockaddrL2 C.struct_sockaddr_l2
542
543type RawSockaddrRFCOMM C.struct_sockaddr_rc
544
545type RawSockaddrCAN C.struct_sockaddr_can
546
547type RawSockaddrALG C.struct_sockaddr_alg
548
549type RawSockaddrVM C.struct_sockaddr_vm
550
551type RawSockaddrXDP C.struct_sockaddr_xdp
552
553type RawSockaddrPPPoX [C.sizeof_struct_sockaddr_pppox]byte
554
555type RawSockaddrTIPC C.struct_sockaddr_tipc
556
557type RawSockaddrL2TPIP C.struct_sockaddr_l2tpip
558
559type RawSockaddrL2TPIP6 C.struct_sockaddr_l2tpip6
560
561type RawSockaddrIUCV C.struct_sockaddr_iucv
562
563type RawSockaddr C.struct_sockaddr
564
565type RawSockaddrAny C.struct_sockaddr_any
566
567type _Socklen C.socklen_t
568
569type Linger C.struct_linger
570
571type Iovec C.struct_iovec
572
573type IPMreq C.struct_ip_mreq
574
575type IPMreqn C.struct_ip_mreqn
576
577type IPv6Mreq C.struct_ipv6_mreq
578
579type PacketMreq C.struct_packet_mreq
580
581type Msghdr C.struct_msghdr
582
583type Cmsghdr C.struct_cmsghdr
584
585type Inet4Pktinfo C.struct_in_pktinfo
586
587type Inet6Pktinfo C.struct_in6_pktinfo
588
589type IPv6MTUInfo C.struct_ip6_mtuinfo
590
591type ICMPv6Filter C.struct_icmp6_filter
592
593type Ucred C.struct_ucred
594
595type TCPInfo C.struct_tcp_info
596
597type CanFilter C.struct_can_filter
598
599const (
600	SizeofSockaddrInet4     = C.sizeof_struct_sockaddr_in
601	SizeofSockaddrInet6     = C.sizeof_struct_sockaddr_in6
602	SizeofSockaddrAny       = C.sizeof_struct_sockaddr_any
603	SizeofSockaddrUnix      = C.sizeof_struct_sockaddr_un
604	SizeofSockaddrLinklayer = C.sizeof_struct_sockaddr_ll
605	SizeofSockaddrNetlink   = C.sizeof_struct_sockaddr_nl
606	SizeofSockaddrHCI       = C.sizeof_struct_sockaddr_hci
607	SizeofSockaddrL2        = C.sizeof_struct_sockaddr_l2
608	SizeofSockaddrRFCOMM    = C.sizeof_struct_sockaddr_rc
609	SizeofSockaddrCAN       = C.sizeof_struct_sockaddr_can
610	SizeofSockaddrALG       = C.sizeof_struct_sockaddr_alg
611	SizeofSockaddrVM        = C.sizeof_struct_sockaddr_vm
612	SizeofSockaddrXDP       = C.sizeof_struct_sockaddr_xdp
613	SizeofSockaddrPPPoX     = C.sizeof_struct_sockaddr_pppox
614	SizeofSockaddrTIPC      = C.sizeof_struct_sockaddr_tipc
615	SizeofSockaddrL2TPIP    = C.sizeof_struct_sockaddr_l2tpip
616	SizeofSockaddrL2TPIP6   = C.sizeof_struct_sockaddr_l2tpip6
617	SizeofSockaddrIUCV      = C.sizeof_struct_sockaddr_iucv
618	SizeofLinger            = C.sizeof_struct_linger
619	SizeofIovec             = C.sizeof_struct_iovec
620	SizeofIPMreq            = C.sizeof_struct_ip_mreq
621	SizeofIPMreqn           = C.sizeof_struct_ip_mreqn
622	SizeofIPv6Mreq          = C.sizeof_struct_ipv6_mreq
623	SizeofPacketMreq        = C.sizeof_struct_packet_mreq
624	SizeofMsghdr            = C.sizeof_struct_msghdr
625	SizeofCmsghdr           = C.sizeof_struct_cmsghdr
626	SizeofInet4Pktinfo      = C.sizeof_struct_in_pktinfo
627	SizeofInet6Pktinfo      = C.sizeof_struct_in6_pktinfo
628	SizeofIPv6MTUInfo       = C.sizeof_struct_ip6_mtuinfo
629	SizeofICMPv6Filter      = C.sizeof_struct_icmp6_filter
630	SizeofUcred             = C.sizeof_struct_ucred
631	SizeofTCPInfo           = C.sizeof_struct_tcp_info
632	SizeofCanFilter         = C.sizeof_struct_can_filter
633)
634
635// Netlink routing and interface messages
636
637const (
638	NDA_UNSPEC              = C.NDA_UNSPEC
639	NDA_DST                 = C.NDA_DST
640	NDA_LLADDR              = C.NDA_LLADDR
641	NDA_CACHEINFO           = C.NDA_CACHEINFO
642	NDA_PROBES              = C.NDA_PROBES
643	NDA_VLAN                = C.NDA_VLAN
644	NDA_PORT                = C.NDA_PORT
645	NDA_VNI                 = C.NDA_VNI
646	NDA_IFINDEX             = C.NDA_IFINDEX
647	NDA_MASTER              = C.NDA_MASTER
648	NDA_LINK_NETNSID        = C.NDA_LINK_NETNSID
649	NDA_SRC_VNI             = C.NDA_SRC_VNI
650	NTF_USE                 = C.NTF_USE
651	NTF_SELF                = C.NTF_SELF
652	NTF_MASTER              = C.NTF_MASTER
653	NTF_PROXY               = C.NTF_PROXY
654	NTF_EXT_LEARNED         = C.NTF_EXT_LEARNED
655	NTF_OFFLOADED           = C.NTF_OFFLOADED
656	NTF_ROUTER              = C.NTF_ROUTER
657	NUD_INCOMPLETE          = C.NUD_INCOMPLETE
658	NUD_REACHABLE           = C.NUD_REACHABLE
659	NUD_STALE               = C.NUD_STALE
660	NUD_DELAY               = C.NUD_DELAY
661	NUD_PROBE               = C.NUD_PROBE
662	NUD_FAILED              = C.NUD_FAILED
663	NUD_NOARP               = C.NUD_NOARP
664	NUD_PERMANENT           = C.NUD_PERMANENT
665	NUD_NONE                = C.NUD_NONE
666	IFA_UNSPEC              = C.IFA_UNSPEC
667	IFA_ADDRESS             = C.IFA_ADDRESS
668	IFA_LOCAL               = C.IFA_LOCAL
669	IFA_LABEL               = C.IFA_LABEL
670	IFA_BROADCAST           = C.IFA_BROADCAST
671	IFA_ANYCAST             = C.IFA_ANYCAST
672	IFA_CACHEINFO           = C.IFA_CACHEINFO
673	IFA_MULTICAST           = C.IFA_MULTICAST
674	IFA_FLAGS               = C.IFA_FLAGS
675	IFA_RT_PRIORITY         = C.IFA_RT_PRIORITY
676	IFA_TARGET_NETNSID      = C.IFA_TARGET_NETNSID
677	IFLA_UNSPEC             = C.IFLA_UNSPEC
678	IFLA_ADDRESS            = C.IFLA_ADDRESS
679	IFLA_BROADCAST          = C.IFLA_BROADCAST
680	IFLA_IFNAME             = C.IFLA_IFNAME
681	IFLA_MTU                = C.IFLA_MTU
682	IFLA_LINK               = C.IFLA_LINK
683	IFLA_QDISC              = C.IFLA_QDISC
684	IFLA_STATS              = C.IFLA_STATS
685	IFLA_COST               = C.IFLA_COST
686	IFLA_PRIORITY           = C.IFLA_PRIORITY
687	IFLA_MASTER             = C.IFLA_MASTER
688	IFLA_WIRELESS           = C.IFLA_WIRELESS
689	IFLA_PROTINFO           = C.IFLA_PROTINFO
690	IFLA_TXQLEN             = C.IFLA_TXQLEN
691	IFLA_MAP                = C.IFLA_MAP
692	IFLA_WEIGHT             = C.IFLA_WEIGHT
693	IFLA_OPERSTATE          = C.IFLA_OPERSTATE
694	IFLA_LINKMODE           = C.IFLA_LINKMODE
695	IFLA_LINKINFO           = C.IFLA_LINKINFO
696	IFLA_NET_NS_PID         = C.IFLA_NET_NS_PID
697	IFLA_IFALIAS            = C.IFLA_IFALIAS
698	IFLA_NUM_VF             = C.IFLA_NUM_VF
699	IFLA_VFINFO_LIST        = C.IFLA_VFINFO_LIST
700	IFLA_STATS64            = C.IFLA_STATS64
701	IFLA_VF_PORTS           = C.IFLA_VF_PORTS
702	IFLA_PORT_SELF          = C.IFLA_PORT_SELF
703	IFLA_AF_SPEC            = C.IFLA_AF_SPEC
704	IFLA_GROUP              = C.IFLA_GROUP
705	IFLA_NET_NS_FD          = C.IFLA_NET_NS_FD
706	IFLA_EXT_MASK           = C.IFLA_EXT_MASK
707	IFLA_PROMISCUITY        = C.IFLA_PROMISCUITY
708	IFLA_NUM_TX_QUEUES      = C.IFLA_NUM_TX_QUEUES
709	IFLA_NUM_RX_QUEUES      = C.IFLA_NUM_RX_QUEUES
710	IFLA_CARRIER            = C.IFLA_CARRIER
711	IFLA_PHYS_PORT_ID       = C.IFLA_PHYS_PORT_ID
712	IFLA_CARRIER_CHANGES    = C.IFLA_CARRIER_CHANGES
713	IFLA_PHYS_SWITCH_ID     = C.IFLA_PHYS_SWITCH_ID
714	IFLA_LINK_NETNSID       = C.IFLA_LINK_NETNSID
715	IFLA_PHYS_PORT_NAME     = C.IFLA_PHYS_PORT_NAME
716	IFLA_PROTO_DOWN         = C.IFLA_PROTO_DOWN
717	IFLA_GSO_MAX_SEGS       = C.IFLA_GSO_MAX_SEGS
718	IFLA_GSO_MAX_SIZE       = C.IFLA_GSO_MAX_SIZE
719	IFLA_PAD                = C.IFLA_PAD
720	IFLA_XDP                = C.IFLA_XDP
721	IFLA_EVENT              = C.IFLA_EVENT
722	IFLA_NEW_NETNSID        = C.IFLA_NEW_NETNSID
723	IFLA_IF_NETNSID         = C.IFLA_IF_NETNSID
724	IFLA_TARGET_NETNSID     = C.IFLA_TARGET_NETNSID
725	IFLA_CARRIER_UP_COUNT   = C.IFLA_CARRIER_UP_COUNT
726	IFLA_CARRIER_DOWN_COUNT = C.IFLA_CARRIER_DOWN_COUNT
727	IFLA_NEW_IFINDEX        = C.IFLA_NEW_IFINDEX
728	IFLA_MIN_MTU            = C.IFLA_MIN_MTU
729	IFLA_MAX_MTU            = C.IFLA_MAX_MTU
730	IFLA_PROP_LIST          = C.IFLA_PROP_LIST
731	IFLA_ALT_IFNAME         = C.IFLA_ALT_IFNAME
732	IFLA_PERM_ADDRESS       = C.IFLA_PERM_ADDRESS
733	IFLA_PROTO_DOWN_REASON  = C.IFLA_PROTO_DOWN_REASON
734	IFLA_MAX                = C.IFLA_MAX
735	IFLA_INFO_KIND          = C.IFLA_INFO_KIND
736	IFLA_INFO_DATA          = C.IFLA_INFO_DATA
737	IFLA_INFO_XSTATS        = C.IFLA_INFO_XSTATS
738	IFLA_INFO_SLAVE_KIND    = C.IFLA_INFO_SLAVE_KIND
739	IFLA_INFO_SLAVE_DATA    = C.IFLA_INFO_SLAVE_DATA
740	RT_SCOPE_UNIVERSE       = C.RT_SCOPE_UNIVERSE
741	RT_SCOPE_SITE           = C.RT_SCOPE_SITE
742	RT_SCOPE_LINK           = C.RT_SCOPE_LINK
743	RT_SCOPE_HOST           = C.RT_SCOPE_HOST
744	RT_SCOPE_NOWHERE        = C.RT_SCOPE_NOWHERE
745	RT_TABLE_UNSPEC         = C.RT_TABLE_UNSPEC
746	RT_TABLE_COMPAT         = C.RT_TABLE_COMPAT
747	RT_TABLE_DEFAULT        = C.RT_TABLE_DEFAULT
748	RT_TABLE_MAIN           = C.RT_TABLE_MAIN
749	RT_TABLE_LOCAL          = C.RT_TABLE_LOCAL
750	RT_TABLE_MAX            = C.RT_TABLE_MAX
751	RTA_UNSPEC              = C.RTA_UNSPEC
752	RTA_DST                 = C.RTA_DST
753	RTA_SRC                 = C.RTA_SRC
754	RTA_IIF                 = C.RTA_IIF
755	RTA_OIF                 = C.RTA_OIF
756	RTA_GATEWAY             = C.RTA_GATEWAY
757	RTA_PRIORITY            = C.RTA_PRIORITY
758	RTA_PREFSRC             = C.RTA_PREFSRC
759	RTA_METRICS             = C.RTA_METRICS
760	RTA_MULTIPATH           = C.RTA_MULTIPATH
761	RTA_FLOW                = C.RTA_FLOW
762	RTA_CACHEINFO           = C.RTA_CACHEINFO
763	RTA_TABLE               = C.RTA_TABLE
764	RTA_MARK                = C.RTA_MARK
765	RTA_MFC_STATS           = C.RTA_MFC_STATS
766	RTA_VIA                 = C.RTA_VIA
767	RTA_NEWDST              = C.RTA_NEWDST
768	RTA_PREF                = C.RTA_PREF
769	RTA_ENCAP_TYPE          = C.RTA_ENCAP_TYPE
770	RTA_ENCAP               = C.RTA_ENCAP
771	RTA_EXPIRES             = C.RTA_EXPIRES
772	RTA_PAD                 = C.RTA_PAD
773	RTA_UID                 = C.RTA_UID
774	RTA_TTL_PROPAGATE       = C.RTA_TTL_PROPAGATE
775	RTA_IP_PROTO            = C.RTA_IP_PROTO
776	RTA_SPORT               = C.RTA_SPORT
777	RTA_DPORT               = C.RTA_DPORT
778	RTN_UNSPEC              = C.RTN_UNSPEC
779	RTN_UNICAST             = C.RTN_UNICAST
780	RTN_LOCAL               = C.RTN_LOCAL
781	RTN_BROADCAST           = C.RTN_BROADCAST
782	RTN_ANYCAST             = C.RTN_ANYCAST
783	RTN_MULTICAST           = C.RTN_MULTICAST
784	RTN_BLACKHOLE           = C.RTN_BLACKHOLE
785	RTN_UNREACHABLE         = C.RTN_UNREACHABLE
786	RTN_PROHIBIT            = C.RTN_PROHIBIT
787	RTN_THROW               = C.RTN_THROW
788	RTN_NAT                 = C.RTN_NAT
789	RTN_XRESOLVE            = C.RTN_XRESOLVE
790	SizeofNlMsghdr          = C.sizeof_struct_nlmsghdr
791	SizeofNlMsgerr          = C.sizeof_struct_nlmsgerr
792	SizeofRtGenmsg          = C.sizeof_struct_rtgenmsg
793	SizeofNlAttr            = C.sizeof_struct_nlattr
794	SizeofRtAttr            = C.sizeof_struct_rtattr
795	SizeofIfInfomsg         = C.sizeof_struct_ifinfomsg
796	SizeofIfAddrmsg         = C.sizeof_struct_ifaddrmsg
797	SizeofIfaCacheinfo      = C.sizeof_struct_ifa_cacheinfo
798	SizeofRtMsg             = C.sizeof_struct_rtmsg
799	SizeofRtNexthop         = C.sizeof_struct_rtnexthop
800	SizeofNdUseroptmsg      = C.sizeof_struct_nduseroptmsg
801	SizeofNdMsg             = C.sizeof_struct_ndmsg
802)
803
804type NlMsghdr C.struct_nlmsghdr
805
806type NlMsgerr C.struct_nlmsgerr
807
808type RtGenmsg C.struct_rtgenmsg
809
810type NlAttr C.struct_nlattr
811
812type RtAttr C.struct_rtattr
813
814type IfInfomsg C.struct_ifinfomsg
815
816type IfAddrmsg C.struct_ifaddrmsg
817
818type IfaCacheinfo C.struct_ifa_cacheinfo
819
820type RtMsg C.struct_rtmsg
821
822type RtNexthop C.struct_rtnexthop
823
824type NdUseroptmsg C.struct_nduseroptmsg
825
826type NdMsg C.struct_ndmsg
827
828// Linux socket filter
829
830const (
831	SizeofSockFilter = C.sizeof_struct_sock_filter
832	SizeofSockFprog  = C.sizeof_struct_sock_fprog
833)
834
835type SockFilter C.struct_sock_filter
836
837type SockFprog C.struct_sock_fprog
838
839// Inotify
840
841type InotifyEvent C.struct_inotify_event
842
843const SizeofInotifyEvent = C.sizeof_struct_inotify_event
844
845// Ptrace
846
847// Register structures
848type PtraceRegs C.PtraceRegs
849
850// Structures contained in PtraceRegs on s390x (exported by mkpost.go)
851type PtracePsw C.ptracePsw
852
853type PtraceFpregs C.ptraceFpregs
854
855type PtracePer C.ptracePer
856
857// Misc
858
859type FdSet C.fd_set
860
861type Sysinfo_t C.struct_sysinfo
862
863const SI_LOAD_SHIFT = C.SI_LOAD_SHIFT
864
865type Utsname C.struct_utsname
866
867type Ustat_t C.struct_ustat
868
869type EpollEvent C.struct_my_epoll_event
870
871const (
872	AT_EMPTY_PATH   = C.AT_EMPTY_PATH
873	AT_FDCWD        = C.AT_FDCWD
874	AT_NO_AUTOMOUNT = C.AT_NO_AUTOMOUNT
875	AT_REMOVEDIR    = C.AT_REMOVEDIR
876
877	AT_STATX_SYNC_AS_STAT = C.AT_STATX_SYNC_AS_STAT
878	AT_STATX_FORCE_SYNC   = C.AT_STATX_FORCE_SYNC
879	AT_STATX_DONT_SYNC    = C.AT_STATX_DONT_SYNC
880
881	AT_SYMLINK_FOLLOW   = C.AT_SYMLINK_FOLLOW
882	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
883
884	AT_EACCESS = C.AT_EACCESS
885)
886
887type OpenHow C.struct_open_how
888
889const SizeofOpenHow = C.sizeof_struct_open_how
890
891const (
892	RESOLVE_BENEATH       = C.RESOLVE_BENEATH
893	RESOLVE_IN_ROOT       = C.RESOLVE_IN_ROOT
894	RESOLVE_NO_MAGICLINKS = C.RESOLVE_NO_MAGICLINKS
895	RESOLVE_NO_SYMLINKS   = C.RESOLVE_NO_SYMLINKS
896	RESOLVE_NO_XDEV       = C.RESOLVE_NO_XDEV
897)
898
899type PollFd C.struct_pollfd
900
901const (
902	POLLIN    = C.POLLIN
903	POLLPRI   = C.POLLPRI
904	POLLOUT   = C.POLLOUT
905	POLLRDHUP = C.POLLRDHUP
906	POLLERR   = C.POLLERR
907	POLLHUP   = C.POLLHUP
908	POLLNVAL  = C.POLLNVAL
909)
910
911type Sigset_t C.sigset_t
912
913const _C__NSIG = C._NSIG
914
915type SignalfdSiginfo C.struct_signalfd_siginfo
916
917// Terminal handling
918
919type Termios C.termios_t
920
921type Winsize C.struct_winsize
922
923// Taskstats and cgroup stats.
924
925type Taskstats C.struct_taskstats
926
927const (
928	TASKSTATS_CMD_UNSPEC                  = C.TASKSTATS_CMD_UNSPEC
929	TASKSTATS_CMD_GET                     = C.TASKSTATS_CMD_GET
930	TASKSTATS_CMD_NEW                     = C.TASKSTATS_CMD_NEW
931	TASKSTATS_TYPE_UNSPEC                 = C.TASKSTATS_TYPE_UNSPEC
932	TASKSTATS_TYPE_PID                    = C.TASKSTATS_TYPE_PID
933	TASKSTATS_TYPE_TGID                   = C.TASKSTATS_TYPE_TGID
934	TASKSTATS_TYPE_STATS                  = C.TASKSTATS_TYPE_STATS
935	TASKSTATS_TYPE_AGGR_PID               = C.TASKSTATS_TYPE_AGGR_PID
936	TASKSTATS_TYPE_AGGR_TGID              = C.TASKSTATS_TYPE_AGGR_TGID
937	TASKSTATS_TYPE_NULL                   = C.TASKSTATS_TYPE_NULL
938	TASKSTATS_CMD_ATTR_UNSPEC             = C.TASKSTATS_CMD_ATTR_UNSPEC
939	TASKSTATS_CMD_ATTR_PID                = C.TASKSTATS_CMD_ATTR_PID
940	TASKSTATS_CMD_ATTR_TGID               = C.TASKSTATS_CMD_ATTR_TGID
941	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = C.TASKSTATS_CMD_ATTR_REGISTER_CPUMASK
942	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = C.TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK
943)
944
945type CGroupStats C.struct_cgroupstats
946
947const (
948	CGROUPSTATS_CMD_UNSPEC        = C.__TASKSTATS_CMD_MAX
949	CGROUPSTATS_CMD_GET           = C.CGROUPSTATS_CMD_GET
950	CGROUPSTATS_CMD_NEW           = C.CGROUPSTATS_CMD_NEW
951	CGROUPSTATS_TYPE_UNSPEC       = C.CGROUPSTATS_TYPE_UNSPEC
952	CGROUPSTATS_TYPE_CGROUP_STATS = C.CGROUPSTATS_TYPE_CGROUP_STATS
953	CGROUPSTATS_CMD_ATTR_UNSPEC   = C.CGROUPSTATS_CMD_ATTR_UNSPEC
954	CGROUPSTATS_CMD_ATTR_FD       = C.CGROUPSTATS_CMD_ATTR_FD
955)
956
957// Generic netlink
958
959type Genlmsghdr C.struct_genlmsghdr
960
961const (
962	CTRL_CMD_UNSPEC            = C.CTRL_CMD_UNSPEC
963	CTRL_CMD_NEWFAMILY         = C.CTRL_CMD_NEWFAMILY
964	CTRL_CMD_DELFAMILY         = C.CTRL_CMD_DELFAMILY
965	CTRL_CMD_GETFAMILY         = C.CTRL_CMD_GETFAMILY
966	CTRL_CMD_NEWOPS            = C.CTRL_CMD_NEWOPS
967	CTRL_CMD_DELOPS            = C.CTRL_CMD_DELOPS
968	CTRL_CMD_GETOPS            = C.CTRL_CMD_GETOPS
969	CTRL_CMD_NEWMCAST_GRP      = C.CTRL_CMD_NEWMCAST_GRP
970	CTRL_CMD_DELMCAST_GRP      = C.CTRL_CMD_DELMCAST_GRP
971	CTRL_CMD_GETMCAST_GRP      = C.CTRL_CMD_GETMCAST_GRP
972	CTRL_ATTR_UNSPEC           = C.CTRL_ATTR_UNSPEC
973	CTRL_ATTR_FAMILY_ID        = C.CTRL_ATTR_FAMILY_ID
974	CTRL_ATTR_FAMILY_NAME      = C.CTRL_ATTR_FAMILY_NAME
975	CTRL_ATTR_VERSION          = C.CTRL_ATTR_VERSION
976	CTRL_ATTR_HDRSIZE          = C.CTRL_ATTR_HDRSIZE
977	CTRL_ATTR_MAXATTR          = C.CTRL_ATTR_MAXATTR
978	CTRL_ATTR_OPS              = C.CTRL_ATTR_OPS
979	CTRL_ATTR_MCAST_GROUPS     = C.CTRL_ATTR_MCAST_GROUPS
980	CTRL_ATTR_OP_UNSPEC        = C.CTRL_ATTR_OP_UNSPEC
981	CTRL_ATTR_OP_ID            = C.CTRL_ATTR_OP_ID
982	CTRL_ATTR_OP_FLAGS         = C.CTRL_ATTR_OP_FLAGS
983	CTRL_ATTR_MCAST_GRP_UNSPEC = C.CTRL_ATTR_MCAST_GRP_UNSPEC
984	CTRL_ATTR_MCAST_GRP_NAME   = C.CTRL_ATTR_MCAST_GRP_NAME
985	CTRL_ATTR_MCAST_GRP_ID     = C.CTRL_ATTR_MCAST_GRP_ID
986)
987
988// CPU affinity
989
990type cpuMask C.__cpu_mask
991
992const (
993	_CPU_SETSIZE = C.__CPU_SETSIZE
994	_NCPUBITS    = C.__NCPUBITS
995)
996
997// Bluetooth
998
999const (
1000	BDADDR_BREDR     = C.BDADDR_BREDR
1001	BDADDR_LE_PUBLIC = C.BDADDR_LE_PUBLIC
1002	BDADDR_LE_RANDOM = C.BDADDR_LE_RANDOM
1003)
1004
1005// Perf subsystem
1006
1007type PerfEventAttr C.struct_perf_event_attr_go
1008
1009type PerfEventMmapPage C.struct_perf_event_mmap_page
1010
1011// Bit field in struct perf_event_attr expanded as flags.
1012// Set these on PerfEventAttr.Bits by ORing them together.
1013const (
1014	PerfBitDisabled               uint64 = CBitFieldMaskBit0
1015	PerfBitInherit                       = CBitFieldMaskBit1
1016	PerfBitPinned                        = CBitFieldMaskBit2
1017	PerfBitExclusive                     = CBitFieldMaskBit3
1018	PerfBitExcludeUser                   = CBitFieldMaskBit4
1019	PerfBitExcludeKernel                 = CBitFieldMaskBit5
1020	PerfBitExcludeHv                     = CBitFieldMaskBit6
1021	PerfBitExcludeIdle                   = CBitFieldMaskBit7
1022	PerfBitMmap                          = CBitFieldMaskBit8
1023	PerfBitComm                          = CBitFieldMaskBit9
1024	PerfBitFreq                          = CBitFieldMaskBit10
1025	PerfBitInheritStat                   = CBitFieldMaskBit11
1026	PerfBitEnableOnExec                  = CBitFieldMaskBit12
1027	PerfBitTask                          = CBitFieldMaskBit13
1028	PerfBitWatermark                     = CBitFieldMaskBit14
1029	PerfBitPreciseIPBit1                 = CBitFieldMaskBit15
1030	PerfBitPreciseIPBit2                 = CBitFieldMaskBit16
1031	PerfBitMmapData                      = CBitFieldMaskBit17
1032	PerfBitSampleIDAll                   = CBitFieldMaskBit18
1033	PerfBitExcludeHost                   = CBitFieldMaskBit19
1034	PerfBitExcludeGuest                  = CBitFieldMaskBit20
1035	PerfBitExcludeCallchainKernel        = CBitFieldMaskBit21
1036	PerfBitExcludeCallchainUser          = CBitFieldMaskBit22
1037	PerfBitMmap2                         = CBitFieldMaskBit23
1038	PerfBitCommExec                      = CBitFieldMaskBit24
1039	PerfBitUseClockID                    = CBitFieldMaskBit25
1040	PerfBitContextSwitch                 = CBitFieldMaskBit26
1041)
1042
1043// generated by:
1044// perl -nlE '/^\s*(PERF_\w+)/ && say "$1 = C.$1"' /usr/include/linux/perf_event.h
1045const (
1046	PERF_TYPE_HARDWARE                    = C.PERF_TYPE_HARDWARE
1047	PERF_TYPE_SOFTWARE                    = C.PERF_TYPE_SOFTWARE
1048	PERF_TYPE_TRACEPOINT                  = C.PERF_TYPE_TRACEPOINT
1049	PERF_TYPE_HW_CACHE                    = C.PERF_TYPE_HW_CACHE
1050	PERF_TYPE_RAW                         = C.PERF_TYPE_RAW
1051	PERF_TYPE_BREAKPOINT                  = C.PERF_TYPE_BREAKPOINT
1052	PERF_TYPE_MAX                         = C.PERF_TYPE_MAX
1053	PERF_COUNT_HW_CPU_CYCLES              = C.PERF_COUNT_HW_CPU_CYCLES
1054	PERF_COUNT_HW_INSTRUCTIONS            = C.PERF_COUNT_HW_INSTRUCTIONS
1055	PERF_COUNT_HW_CACHE_REFERENCES        = C.PERF_COUNT_HW_CACHE_REFERENCES
1056	PERF_COUNT_HW_CACHE_MISSES            = C.PERF_COUNT_HW_CACHE_MISSES
1057	PERF_COUNT_HW_BRANCH_INSTRUCTIONS     = C.PERF_COUNT_HW_BRANCH_INSTRUCTIONS
1058	PERF_COUNT_HW_BRANCH_MISSES           = C.PERF_COUNT_HW_BRANCH_MISSES
1059	PERF_COUNT_HW_BUS_CYCLES              = C.PERF_COUNT_HW_BUS_CYCLES
1060	PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = C.PERF_COUNT_HW_STALLED_CYCLES_FRONTEND
1061	PERF_COUNT_HW_STALLED_CYCLES_BACKEND  = C.PERF_COUNT_HW_STALLED_CYCLES_BACKEND
1062	PERF_COUNT_HW_REF_CPU_CYCLES          = C.PERF_COUNT_HW_REF_CPU_CYCLES
1063	PERF_COUNT_HW_MAX                     = C.PERF_COUNT_HW_MAX
1064	PERF_COUNT_HW_CACHE_L1D               = C.PERF_COUNT_HW_CACHE_L1D
1065	PERF_COUNT_HW_CACHE_L1I               = C.PERF_COUNT_HW_CACHE_L1I
1066	PERF_COUNT_HW_CACHE_LL                = C.PERF_COUNT_HW_CACHE_LL
1067	PERF_COUNT_HW_CACHE_DTLB              = C.PERF_COUNT_HW_CACHE_DTLB
1068	PERF_COUNT_HW_CACHE_ITLB              = C.PERF_COUNT_HW_CACHE_ITLB
1069	PERF_COUNT_HW_CACHE_BPU               = C.PERF_COUNT_HW_CACHE_BPU
1070	PERF_COUNT_HW_CACHE_NODE              = C.PERF_COUNT_HW_CACHE_NODE
1071	PERF_COUNT_HW_CACHE_MAX               = C.PERF_COUNT_HW_CACHE_MAX
1072	PERF_COUNT_HW_CACHE_OP_READ           = C.PERF_COUNT_HW_CACHE_OP_READ
1073	PERF_COUNT_HW_CACHE_OP_WRITE          = C.PERF_COUNT_HW_CACHE_OP_WRITE
1074	PERF_COUNT_HW_CACHE_OP_PREFETCH       = C.PERF_COUNT_HW_CACHE_OP_PREFETCH
1075	PERF_COUNT_HW_CACHE_OP_MAX            = C.PERF_COUNT_HW_CACHE_OP_MAX
1076	PERF_COUNT_HW_CACHE_RESULT_ACCESS     = C.PERF_COUNT_HW_CACHE_RESULT_ACCESS
1077	PERF_COUNT_HW_CACHE_RESULT_MISS       = C.PERF_COUNT_HW_CACHE_RESULT_MISS
1078	PERF_COUNT_HW_CACHE_RESULT_MAX        = C.PERF_COUNT_HW_CACHE_RESULT_MAX
1079	PERF_COUNT_SW_CPU_CLOCK               = C.PERF_COUNT_SW_CPU_CLOCK
1080	PERF_COUNT_SW_TASK_CLOCK              = C.PERF_COUNT_SW_TASK_CLOCK
1081	PERF_COUNT_SW_PAGE_FAULTS             = C.PERF_COUNT_SW_PAGE_FAULTS
1082	PERF_COUNT_SW_CONTEXT_SWITCHES        = C.PERF_COUNT_SW_CONTEXT_SWITCHES
1083	PERF_COUNT_SW_CPU_MIGRATIONS          = C.PERF_COUNT_SW_CPU_MIGRATIONS
1084	PERF_COUNT_SW_PAGE_FAULTS_MIN         = C.PERF_COUNT_SW_PAGE_FAULTS_MIN
1085	PERF_COUNT_SW_PAGE_FAULTS_MAJ         = C.PERF_COUNT_SW_PAGE_FAULTS_MAJ
1086	PERF_COUNT_SW_ALIGNMENT_FAULTS        = C.PERF_COUNT_SW_ALIGNMENT_FAULTS
1087	PERF_COUNT_SW_EMULATION_FAULTS        = C.PERF_COUNT_SW_EMULATION_FAULTS
1088	PERF_COUNT_SW_DUMMY                   = C.PERF_COUNT_SW_DUMMY
1089	PERF_COUNT_SW_BPF_OUTPUT              = C.PERF_COUNT_SW_BPF_OUTPUT
1090	PERF_COUNT_SW_MAX                     = C.PERF_COUNT_SW_MAX
1091	PERF_SAMPLE_IP                        = C.PERF_SAMPLE_IP
1092	PERF_SAMPLE_TID                       = C.PERF_SAMPLE_TID
1093	PERF_SAMPLE_TIME                      = C.PERF_SAMPLE_TIME
1094	PERF_SAMPLE_ADDR                      = C.PERF_SAMPLE_ADDR
1095	PERF_SAMPLE_READ                      = C.PERF_SAMPLE_READ
1096	PERF_SAMPLE_CALLCHAIN                 = C.PERF_SAMPLE_CALLCHAIN
1097	PERF_SAMPLE_ID                        = C.PERF_SAMPLE_ID
1098	PERF_SAMPLE_CPU                       = C.PERF_SAMPLE_CPU
1099	PERF_SAMPLE_PERIOD                    = C.PERF_SAMPLE_PERIOD
1100	PERF_SAMPLE_STREAM_ID                 = C.PERF_SAMPLE_STREAM_ID
1101	PERF_SAMPLE_RAW                       = C.PERF_SAMPLE_RAW
1102	PERF_SAMPLE_BRANCH_STACK              = C.PERF_SAMPLE_BRANCH_STACK
1103	PERF_SAMPLE_REGS_USER                 = C.PERF_SAMPLE_REGS_USER
1104	PERF_SAMPLE_STACK_USER                = C.PERF_SAMPLE_STACK_USER
1105	PERF_SAMPLE_WEIGHT                    = C.PERF_SAMPLE_WEIGHT
1106	PERF_SAMPLE_DATA_SRC                  = C.PERF_SAMPLE_DATA_SRC
1107	PERF_SAMPLE_IDENTIFIER                = C.PERF_SAMPLE_IDENTIFIER
1108	PERF_SAMPLE_TRANSACTION               = C.PERF_SAMPLE_TRANSACTION
1109	PERF_SAMPLE_REGS_INTR                 = C.PERF_SAMPLE_REGS_INTR
1110	PERF_SAMPLE_PHYS_ADDR                 = C.PERF_SAMPLE_PHYS_ADDR
1111	PERF_SAMPLE_AUX                       = C.PERF_SAMPLE_AUX
1112	PERF_SAMPLE_CGROUP                    = C.PERF_SAMPLE_CGROUP
1113	PERF_SAMPLE_MAX                       = C.PERF_SAMPLE_MAX
1114	PERF_SAMPLE_BRANCH_USER_SHIFT         = C.PERF_SAMPLE_BRANCH_USER_SHIFT
1115	PERF_SAMPLE_BRANCH_KERNEL_SHIFT       = C.PERF_SAMPLE_BRANCH_KERNEL_SHIFT
1116	PERF_SAMPLE_BRANCH_HV_SHIFT           = C.PERF_SAMPLE_BRANCH_HV_SHIFT
1117	PERF_SAMPLE_BRANCH_ANY_SHIFT          = C.PERF_SAMPLE_BRANCH_ANY_SHIFT
1118	PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT     = C.PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT
1119	PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT   = C.PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT
1120	PERF_SAMPLE_BRANCH_IND_CALL_SHIFT     = C.PERF_SAMPLE_BRANCH_IND_CALL_SHIFT
1121	PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT     = C.PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT
1122	PERF_SAMPLE_BRANCH_IN_TX_SHIFT        = C.PERF_SAMPLE_BRANCH_IN_TX_SHIFT
1123	PERF_SAMPLE_BRANCH_NO_TX_SHIFT        = C.PERF_SAMPLE_BRANCH_NO_TX_SHIFT
1124	PERF_SAMPLE_BRANCH_COND_SHIFT         = C.PERF_SAMPLE_BRANCH_COND_SHIFT
1125	PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT   = C.PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT
1126	PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT     = C.PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT
1127	PERF_SAMPLE_BRANCH_CALL_SHIFT         = C.PERF_SAMPLE_BRANCH_CALL_SHIFT
1128	PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT     = C.PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT
1129	PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT    = C.PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT
1130	PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT    = C.PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT
1131	PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT     = C.PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT
1132	PERF_SAMPLE_BRANCH_MAX_SHIFT          = C.PERF_SAMPLE_BRANCH_MAX_SHIFT
1133	PERF_SAMPLE_BRANCH_USER               = C.PERF_SAMPLE_BRANCH_USER
1134	PERF_SAMPLE_BRANCH_KERNEL             = C.PERF_SAMPLE_BRANCH_KERNEL
1135	PERF_SAMPLE_BRANCH_HV                 = C.PERF_SAMPLE_BRANCH_HV
1136	PERF_SAMPLE_BRANCH_ANY                = C.PERF_SAMPLE_BRANCH_ANY
1137	PERF_SAMPLE_BRANCH_ANY_CALL           = C.PERF_SAMPLE_BRANCH_ANY_CALL
1138	PERF_SAMPLE_BRANCH_ANY_RETURN         = C.PERF_SAMPLE_BRANCH_ANY_RETURN
1139	PERF_SAMPLE_BRANCH_IND_CALL           = C.PERF_SAMPLE_BRANCH_IND_CALL
1140	PERF_SAMPLE_BRANCH_ABORT_TX           = C.PERF_SAMPLE_BRANCH_ABORT_TX
1141	PERF_SAMPLE_BRANCH_IN_TX              = C.PERF_SAMPLE_BRANCH_IN_TX
1142	PERF_SAMPLE_BRANCH_NO_TX              = C.PERF_SAMPLE_BRANCH_NO_TX
1143	PERF_SAMPLE_BRANCH_COND               = C.PERF_SAMPLE_BRANCH_COND
1144	PERF_SAMPLE_BRANCH_CALL_STACK         = C.PERF_SAMPLE_BRANCH_CALL_STACK
1145	PERF_SAMPLE_BRANCH_IND_JUMP           = C.PERF_SAMPLE_BRANCH_IND_JUMP
1146	PERF_SAMPLE_BRANCH_CALL               = C.PERF_SAMPLE_BRANCH_CALL
1147	PERF_SAMPLE_BRANCH_NO_FLAGS           = C.PERF_SAMPLE_BRANCH_NO_FLAGS
1148	PERF_SAMPLE_BRANCH_NO_CYCLES          = C.PERF_SAMPLE_BRANCH_NO_CYCLES
1149	PERF_SAMPLE_BRANCH_TYPE_SAVE          = C.PERF_SAMPLE_BRANCH_TYPE_SAVE
1150	PERF_SAMPLE_BRANCH_HW_INDEX           = C.PERF_SAMPLE_BRANCH_HW_INDEX
1151	PERF_SAMPLE_BRANCH_MAX                = C.PERF_SAMPLE_BRANCH_MAX
1152	PERF_BR_UNKNOWN                       = C.PERF_BR_UNKNOWN
1153	PERF_BR_COND                          = C.PERF_BR_COND
1154	PERF_BR_UNCOND                        = C.PERF_BR_UNCOND
1155	PERF_BR_IND                           = C.PERF_BR_IND
1156	PERF_BR_CALL                          = C.PERF_BR_CALL
1157	PERF_BR_IND_CALL                      = C.PERF_BR_IND_CALL
1158	PERF_BR_RET                           = C.PERF_BR_RET
1159	PERF_BR_SYSCALL                       = C.PERF_BR_SYSCALL
1160	PERF_BR_SYSRET                        = C.PERF_BR_SYSRET
1161	PERF_BR_COND_CALL                     = C.PERF_BR_COND_CALL
1162	PERF_BR_COND_RET                      = C.PERF_BR_COND_RET
1163	PERF_BR_MAX                           = C.PERF_BR_MAX
1164	PERF_SAMPLE_REGS_ABI_NONE             = C.PERF_SAMPLE_REGS_ABI_NONE
1165	PERF_SAMPLE_REGS_ABI_32               = C.PERF_SAMPLE_REGS_ABI_32
1166	PERF_SAMPLE_REGS_ABI_64               = C.PERF_SAMPLE_REGS_ABI_64
1167	PERF_TXN_ELISION                      = C.PERF_TXN_ELISION
1168	PERF_TXN_TRANSACTION                  = C.PERF_TXN_TRANSACTION
1169	PERF_TXN_SYNC                         = C.PERF_TXN_SYNC
1170	PERF_TXN_ASYNC                        = C.PERF_TXN_ASYNC
1171	PERF_TXN_RETRY                        = C.PERF_TXN_RETRY
1172	PERF_TXN_CONFLICT                     = C.PERF_TXN_CONFLICT
1173	PERF_TXN_CAPACITY_WRITE               = C.PERF_TXN_CAPACITY_WRITE
1174	PERF_TXN_CAPACITY_READ                = C.PERF_TXN_CAPACITY_READ
1175	PERF_TXN_MAX                          = C.PERF_TXN_MAX
1176	PERF_TXN_ABORT_MASK                   = C.PERF_TXN_ABORT_MASK
1177	PERF_TXN_ABORT_SHIFT                  = C.PERF_TXN_ABORT_SHIFT
1178	PERF_FORMAT_TOTAL_TIME_ENABLED        = C.PERF_FORMAT_TOTAL_TIME_ENABLED
1179	PERF_FORMAT_TOTAL_TIME_RUNNING        = C.PERF_FORMAT_TOTAL_TIME_RUNNING
1180	PERF_FORMAT_ID                        = C.PERF_FORMAT_ID
1181	PERF_FORMAT_GROUP                     = C.PERF_FORMAT_GROUP
1182	PERF_FORMAT_MAX                       = C.PERF_FORMAT_MAX
1183	PERF_IOC_FLAG_GROUP                   = C.PERF_IOC_FLAG_GROUP
1184	PERF_RECORD_MMAP                      = C.PERF_RECORD_MMAP
1185	PERF_RECORD_LOST                      = C.PERF_RECORD_LOST
1186	PERF_RECORD_COMM                      = C.PERF_RECORD_COMM
1187	PERF_RECORD_EXIT                      = C.PERF_RECORD_EXIT
1188	PERF_RECORD_THROTTLE                  = C.PERF_RECORD_THROTTLE
1189	PERF_RECORD_UNTHROTTLE                = C.PERF_RECORD_UNTHROTTLE
1190	PERF_RECORD_FORK                      = C.PERF_RECORD_FORK
1191	PERF_RECORD_READ                      = C.PERF_RECORD_READ
1192	PERF_RECORD_SAMPLE                    = C.PERF_RECORD_SAMPLE
1193	PERF_RECORD_MMAP2                     = C.PERF_RECORD_MMAP2
1194	PERF_RECORD_AUX                       = C.PERF_RECORD_AUX
1195	PERF_RECORD_ITRACE_START              = C.PERF_RECORD_ITRACE_START
1196	PERF_RECORD_LOST_SAMPLES              = C.PERF_RECORD_LOST_SAMPLES
1197	PERF_RECORD_SWITCH                    = C.PERF_RECORD_SWITCH
1198	PERF_RECORD_SWITCH_CPU_WIDE           = C.PERF_RECORD_SWITCH_CPU_WIDE
1199	PERF_RECORD_NAMESPACES                = C.PERF_RECORD_NAMESPACES
1200	PERF_RECORD_KSYMBOL                   = C.PERF_RECORD_KSYMBOL
1201	PERF_RECORD_BPF_EVENT                 = C.PERF_RECORD_BPF_EVENT
1202	PERF_RECORD_CGROUP                    = C.PERF_RECORD_CGROUP
1203	PERF_RECORD_TEXT_POKE                 = C.PERF_RECORD_TEXT_POKE
1204	PERF_RECORD_MAX                       = C.PERF_RECORD_MAX
1205	PERF_RECORD_KSYMBOL_TYPE_UNKNOWN      = C.PERF_RECORD_KSYMBOL_TYPE_UNKNOWN
1206	PERF_RECORD_KSYMBOL_TYPE_BPF          = C.PERF_RECORD_KSYMBOL_TYPE_BPF
1207	PERF_RECORD_KSYMBOL_TYPE_OOL          = C.PERF_RECORD_KSYMBOL_TYPE_OOL
1208	PERF_RECORD_KSYMBOL_TYPE_MAX          = C.PERF_RECORD_KSYMBOL_TYPE_MAX
1209	PERF_BPF_EVENT_UNKNOWN                = C.PERF_BPF_EVENT_UNKNOWN
1210	PERF_BPF_EVENT_PROG_LOAD              = C.PERF_BPF_EVENT_PROG_LOAD
1211	PERF_BPF_EVENT_PROG_UNLOAD            = C.PERF_BPF_EVENT_PROG_UNLOAD
1212	PERF_BPF_EVENT_MAX                    = C.PERF_BPF_EVENT_MAX
1213	PERF_CONTEXT_HV                       = C.PERF_CONTEXT_HV
1214	PERF_CONTEXT_KERNEL                   = C.PERF_CONTEXT_KERNEL
1215	PERF_CONTEXT_USER                     = C.PERF_CONTEXT_USER
1216	PERF_CONTEXT_GUEST                    = C.PERF_CONTEXT_GUEST
1217	PERF_CONTEXT_GUEST_KERNEL             = C.PERF_CONTEXT_GUEST_KERNEL
1218	PERF_CONTEXT_GUEST_USER               = C.PERF_CONTEXT_GUEST_USER
1219	PERF_CONTEXT_MAX                      = C.PERF_CONTEXT_MAX
1220)
1221
1222// Platform ABI and calling convention
1223
1224// Bit field masks for interoperability with C code that uses bit fields.
1225// Each mask corresponds to a single bit set - bit field behavior can be replicated by combining
1226// the masks with bitwise OR.
1227const (
1228	CBitFieldMaskBit0  = C.BITFIELD_MASK_0
1229	CBitFieldMaskBit1  = C.BITFIELD_MASK_1
1230	CBitFieldMaskBit2  = C.BITFIELD_MASK_2
1231	CBitFieldMaskBit3  = C.BITFIELD_MASK_3
1232	CBitFieldMaskBit4  = C.BITFIELD_MASK_4
1233	CBitFieldMaskBit5  = C.BITFIELD_MASK_5
1234	CBitFieldMaskBit6  = C.BITFIELD_MASK_6
1235	CBitFieldMaskBit7  = C.BITFIELD_MASK_7
1236	CBitFieldMaskBit8  = C.BITFIELD_MASK_8
1237	CBitFieldMaskBit9  = C.BITFIELD_MASK_9
1238	CBitFieldMaskBit10 = C.BITFIELD_MASK_10
1239	CBitFieldMaskBit11 = C.BITFIELD_MASK_11
1240	CBitFieldMaskBit12 = C.BITFIELD_MASK_12
1241	CBitFieldMaskBit13 = C.BITFIELD_MASK_13
1242	CBitFieldMaskBit14 = C.BITFIELD_MASK_14
1243	CBitFieldMaskBit15 = C.BITFIELD_MASK_15
1244	CBitFieldMaskBit16 = C.BITFIELD_MASK_16
1245	CBitFieldMaskBit17 = C.BITFIELD_MASK_17
1246	CBitFieldMaskBit18 = C.BITFIELD_MASK_18
1247	CBitFieldMaskBit19 = C.BITFIELD_MASK_19
1248	CBitFieldMaskBit20 = C.BITFIELD_MASK_20
1249	CBitFieldMaskBit21 = C.BITFIELD_MASK_21
1250	CBitFieldMaskBit22 = C.BITFIELD_MASK_22
1251	CBitFieldMaskBit23 = C.BITFIELD_MASK_23
1252	CBitFieldMaskBit24 = C.BITFIELD_MASK_24
1253	CBitFieldMaskBit25 = C.BITFIELD_MASK_25
1254	CBitFieldMaskBit26 = C.BITFIELD_MASK_26
1255	CBitFieldMaskBit27 = C.BITFIELD_MASK_27
1256	CBitFieldMaskBit28 = C.BITFIELD_MASK_28
1257	CBitFieldMaskBit29 = C.BITFIELD_MASK_29
1258	CBitFieldMaskBit30 = C.BITFIELD_MASK_30
1259	CBitFieldMaskBit31 = C.BITFIELD_MASK_31
1260	CBitFieldMaskBit32 = C.BITFIELD_MASK_32
1261	CBitFieldMaskBit33 = C.BITFIELD_MASK_33
1262	CBitFieldMaskBit34 = C.BITFIELD_MASK_34
1263	CBitFieldMaskBit35 = C.BITFIELD_MASK_35
1264	CBitFieldMaskBit36 = C.BITFIELD_MASK_36
1265	CBitFieldMaskBit37 = C.BITFIELD_MASK_37
1266	CBitFieldMaskBit38 = C.BITFIELD_MASK_38
1267	CBitFieldMaskBit39 = C.BITFIELD_MASK_39
1268	CBitFieldMaskBit40 = C.BITFIELD_MASK_40
1269	CBitFieldMaskBit41 = C.BITFIELD_MASK_41
1270	CBitFieldMaskBit42 = C.BITFIELD_MASK_42
1271	CBitFieldMaskBit43 = C.BITFIELD_MASK_43
1272	CBitFieldMaskBit44 = C.BITFIELD_MASK_44
1273	CBitFieldMaskBit45 = C.BITFIELD_MASK_45
1274	CBitFieldMaskBit46 = C.BITFIELD_MASK_46
1275	CBitFieldMaskBit47 = C.BITFIELD_MASK_47
1276	CBitFieldMaskBit48 = C.BITFIELD_MASK_48
1277	CBitFieldMaskBit49 = C.BITFIELD_MASK_49
1278	CBitFieldMaskBit50 = C.BITFIELD_MASK_50
1279	CBitFieldMaskBit51 = C.BITFIELD_MASK_51
1280	CBitFieldMaskBit52 = C.BITFIELD_MASK_52
1281	CBitFieldMaskBit53 = C.BITFIELD_MASK_53
1282	CBitFieldMaskBit54 = C.BITFIELD_MASK_54
1283	CBitFieldMaskBit55 = C.BITFIELD_MASK_55
1284	CBitFieldMaskBit56 = C.BITFIELD_MASK_56
1285	CBitFieldMaskBit57 = C.BITFIELD_MASK_57
1286	CBitFieldMaskBit58 = C.BITFIELD_MASK_58
1287	CBitFieldMaskBit59 = C.BITFIELD_MASK_59
1288	CBitFieldMaskBit60 = C.BITFIELD_MASK_60
1289	CBitFieldMaskBit61 = C.BITFIELD_MASK_61
1290	CBitFieldMaskBit62 = C.BITFIELD_MASK_62
1291	CBitFieldMaskBit63 = C.BITFIELD_MASK_63
1292)
1293
1294// TCP-MD5 signature.
1295
1296type SockaddrStorage C.struct_sockaddr_storage
1297
1298type TCPMD5Sig C.struct_tcp_md5sig
1299
1300// Disk drive operations.
1301
1302type HDDriveCmdHdr C.struct_hd_drive_cmd_hdr
1303
1304type HDGeometry C.struct_hd_geometry
1305
1306type HDDriveID C.struct_hd_driveid
1307
1308// Statfs
1309
1310type Statfs_t C.struct_statfs
1311
1312const (
1313	ST_MANDLOCK    = C.ST_MANDLOCK
1314	ST_NOATIME     = C.ST_NOATIME
1315	ST_NODEV       = C.ST_NODEV
1316	ST_NODIRATIME  = C.ST_NODIRATIME
1317	ST_NOEXEC      = C.ST_NOEXEC
1318	ST_NOSUID      = C.ST_NOSUID
1319	ST_RDONLY      = C.ST_RDONLY
1320	ST_RELATIME    = C.ST_RELATIME
1321	ST_SYNCHRONOUS = C.ST_SYNCHRONOUS
1322)
1323
1324// TPacket
1325
1326type TpacketHdr C.struct_tpacket_hdr
1327
1328type Tpacket2Hdr C.struct_tpacket2_hdr
1329
1330type Tpacket3Hdr C.struct_tpacket3_hdr
1331
1332type TpacketHdrVariant1 C.struct_tpacket_hdr_variant1
1333
1334type TpacketBlockDesc C.struct_tpacket_block_desc
1335
1336type TpacketBDTS C.struct_tpacket_bd_ts
1337
1338type TpacketHdrV1 C.struct_tpacket_hdr_v1
1339
1340type TpacketReq C.struct_tpacket_req
1341
1342type TpacketReq3 C.struct_tpacket_req3
1343
1344type TpacketStats C.struct_tpacket_stats
1345
1346type TpacketStatsV3 C.struct_tpacket_stats_v3
1347
1348type TpacketAuxdata C.struct_tpacket_auxdata
1349
1350const (
1351	TPACKET_V1 = C.TPACKET_V1
1352	TPACKET_V2 = C.TPACKET_V2
1353	TPACKET_V3 = C.TPACKET_V3
1354)
1355
1356const (
1357	SizeofTpacketHdr  = C.sizeof_struct_tpacket_hdr
1358	SizeofTpacket2Hdr = C.sizeof_struct_tpacket2_hdr
1359	SizeofTpacket3Hdr = C.sizeof_struct_tpacket3_hdr
1360
1361	SizeofTpacketStats   = C.sizeof_struct_tpacket_stats
1362	SizeofTpacketStatsV3 = C.sizeof_struct_tpacket_stats_v3
1363)
1364
1365// netfilter
1366// generated using:
1367// perl -nlE '/^\s*(NF\w+)/ && say "$1 = C.$1"' /usr/include/linux/netfilter.h
1368const (
1369	NF_INET_PRE_ROUTING  = C.NF_INET_PRE_ROUTING
1370	NF_INET_LOCAL_IN     = C.NF_INET_LOCAL_IN
1371	NF_INET_FORWARD      = C.NF_INET_FORWARD
1372	NF_INET_LOCAL_OUT    = C.NF_INET_LOCAL_OUT
1373	NF_INET_POST_ROUTING = C.NF_INET_POST_ROUTING
1374	NF_INET_NUMHOOKS     = C.NF_INET_NUMHOOKS
1375)
1376
1377const (
1378	NF_NETDEV_INGRESS  = C.NF_NETDEV_INGRESS
1379	NF_NETDEV_NUMHOOKS = C.NF_NETDEV_NUMHOOKS
1380)
1381
1382const (
1383	NFPROTO_UNSPEC   = C.NFPROTO_UNSPEC
1384	NFPROTO_INET     = C.NFPROTO_INET
1385	NFPROTO_IPV4     = C.NFPROTO_IPV4
1386	NFPROTO_ARP      = C.NFPROTO_ARP
1387	NFPROTO_NETDEV   = C.NFPROTO_NETDEV
1388	NFPROTO_BRIDGE   = C.NFPROTO_BRIDGE
1389	NFPROTO_IPV6     = C.NFPROTO_IPV6
1390	NFPROTO_DECNET   = C.NFPROTO_DECNET
1391	NFPROTO_NUMPROTO = C.NFPROTO_NUMPROTO
1392)
1393
1394// netfilter nfnetlink
1395type Nfgenmsg C.struct_nfgenmsg
1396
1397const (
1398	NFNL_BATCH_UNSPEC = C.NFNL_BATCH_UNSPEC
1399	NFNL_BATCH_GENID  = C.NFNL_BATCH_GENID
1400)
1401
1402// netfilter nf_tables
1403// generated using:
1404// perl -nlE '/^\s*(NFT\w+)/ && say "$1 = C.$1"' /usr/include/linux/netfilter/nf_tables.h
1405const (
1406	NFT_REG_VERDICT                   = C.NFT_REG_VERDICT
1407	NFT_REG_1                         = C.NFT_REG_1
1408	NFT_REG_2                         = C.NFT_REG_2
1409	NFT_REG_3                         = C.NFT_REG_3
1410	NFT_REG_4                         = C.NFT_REG_4
1411	NFT_REG32_00                      = C.NFT_REG32_00
1412	NFT_REG32_01                      = C.NFT_REG32_01
1413	NFT_REG32_02                      = C.NFT_REG32_02
1414	NFT_REG32_03                      = C.NFT_REG32_03
1415	NFT_REG32_04                      = C.NFT_REG32_04
1416	NFT_REG32_05                      = C.NFT_REG32_05
1417	NFT_REG32_06                      = C.NFT_REG32_06
1418	NFT_REG32_07                      = C.NFT_REG32_07
1419	NFT_REG32_08                      = C.NFT_REG32_08
1420	NFT_REG32_09                      = C.NFT_REG32_09
1421	NFT_REG32_10                      = C.NFT_REG32_10
1422	NFT_REG32_11                      = C.NFT_REG32_11
1423	NFT_REG32_12                      = C.NFT_REG32_12
1424	NFT_REG32_13                      = C.NFT_REG32_13
1425	NFT_REG32_14                      = C.NFT_REG32_14
1426	NFT_REG32_15                      = C.NFT_REG32_15
1427	NFT_CONTINUE                      = C.NFT_CONTINUE
1428	NFT_BREAK                         = C.NFT_BREAK
1429	NFT_JUMP                          = C.NFT_JUMP
1430	NFT_GOTO                          = C.NFT_GOTO
1431	NFT_RETURN                        = C.NFT_RETURN
1432	NFT_MSG_NEWTABLE                  = C.NFT_MSG_NEWTABLE
1433	NFT_MSG_GETTABLE                  = C.NFT_MSG_GETTABLE
1434	NFT_MSG_DELTABLE                  = C.NFT_MSG_DELTABLE
1435	NFT_MSG_NEWCHAIN                  = C.NFT_MSG_NEWCHAIN
1436	NFT_MSG_GETCHAIN                  = C.NFT_MSG_GETCHAIN
1437	NFT_MSG_DELCHAIN                  = C.NFT_MSG_DELCHAIN
1438	NFT_MSG_NEWRULE                   = C.NFT_MSG_NEWRULE
1439	NFT_MSG_GETRULE                   = C.NFT_MSG_GETRULE
1440	NFT_MSG_DELRULE                   = C.NFT_MSG_DELRULE
1441	NFT_MSG_NEWSET                    = C.NFT_MSG_NEWSET
1442	NFT_MSG_GETSET                    = C.NFT_MSG_GETSET
1443	NFT_MSG_DELSET                    = C.NFT_MSG_DELSET
1444	NFT_MSG_NEWSETELEM                = C.NFT_MSG_NEWSETELEM
1445	NFT_MSG_GETSETELEM                = C.NFT_MSG_GETSETELEM
1446	NFT_MSG_DELSETELEM                = C.NFT_MSG_DELSETELEM
1447	NFT_MSG_NEWGEN                    = C.NFT_MSG_NEWGEN
1448	NFT_MSG_GETGEN                    = C.NFT_MSG_GETGEN
1449	NFT_MSG_TRACE                     = C.NFT_MSG_TRACE
1450	NFT_MSG_NEWOBJ                    = C.NFT_MSG_NEWOBJ
1451	NFT_MSG_GETOBJ                    = C.NFT_MSG_GETOBJ
1452	NFT_MSG_DELOBJ                    = C.NFT_MSG_DELOBJ
1453	NFT_MSG_GETOBJ_RESET              = C.NFT_MSG_GETOBJ_RESET
1454	NFT_MSG_MAX                       = C.NFT_MSG_MAX
1455	NFTA_LIST_UNSPEC                  = C.NFTA_LIST_UNSPEC
1456	NFTA_LIST_ELEM                    = C.NFTA_LIST_ELEM
1457	NFTA_HOOK_UNSPEC                  = C.NFTA_HOOK_UNSPEC
1458	NFTA_HOOK_HOOKNUM                 = C.NFTA_HOOK_HOOKNUM
1459	NFTA_HOOK_PRIORITY                = C.NFTA_HOOK_PRIORITY
1460	NFTA_HOOK_DEV                     = C.NFTA_HOOK_DEV
1461	NFT_TABLE_F_DORMANT               = C.NFT_TABLE_F_DORMANT
1462	NFTA_TABLE_UNSPEC                 = C.NFTA_TABLE_UNSPEC
1463	NFTA_TABLE_NAME                   = C.NFTA_TABLE_NAME
1464	NFTA_TABLE_FLAGS                  = C.NFTA_TABLE_FLAGS
1465	NFTA_TABLE_USE                    = C.NFTA_TABLE_USE
1466	NFTA_CHAIN_UNSPEC                 = C.NFTA_CHAIN_UNSPEC
1467	NFTA_CHAIN_TABLE                  = C.NFTA_CHAIN_TABLE
1468	NFTA_CHAIN_HANDLE                 = C.NFTA_CHAIN_HANDLE
1469	NFTA_CHAIN_NAME                   = C.NFTA_CHAIN_NAME
1470	NFTA_CHAIN_HOOK                   = C.NFTA_CHAIN_HOOK
1471	NFTA_CHAIN_POLICY                 = C.NFTA_CHAIN_POLICY
1472	NFTA_CHAIN_USE                    = C.NFTA_CHAIN_USE
1473	NFTA_CHAIN_TYPE                   = C.NFTA_CHAIN_TYPE
1474	NFTA_CHAIN_COUNTERS               = C.NFTA_CHAIN_COUNTERS
1475	NFTA_CHAIN_PAD                    = C.NFTA_CHAIN_PAD
1476	NFTA_RULE_UNSPEC                  = C.NFTA_RULE_UNSPEC
1477	NFTA_RULE_TABLE                   = C.NFTA_RULE_TABLE
1478	NFTA_RULE_CHAIN                   = C.NFTA_RULE_CHAIN
1479	NFTA_RULE_HANDLE                  = C.NFTA_RULE_HANDLE
1480	NFTA_RULE_EXPRESSIONS             = C.NFTA_RULE_EXPRESSIONS
1481	NFTA_RULE_COMPAT                  = C.NFTA_RULE_COMPAT
1482	NFTA_RULE_POSITION                = C.NFTA_RULE_POSITION
1483	NFTA_RULE_USERDATA                = C.NFTA_RULE_USERDATA
1484	NFTA_RULE_PAD                     = C.NFTA_RULE_PAD
1485	NFTA_RULE_ID                      = C.NFTA_RULE_ID
1486	NFT_RULE_COMPAT_F_INV             = C.NFT_RULE_COMPAT_F_INV
1487	NFT_RULE_COMPAT_F_MASK            = C.NFT_RULE_COMPAT_F_MASK
1488	NFTA_RULE_COMPAT_UNSPEC           = C.NFTA_RULE_COMPAT_UNSPEC
1489	NFTA_RULE_COMPAT_PROTO            = C.NFTA_RULE_COMPAT_PROTO
1490	NFTA_RULE_COMPAT_FLAGS            = C.NFTA_RULE_COMPAT_FLAGS
1491	NFT_SET_ANONYMOUS                 = C.NFT_SET_ANONYMOUS
1492	NFT_SET_CONSTANT                  = C.NFT_SET_CONSTANT
1493	NFT_SET_INTERVAL                  = C.NFT_SET_INTERVAL
1494	NFT_SET_MAP                       = C.NFT_SET_MAP
1495	NFT_SET_TIMEOUT                   = C.NFT_SET_TIMEOUT
1496	NFT_SET_EVAL                      = C.NFT_SET_EVAL
1497	NFT_SET_OBJECT                    = C.NFT_SET_OBJECT
1498	NFT_SET_POL_PERFORMANCE           = C.NFT_SET_POL_PERFORMANCE
1499	NFT_SET_POL_MEMORY                = C.NFT_SET_POL_MEMORY
1500	NFTA_SET_DESC_UNSPEC              = C.NFTA_SET_DESC_UNSPEC
1501	NFTA_SET_DESC_SIZE                = C.NFTA_SET_DESC_SIZE
1502	NFTA_SET_UNSPEC                   = C.NFTA_SET_UNSPEC
1503	NFTA_SET_TABLE                    = C.NFTA_SET_TABLE
1504	NFTA_SET_NAME                     = C.NFTA_SET_NAME
1505	NFTA_SET_FLAGS                    = C.NFTA_SET_FLAGS
1506	NFTA_SET_KEY_TYPE                 = C.NFTA_SET_KEY_TYPE
1507	NFTA_SET_KEY_LEN                  = C.NFTA_SET_KEY_LEN
1508	NFTA_SET_DATA_TYPE                = C.NFTA_SET_DATA_TYPE
1509	NFTA_SET_DATA_LEN                 = C.NFTA_SET_DATA_LEN
1510	NFTA_SET_POLICY                   = C.NFTA_SET_POLICY
1511	NFTA_SET_DESC                     = C.NFTA_SET_DESC
1512	NFTA_SET_ID                       = C.NFTA_SET_ID
1513	NFTA_SET_TIMEOUT                  = C.NFTA_SET_TIMEOUT
1514	NFTA_SET_GC_INTERVAL              = C.NFTA_SET_GC_INTERVAL
1515	NFTA_SET_USERDATA                 = C.NFTA_SET_USERDATA
1516	NFTA_SET_PAD                      = C.NFTA_SET_PAD
1517	NFTA_SET_OBJ_TYPE                 = C.NFTA_SET_OBJ_TYPE
1518	NFT_SET_ELEM_INTERVAL_END         = C.NFT_SET_ELEM_INTERVAL_END
1519	NFTA_SET_ELEM_UNSPEC              = C.NFTA_SET_ELEM_UNSPEC
1520	NFTA_SET_ELEM_KEY                 = C.NFTA_SET_ELEM_KEY
1521	NFTA_SET_ELEM_DATA                = C.NFTA_SET_ELEM_DATA
1522	NFTA_SET_ELEM_FLAGS               = C.NFTA_SET_ELEM_FLAGS
1523	NFTA_SET_ELEM_TIMEOUT             = C.NFTA_SET_ELEM_TIMEOUT
1524	NFTA_SET_ELEM_EXPIRATION          = C.NFTA_SET_ELEM_EXPIRATION
1525	NFTA_SET_ELEM_USERDATA            = C.NFTA_SET_ELEM_USERDATA
1526	NFTA_SET_ELEM_EXPR                = C.NFTA_SET_ELEM_EXPR
1527	NFTA_SET_ELEM_PAD                 = C.NFTA_SET_ELEM_PAD
1528	NFTA_SET_ELEM_OBJREF              = C.NFTA_SET_ELEM_OBJREF
1529	NFTA_SET_ELEM_LIST_UNSPEC         = C.NFTA_SET_ELEM_LIST_UNSPEC
1530	NFTA_SET_ELEM_LIST_TABLE          = C.NFTA_SET_ELEM_LIST_TABLE
1531	NFTA_SET_ELEM_LIST_SET            = C.NFTA_SET_ELEM_LIST_SET
1532	NFTA_SET_ELEM_LIST_ELEMENTS       = C.NFTA_SET_ELEM_LIST_ELEMENTS
1533	NFTA_SET_ELEM_LIST_SET_ID         = C.NFTA_SET_ELEM_LIST_SET_ID
1534	NFT_DATA_VALUE                    = C.NFT_DATA_VALUE
1535	NFT_DATA_VERDICT                  = C.NFT_DATA_VERDICT
1536	NFTA_DATA_UNSPEC                  = C.NFTA_DATA_UNSPEC
1537	NFTA_DATA_VALUE                   = C.NFTA_DATA_VALUE
1538	NFTA_DATA_VERDICT                 = C.NFTA_DATA_VERDICT
1539	NFTA_VERDICT_UNSPEC               = C.NFTA_VERDICT_UNSPEC
1540	NFTA_VERDICT_CODE                 = C.NFTA_VERDICT_CODE
1541	NFTA_VERDICT_CHAIN                = C.NFTA_VERDICT_CHAIN
1542	NFTA_EXPR_UNSPEC                  = C.NFTA_EXPR_UNSPEC
1543	NFTA_EXPR_NAME                    = C.NFTA_EXPR_NAME
1544	NFTA_EXPR_DATA                    = C.NFTA_EXPR_DATA
1545	NFTA_IMMEDIATE_UNSPEC             = C.NFTA_IMMEDIATE_UNSPEC
1546	NFTA_IMMEDIATE_DREG               = C.NFTA_IMMEDIATE_DREG
1547	NFTA_IMMEDIATE_DATA               = C.NFTA_IMMEDIATE_DATA
1548	NFTA_BITWISE_UNSPEC               = C.NFTA_BITWISE_UNSPEC
1549	NFTA_BITWISE_SREG                 = C.NFTA_BITWISE_SREG
1550	NFTA_BITWISE_DREG                 = C.NFTA_BITWISE_DREG
1551	NFTA_BITWISE_LEN                  = C.NFTA_BITWISE_LEN
1552	NFTA_BITWISE_MASK                 = C.NFTA_BITWISE_MASK
1553	NFTA_BITWISE_XOR                  = C.NFTA_BITWISE_XOR
1554	NFT_BYTEORDER_NTOH                = C.NFT_BYTEORDER_NTOH
1555	NFT_BYTEORDER_HTON                = C.NFT_BYTEORDER_HTON
1556	NFTA_BYTEORDER_UNSPEC             = C.NFTA_BYTEORDER_UNSPEC
1557	NFTA_BYTEORDER_SREG               = C.NFTA_BYTEORDER_SREG
1558	NFTA_BYTEORDER_DREG               = C.NFTA_BYTEORDER_DREG
1559	NFTA_BYTEORDER_OP                 = C.NFTA_BYTEORDER_OP
1560	NFTA_BYTEORDER_LEN                = C.NFTA_BYTEORDER_LEN
1561	NFTA_BYTEORDER_SIZE               = C.NFTA_BYTEORDER_SIZE
1562	NFT_CMP_EQ                        = C.NFT_CMP_EQ
1563	NFT_CMP_NEQ                       = C.NFT_CMP_NEQ
1564	NFT_CMP_LT                        = C.NFT_CMP_LT
1565	NFT_CMP_LTE                       = C.NFT_CMP_LTE
1566	NFT_CMP_GT                        = C.NFT_CMP_GT
1567	NFT_CMP_GTE                       = C.NFT_CMP_GTE
1568	NFTA_CMP_UNSPEC                   = C.NFTA_CMP_UNSPEC
1569	NFTA_CMP_SREG                     = C.NFTA_CMP_SREG
1570	NFTA_CMP_OP                       = C.NFTA_CMP_OP
1571	NFTA_CMP_DATA                     = C.NFTA_CMP_DATA
1572	NFT_RANGE_EQ                      = C.NFT_RANGE_EQ
1573	NFT_RANGE_NEQ                     = C.NFT_RANGE_NEQ
1574	NFTA_RANGE_UNSPEC                 = C.NFTA_RANGE_UNSPEC
1575	NFTA_RANGE_SREG                   = C.NFTA_RANGE_SREG
1576	NFTA_RANGE_OP                     = C.NFTA_RANGE_OP
1577	NFTA_RANGE_FROM_DATA              = C.NFTA_RANGE_FROM_DATA
1578	NFTA_RANGE_TO_DATA                = C.NFTA_RANGE_TO_DATA
1579	NFT_LOOKUP_F_INV                  = C.NFT_LOOKUP_F_INV
1580	NFTA_LOOKUP_UNSPEC                = C.NFTA_LOOKUP_UNSPEC
1581	NFTA_LOOKUP_SET                   = C.NFTA_LOOKUP_SET
1582	NFTA_LOOKUP_SREG                  = C.NFTA_LOOKUP_SREG
1583	NFTA_LOOKUP_DREG                  = C.NFTA_LOOKUP_DREG
1584	NFTA_LOOKUP_SET_ID                = C.NFTA_LOOKUP_SET_ID
1585	NFTA_LOOKUP_FLAGS                 = C.NFTA_LOOKUP_FLAGS
1586	NFT_DYNSET_OP_ADD                 = C.NFT_DYNSET_OP_ADD
1587	NFT_DYNSET_OP_UPDATE              = C.NFT_DYNSET_OP_UPDATE
1588	NFT_DYNSET_F_INV                  = C.NFT_DYNSET_F_INV
1589	NFTA_DYNSET_UNSPEC                = C.NFTA_DYNSET_UNSPEC
1590	NFTA_DYNSET_SET_NAME              = C.NFTA_DYNSET_SET_NAME
1591	NFTA_DYNSET_SET_ID                = C.NFTA_DYNSET_SET_ID
1592	NFTA_DYNSET_OP                    = C.NFTA_DYNSET_OP
1593	NFTA_DYNSET_SREG_KEY              = C.NFTA_DYNSET_SREG_KEY
1594	NFTA_DYNSET_SREG_DATA             = C.NFTA_DYNSET_SREG_DATA
1595	NFTA_DYNSET_TIMEOUT               = C.NFTA_DYNSET_TIMEOUT
1596	NFTA_DYNSET_EXPR                  = C.NFTA_DYNSET_EXPR
1597	NFTA_DYNSET_PAD                   = C.NFTA_DYNSET_PAD
1598	NFTA_DYNSET_FLAGS                 = C.NFTA_DYNSET_FLAGS
1599	NFT_PAYLOAD_LL_HEADER             = C.NFT_PAYLOAD_LL_HEADER
1600	NFT_PAYLOAD_NETWORK_HEADER        = C.NFT_PAYLOAD_NETWORK_HEADER
1601	NFT_PAYLOAD_TRANSPORT_HEADER      = C.NFT_PAYLOAD_TRANSPORT_HEADER
1602	NFT_PAYLOAD_CSUM_NONE             = C.NFT_PAYLOAD_CSUM_NONE
1603	NFT_PAYLOAD_CSUM_INET             = C.NFT_PAYLOAD_CSUM_INET
1604	NFT_PAYLOAD_L4CSUM_PSEUDOHDR      = C.NFT_PAYLOAD_L4CSUM_PSEUDOHDR
1605	NFTA_PAYLOAD_UNSPEC               = C.NFTA_PAYLOAD_UNSPEC
1606	NFTA_PAYLOAD_DREG                 = C.NFTA_PAYLOAD_DREG
1607	NFTA_PAYLOAD_BASE                 = C.NFTA_PAYLOAD_BASE
1608	NFTA_PAYLOAD_OFFSET               = C.NFTA_PAYLOAD_OFFSET
1609	NFTA_PAYLOAD_LEN                  = C.NFTA_PAYLOAD_LEN
1610	NFTA_PAYLOAD_SREG                 = C.NFTA_PAYLOAD_SREG
1611	NFTA_PAYLOAD_CSUM_TYPE            = C.NFTA_PAYLOAD_CSUM_TYPE
1612	NFTA_PAYLOAD_CSUM_OFFSET          = C.NFTA_PAYLOAD_CSUM_OFFSET
1613	NFTA_PAYLOAD_CSUM_FLAGS           = C.NFTA_PAYLOAD_CSUM_FLAGS
1614	NFT_EXTHDR_F_PRESENT              = C.NFT_EXTHDR_F_PRESENT
1615	NFT_EXTHDR_OP_IPV6                = C.NFT_EXTHDR_OP_IPV6
1616	NFT_EXTHDR_OP_TCPOPT              = C.NFT_EXTHDR_OP_TCPOPT
1617	NFTA_EXTHDR_UNSPEC                = C.NFTA_EXTHDR_UNSPEC
1618	NFTA_EXTHDR_DREG                  = C.NFTA_EXTHDR_DREG
1619	NFTA_EXTHDR_TYPE                  = C.NFTA_EXTHDR_TYPE
1620	NFTA_EXTHDR_OFFSET                = C.NFTA_EXTHDR_OFFSET
1621	NFTA_EXTHDR_LEN                   = C.NFTA_EXTHDR_LEN
1622	NFTA_EXTHDR_FLAGS                 = C.NFTA_EXTHDR_FLAGS
1623	NFTA_EXTHDR_OP                    = C.NFTA_EXTHDR_OP
1624	NFTA_EXTHDR_SREG                  = C.NFTA_EXTHDR_SREG
1625	NFT_META_LEN                      = C.NFT_META_LEN
1626	NFT_META_PROTOCOL                 = C.NFT_META_PROTOCOL
1627	NFT_META_PRIORITY                 = C.NFT_META_PRIORITY
1628	NFT_META_MARK                     = C.NFT_META_MARK
1629	NFT_META_IIF                      = C.NFT_META_IIF
1630	NFT_META_OIF                      = C.NFT_META_OIF
1631	NFT_META_IIFNAME                  = C.NFT_META_IIFNAME
1632	NFT_META_OIFNAME                  = C.NFT_META_OIFNAME
1633	NFT_META_IIFTYPE                  = C.NFT_META_IIFTYPE
1634	NFT_META_OIFTYPE                  = C.NFT_META_OIFTYPE
1635	NFT_META_SKUID                    = C.NFT_META_SKUID
1636	NFT_META_SKGID                    = C.NFT_META_SKGID
1637	NFT_META_NFTRACE                  = C.NFT_META_NFTRACE
1638	NFT_META_RTCLASSID                = C.NFT_META_RTCLASSID
1639	NFT_META_SECMARK                  = C.NFT_META_SECMARK
1640	NFT_META_NFPROTO                  = C.NFT_META_NFPROTO
1641	NFT_META_L4PROTO                  = C.NFT_META_L4PROTO
1642	NFT_META_BRI_IIFNAME              = C.NFT_META_BRI_IIFNAME
1643	NFT_META_BRI_OIFNAME              = C.NFT_META_BRI_OIFNAME
1644	NFT_META_PKTTYPE                  = C.NFT_META_PKTTYPE
1645	NFT_META_CPU                      = C.NFT_META_CPU
1646	NFT_META_IIFGROUP                 = C.NFT_META_IIFGROUP
1647	NFT_META_OIFGROUP                 = C.NFT_META_OIFGROUP
1648	NFT_META_CGROUP                   = C.NFT_META_CGROUP
1649	NFT_META_PRANDOM                  = C.NFT_META_PRANDOM
1650	NFT_RT_CLASSID                    = C.NFT_RT_CLASSID
1651	NFT_RT_NEXTHOP4                   = C.NFT_RT_NEXTHOP4
1652	NFT_RT_NEXTHOP6                   = C.NFT_RT_NEXTHOP6
1653	NFT_RT_TCPMSS                     = C.NFT_RT_TCPMSS
1654	NFT_HASH_JENKINS                  = C.NFT_HASH_JENKINS
1655	NFT_HASH_SYM                      = C.NFT_HASH_SYM
1656	NFTA_HASH_UNSPEC                  = C.NFTA_HASH_UNSPEC
1657	NFTA_HASH_SREG                    = C.NFTA_HASH_SREG
1658	NFTA_HASH_DREG                    = C.NFTA_HASH_DREG
1659	NFTA_HASH_LEN                     = C.NFTA_HASH_LEN
1660	NFTA_HASH_MODULUS                 = C.NFTA_HASH_MODULUS
1661	NFTA_HASH_SEED                    = C.NFTA_HASH_SEED
1662	NFTA_HASH_OFFSET                  = C.NFTA_HASH_OFFSET
1663	NFTA_HASH_TYPE                    = C.NFTA_HASH_TYPE
1664	NFTA_META_UNSPEC                  = C.NFTA_META_UNSPEC
1665	NFTA_META_DREG                    = C.NFTA_META_DREG
1666	NFTA_META_KEY                     = C.NFTA_META_KEY
1667	NFTA_META_SREG                    = C.NFTA_META_SREG
1668	NFTA_RT_UNSPEC                    = C.NFTA_RT_UNSPEC
1669	NFTA_RT_DREG                      = C.NFTA_RT_DREG
1670	NFTA_RT_KEY                       = C.NFTA_RT_KEY
1671	NFT_CT_STATE                      = C.NFT_CT_STATE
1672	NFT_CT_DIRECTION                  = C.NFT_CT_DIRECTION
1673	NFT_CT_STATUS                     = C.NFT_CT_STATUS
1674	NFT_CT_MARK                       = C.NFT_CT_MARK
1675	NFT_CT_SECMARK                    = C.NFT_CT_SECMARK
1676	NFT_CT_EXPIRATION                 = C.NFT_CT_EXPIRATION
1677	NFT_CT_HELPER                     = C.NFT_CT_HELPER
1678	NFT_CT_L3PROTOCOL                 = C.NFT_CT_L3PROTOCOL
1679	NFT_CT_SRC                        = C.NFT_CT_SRC
1680	NFT_CT_DST                        = C.NFT_CT_DST
1681	NFT_CT_PROTOCOL                   = C.NFT_CT_PROTOCOL
1682	NFT_CT_PROTO_SRC                  = C.NFT_CT_PROTO_SRC
1683	NFT_CT_PROTO_DST                  = C.NFT_CT_PROTO_DST
1684	NFT_CT_LABELS                     = C.NFT_CT_LABELS
1685	NFT_CT_PKTS                       = C.NFT_CT_PKTS
1686	NFT_CT_BYTES                      = C.NFT_CT_BYTES
1687	NFT_CT_AVGPKT                     = C.NFT_CT_AVGPKT
1688	NFT_CT_ZONE                       = C.NFT_CT_ZONE
1689	NFT_CT_EVENTMASK                  = C.NFT_CT_EVENTMASK
1690	NFTA_CT_UNSPEC                    = C.NFTA_CT_UNSPEC
1691	NFTA_CT_DREG                      = C.NFTA_CT_DREG
1692	NFTA_CT_KEY                       = C.NFTA_CT_KEY
1693	NFTA_CT_DIRECTION                 = C.NFTA_CT_DIRECTION
1694	NFTA_CT_SREG                      = C.NFTA_CT_SREG
1695	NFT_LIMIT_PKTS                    = C.NFT_LIMIT_PKTS
1696	NFT_LIMIT_PKT_BYTES               = C.NFT_LIMIT_PKT_BYTES
1697	NFT_LIMIT_F_INV                   = C.NFT_LIMIT_F_INV
1698	NFTA_LIMIT_UNSPEC                 = C.NFTA_LIMIT_UNSPEC
1699	NFTA_LIMIT_RATE                   = C.NFTA_LIMIT_RATE
1700	NFTA_LIMIT_UNIT                   = C.NFTA_LIMIT_UNIT
1701	NFTA_LIMIT_BURST                  = C.NFTA_LIMIT_BURST
1702	NFTA_LIMIT_TYPE                   = C.NFTA_LIMIT_TYPE
1703	NFTA_LIMIT_FLAGS                  = C.NFTA_LIMIT_FLAGS
1704	NFTA_LIMIT_PAD                    = C.NFTA_LIMIT_PAD
1705	NFTA_COUNTER_UNSPEC               = C.NFTA_COUNTER_UNSPEC
1706	NFTA_COUNTER_BYTES                = C.NFTA_COUNTER_BYTES
1707	NFTA_COUNTER_PACKETS              = C.NFTA_COUNTER_PACKETS
1708	NFTA_COUNTER_PAD                  = C.NFTA_COUNTER_PAD
1709	NFTA_LOG_UNSPEC                   = C.NFTA_LOG_UNSPEC
1710	NFTA_LOG_GROUP                    = C.NFTA_LOG_GROUP
1711	NFTA_LOG_PREFIX                   = C.NFTA_LOG_PREFIX
1712	NFTA_LOG_SNAPLEN                  = C.NFTA_LOG_SNAPLEN
1713	NFTA_LOG_QTHRESHOLD               = C.NFTA_LOG_QTHRESHOLD
1714	NFTA_LOG_LEVEL                    = C.NFTA_LOG_LEVEL
1715	NFTA_LOG_FLAGS                    = C.NFTA_LOG_FLAGS
1716	NFTA_QUEUE_UNSPEC                 = C.NFTA_QUEUE_UNSPEC
1717	NFTA_QUEUE_NUM                    = C.NFTA_QUEUE_NUM
1718	NFTA_QUEUE_TOTAL                  = C.NFTA_QUEUE_TOTAL
1719	NFTA_QUEUE_FLAGS                  = C.NFTA_QUEUE_FLAGS
1720	NFTA_QUEUE_SREG_QNUM              = C.NFTA_QUEUE_SREG_QNUM
1721	NFT_QUOTA_F_INV                   = C.NFT_QUOTA_F_INV
1722	NFT_QUOTA_F_DEPLETED              = C.NFT_QUOTA_F_DEPLETED
1723	NFTA_QUOTA_UNSPEC                 = C.NFTA_QUOTA_UNSPEC
1724	NFTA_QUOTA_BYTES                  = C.NFTA_QUOTA_BYTES
1725	NFTA_QUOTA_FLAGS                  = C.NFTA_QUOTA_FLAGS
1726	NFTA_QUOTA_PAD                    = C.NFTA_QUOTA_PAD
1727	NFTA_QUOTA_CONSUMED               = C.NFTA_QUOTA_CONSUMED
1728	NFT_REJECT_ICMP_UNREACH           = C.NFT_REJECT_ICMP_UNREACH
1729	NFT_REJECT_TCP_RST                = C.NFT_REJECT_TCP_RST
1730	NFT_REJECT_ICMPX_UNREACH          = C.NFT_REJECT_ICMPX_UNREACH
1731	NFT_REJECT_ICMPX_NO_ROUTE         = C.NFT_REJECT_ICMPX_NO_ROUTE
1732	NFT_REJECT_ICMPX_PORT_UNREACH     = C.NFT_REJECT_ICMPX_PORT_UNREACH
1733	NFT_REJECT_ICMPX_HOST_UNREACH     = C.NFT_REJECT_ICMPX_HOST_UNREACH
1734	NFT_REJECT_ICMPX_ADMIN_PROHIBITED = C.NFT_REJECT_ICMPX_ADMIN_PROHIBITED
1735	NFTA_REJECT_UNSPEC                = C.NFTA_REJECT_UNSPEC
1736	NFTA_REJECT_TYPE                  = C.NFTA_REJECT_TYPE
1737	NFTA_REJECT_ICMP_CODE             = C.NFTA_REJECT_ICMP_CODE
1738	NFT_NAT_SNAT                      = C.NFT_NAT_SNAT
1739	NFT_NAT_DNAT                      = C.NFT_NAT_DNAT
1740	NFTA_NAT_UNSPEC                   = C.NFTA_NAT_UNSPEC
1741	NFTA_NAT_TYPE                     = C.NFTA_NAT_TYPE
1742	NFTA_NAT_FAMILY                   = C.NFTA_NAT_FAMILY
1743	NFTA_NAT_REG_ADDR_MIN             = C.NFTA_NAT_REG_ADDR_MIN
1744	NFTA_NAT_REG_ADDR_MAX             = C.NFTA_NAT_REG_ADDR_MAX
1745	NFTA_NAT_REG_PROTO_MIN            = C.NFTA_NAT_REG_PROTO_MIN
1746	NFTA_NAT_REG_PROTO_MAX            = C.NFTA_NAT_REG_PROTO_MAX
1747	NFTA_NAT_FLAGS                    = C.NFTA_NAT_FLAGS
1748	NFTA_MASQ_UNSPEC                  = C.NFTA_MASQ_UNSPEC
1749	NFTA_MASQ_FLAGS                   = C.NFTA_MASQ_FLAGS
1750	NFTA_MASQ_REG_PROTO_MIN           = C.NFTA_MASQ_REG_PROTO_MIN
1751	NFTA_MASQ_REG_PROTO_MAX           = C.NFTA_MASQ_REG_PROTO_MAX
1752	NFTA_REDIR_UNSPEC                 = C.NFTA_REDIR_UNSPEC
1753	NFTA_REDIR_REG_PROTO_MIN          = C.NFTA_REDIR_REG_PROTO_MIN
1754	NFTA_REDIR_REG_PROTO_MAX          = C.NFTA_REDIR_REG_PROTO_MAX
1755	NFTA_REDIR_FLAGS                  = C.NFTA_REDIR_FLAGS
1756	NFTA_DUP_UNSPEC                   = C.NFTA_DUP_UNSPEC
1757	NFTA_DUP_SREG_ADDR                = C.NFTA_DUP_SREG_ADDR
1758	NFTA_DUP_SREG_DEV                 = C.NFTA_DUP_SREG_DEV
1759	NFTA_FWD_UNSPEC                   = C.NFTA_FWD_UNSPEC
1760	NFTA_FWD_SREG_DEV                 = C.NFTA_FWD_SREG_DEV
1761	NFTA_OBJREF_UNSPEC                = C.NFTA_OBJREF_UNSPEC
1762	NFTA_OBJREF_IMM_TYPE              = C.NFTA_OBJREF_IMM_TYPE
1763	NFTA_OBJREF_IMM_NAME              = C.NFTA_OBJREF_IMM_NAME
1764	NFTA_OBJREF_SET_SREG              = C.NFTA_OBJREF_SET_SREG
1765	NFTA_OBJREF_SET_NAME              = C.NFTA_OBJREF_SET_NAME
1766	NFTA_OBJREF_SET_ID                = C.NFTA_OBJREF_SET_ID
1767	NFTA_GEN_UNSPEC                   = C.NFTA_GEN_UNSPEC
1768	NFTA_GEN_ID                       = C.NFTA_GEN_ID
1769	NFTA_GEN_PROC_PID                 = C.NFTA_GEN_PROC_PID
1770	NFTA_GEN_PROC_NAME                = C.NFTA_GEN_PROC_NAME
1771	NFTA_FIB_UNSPEC                   = C.NFTA_FIB_UNSPEC
1772	NFTA_FIB_DREG                     = C.NFTA_FIB_DREG
1773	NFTA_FIB_RESULT                   = C.NFTA_FIB_RESULT
1774	NFTA_FIB_FLAGS                    = C.NFTA_FIB_FLAGS
1775	NFT_FIB_RESULT_UNSPEC             = C.NFT_FIB_RESULT_UNSPEC
1776	NFT_FIB_RESULT_OIF                = C.NFT_FIB_RESULT_OIF
1777	NFT_FIB_RESULT_OIFNAME            = C.NFT_FIB_RESULT_OIFNAME
1778	NFT_FIB_RESULT_ADDRTYPE           = C.NFT_FIB_RESULT_ADDRTYPE
1779	NFTA_FIB_F_SADDR                  = C.NFTA_FIB_F_SADDR
1780	NFTA_FIB_F_DADDR                  = C.NFTA_FIB_F_DADDR
1781	NFTA_FIB_F_MARK                   = C.NFTA_FIB_F_MARK
1782	NFTA_FIB_F_IIF                    = C.NFTA_FIB_F_IIF
1783	NFTA_FIB_F_OIF                    = C.NFTA_FIB_F_OIF
1784	NFTA_FIB_F_PRESENT                = C.NFTA_FIB_F_PRESENT
1785	NFTA_CT_HELPER_UNSPEC             = C.NFTA_CT_HELPER_UNSPEC
1786	NFTA_CT_HELPER_NAME               = C.NFTA_CT_HELPER_NAME
1787	NFTA_CT_HELPER_L3PROTO            = C.NFTA_CT_HELPER_L3PROTO
1788	NFTA_CT_HELPER_L4PROTO            = C.NFTA_CT_HELPER_L4PROTO
1789	NFTA_OBJ_UNSPEC                   = C.NFTA_OBJ_UNSPEC
1790	NFTA_OBJ_TABLE                    = C.NFTA_OBJ_TABLE
1791	NFTA_OBJ_NAME                     = C.NFTA_OBJ_NAME
1792	NFTA_OBJ_TYPE                     = C.NFTA_OBJ_TYPE
1793	NFTA_OBJ_DATA                     = C.NFTA_OBJ_DATA
1794	NFTA_OBJ_USE                      = C.NFTA_OBJ_USE
1795	NFTA_TRACE_UNSPEC                 = C.NFTA_TRACE_UNSPEC
1796	NFTA_TRACE_TABLE                  = C.NFTA_TRACE_TABLE
1797	NFTA_TRACE_CHAIN                  = C.NFTA_TRACE_CHAIN
1798	NFTA_TRACE_RULE_HANDLE            = C.NFTA_TRACE_RULE_HANDLE
1799	NFTA_TRACE_TYPE                   = C.NFTA_TRACE_TYPE
1800	NFTA_TRACE_VERDICT                = C.NFTA_TRACE_VERDICT
1801	NFTA_TRACE_ID                     = C.NFTA_TRACE_ID
1802	NFTA_TRACE_LL_HEADER              = C.NFTA_TRACE_LL_HEADER
1803	NFTA_TRACE_NETWORK_HEADER         = C.NFTA_TRACE_NETWORK_HEADER
1804	NFTA_TRACE_TRANSPORT_HEADER       = C.NFTA_TRACE_TRANSPORT_HEADER
1805	NFTA_TRACE_IIF                    = C.NFTA_TRACE_IIF
1806	NFTA_TRACE_IIFTYPE                = C.NFTA_TRACE_IIFTYPE
1807	NFTA_TRACE_OIF                    = C.NFTA_TRACE_OIF
1808	NFTA_TRACE_OIFTYPE                = C.NFTA_TRACE_OIFTYPE
1809	NFTA_TRACE_MARK                   = C.NFTA_TRACE_MARK
1810	NFTA_TRACE_NFPROTO                = C.NFTA_TRACE_NFPROTO
1811	NFTA_TRACE_POLICY                 = C.NFTA_TRACE_POLICY
1812	NFTA_TRACE_PAD                    = C.NFTA_TRACE_PAD
1813	NFT_TRACETYPE_UNSPEC              = C.NFT_TRACETYPE_UNSPEC
1814	NFT_TRACETYPE_POLICY              = C.NFT_TRACETYPE_POLICY
1815	NFT_TRACETYPE_RETURN              = C.NFT_TRACETYPE_RETURN
1816	NFT_TRACETYPE_RULE                = C.NFT_TRACETYPE_RULE
1817	NFTA_NG_UNSPEC                    = C.NFTA_NG_UNSPEC
1818	NFTA_NG_DREG                      = C.NFTA_NG_DREG
1819	NFTA_NG_MODULUS                   = C.NFTA_NG_MODULUS
1820	NFTA_NG_TYPE                      = C.NFTA_NG_TYPE
1821	NFTA_NG_OFFSET                    = C.NFTA_NG_OFFSET
1822	NFT_NG_INCREMENTAL                = C.NFT_NG_INCREMENTAL
1823	NFT_NG_RANDOM                     = C.NFT_NG_RANDOM
1824)
1825
1826// netfilter nf_tables_compat
1827// generated using:
1828// perl -nlE '/^\s*(NFT\w+)/ && say "$1 = C.$1"' /usr/include/linux/netfilter/nf_tables_compat.h
1829const (
1830	NFTA_TARGET_UNSPEC = C.NFTA_TARGET_UNSPEC
1831	NFTA_TARGET_NAME   = C.NFTA_TARGET_NAME
1832	NFTA_TARGET_REV    = C.NFTA_TARGET_REV
1833	NFTA_TARGET_INFO   = C.NFTA_TARGET_INFO
1834	NFTA_MATCH_UNSPEC  = C.NFTA_MATCH_UNSPEC
1835	NFTA_MATCH_NAME    = C.NFTA_MATCH_NAME
1836	NFTA_MATCH_REV     = C.NFTA_MATCH_REV
1837	NFTA_MATCH_INFO    = C.NFTA_MATCH_INFO
1838	NFTA_COMPAT_UNSPEC = C.NFTA_COMPAT_UNSPEC
1839	NFTA_COMPAT_NAME   = C.NFTA_COMPAT_NAME
1840	NFTA_COMPAT_REV    = C.NFTA_COMPAT_REV
1841	NFTA_COMPAT_TYPE   = C.NFTA_COMPAT_TYPE
1842)
1843
1844type RTCTime C.struct_rtc_time
1845
1846type RTCWkAlrm C.struct_rtc_wkalrm
1847
1848type RTCPLLInfo C.struct_rtc_pll_info
1849
1850// BLKPG ioctl:
1851
1852type BlkpgIoctlArg C.struct_blkpg_ioctl_arg
1853
1854type BlkpgPartition C.struct_my_blkpg_partition
1855
1856const (
1857	BLKPG                  = C.BLKPG
1858	BLKPG_ADD_PARTITION    = C.BLKPG_ADD_PARTITION
1859	BLKPG_DEL_PARTITION    = C.BLKPG_DEL_PARTITION
1860	BLKPG_RESIZE_PARTITION = C.BLKPG_RESIZE_PARTITION
1861)
1862
1863// netlink namespace
1864// generated from
1865// perl -nlE '/^\s*(NETNSA\w+)/ && say "$1 = C.$1"' /usr/include/linux/net_namespace.h
1866const (
1867	NETNSA_NONE = C.NETNSA_NONE
1868	NETNSA_NSID = C.NETNSA_NSID
1869	NETNSA_PID  = C.NETNSA_PID
1870	NETNSA_FD   = C.NETNSA_FD
1871)
1872
1873// AF_XDP:
1874
1875type XDPRingOffset C.struct_xdp_ring_offset
1876
1877type XDPMmapOffsets C.struct_xdp_mmap_offsets
1878
1879type XDPUmemReg C.struct_xdp_umem_reg
1880
1881type XDPStatistics C.struct_xdp_statistics
1882
1883type XDPDesc C.struct_xdp_desc
1884
1885// NCSI generic netlink:
1886
1887const (
1888	NCSI_CMD_UNSPEC                 = C.NCSI_CMD_UNSPEC
1889	NCSI_CMD_PKG_INFO               = C.NCSI_CMD_PKG_INFO
1890	NCSI_CMD_SET_INTERFACE          = C.NCSI_CMD_SET_INTERFACE
1891	NCSI_CMD_CLEAR_INTERFACE        = C.NCSI_CMD_CLEAR_INTERFACE
1892	NCSI_ATTR_UNSPEC                = C.NCSI_ATTR_UNSPEC
1893	NCSI_ATTR_IFINDEX               = C.NCSI_ATTR_IFINDEX
1894	NCSI_ATTR_PACKAGE_LIST          = C.NCSI_ATTR_PACKAGE_LIST
1895	NCSI_ATTR_PACKAGE_ID            = C.NCSI_ATTR_PACKAGE_ID
1896	NCSI_ATTR_CHANNEL_ID            = C.NCSI_ATTR_CHANNEL_ID
1897	NCSI_PKG_ATTR_UNSPEC            = C.NCSI_PKG_ATTR_UNSPEC
1898	NCSI_PKG_ATTR                   = C.NCSI_PKG_ATTR
1899	NCSI_PKG_ATTR_ID                = C.NCSI_PKG_ATTR_ID
1900	NCSI_PKG_ATTR_FORCED            = C.NCSI_PKG_ATTR_FORCED
1901	NCSI_PKG_ATTR_CHANNEL_LIST      = C.NCSI_PKG_ATTR_CHANNEL_LIST
1902	NCSI_CHANNEL_ATTR_UNSPEC        = C.NCSI_CHANNEL_ATTR_UNSPEC
1903	NCSI_CHANNEL_ATTR               = C.NCSI_CHANNEL_ATTR
1904	NCSI_CHANNEL_ATTR_ID            = C.NCSI_CHANNEL_ATTR_ID
1905	NCSI_CHANNEL_ATTR_VERSION_MAJOR = C.NCSI_CHANNEL_ATTR_VERSION_MAJOR
1906	NCSI_CHANNEL_ATTR_VERSION_MINOR = C.NCSI_CHANNEL_ATTR_VERSION_MINOR
1907	NCSI_CHANNEL_ATTR_VERSION_STR   = C.NCSI_CHANNEL_ATTR_VERSION_STR
1908	NCSI_CHANNEL_ATTR_LINK_STATE    = C.NCSI_CHANNEL_ATTR_LINK_STATE
1909	NCSI_CHANNEL_ATTR_ACTIVE        = C.NCSI_CHANNEL_ATTR_ACTIVE
1910	NCSI_CHANNEL_ATTR_FORCED        = C.NCSI_CHANNEL_ATTR_FORCED
1911	NCSI_CHANNEL_ATTR_VLAN_LIST     = C.NCSI_CHANNEL_ATTR_VLAN_LIST
1912	NCSI_CHANNEL_ATTR_VLAN_ID       = C.NCSI_CHANNEL_ATTR_VLAN_ID
1913)
1914
1915// Timestamping
1916
1917type ScmTimestamping C.struct_scm_timestamping
1918
1919const (
1920	SOF_TIMESTAMPING_TX_HARDWARE  = C.SOF_TIMESTAMPING_TX_HARDWARE
1921	SOF_TIMESTAMPING_TX_SOFTWARE  = C.SOF_TIMESTAMPING_TX_SOFTWARE
1922	SOF_TIMESTAMPING_RX_HARDWARE  = C.SOF_TIMESTAMPING_RX_HARDWARE
1923	SOF_TIMESTAMPING_RX_SOFTWARE  = C.SOF_TIMESTAMPING_RX_SOFTWARE
1924	SOF_TIMESTAMPING_SOFTWARE     = C.SOF_TIMESTAMPING_SOFTWARE
1925	SOF_TIMESTAMPING_SYS_HARDWARE = C.SOF_TIMESTAMPING_SYS_HARDWARE
1926	SOF_TIMESTAMPING_RAW_HARDWARE = C.SOF_TIMESTAMPING_RAW_HARDWARE
1927	SOF_TIMESTAMPING_OPT_ID       = C.SOF_TIMESTAMPING_OPT_ID
1928	SOF_TIMESTAMPING_TX_SCHED     = C.SOF_TIMESTAMPING_TX_SCHED
1929	SOF_TIMESTAMPING_TX_ACK       = C.SOF_TIMESTAMPING_TX_ACK
1930	SOF_TIMESTAMPING_OPT_CMSG     = C.SOF_TIMESTAMPING_OPT_CMSG
1931	SOF_TIMESTAMPING_OPT_TSONLY   = C.SOF_TIMESTAMPING_OPT_TSONLY
1932	SOF_TIMESTAMPING_OPT_STATS    = C.SOF_TIMESTAMPING_OPT_STATS
1933	SOF_TIMESTAMPING_OPT_PKTINFO  = C.SOF_TIMESTAMPING_OPT_PKTINFO
1934	SOF_TIMESTAMPING_OPT_TX_SWHW  = C.SOF_TIMESTAMPING_OPT_TX_SWHW
1935
1936	SOF_TIMESTAMPING_LAST = C.SOF_TIMESTAMPING_LAST
1937	SOF_TIMESTAMPING_MASK = C.SOF_TIMESTAMPING_MASK
1938
1939	SCM_TSTAMP_SND   = C.SCM_TSTAMP_SND
1940	SCM_TSTAMP_SCHED = C.SCM_TSTAMP_SCHED
1941	SCM_TSTAMP_ACK   = C.SCM_TSTAMP_ACK
1942)
1943
1944// Socket error queue
1945
1946type SockExtendedErr C.struct_sock_extended_err
1947
1948// Fanotify
1949
1950type FanotifyEventMetadata C.struct_fanotify_event_metadata
1951
1952type FanotifyResponse C.struct_fanotify_response
1953
1954// Crypto user configuration API.
1955
1956const (
1957	CRYPTO_MSG_BASE      = C.CRYPTO_MSG_BASE
1958	CRYPTO_MSG_NEWALG    = C.CRYPTO_MSG_NEWALG
1959	CRYPTO_MSG_DELALG    = C.CRYPTO_MSG_DELALG
1960	CRYPTO_MSG_UPDATEALG = C.CRYPTO_MSG_UPDATEALG
1961	CRYPTO_MSG_GETALG    = C.CRYPTO_MSG_GETALG
1962	CRYPTO_MSG_DELRNG    = C.CRYPTO_MSG_DELRNG
1963	CRYPTO_MSG_GETSTAT   = C.CRYPTO_MSG_GETSTAT
1964)
1965
1966const (
1967	CRYPTOCFGA_UNSPEC           = C.CRYPTOCFGA_UNSPEC
1968	CRYPTOCFGA_PRIORITY_VAL     = C.CRYPTOCFGA_PRIORITY_VAL
1969	CRYPTOCFGA_REPORT_LARVAL    = C.CRYPTOCFGA_REPORT_LARVAL
1970	CRYPTOCFGA_REPORT_HASH      = C.CRYPTOCFGA_REPORT_HASH
1971	CRYPTOCFGA_REPORT_BLKCIPHER = C.CRYPTOCFGA_REPORT_BLKCIPHER
1972	CRYPTOCFGA_REPORT_AEAD      = C.CRYPTOCFGA_REPORT_AEAD
1973	CRYPTOCFGA_REPORT_COMPRESS  = C.CRYPTOCFGA_REPORT_COMPRESS
1974	CRYPTOCFGA_REPORT_RNG       = C.CRYPTOCFGA_REPORT_RNG
1975	CRYPTOCFGA_REPORT_CIPHER    = C.CRYPTOCFGA_REPORT_CIPHER
1976	CRYPTOCFGA_REPORT_AKCIPHER  = C.CRYPTOCFGA_REPORT_AKCIPHER
1977	CRYPTOCFGA_REPORT_KPP       = C.CRYPTOCFGA_REPORT_KPP
1978	CRYPTOCFGA_REPORT_ACOMP     = C.CRYPTOCFGA_REPORT_ACOMP
1979	CRYPTOCFGA_STAT_LARVAL      = C.CRYPTOCFGA_STAT_LARVAL
1980	CRYPTOCFGA_STAT_HASH        = C.CRYPTOCFGA_STAT_HASH
1981	CRYPTOCFGA_STAT_BLKCIPHER   = C.CRYPTOCFGA_STAT_BLKCIPHER
1982	CRYPTOCFGA_STAT_AEAD        = C.CRYPTOCFGA_STAT_AEAD
1983	CRYPTOCFGA_STAT_COMPRESS    = C.CRYPTOCFGA_STAT_COMPRESS
1984	CRYPTOCFGA_STAT_RNG         = C.CRYPTOCFGA_STAT_RNG
1985	CRYPTOCFGA_STAT_CIPHER      = C.CRYPTOCFGA_STAT_CIPHER
1986	CRYPTOCFGA_STAT_AKCIPHER    = C.CRYPTOCFGA_STAT_AKCIPHER
1987	CRYPTOCFGA_STAT_KPP         = C.CRYPTOCFGA_STAT_KPP
1988	CRYPTOCFGA_STAT_ACOMP       = C.CRYPTOCFGA_STAT_ACOMP
1989)
1990
1991type CryptoUserAlg C.struct_crypto_user_alg
1992
1993type CryptoStatAEAD C.struct_crypto_stat_aead
1994
1995type CryptoStatAKCipher C.struct_crypto_stat_akcipher
1996
1997type CryptoStatCipher C.struct_crypto_stat_cipher
1998
1999type CryptoStatCompress C.struct_crypto_stat_compress
2000
2001type CryptoStatHash C.struct_crypto_stat_hash
2002
2003type CryptoStatKPP C.struct_crypto_stat_kpp
2004
2005type CryptoStatRNG C.struct_crypto_stat_rng
2006
2007type CryptoStatLarval C.struct_crypto_stat_larval
2008
2009type CryptoReportLarval C.struct_crypto_report_larval
2010
2011type CryptoReportHash C.struct_crypto_report_hash
2012
2013type CryptoReportCipher C.struct_crypto_report_cipher
2014
2015type CryptoReportBlkCipher C.struct_crypto_report_blkcipher
2016
2017type CryptoReportAEAD C.struct_crypto_report_aead
2018
2019type CryptoReportComp C.struct_crypto_report_comp
2020
2021type CryptoReportRNG C.struct_crypto_report_rng
2022
2023type CryptoReportAKCipher C.struct_crypto_report_akcipher
2024
2025type CryptoReportKPP C.struct_crypto_report_kpp
2026
2027type CryptoReportAcomp C.struct_crypto_report_acomp
2028
2029// generated by:
2030// perl -nlE '/^\s*((TCP_)?BPF_\w+)/ && say "$1 = C.$1"' include/uapi/linux/bpf.h
2031const (
2032	BPF_REG_0                               = C.BPF_REG_0
2033	BPF_REG_1                               = C.BPF_REG_1
2034	BPF_REG_2                               = C.BPF_REG_2
2035	BPF_REG_3                               = C.BPF_REG_3
2036	BPF_REG_4                               = C.BPF_REG_4
2037	BPF_REG_5                               = C.BPF_REG_5
2038	BPF_REG_6                               = C.BPF_REG_6
2039	BPF_REG_7                               = C.BPF_REG_7
2040	BPF_REG_8                               = C.BPF_REG_8
2041	BPF_REG_9                               = C.BPF_REG_9
2042	BPF_REG_10                              = C.BPF_REG_10
2043	BPF_MAP_CREATE                          = C.BPF_MAP_CREATE
2044	BPF_MAP_LOOKUP_ELEM                     = C.BPF_MAP_LOOKUP_ELEM
2045	BPF_MAP_UPDATE_ELEM                     = C.BPF_MAP_UPDATE_ELEM
2046	BPF_MAP_DELETE_ELEM                     = C.BPF_MAP_DELETE_ELEM
2047	BPF_MAP_GET_NEXT_KEY                    = C.BPF_MAP_GET_NEXT_KEY
2048	BPF_PROG_LOAD                           = C.BPF_PROG_LOAD
2049	BPF_OBJ_PIN                             = C.BPF_OBJ_PIN
2050	BPF_OBJ_GET                             = C.BPF_OBJ_GET
2051	BPF_PROG_ATTACH                         = C.BPF_PROG_ATTACH
2052	BPF_PROG_DETACH                         = C.BPF_PROG_DETACH
2053	BPF_PROG_TEST_RUN                       = C.BPF_PROG_TEST_RUN
2054	BPF_PROG_GET_NEXT_ID                    = C.BPF_PROG_GET_NEXT_ID
2055	BPF_MAP_GET_NEXT_ID                     = C.BPF_MAP_GET_NEXT_ID
2056	BPF_PROG_GET_FD_BY_ID                   = C.BPF_PROG_GET_FD_BY_ID
2057	BPF_MAP_GET_FD_BY_ID                    = C.BPF_MAP_GET_FD_BY_ID
2058	BPF_OBJ_GET_INFO_BY_FD                  = C.BPF_OBJ_GET_INFO_BY_FD
2059	BPF_PROG_QUERY                          = C.BPF_PROG_QUERY
2060	BPF_RAW_TRACEPOINT_OPEN                 = C.BPF_RAW_TRACEPOINT_OPEN
2061	BPF_BTF_LOAD                            = C.BPF_BTF_LOAD
2062	BPF_BTF_GET_FD_BY_ID                    = C.BPF_BTF_GET_FD_BY_ID
2063	BPF_TASK_FD_QUERY                       = C.BPF_TASK_FD_QUERY
2064	BPF_MAP_LOOKUP_AND_DELETE_ELEM          = C.BPF_MAP_LOOKUP_AND_DELETE_ELEM
2065	BPF_MAP_FREEZE                          = C.BPF_MAP_FREEZE
2066	BPF_BTF_GET_NEXT_ID                     = C.BPF_BTF_GET_NEXT_ID
2067	BPF_MAP_LOOKUP_BATCH                    = C.BPF_MAP_LOOKUP_BATCH
2068	BPF_MAP_LOOKUP_AND_DELETE_BATCH         = C.BPF_MAP_LOOKUP_AND_DELETE_BATCH
2069	BPF_MAP_UPDATE_BATCH                    = C.BPF_MAP_UPDATE_BATCH
2070	BPF_MAP_DELETE_BATCH                    = C.BPF_MAP_DELETE_BATCH
2071	BPF_LINK_CREATE                         = C.BPF_LINK_CREATE
2072	BPF_LINK_UPDATE                         = C.BPF_LINK_UPDATE
2073	BPF_LINK_GET_FD_BY_ID                   = C.BPF_LINK_GET_FD_BY_ID
2074	BPF_LINK_GET_NEXT_ID                    = C.BPF_LINK_GET_NEXT_ID
2075	BPF_ENABLE_STATS                        = C.BPF_ENABLE_STATS
2076	BPF_ITER_CREATE                         = C.BPF_ITER_CREATE
2077	BPF_MAP_TYPE_UNSPEC                     = C.BPF_MAP_TYPE_UNSPEC
2078	BPF_MAP_TYPE_HASH                       = C.BPF_MAP_TYPE_HASH
2079	BPF_MAP_TYPE_ARRAY                      = C.BPF_MAP_TYPE_ARRAY
2080	BPF_MAP_TYPE_PROG_ARRAY                 = C.BPF_MAP_TYPE_PROG_ARRAY
2081	BPF_MAP_TYPE_PERF_EVENT_ARRAY           = C.BPF_MAP_TYPE_PERF_EVENT_ARRAY
2082	BPF_MAP_TYPE_PERCPU_HASH                = C.BPF_MAP_TYPE_PERCPU_HASH
2083	BPF_MAP_TYPE_PERCPU_ARRAY               = C.BPF_MAP_TYPE_PERCPU_ARRAY
2084	BPF_MAP_TYPE_STACK_TRACE                = C.BPF_MAP_TYPE_STACK_TRACE
2085	BPF_MAP_TYPE_CGROUP_ARRAY               = C.BPF_MAP_TYPE_CGROUP_ARRAY
2086	BPF_MAP_TYPE_LRU_HASH                   = C.BPF_MAP_TYPE_LRU_HASH
2087	BPF_MAP_TYPE_LRU_PERCPU_HASH            = C.BPF_MAP_TYPE_LRU_PERCPU_HASH
2088	BPF_MAP_TYPE_LPM_TRIE                   = C.BPF_MAP_TYPE_LPM_TRIE
2089	BPF_MAP_TYPE_ARRAY_OF_MAPS              = C.BPF_MAP_TYPE_ARRAY_OF_MAPS
2090	BPF_MAP_TYPE_HASH_OF_MAPS               = C.BPF_MAP_TYPE_HASH_OF_MAPS
2091	BPF_MAP_TYPE_DEVMAP                     = C.BPF_MAP_TYPE_DEVMAP
2092	BPF_MAP_TYPE_SOCKMAP                    = C.BPF_MAP_TYPE_SOCKMAP
2093	BPF_MAP_TYPE_CPUMAP                     = C.BPF_MAP_TYPE_CPUMAP
2094	BPF_MAP_TYPE_XSKMAP                     = C.BPF_MAP_TYPE_XSKMAP
2095	BPF_MAP_TYPE_SOCKHASH                   = C.BPF_MAP_TYPE_SOCKHASH
2096	BPF_MAP_TYPE_CGROUP_STORAGE             = C.BPF_MAP_TYPE_CGROUP_STORAGE
2097	BPF_MAP_TYPE_REUSEPORT_SOCKARRAY        = C.BPF_MAP_TYPE_REUSEPORT_SOCKARRAY
2098	BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE      = C.BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE
2099	BPF_MAP_TYPE_QUEUE                      = C.BPF_MAP_TYPE_QUEUE
2100	BPF_MAP_TYPE_STACK                      = C.BPF_MAP_TYPE_STACK
2101	BPF_MAP_TYPE_SK_STORAGE                 = C.BPF_MAP_TYPE_SK_STORAGE
2102	BPF_MAP_TYPE_DEVMAP_HASH                = C.BPF_MAP_TYPE_DEVMAP_HASH
2103	BPF_MAP_TYPE_STRUCT_OPS                 = C.BPF_MAP_TYPE_STRUCT_OPS
2104	BPF_MAP_TYPE_RINGBUF                    = C.BPF_MAP_TYPE_RINGBUF
2105	BPF_PROG_TYPE_UNSPEC                    = C.BPF_PROG_TYPE_UNSPEC
2106	BPF_PROG_TYPE_SOCKET_FILTER             = C.BPF_PROG_TYPE_SOCKET_FILTER
2107	BPF_PROG_TYPE_KPROBE                    = C.BPF_PROG_TYPE_KPROBE
2108	BPF_PROG_TYPE_SCHED_CLS                 = C.BPF_PROG_TYPE_SCHED_CLS
2109	BPF_PROG_TYPE_SCHED_ACT                 = C.BPF_PROG_TYPE_SCHED_ACT
2110	BPF_PROG_TYPE_TRACEPOINT                = C.BPF_PROG_TYPE_TRACEPOINT
2111	BPF_PROG_TYPE_XDP                       = C.BPF_PROG_TYPE_XDP
2112	BPF_PROG_TYPE_PERF_EVENT                = C.BPF_PROG_TYPE_PERF_EVENT
2113	BPF_PROG_TYPE_CGROUP_SKB                = C.BPF_PROG_TYPE_CGROUP_SKB
2114	BPF_PROG_TYPE_CGROUP_SOCK               = C.BPF_PROG_TYPE_CGROUP_SOCK
2115	BPF_PROG_TYPE_LWT_IN                    = C.BPF_PROG_TYPE_LWT_IN
2116	BPF_PROG_TYPE_LWT_OUT                   = C.BPF_PROG_TYPE_LWT_OUT
2117	BPF_PROG_TYPE_LWT_XMIT                  = C.BPF_PROG_TYPE_LWT_XMIT
2118	BPF_PROG_TYPE_SOCK_OPS                  = C.BPF_PROG_TYPE_SOCK_OPS
2119	BPF_PROG_TYPE_SK_SKB                    = C.BPF_PROG_TYPE_SK_SKB
2120	BPF_PROG_TYPE_CGROUP_DEVICE             = C.BPF_PROG_TYPE_CGROUP_DEVICE
2121	BPF_PROG_TYPE_SK_MSG                    = C.BPF_PROG_TYPE_SK_MSG
2122	BPF_PROG_TYPE_RAW_TRACEPOINT            = C.BPF_PROG_TYPE_RAW_TRACEPOINT
2123	BPF_PROG_TYPE_CGROUP_SOCK_ADDR          = C.BPF_PROG_TYPE_CGROUP_SOCK_ADDR
2124	BPF_PROG_TYPE_LWT_SEG6LOCAL             = C.BPF_PROG_TYPE_LWT_SEG6LOCAL
2125	BPF_PROG_TYPE_LIRC_MODE2                = C.BPF_PROG_TYPE_LIRC_MODE2
2126	BPF_PROG_TYPE_SK_REUSEPORT              = C.BPF_PROG_TYPE_SK_REUSEPORT
2127	BPF_PROG_TYPE_FLOW_DISSECTOR            = C.BPF_PROG_TYPE_FLOW_DISSECTOR
2128	BPF_PROG_TYPE_CGROUP_SYSCTL             = C.BPF_PROG_TYPE_CGROUP_SYSCTL
2129	BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE   = C.BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE
2130	BPF_PROG_TYPE_CGROUP_SOCKOPT            = C.BPF_PROG_TYPE_CGROUP_SOCKOPT
2131	BPF_PROG_TYPE_TRACING                   = C.BPF_PROG_TYPE_TRACING
2132	BPF_PROG_TYPE_STRUCT_OPS                = C.BPF_PROG_TYPE_STRUCT_OPS
2133	BPF_PROG_TYPE_EXT                       = C.BPF_PROG_TYPE_EXT
2134	BPF_PROG_TYPE_LSM                       = C.BPF_PROG_TYPE_LSM
2135	BPF_CGROUP_INET_INGRESS                 = C.BPF_CGROUP_INET_INGRESS
2136	BPF_CGROUP_INET_EGRESS                  = C.BPF_CGROUP_INET_EGRESS
2137	BPF_CGROUP_INET_SOCK_CREATE             = C.BPF_CGROUP_INET_SOCK_CREATE
2138	BPF_CGROUP_SOCK_OPS                     = C.BPF_CGROUP_SOCK_OPS
2139	BPF_SK_SKB_STREAM_PARSER                = C.BPF_SK_SKB_STREAM_PARSER
2140	BPF_SK_SKB_STREAM_VERDICT               = C.BPF_SK_SKB_STREAM_VERDICT
2141	BPF_CGROUP_DEVICE                       = C.BPF_CGROUP_DEVICE
2142	BPF_SK_MSG_VERDICT                      = C.BPF_SK_MSG_VERDICT
2143	BPF_CGROUP_INET4_BIND                   = C.BPF_CGROUP_INET4_BIND
2144	BPF_CGROUP_INET6_BIND                   = C.BPF_CGROUP_INET6_BIND
2145	BPF_CGROUP_INET4_CONNECT                = C.BPF_CGROUP_INET4_CONNECT
2146	BPF_CGROUP_INET6_CONNECT                = C.BPF_CGROUP_INET6_CONNECT
2147	BPF_CGROUP_INET4_POST_BIND              = C.BPF_CGROUP_INET4_POST_BIND
2148	BPF_CGROUP_INET6_POST_BIND              = C.BPF_CGROUP_INET6_POST_BIND
2149	BPF_CGROUP_UDP4_SENDMSG                 = C.BPF_CGROUP_UDP4_SENDMSG
2150	BPF_CGROUP_UDP6_SENDMSG                 = C.BPF_CGROUP_UDP6_SENDMSG
2151	BPF_LIRC_MODE2                          = C.BPF_LIRC_MODE2
2152	BPF_FLOW_DISSECTOR                      = C.BPF_FLOW_DISSECTOR
2153	BPF_CGROUP_SYSCTL                       = C.BPF_CGROUP_SYSCTL
2154	BPF_CGROUP_UDP4_RECVMSG                 = C.BPF_CGROUP_UDP4_RECVMSG
2155	BPF_CGROUP_UDP6_RECVMSG                 = C.BPF_CGROUP_UDP6_RECVMSG
2156	BPF_CGROUP_GETSOCKOPT                   = C.BPF_CGROUP_GETSOCKOPT
2157	BPF_CGROUP_SETSOCKOPT                   = C.BPF_CGROUP_SETSOCKOPT
2158	BPF_TRACE_RAW_TP                        = C.BPF_TRACE_RAW_TP
2159	BPF_TRACE_FENTRY                        = C.BPF_TRACE_FENTRY
2160	BPF_TRACE_FEXIT                         = C.BPF_TRACE_FEXIT
2161	BPF_MODIFY_RETURN                       = C.BPF_MODIFY_RETURN
2162	BPF_LSM_MAC                             = C.BPF_LSM_MAC
2163	BPF_TRACE_ITER                          = C.BPF_TRACE_ITER
2164	BPF_CGROUP_INET4_GETPEERNAME            = C.BPF_CGROUP_INET4_GETPEERNAME
2165	BPF_CGROUP_INET6_GETPEERNAME            = C.BPF_CGROUP_INET6_GETPEERNAME
2166	BPF_CGROUP_INET4_GETSOCKNAME            = C.BPF_CGROUP_INET4_GETSOCKNAME
2167	BPF_CGROUP_INET6_GETSOCKNAME            = C.BPF_CGROUP_INET6_GETSOCKNAME
2168	BPF_XDP_DEVMAP                          = C.BPF_XDP_DEVMAP
2169	BPF_LINK_TYPE_UNSPEC                    = C.BPF_LINK_TYPE_UNSPEC
2170	BPF_LINK_TYPE_RAW_TRACEPOINT            = C.BPF_LINK_TYPE_RAW_TRACEPOINT
2171	BPF_LINK_TYPE_TRACING                   = C.BPF_LINK_TYPE_TRACING
2172	BPF_LINK_TYPE_CGROUP                    = C.BPF_LINK_TYPE_CGROUP
2173	BPF_LINK_TYPE_ITER                      = C.BPF_LINK_TYPE_ITER
2174	BPF_LINK_TYPE_NETNS                     = C.BPF_LINK_TYPE_NETNS
2175	BPF_ANY                                 = C.BPF_ANY
2176	BPF_NOEXIST                             = C.BPF_NOEXIST
2177	BPF_EXIST                               = C.BPF_EXIST
2178	BPF_F_LOCK                              = C.BPF_F_LOCK
2179	BPF_F_NO_PREALLOC                       = C.BPF_F_NO_PREALLOC
2180	BPF_F_NO_COMMON_LRU                     = C.BPF_F_NO_COMMON_LRU
2181	BPF_F_NUMA_NODE                         = C.BPF_F_NUMA_NODE
2182	BPF_F_RDONLY                            = C.BPF_F_RDONLY
2183	BPF_F_WRONLY                            = C.BPF_F_WRONLY
2184	BPF_F_STACK_BUILD_ID                    = C.BPF_F_STACK_BUILD_ID
2185	BPF_F_ZERO_SEED                         = C.BPF_F_ZERO_SEED
2186	BPF_F_RDONLY_PROG                       = C.BPF_F_RDONLY_PROG
2187	BPF_F_WRONLY_PROG                       = C.BPF_F_WRONLY_PROG
2188	BPF_F_CLONE                             = C.BPF_F_CLONE
2189	BPF_F_MMAPABLE                          = C.BPF_F_MMAPABLE
2190	BPF_STATS_RUN_TIME                      = C.BPF_STATS_RUN_TIME
2191	BPF_STACK_BUILD_ID_EMPTY                = C.BPF_STACK_BUILD_ID_EMPTY
2192	BPF_STACK_BUILD_ID_VALID                = C.BPF_STACK_BUILD_ID_VALID
2193	BPF_STACK_BUILD_ID_IP                   = C.BPF_STACK_BUILD_ID_IP
2194	BPF_F_RECOMPUTE_CSUM                    = C.BPF_F_RECOMPUTE_CSUM
2195	BPF_F_INVALIDATE_HASH                   = C.BPF_F_INVALIDATE_HASH
2196	BPF_F_HDR_FIELD_MASK                    = C.BPF_F_HDR_FIELD_MASK
2197	BPF_F_PSEUDO_HDR                        = C.BPF_F_PSEUDO_HDR
2198	BPF_F_MARK_MANGLED_0                    = C.BPF_F_MARK_MANGLED_0
2199	BPF_F_MARK_ENFORCE                      = C.BPF_F_MARK_ENFORCE
2200	BPF_F_INGRESS                           = C.BPF_F_INGRESS
2201	BPF_F_TUNINFO_IPV6                      = C.BPF_F_TUNINFO_IPV6
2202	BPF_F_SKIP_FIELD_MASK                   = C.BPF_F_SKIP_FIELD_MASK
2203	BPF_F_USER_STACK                        = C.BPF_F_USER_STACK
2204	BPF_F_FAST_STACK_CMP                    = C.BPF_F_FAST_STACK_CMP
2205	BPF_F_REUSE_STACKID                     = C.BPF_F_REUSE_STACKID
2206	BPF_F_USER_BUILD_ID                     = C.BPF_F_USER_BUILD_ID
2207	BPF_F_ZERO_CSUM_TX                      = C.BPF_F_ZERO_CSUM_TX
2208	BPF_F_DONT_FRAGMENT                     = C.BPF_F_DONT_FRAGMENT
2209	BPF_F_SEQ_NUMBER                        = C.BPF_F_SEQ_NUMBER
2210	BPF_F_INDEX_MASK                        = C.BPF_F_INDEX_MASK
2211	BPF_F_CURRENT_CPU                       = C.BPF_F_CURRENT_CPU
2212	BPF_F_CTXLEN_MASK                       = C.BPF_F_CTXLEN_MASK
2213	BPF_F_CURRENT_NETNS                     = C.BPF_F_CURRENT_NETNS
2214	BPF_CSUM_LEVEL_QUERY                    = C.BPF_CSUM_LEVEL_QUERY
2215	BPF_CSUM_LEVEL_INC                      = C.BPF_CSUM_LEVEL_INC
2216	BPF_CSUM_LEVEL_DEC                      = C.BPF_CSUM_LEVEL_DEC
2217	BPF_CSUM_LEVEL_RESET                    = C.BPF_CSUM_LEVEL_RESET
2218	BPF_F_ADJ_ROOM_FIXED_GSO                = C.BPF_F_ADJ_ROOM_FIXED_GSO
2219	BPF_F_ADJ_ROOM_ENCAP_L3_IPV4            = C.BPF_F_ADJ_ROOM_ENCAP_L3_IPV4
2220	BPF_F_ADJ_ROOM_ENCAP_L3_IPV6            = C.BPF_F_ADJ_ROOM_ENCAP_L3_IPV6
2221	BPF_F_ADJ_ROOM_ENCAP_L4_GRE             = C.BPF_F_ADJ_ROOM_ENCAP_L4_GRE
2222	BPF_F_ADJ_ROOM_ENCAP_L4_UDP             = C.BPF_F_ADJ_ROOM_ENCAP_L4_UDP
2223	BPF_F_ADJ_ROOM_NO_CSUM_RESET            = C.BPF_F_ADJ_ROOM_NO_CSUM_RESET
2224	BPF_ADJ_ROOM_ENCAP_L2_MASK              = C.BPF_ADJ_ROOM_ENCAP_L2_MASK
2225	BPF_ADJ_ROOM_ENCAP_L2_SHIFT             = C.BPF_ADJ_ROOM_ENCAP_L2_SHIFT
2226	BPF_F_SYSCTL_BASE_NAME                  = C.BPF_F_SYSCTL_BASE_NAME
2227	BPF_SK_STORAGE_GET_F_CREATE             = C.BPF_SK_STORAGE_GET_F_CREATE
2228	BPF_F_GET_BRANCH_RECORDS_SIZE           = C.BPF_F_GET_BRANCH_RECORDS_SIZE
2229	BPF_RB_NO_WAKEUP                        = C.BPF_RB_NO_WAKEUP
2230	BPF_RB_FORCE_WAKEUP                     = C.BPF_RB_FORCE_WAKEUP
2231	BPF_RB_AVAIL_DATA                       = C.BPF_RB_AVAIL_DATA
2232	BPF_RB_RING_SIZE                        = C.BPF_RB_RING_SIZE
2233	BPF_RB_CONS_POS                         = C.BPF_RB_CONS_POS
2234	BPF_RB_PROD_POS                         = C.BPF_RB_PROD_POS
2235	BPF_RINGBUF_BUSY_BIT                    = C.BPF_RINGBUF_BUSY_BIT
2236	BPF_RINGBUF_DISCARD_BIT                 = C.BPF_RINGBUF_DISCARD_BIT
2237	BPF_RINGBUF_HDR_SZ                      = C.BPF_RINGBUF_HDR_SZ
2238	BPF_ADJ_ROOM_NET                        = C.BPF_ADJ_ROOM_NET
2239	BPF_ADJ_ROOM_MAC                        = C.BPF_ADJ_ROOM_MAC
2240	BPF_HDR_START_MAC                       = C.BPF_HDR_START_MAC
2241	BPF_HDR_START_NET                       = C.BPF_HDR_START_NET
2242	BPF_LWT_ENCAP_SEG6                      = C.BPF_LWT_ENCAP_SEG6
2243	BPF_LWT_ENCAP_SEG6_INLINE               = C.BPF_LWT_ENCAP_SEG6_INLINE
2244	BPF_LWT_ENCAP_IP                        = C.BPF_LWT_ENCAP_IP
2245	BPF_OK                                  = C.BPF_OK
2246	BPF_DROP                                = C.BPF_DROP
2247	BPF_REDIRECT                            = C.BPF_REDIRECT
2248	BPF_LWT_REROUTE                         = C.BPF_LWT_REROUTE
2249	BPF_SOCK_OPS_RTO_CB_FLAG                = C.BPF_SOCK_OPS_RTO_CB_FLAG
2250	BPF_SOCK_OPS_RETRANS_CB_FLAG            = C.BPF_SOCK_OPS_RETRANS_CB_FLAG
2251	BPF_SOCK_OPS_STATE_CB_FLAG              = C.BPF_SOCK_OPS_STATE_CB_FLAG
2252	BPF_SOCK_OPS_RTT_CB_FLAG                = C.BPF_SOCK_OPS_RTT_CB_FLAG
2253	BPF_SOCK_OPS_ALL_CB_FLAGS               = C.BPF_SOCK_OPS_ALL_CB_FLAGS
2254	BPF_SOCK_OPS_VOID                       = C.BPF_SOCK_OPS_VOID
2255	BPF_SOCK_OPS_TIMEOUT_INIT               = C.BPF_SOCK_OPS_TIMEOUT_INIT
2256	BPF_SOCK_OPS_RWND_INIT                  = C.BPF_SOCK_OPS_RWND_INIT
2257	BPF_SOCK_OPS_TCP_CONNECT_CB             = C.BPF_SOCK_OPS_TCP_CONNECT_CB
2258	BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB      = C.BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB
2259	BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB     = C.BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB
2260	BPF_SOCK_OPS_NEEDS_ECN                  = C.BPF_SOCK_OPS_NEEDS_ECN
2261	BPF_SOCK_OPS_BASE_RTT                   = C.BPF_SOCK_OPS_BASE_RTT
2262	BPF_SOCK_OPS_RTO_CB                     = C.BPF_SOCK_OPS_RTO_CB
2263	BPF_SOCK_OPS_RETRANS_CB                 = C.BPF_SOCK_OPS_RETRANS_CB
2264	BPF_SOCK_OPS_STATE_CB                   = C.BPF_SOCK_OPS_STATE_CB
2265	BPF_SOCK_OPS_TCP_LISTEN_CB              = C.BPF_SOCK_OPS_TCP_LISTEN_CB
2266	BPF_SOCK_OPS_RTT_CB                     = C.BPF_SOCK_OPS_RTT_CB
2267	BPF_TCP_ESTABLISHED                     = C.BPF_TCP_ESTABLISHED
2268	BPF_TCP_SYN_SENT                        = C.BPF_TCP_SYN_SENT
2269	BPF_TCP_SYN_RECV                        = C.BPF_TCP_SYN_RECV
2270	BPF_TCP_FIN_WAIT1                       = C.BPF_TCP_FIN_WAIT1
2271	BPF_TCP_FIN_WAIT2                       = C.BPF_TCP_FIN_WAIT2
2272	BPF_TCP_TIME_WAIT                       = C.BPF_TCP_TIME_WAIT
2273	BPF_TCP_CLOSE                           = C.BPF_TCP_CLOSE
2274	BPF_TCP_CLOSE_WAIT                      = C.BPF_TCP_CLOSE_WAIT
2275	BPF_TCP_LAST_ACK                        = C.BPF_TCP_LAST_ACK
2276	BPF_TCP_LISTEN                          = C.BPF_TCP_LISTEN
2277	BPF_TCP_CLOSING                         = C.BPF_TCP_CLOSING
2278	BPF_TCP_NEW_SYN_RECV                    = C.BPF_TCP_NEW_SYN_RECV
2279	BPF_TCP_MAX_STATES                      = C.BPF_TCP_MAX_STATES
2280	TCP_BPF_IW                              = C.TCP_BPF_IW
2281	TCP_BPF_SNDCWND_CLAMP                   = C.TCP_BPF_SNDCWND_CLAMP
2282	BPF_DEVCG_ACC_MKNOD                     = C.BPF_DEVCG_ACC_MKNOD
2283	BPF_DEVCG_ACC_READ                      = C.BPF_DEVCG_ACC_READ
2284	BPF_DEVCG_ACC_WRITE                     = C.BPF_DEVCG_ACC_WRITE
2285	BPF_DEVCG_DEV_BLOCK                     = C.BPF_DEVCG_DEV_BLOCK
2286	BPF_DEVCG_DEV_CHAR                      = C.BPF_DEVCG_DEV_CHAR
2287	BPF_FIB_LOOKUP_DIRECT                   = C.BPF_FIB_LOOKUP_DIRECT
2288	BPF_FIB_LOOKUP_OUTPUT                   = C.BPF_FIB_LOOKUP_OUTPUT
2289	BPF_FIB_LKUP_RET_SUCCESS                = C.BPF_FIB_LKUP_RET_SUCCESS
2290	BPF_FIB_LKUP_RET_BLACKHOLE              = C.BPF_FIB_LKUP_RET_BLACKHOLE
2291	BPF_FIB_LKUP_RET_UNREACHABLE            = C.BPF_FIB_LKUP_RET_UNREACHABLE
2292	BPF_FIB_LKUP_RET_PROHIBIT               = C.BPF_FIB_LKUP_RET_PROHIBIT
2293	BPF_FIB_LKUP_RET_NOT_FWDED              = C.BPF_FIB_LKUP_RET_NOT_FWDED
2294	BPF_FIB_LKUP_RET_FWD_DISABLED           = C.BPF_FIB_LKUP_RET_FWD_DISABLED
2295	BPF_FIB_LKUP_RET_UNSUPP_LWT             = C.BPF_FIB_LKUP_RET_UNSUPP_LWT
2296	BPF_FIB_LKUP_RET_NO_NEIGH               = C.BPF_FIB_LKUP_RET_NO_NEIGH
2297	BPF_FIB_LKUP_RET_FRAG_NEEDED            = C.BPF_FIB_LKUP_RET_FRAG_NEEDED
2298	BPF_FD_TYPE_RAW_TRACEPOINT              = C.BPF_FD_TYPE_RAW_TRACEPOINT
2299	BPF_FD_TYPE_TRACEPOINT                  = C.BPF_FD_TYPE_TRACEPOINT
2300	BPF_FD_TYPE_KPROBE                      = C.BPF_FD_TYPE_KPROBE
2301	BPF_FD_TYPE_KRETPROBE                   = C.BPF_FD_TYPE_KRETPROBE
2302	BPF_FD_TYPE_UPROBE                      = C.BPF_FD_TYPE_UPROBE
2303	BPF_FD_TYPE_URETPROBE                   = C.BPF_FD_TYPE_URETPROBE
2304	BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG     = C.BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG
2305	BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = C.BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL
2306	BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP      = C.BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP
2307)
2308
2309// generated by:
2310// perl -nlE '/^\s*(RTNLGRP_\w+)/ && say "$1 = C.$1"' include/uapi/linux/rtnetlink.h
2311const (
2312	RTNLGRP_NONE          = C.RTNLGRP_NONE
2313	RTNLGRP_LINK          = C.RTNLGRP_LINK
2314	RTNLGRP_NOTIFY        = C.RTNLGRP_NOTIFY
2315	RTNLGRP_NEIGH         = C.RTNLGRP_NEIGH
2316	RTNLGRP_TC            = C.RTNLGRP_TC
2317	RTNLGRP_IPV4_IFADDR   = C.RTNLGRP_IPV4_IFADDR
2318	RTNLGRP_IPV4_MROUTE   = C.RTNLGRP_IPV4_MROUTE
2319	RTNLGRP_IPV4_ROUTE    = C.RTNLGRP_IPV4_ROUTE
2320	RTNLGRP_IPV4_RULE     = C.RTNLGRP_IPV4_RULE
2321	RTNLGRP_IPV6_IFADDR   = C.RTNLGRP_IPV6_IFADDR
2322	RTNLGRP_IPV6_MROUTE   = C.RTNLGRP_IPV6_MROUTE
2323	RTNLGRP_IPV6_ROUTE    = C.RTNLGRP_IPV6_ROUTE
2324	RTNLGRP_IPV6_IFINFO   = C.RTNLGRP_IPV6_IFINFO
2325	RTNLGRP_DECnet_IFADDR = C.RTNLGRP_DECnet_IFADDR
2326	RTNLGRP_NOP2          = C.RTNLGRP_NOP2
2327	RTNLGRP_DECnet_ROUTE  = C.RTNLGRP_DECnet_ROUTE
2328	RTNLGRP_DECnet_RULE   = C.RTNLGRP_DECnet_RULE
2329	RTNLGRP_NOP4          = C.RTNLGRP_NOP4
2330	RTNLGRP_IPV6_PREFIX   = C.RTNLGRP_IPV6_PREFIX
2331	RTNLGRP_IPV6_RULE     = C.RTNLGRP_IPV6_RULE
2332	RTNLGRP_ND_USEROPT    = C.RTNLGRP_ND_USEROPT
2333	RTNLGRP_PHONET_IFADDR = C.RTNLGRP_PHONET_IFADDR
2334	RTNLGRP_PHONET_ROUTE  = C.RTNLGRP_PHONET_ROUTE
2335	RTNLGRP_DCB           = C.RTNLGRP_DCB
2336	RTNLGRP_IPV4_NETCONF  = C.RTNLGRP_IPV4_NETCONF
2337	RTNLGRP_IPV6_NETCONF  = C.RTNLGRP_IPV6_NETCONF
2338	RTNLGRP_MDB           = C.RTNLGRP_MDB
2339	RTNLGRP_MPLS_ROUTE    = C.RTNLGRP_MPLS_ROUTE
2340	RTNLGRP_NSID          = C.RTNLGRP_NSID
2341	RTNLGRP_MPLS_NETCONF  = C.RTNLGRP_MPLS_NETCONF
2342	RTNLGRP_IPV4_MROUTE_R = C.RTNLGRP_IPV4_MROUTE_R
2343	RTNLGRP_IPV6_MROUTE_R = C.RTNLGRP_IPV6_MROUTE_R
2344	RTNLGRP_NEXTHOP       = C.RTNLGRP_NEXTHOP
2345)
2346
2347// Capabilities
2348
2349type CapUserHeader C.struct___user_cap_header_struct
2350
2351type CapUserData C.struct___user_cap_data_struct
2352
2353const (
2354	LINUX_CAPABILITY_VERSION_1 = C._LINUX_CAPABILITY_VERSION_1
2355	LINUX_CAPABILITY_VERSION_2 = C._LINUX_CAPABILITY_VERSION_2
2356	LINUX_CAPABILITY_VERSION_3 = C._LINUX_CAPABILITY_VERSION_3
2357)
2358
2359// Loop devices
2360
2361const (
2362	LO_FLAGS_READ_ONLY = C.LO_FLAGS_READ_ONLY
2363	LO_FLAGS_AUTOCLEAR = C.LO_FLAGS_AUTOCLEAR
2364	LO_FLAGS_PARTSCAN  = C.LO_FLAGS_PARTSCAN
2365	LO_FLAGS_DIRECT_IO = C.LO_FLAGS_DIRECT_IO
2366)
2367
2368type LoopInfo C.struct_loop_info
2369type LoopInfo64 C.struct_loop_info64
2370
2371// AF_TIPC
2372
2373type TIPCSocketAddr C.struct_tipc_socket_addr
2374
2375type TIPCServiceRange C.struct_tipc_service_range
2376
2377type TIPCServiceName C.struct_tipc_service_name
2378
2379type TIPCSubscr C.struct_tipc_subscr
2380
2381type TIPCEvent C.struct_tipc_event
2382
2383type TIPCGroupReq C.struct_tipc_group_req
2384
2385type TIPCSIOCLNReq C.struct_tipc_sioc_ln_req
2386
2387type TIPCSIOCNodeIDReq C.struct_tipc_sioc_nodeid_req
2388
2389const (
2390	TIPC_CLUSTER_SCOPE = C.TIPC_CLUSTER_SCOPE
2391	TIPC_NODE_SCOPE    = C.TIPC_NODE_SCOPE
2392)
2393
2394const (
2395	SYSLOG_ACTION_CLOSE         = 0
2396	SYSLOG_ACTION_OPEN          = 1
2397	SYSLOG_ACTION_READ          = 2
2398	SYSLOG_ACTION_READ_ALL      = 3
2399	SYSLOG_ACTION_READ_CLEAR    = 4
2400	SYSLOG_ACTION_CLEAR         = 5
2401	SYSLOG_ACTION_CONSOLE_OFF   = 6
2402	SYSLOG_ACTION_CONSOLE_ON    = 7
2403	SYSLOG_ACTION_CONSOLE_LEVEL = 8
2404	SYSLOG_ACTION_SIZE_UNREAD   = 9
2405	SYSLOG_ACTION_SIZE_BUFFER   = 10
2406)
2407
2408// Devlink generic netlink API, generated using:
2409// perl -nlE '/^\s*(DEVLINK_\w+)/ && say "$1 = C.$1"' devlink.h
2410const (
2411	DEVLINK_CMD_UNSPEC                        = C.DEVLINK_CMD_UNSPEC
2412	DEVLINK_CMD_GET                           = C.DEVLINK_CMD_GET
2413	DEVLINK_CMD_SET                           = C.DEVLINK_CMD_SET
2414	DEVLINK_CMD_NEW                           = C.DEVLINK_CMD_NEW
2415	DEVLINK_CMD_DEL                           = C.DEVLINK_CMD_DEL
2416	DEVLINK_CMD_PORT_GET                      = C.DEVLINK_CMD_PORT_GET
2417	DEVLINK_CMD_PORT_SET                      = C.DEVLINK_CMD_PORT_SET
2418	DEVLINK_CMD_PORT_NEW                      = C.DEVLINK_CMD_PORT_NEW
2419	DEVLINK_CMD_PORT_DEL                      = C.DEVLINK_CMD_PORT_DEL
2420	DEVLINK_CMD_PORT_SPLIT                    = C.DEVLINK_CMD_PORT_SPLIT
2421	DEVLINK_CMD_PORT_UNSPLIT                  = C.DEVLINK_CMD_PORT_UNSPLIT
2422	DEVLINK_CMD_SB_GET                        = C.DEVLINK_CMD_SB_GET
2423	DEVLINK_CMD_SB_SET                        = C.DEVLINK_CMD_SB_SET
2424	DEVLINK_CMD_SB_NEW                        = C.DEVLINK_CMD_SB_NEW
2425	DEVLINK_CMD_SB_DEL                        = C.DEVLINK_CMD_SB_DEL
2426	DEVLINK_CMD_SB_POOL_GET                   = C.DEVLINK_CMD_SB_POOL_GET
2427	DEVLINK_CMD_SB_POOL_SET                   = C.DEVLINK_CMD_SB_POOL_SET
2428	DEVLINK_CMD_SB_POOL_NEW                   = C.DEVLINK_CMD_SB_POOL_NEW
2429	DEVLINK_CMD_SB_POOL_DEL                   = C.DEVLINK_CMD_SB_POOL_DEL
2430	DEVLINK_CMD_SB_PORT_POOL_GET              = C.DEVLINK_CMD_SB_PORT_POOL_GET
2431	DEVLINK_CMD_SB_PORT_POOL_SET              = C.DEVLINK_CMD_SB_PORT_POOL_SET
2432	DEVLINK_CMD_SB_PORT_POOL_NEW              = C.DEVLINK_CMD_SB_PORT_POOL_NEW
2433	DEVLINK_CMD_SB_PORT_POOL_DEL              = C.DEVLINK_CMD_SB_PORT_POOL_DEL
2434	DEVLINK_CMD_SB_TC_POOL_BIND_GET           = C.DEVLINK_CMD_SB_TC_POOL_BIND_GET
2435	DEVLINK_CMD_SB_TC_POOL_BIND_SET           = C.DEVLINK_CMD_SB_TC_POOL_BIND_SET
2436	DEVLINK_CMD_SB_TC_POOL_BIND_NEW           = C.DEVLINK_CMD_SB_TC_POOL_BIND_NEW
2437	DEVLINK_CMD_SB_TC_POOL_BIND_DEL           = C.DEVLINK_CMD_SB_TC_POOL_BIND_DEL
2438	DEVLINK_CMD_SB_OCC_SNAPSHOT               = C.DEVLINK_CMD_SB_OCC_SNAPSHOT
2439	DEVLINK_CMD_SB_OCC_MAX_CLEAR              = C.DEVLINK_CMD_SB_OCC_MAX_CLEAR
2440	DEVLINK_CMD_ESWITCH_GET                   = C.DEVLINK_CMD_ESWITCH_GET
2441	DEVLINK_CMD_ESWITCH_SET                   = C.DEVLINK_CMD_ESWITCH_SET
2442	DEVLINK_CMD_DPIPE_TABLE_GET               = C.DEVLINK_CMD_DPIPE_TABLE_GET
2443	DEVLINK_CMD_DPIPE_ENTRIES_GET             = C.DEVLINK_CMD_DPIPE_ENTRIES_GET
2444	DEVLINK_CMD_DPIPE_HEADERS_GET             = C.DEVLINK_CMD_DPIPE_HEADERS_GET
2445	DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET      = C.DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET
2446	DEVLINK_CMD_MAX                           = C.DEVLINK_CMD_MAX
2447	DEVLINK_PORT_TYPE_NOTSET                  = C.DEVLINK_PORT_TYPE_NOTSET
2448	DEVLINK_PORT_TYPE_AUTO                    = C.DEVLINK_PORT_TYPE_AUTO
2449	DEVLINK_PORT_TYPE_ETH                     = C.DEVLINK_PORT_TYPE_ETH
2450	DEVLINK_PORT_TYPE_IB                      = C.DEVLINK_PORT_TYPE_IB
2451	DEVLINK_SB_POOL_TYPE_INGRESS              = C.DEVLINK_SB_POOL_TYPE_INGRESS
2452	DEVLINK_SB_POOL_TYPE_EGRESS               = C.DEVLINK_SB_POOL_TYPE_EGRESS
2453	DEVLINK_SB_THRESHOLD_TYPE_STATIC          = C.DEVLINK_SB_THRESHOLD_TYPE_STATIC
2454	DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC         = C.DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC
2455	DEVLINK_ESWITCH_MODE_LEGACY               = C.DEVLINK_ESWITCH_MODE_LEGACY
2456	DEVLINK_ESWITCH_MODE_SWITCHDEV            = C.DEVLINK_ESWITCH_MODE_SWITCHDEV
2457	DEVLINK_ESWITCH_INLINE_MODE_NONE          = C.DEVLINK_ESWITCH_INLINE_MODE_NONE
2458	DEVLINK_ESWITCH_INLINE_MODE_LINK          = C.DEVLINK_ESWITCH_INLINE_MODE_LINK
2459	DEVLINK_ESWITCH_INLINE_MODE_NETWORK       = C.DEVLINK_ESWITCH_INLINE_MODE_NETWORK
2460	DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT     = C.DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT
2461	DEVLINK_ESWITCH_ENCAP_MODE_NONE           = C.DEVLINK_ESWITCH_ENCAP_MODE_NONE
2462	DEVLINK_ESWITCH_ENCAP_MODE_BASIC          = C.DEVLINK_ESWITCH_ENCAP_MODE_BASIC
2463	DEVLINK_ATTR_UNSPEC                       = C.DEVLINK_ATTR_UNSPEC
2464	DEVLINK_ATTR_BUS_NAME                     = C.DEVLINK_ATTR_BUS_NAME
2465	DEVLINK_ATTR_DEV_NAME                     = C.DEVLINK_ATTR_DEV_NAME
2466	DEVLINK_ATTR_PORT_INDEX                   = C.DEVLINK_ATTR_PORT_INDEX
2467	DEVLINK_ATTR_PORT_TYPE                    = C.DEVLINK_ATTR_PORT_TYPE
2468	DEVLINK_ATTR_PORT_DESIRED_TYPE            = C.DEVLINK_ATTR_PORT_DESIRED_TYPE
2469	DEVLINK_ATTR_PORT_NETDEV_IFINDEX          = C.DEVLINK_ATTR_PORT_NETDEV_IFINDEX
2470	DEVLINK_ATTR_PORT_NETDEV_NAME             = C.DEVLINK_ATTR_PORT_NETDEV_NAME
2471	DEVLINK_ATTR_PORT_IBDEV_NAME              = C.DEVLINK_ATTR_PORT_IBDEV_NAME
2472	DEVLINK_ATTR_PORT_SPLIT_COUNT             = C.DEVLINK_ATTR_PORT_SPLIT_COUNT
2473	DEVLINK_ATTR_PORT_SPLIT_GROUP             = C.DEVLINK_ATTR_PORT_SPLIT_GROUP
2474	DEVLINK_ATTR_SB_INDEX                     = C.DEVLINK_ATTR_SB_INDEX
2475	DEVLINK_ATTR_SB_SIZE                      = C.DEVLINK_ATTR_SB_SIZE
2476	DEVLINK_ATTR_SB_INGRESS_POOL_COUNT        = C.DEVLINK_ATTR_SB_INGRESS_POOL_COUNT
2477	DEVLINK_ATTR_SB_EGRESS_POOL_COUNT         = C.DEVLINK_ATTR_SB_EGRESS_POOL_COUNT
2478	DEVLINK_ATTR_SB_INGRESS_TC_COUNT          = C.DEVLINK_ATTR_SB_INGRESS_TC_COUNT
2479	DEVLINK_ATTR_SB_EGRESS_TC_COUNT           = C.DEVLINK_ATTR_SB_EGRESS_TC_COUNT
2480	DEVLINK_ATTR_SB_POOL_INDEX                = C.DEVLINK_ATTR_SB_POOL_INDEX
2481	DEVLINK_ATTR_SB_POOL_TYPE                 = C.DEVLINK_ATTR_SB_POOL_TYPE
2482	DEVLINK_ATTR_SB_POOL_SIZE                 = C.DEVLINK_ATTR_SB_POOL_SIZE
2483	DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE       = C.DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE
2484	DEVLINK_ATTR_SB_THRESHOLD                 = C.DEVLINK_ATTR_SB_THRESHOLD
2485	DEVLINK_ATTR_SB_TC_INDEX                  = C.DEVLINK_ATTR_SB_TC_INDEX
2486	DEVLINK_ATTR_SB_OCC_CUR                   = C.DEVLINK_ATTR_SB_OCC_CUR
2487	DEVLINK_ATTR_SB_OCC_MAX                   = C.DEVLINK_ATTR_SB_OCC_MAX
2488	DEVLINK_ATTR_ESWITCH_MODE                 = C.DEVLINK_ATTR_ESWITCH_MODE
2489	DEVLINK_ATTR_ESWITCH_INLINE_MODE          = C.DEVLINK_ATTR_ESWITCH_INLINE_MODE
2490	DEVLINK_ATTR_DPIPE_TABLES                 = C.DEVLINK_ATTR_DPIPE_TABLES
2491	DEVLINK_ATTR_DPIPE_TABLE                  = C.DEVLINK_ATTR_DPIPE_TABLE
2492	DEVLINK_ATTR_DPIPE_TABLE_NAME             = C.DEVLINK_ATTR_DPIPE_TABLE_NAME
2493	DEVLINK_ATTR_DPIPE_TABLE_SIZE             = C.DEVLINK_ATTR_DPIPE_TABLE_SIZE
2494	DEVLINK_ATTR_DPIPE_TABLE_MATCHES          = C.DEVLINK_ATTR_DPIPE_TABLE_MATCHES
2495	DEVLINK_ATTR_DPIPE_TABLE_ACTIONS          = C.DEVLINK_ATTR_DPIPE_TABLE_ACTIONS
2496	DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = C.DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED
2497	DEVLINK_ATTR_DPIPE_ENTRIES                = C.DEVLINK_ATTR_DPIPE_ENTRIES
2498	DEVLINK_ATTR_DPIPE_ENTRY                  = C.DEVLINK_ATTR_DPIPE_ENTRY
2499	DEVLINK_ATTR_DPIPE_ENTRY_INDEX            = C.DEVLINK_ATTR_DPIPE_ENTRY_INDEX
2500	DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES     = C.DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES
2501	DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES    = C.DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES
2502	DEVLINK_ATTR_DPIPE_ENTRY_COUNTER          = C.DEVLINK_ATTR_DPIPE_ENTRY_COUNTER
2503	DEVLINK_ATTR_DPIPE_MATCH                  = C.DEVLINK_ATTR_DPIPE_MATCH
2504	DEVLINK_ATTR_DPIPE_MATCH_VALUE            = C.DEVLINK_ATTR_DPIPE_MATCH_VALUE
2505	DEVLINK_ATTR_DPIPE_MATCH_TYPE             = C.DEVLINK_ATTR_DPIPE_MATCH_TYPE
2506	DEVLINK_ATTR_DPIPE_ACTION                 = C.DEVLINK_ATTR_DPIPE_ACTION
2507	DEVLINK_ATTR_DPIPE_ACTION_VALUE           = C.DEVLINK_ATTR_DPIPE_ACTION_VALUE
2508	DEVLINK_ATTR_DPIPE_ACTION_TYPE            = C.DEVLINK_ATTR_DPIPE_ACTION_TYPE
2509	DEVLINK_ATTR_DPIPE_VALUE                  = C.DEVLINK_ATTR_DPIPE_VALUE
2510	DEVLINK_ATTR_DPIPE_VALUE_MASK             = C.DEVLINK_ATTR_DPIPE_VALUE_MASK
2511	DEVLINK_ATTR_DPIPE_VALUE_MAPPING          = C.DEVLINK_ATTR_DPIPE_VALUE_MAPPING
2512	DEVLINK_ATTR_DPIPE_HEADERS                = C.DEVLINK_ATTR_DPIPE_HEADERS
2513	DEVLINK_ATTR_DPIPE_HEADER                 = C.DEVLINK_ATTR_DPIPE_HEADER
2514	DEVLINK_ATTR_DPIPE_HEADER_NAME            = C.DEVLINK_ATTR_DPIPE_HEADER_NAME
2515	DEVLINK_ATTR_DPIPE_HEADER_ID              = C.DEVLINK_ATTR_DPIPE_HEADER_ID
2516	DEVLINK_ATTR_DPIPE_HEADER_FIELDS          = C.DEVLINK_ATTR_DPIPE_HEADER_FIELDS
2517	DEVLINK_ATTR_DPIPE_HEADER_GLOBAL          = C.DEVLINK_ATTR_DPIPE_HEADER_GLOBAL
2518	DEVLINK_ATTR_DPIPE_HEADER_INDEX           = C.DEVLINK_ATTR_DPIPE_HEADER_INDEX
2519	DEVLINK_ATTR_DPIPE_FIELD                  = C.DEVLINK_ATTR_DPIPE_FIELD
2520	DEVLINK_ATTR_DPIPE_FIELD_NAME             = C.DEVLINK_ATTR_DPIPE_FIELD_NAME
2521	DEVLINK_ATTR_DPIPE_FIELD_ID               = C.DEVLINK_ATTR_DPIPE_FIELD_ID
2522	DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH         = C.DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH
2523	DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE     = C.DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE
2524	DEVLINK_ATTR_PAD                          = C.DEVLINK_ATTR_PAD
2525	DEVLINK_ATTR_ESWITCH_ENCAP_MODE           = C.DEVLINK_ATTR_ESWITCH_ENCAP_MODE
2526	DEVLINK_ATTR_MAX                          = C.DEVLINK_ATTR_MAX
2527	DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE     = C.DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE
2528	DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX  = C.DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX
2529	DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT      = C.DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT
2530	DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY    = C.DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY
2531	DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC      = C.DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC
2532	DEVLINK_DPIPE_FIELD_IPV4_DST_IP           = C.DEVLINK_DPIPE_FIELD_IPV4_DST_IP
2533	DEVLINK_DPIPE_FIELD_IPV6_DST_IP           = C.DEVLINK_DPIPE_FIELD_IPV6_DST_IP
2534	DEVLINK_DPIPE_HEADER_ETHERNET             = C.DEVLINK_DPIPE_HEADER_ETHERNET
2535	DEVLINK_DPIPE_HEADER_IPV4                 = C.DEVLINK_DPIPE_HEADER_IPV4
2536	DEVLINK_DPIPE_HEADER_IPV6                 = C.DEVLINK_DPIPE_HEADER_IPV6
2537)
2538
2539// fs-verity
2540
2541type FsverityDigest C.struct_fsverity_digest
2542
2543type FsverityEnableArg C.struct_fsverity_enable_arg
2544
2545// nexthop
2546
2547type Nhmsg C.struct_nhmsg
2548
2549type NexthopGrp C.struct_nexthop_grp
2550
2551const (
2552	NHA_UNSPEC     = C.NHA_UNSPEC
2553	NHA_ID         = C.NHA_ID
2554	NHA_GROUP      = C.NHA_GROUP
2555	NHA_GROUP_TYPE = C.NHA_GROUP_TYPE
2556	NHA_BLACKHOLE  = C.NHA_BLACKHOLE
2557	NHA_OIF        = C.NHA_OIF
2558	NHA_GATEWAY    = C.NHA_GATEWAY
2559	NHA_ENCAP_TYPE = C.NHA_ENCAP_TYPE
2560	NHA_ENCAP      = C.NHA_ENCAP
2561	NHA_GROUPS     = C.NHA_GROUPS
2562	NHA_MASTER     = C.NHA_MASTER
2563)
2564
2565// raw CAN sockets
2566
2567const (
2568	CAN_RAW_FILTER        = C.CAN_RAW_FILTER
2569	CAN_RAW_ERR_FILTER    = C.CAN_RAW_ERR_FILTER
2570	CAN_RAW_LOOPBACK      = C.CAN_RAW_LOOPBACK
2571	CAN_RAW_RECV_OWN_MSGS = C.CAN_RAW_RECV_OWN_MSGS
2572	CAN_RAW_FD_FRAMES     = C.CAN_RAW_FD_FRAMES
2573	CAN_RAW_JOIN_FILTERS  = C.CAN_RAW_JOIN_FILTERS
2574)
2575
2576// Watchdog API
2577
2578type WatchdogInfo C.struct_watchdog_info
2579