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