github.com/fletavendor/sys@v0.0.0-20181107165924-66b7b1311ac8/unix/linux/types.go (about)

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