You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1519 lines
55 KiB

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