1// Copyright 2009 The Go Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5// +build ignore 6 7/* 8Input to cgo -godefs. See README.md 9*/ 10 11// +godefs map struct_in_addr [4]byte /* in_addr */ 12// +godefs map struct_in6_addr [16]byte /* in6_addr */ 13 14package unix 15 16/* 17#define _LARGEFILE_SOURCE 18#define _LARGEFILE64_SOURCE 19#define _FILE_OFFSET_BITS 64 20#define _GNU_SOURCE 21 22#include <dirent.h> 23#include <netinet/in.h> 24#include <netinet/tcp.h> 25#include <netpacket/packet.h> 26#include <poll.h> 27#include <sched.h> 28#include <signal.h> 29#include <stdio.h> 30#include <sys/epoll.h> 31#include <sys/inotify.h> 32#include <sys/ioctl.h> 33#include <sys/mman.h> 34#include <sys/mount.h> 35#include <sys/param.h> 36#include <sys/ptrace.h> 37#include <sys/resource.h> 38#include <sys/select.h> 39#include <sys/signal.h> 40#include <sys/statfs.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/netlink.h> 53#include <linux/perf_event.h> 54#include <linux/rtnetlink.h> 55#include <linux/stat.h> 56#include <asm/termbits.h> 57#include <asm/ptrace.h> 58#include <time.h> 59#include <unistd.h> 60#include <ustat.h> 61#include <utime.h> 62#include <linux/can.h> 63#include <linux/if_alg.h> 64#include <linux/fs.h> 65#include <linux/vm_sockets.h> 66#include <linux/random.h> 67#include <linux/taskstats.h> 68#include <linux/cgroupstats.h> 69#include <linux/genetlink.h> 70 71// On mips64, the glibc stat and kernel stat do not agree 72#if (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI64) 73 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 consitancy with the glibc fields. 77// * The padding fields get different names to not break compatibility. 78// * st_blocks is signed, again for compatibility. 79struct stat { 80 unsigned int st_dev; 81 unsigned int st_pad1[3]; // Reserved for st_dev expansion 82 83 unsigned long st_ino; 84 85 mode_t st_mode; 86 __u32 st_nlink; 87 88 uid_t st_uid; 89 gid_t st_gid; 90 91 unsigned int st_rdev; 92 unsigned int st_pad2[3]; // Reserved for st_rdev expansion 93 94 off_t st_size; 95 96 // These are declared as speperate fields in the kernel. Here we use 97 // the timespec struct for consistancy with the other stat structs. 98 struct timespec st_atim; 99 struct timespec st_mtim; 100 struct timespec st_ctim; 101 102 unsigned int st_blksize; 103 unsigned int st_pad4; 104 105 long st_blocks; 106}; 107 108// These are needed because we do not include fcntl.h or sys/types.h 109#include <linux/fcntl.h> 110#include <linux/fadvise.h> 111 112#else 113 114// Use the stat defined by glibc 115#include <fcntl.h> 116#include <sys/types.h> 117 118#endif 119 120// These are defined in linux/fcntl.h, but including it globally causes 121// conflicts with fcntl.h 122#ifndef AT_STATX_SYNC_TYPE 123# define AT_STATX_SYNC_TYPE 0x6000 // Type of synchronisation required from statx() 124#endif 125#ifndef AT_STATX_SYNC_AS_STAT 126# define AT_STATX_SYNC_AS_STAT 0x0000 // - Do whatever stat() does 127#endif 128#ifndef AT_STATX_FORCE_SYNC 129# define AT_STATX_FORCE_SYNC 0x2000 // - Force the attributes to be sync'd with the server 130#endif 131#ifndef AT_STATX_DONT_SYNC 132# define AT_STATX_DONT_SYNC 0x4000 // - Don't sync attributes with the server 133#endif 134 135#ifdef TCSETS2 136// On systems that have "struct termios2" use this as type Termios. 137typedef struct termios2 termios_t; 138#else 139typedef struct termios termios_t; 140#endif 141 142enum { 143 sizeofPtr = sizeof(void*), 144}; 145 146union sockaddr_all { 147 struct sockaddr s1; // this one gets used for fields 148 struct sockaddr_in s2; // these pad it out 149 struct sockaddr_in6 s3; 150 struct sockaddr_un s4; 151 struct sockaddr_ll s5; 152 struct sockaddr_nl s6; 153}; 154 155struct sockaddr_any { 156 struct sockaddr addr; 157 char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; 158}; 159 160// copied from /usr/include/bluetooth/hci.h 161struct sockaddr_hci { 162 sa_family_t hci_family; 163 unsigned short hci_dev; 164 unsigned short hci_channel; 165}; 166 167// copied from /usr/include/bluetooth/bluetooth.h 168#define BDADDR_BREDR 0x00 169#define BDADDR_LE_PUBLIC 0x01 170#define BDADDR_LE_RANDOM 0x02 171 172// copied from /usr/include/bluetooth/l2cap.h 173struct sockaddr_l2 { 174 sa_family_t l2_family; 175 unsigned short l2_psm; 176 uint8_t l2_bdaddr[6]; 177 unsigned short l2_cid; 178 uint8_t l2_bdaddr_type; 179}; 180 181// copied from /usr/include/linux/un.h 182struct my_sockaddr_un { 183 sa_family_t sun_family; 184#if defined(__ARM_EABI__) || defined(__powerpc64__) 185 // on ARM char is by default unsigned 186 signed char sun_path[108]; 187#else 188 char sun_path[108]; 189#endif 190}; 191 192#ifdef __ARM_EABI__ 193typedef struct user_regs PtraceRegs; 194#elif defined(__aarch64__) 195typedef struct user_pt_regs PtraceRegs; 196#elif defined(__mips__) || defined(__powerpc64__) 197typedef struct pt_regs PtraceRegs; 198#elif defined(__s390x__) 199typedef struct _user_regs_struct PtraceRegs; 200#elif defined(__sparc__) 201#include <asm/ptrace.h> 202typedef struct pt_regs PtraceRegs; 203#else 204typedef struct user_regs_struct PtraceRegs; 205#endif 206 207#if defined(__s390x__) 208typedef struct _user_psw_struct ptracePsw; 209typedef struct _user_fpregs_struct ptraceFpregs; 210typedef struct _user_per_struct ptracePer; 211#else 212typedef struct {} ptracePsw; 213typedef struct {} ptraceFpregs; 214typedef struct {} ptracePer; 215#endif 216 217// The real epoll_event is a union, and godefs doesn't handle it well. 218struct my_epoll_event { 219 uint32_t events; 220#if defined(__ARM_EABI__) || defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABIO32) 221 // padding is not specified in linux/eventpoll.h but added to conform to the 222 // alignment requirements of EABI 223 int32_t padFd; 224#elif defined(__powerpc64__) || defined(__s390x__) || defined(__sparc__) 225 int32_t _padFd; 226#endif 227 int32_t fd; 228 int32_t pad; 229}; 230 231*/ 232import "C" 233 234// Machine characteristics; for internal use. 235 236const ( 237 sizeofPtr = C.sizeofPtr 238 sizeofShort = C.sizeof_short 239 sizeofInt = C.sizeof_int 240 sizeofLong = C.sizeof_long 241 sizeofLongLong = C.sizeof_longlong 242 PathMax = C.PATH_MAX 243) 244 245// Basic types 246 247type ( 248 _C_short C.short 249 _C_int C.int 250 _C_long C.long 251 _C_long_long C.longlong 252) 253 254// Time 255 256type Timespec C.struct_timespec 257 258type Timeval C.struct_timeval 259 260type Timex C.struct_timex 261 262type Time_t C.time_t 263 264type Tms C.struct_tms 265 266type Utimbuf C.struct_utimbuf 267 268// Processes 269 270type Rusage C.struct_rusage 271 272type Rlimit C.struct_rlimit 273 274type _Gid_t C.gid_t 275 276// Files 277 278type Stat_t C.struct_stat 279 280type Statfs_t C.struct_statfs 281 282type StatxTimestamp C.struct_statx_timestamp 283 284type Statx_t C.struct_statx 285 286type Dirent C.struct_dirent 287 288type Fsid C.fsid_t 289 290type Flock_t C.struct_flock 291 292// Filesystem Encryption 293 294type FscryptPolicy C.struct_fscrypt_policy 295 296type FscryptKey C.struct_fscrypt_key 297 298// Structure for Keyctl 299 300type KeyctlDHParams C.struct_keyctl_dh_params 301 302// Advice to Fadvise 303 304const ( 305 FADV_NORMAL = C.POSIX_FADV_NORMAL 306 FADV_RANDOM = C.POSIX_FADV_RANDOM 307 FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL 308 FADV_WILLNEED = C.POSIX_FADV_WILLNEED 309 FADV_DONTNEED = C.POSIX_FADV_DONTNEED 310 FADV_NOREUSE = C.POSIX_FADV_NOREUSE 311) 312 313// Sockets 314 315type RawSockaddrInet4 C.struct_sockaddr_in 316 317type RawSockaddrInet6 C.struct_sockaddr_in6 318 319type RawSockaddrUnix C.struct_my_sockaddr_un 320 321type RawSockaddrLinklayer C.struct_sockaddr_ll 322 323type RawSockaddrNetlink C.struct_sockaddr_nl 324 325type RawSockaddrHCI C.struct_sockaddr_hci 326 327type RawSockaddrL2 C.struct_sockaddr_l2 328 329type RawSockaddrCAN C.struct_sockaddr_can 330 331type RawSockaddrALG C.struct_sockaddr_alg 332 333type RawSockaddrVM C.struct_sockaddr_vm 334 335type RawSockaddr C.struct_sockaddr 336 337type RawSockaddrAny C.struct_sockaddr_any 338 339type _Socklen C.socklen_t 340 341type Linger C.struct_linger 342 343type Iovec C.struct_iovec 344 345type IPMreq C.struct_ip_mreq 346 347type IPMreqn C.struct_ip_mreqn 348 349type IPv6Mreq C.struct_ipv6_mreq 350 351type PacketMreq C.struct_packet_mreq 352 353type Msghdr C.struct_msghdr 354 355type Cmsghdr C.struct_cmsghdr 356 357type Inet4Pktinfo C.struct_in_pktinfo 358 359type Inet6Pktinfo C.struct_in6_pktinfo 360 361type IPv6MTUInfo C.struct_ip6_mtuinfo 362 363type ICMPv6Filter C.struct_icmp6_filter 364 365type Ucred C.struct_ucred 366 367type TCPInfo C.struct_tcp_info 368 369const ( 370 SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in 371 SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 372 SizeofSockaddrAny = C.sizeof_struct_sockaddr_any 373 SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un 374 SizeofSockaddrLinklayer = C.sizeof_struct_sockaddr_ll 375 SizeofSockaddrNetlink = C.sizeof_struct_sockaddr_nl 376 SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci 377 SizeofSockaddrL2 = C.sizeof_struct_sockaddr_l2 378 SizeofSockaddrCAN = C.sizeof_struct_sockaddr_can 379 SizeofSockaddrALG = C.sizeof_struct_sockaddr_alg 380 SizeofSockaddrVM = C.sizeof_struct_sockaddr_vm 381 SizeofLinger = C.sizeof_struct_linger 382 SizeofIovec = C.sizeof_struct_iovec 383 SizeofIPMreq = C.sizeof_struct_ip_mreq 384 SizeofIPMreqn = C.sizeof_struct_ip_mreqn 385 SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq 386 SizeofPacketMreq = C.sizeof_struct_packet_mreq 387 SizeofMsghdr = C.sizeof_struct_msghdr 388 SizeofCmsghdr = C.sizeof_struct_cmsghdr 389 SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo 390 SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo 391 SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo 392 SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter 393 SizeofUcred = C.sizeof_struct_ucred 394 SizeofTCPInfo = C.sizeof_struct_tcp_info 395) 396 397// Netlink routing and interface messages 398 399const ( 400 IFA_UNSPEC = C.IFA_UNSPEC 401 IFA_ADDRESS = C.IFA_ADDRESS 402 IFA_LOCAL = C.IFA_LOCAL 403 IFA_LABEL = C.IFA_LABEL 404 IFA_BROADCAST = C.IFA_BROADCAST 405 IFA_ANYCAST = C.IFA_ANYCAST 406 IFA_CACHEINFO = C.IFA_CACHEINFO 407 IFA_MULTICAST = C.IFA_MULTICAST 408 IFLA_UNSPEC = C.IFLA_UNSPEC 409 IFLA_ADDRESS = C.IFLA_ADDRESS 410 IFLA_BROADCAST = C.IFLA_BROADCAST 411 IFLA_IFNAME = C.IFLA_IFNAME 412 IFLA_MTU = C.IFLA_MTU 413 IFLA_LINK = C.IFLA_LINK 414 IFLA_QDISC = C.IFLA_QDISC 415 IFLA_STATS = C.IFLA_STATS 416 IFLA_COST = C.IFLA_COST 417 IFLA_PRIORITY = C.IFLA_PRIORITY 418 IFLA_MASTER = C.IFLA_MASTER 419 IFLA_WIRELESS = C.IFLA_WIRELESS 420 IFLA_PROTINFO = C.IFLA_PROTINFO 421 IFLA_TXQLEN = C.IFLA_TXQLEN 422 IFLA_MAP = C.IFLA_MAP 423 IFLA_WEIGHT = C.IFLA_WEIGHT 424 IFLA_OPERSTATE = C.IFLA_OPERSTATE 425 IFLA_LINKMODE = C.IFLA_LINKMODE 426 IFLA_LINKINFO = C.IFLA_LINKINFO 427 IFLA_NET_NS_PID = C.IFLA_NET_NS_PID 428 IFLA_IFALIAS = C.IFLA_IFALIAS 429 IFLA_NUM_VF = C.IFLA_NUM_VF 430 IFLA_VFINFO_LIST = C.IFLA_VFINFO_LIST 431 IFLA_STATS64 = C.IFLA_STATS64 432 IFLA_VF_PORTS = C.IFLA_VF_PORTS 433 IFLA_PORT_SELF = C.IFLA_PORT_SELF 434 IFLA_AF_SPEC = C.IFLA_AF_SPEC 435 IFLA_GROUP = C.IFLA_GROUP 436 IFLA_NET_NS_FD = C.IFLA_NET_NS_FD 437 IFLA_EXT_MASK = C.IFLA_EXT_MASK 438 IFLA_PROMISCUITY = C.IFLA_PROMISCUITY 439 IFLA_NUM_TX_QUEUES = C.IFLA_NUM_TX_QUEUES 440 IFLA_NUM_RX_QUEUES = C.IFLA_NUM_RX_QUEUES 441 IFLA_CARRIER = C.IFLA_CARRIER 442 IFLA_PHYS_PORT_ID = C.IFLA_PHYS_PORT_ID 443 IFLA_CARRIER_CHANGES = C.IFLA_CARRIER_CHANGES 444 IFLA_PHYS_SWITCH_ID = C.IFLA_PHYS_SWITCH_ID 445 IFLA_LINK_NETNSID = C.IFLA_LINK_NETNSID 446 IFLA_PHYS_PORT_NAME = C.IFLA_PHYS_PORT_NAME 447 IFLA_PROTO_DOWN = C.IFLA_PROTO_DOWN 448 IFLA_GSO_MAX_SEGS = C.IFLA_GSO_MAX_SEGS 449 IFLA_GSO_MAX_SIZE = C.IFLA_GSO_MAX_SIZE 450 IFLA_PAD = C.IFLA_PAD 451 IFLA_XDP = C.IFLA_XDP 452 IFLA_EVENT = C.IFLA_EVENT 453 IFLA_NEW_NETNSID = C.IFLA_NEW_NETNSID 454 IFLA_IF_NETNSID = C.IFLA_IF_NETNSID 455 IFLA_MAX = C.IFLA_MAX 456 RT_SCOPE_UNIVERSE = C.RT_SCOPE_UNIVERSE 457 RT_SCOPE_SITE = C.RT_SCOPE_SITE 458 RT_SCOPE_LINK = C.RT_SCOPE_LINK 459 RT_SCOPE_HOST = C.RT_SCOPE_HOST 460 RT_SCOPE_NOWHERE = C.RT_SCOPE_NOWHERE 461 RT_TABLE_UNSPEC = C.RT_TABLE_UNSPEC 462 RT_TABLE_COMPAT = C.RT_TABLE_COMPAT 463 RT_TABLE_DEFAULT = C.RT_TABLE_DEFAULT 464 RT_TABLE_MAIN = C.RT_TABLE_MAIN 465 RT_TABLE_LOCAL = C.RT_TABLE_LOCAL 466 RT_TABLE_MAX = C.RT_TABLE_MAX 467 RTA_UNSPEC = C.RTA_UNSPEC 468 RTA_DST = C.RTA_DST 469 RTA_SRC = C.RTA_SRC 470 RTA_IIF = C.RTA_IIF 471 RTA_OIF = C.RTA_OIF 472 RTA_GATEWAY = C.RTA_GATEWAY 473 RTA_PRIORITY = C.RTA_PRIORITY 474 RTA_PREFSRC = C.RTA_PREFSRC 475 RTA_METRICS = C.RTA_METRICS 476 RTA_MULTIPATH = C.RTA_MULTIPATH 477 RTA_FLOW = C.RTA_FLOW 478 RTA_CACHEINFO = C.RTA_CACHEINFO 479 RTA_TABLE = C.RTA_TABLE 480 RTN_UNSPEC = C.RTN_UNSPEC 481 RTN_UNICAST = C.RTN_UNICAST 482 RTN_LOCAL = C.RTN_LOCAL 483 RTN_BROADCAST = C.RTN_BROADCAST 484 RTN_ANYCAST = C.RTN_ANYCAST 485 RTN_MULTICAST = C.RTN_MULTICAST 486 RTN_BLACKHOLE = C.RTN_BLACKHOLE 487 RTN_UNREACHABLE = C.RTN_UNREACHABLE 488 RTN_PROHIBIT = C.RTN_PROHIBIT 489 RTN_THROW = C.RTN_THROW 490 RTN_NAT = C.RTN_NAT 491 RTN_XRESOLVE = C.RTN_XRESOLVE 492 RTNLGRP_NONE = C.RTNLGRP_NONE 493 RTNLGRP_LINK = C.RTNLGRP_LINK 494 RTNLGRP_NOTIFY = C.RTNLGRP_NOTIFY 495 RTNLGRP_NEIGH = C.RTNLGRP_NEIGH 496 RTNLGRP_TC = C.RTNLGRP_TC 497 RTNLGRP_IPV4_IFADDR = C.RTNLGRP_IPV4_IFADDR 498 RTNLGRP_IPV4_MROUTE = C.RTNLGRP_IPV4_MROUTE 499 RTNLGRP_IPV4_ROUTE = C.RTNLGRP_IPV4_ROUTE 500 RTNLGRP_IPV4_RULE = C.RTNLGRP_IPV4_RULE 501 RTNLGRP_IPV6_IFADDR = C.RTNLGRP_IPV6_IFADDR 502 RTNLGRP_IPV6_MROUTE = C.RTNLGRP_IPV6_MROUTE 503 RTNLGRP_IPV6_ROUTE = C.RTNLGRP_IPV6_ROUTE 504 RTNLGRP_IPV6_IFINFO = C.RTNLGRP_IPV6_IFINFO 505 RTNLGRP_IPV6_PREFIX = C.RTNLGRP_IPV6_PREFIX 506 RTNLGRP_IPV6_RULE = C.RTNLGRP_IPV6_RULE 507 RTNLGRP_ND_USEROPT = C.RTNLGRP_ND_USEROPT 508 SizeofNlMsghdr = C.sizeof_struct_nlmsghdr 509 SizeofNlMsgerr = C.sizeof_struct_nlmsgerr 510 SizeofRtGenmsg = C.sizeof_struct_rtgenmsg 511 SizeofNlAttr = C.sizeof_struct_nlattr 512 SizeofRtAttr = C.sizeof_struct_rtattr 513 SizeofIfInfomsg = C.sizeof_struct_ifinfomsg 514 SizeofIfAddrmsg = C.sizeof_struct_ifaddrmsg 515 SizeofRtMsg = C.sizeof_struct_rtmsg 516 SizeofRtNexthop = C.sizeof_struct_rtnexthop 517) 518 519type NlMsghdr C.struct_nlmsghdr 520 521type NlMsgerr C.struct_nlmsgerr 522 523type RtGenmsg C.struct_rtgenmsg 524 525type NlAttr C.struct_nlattr 526 527type RtAttr C.struct_rtattr 528 529type IfInfomsg C.struct_ifinfomsg 530 531type IfAddrmsg C.struct_ifaddrmsg 532 533type RtMsg C.struct_rtmsg 534 535type RtNexthop C.struct_rtnexthop 536 537// Linux socket filter 538 539const ( 540 SizeofSockFilter = C.sizeof_struct_sock_filter 541 SizeofSockFprog = C.sizeof_struct_sock_fprog 542) 543 544type SockFilter C.struct_sock_filter 545 546type SockFprog C.struct_sock_fprog 547 548// Inotify 549 550type InotifyEvent C.struct_inotify_event 551 552const SizeofInotifyEvent = C.sizeof_struct_inotify_event 553 554// Ptrace 555 556// Register structures 557type PtraceRegs C.PtraceRegs 558 559// Structures contained in PtraceRegs on s390x (exported by mkpost.go) 560type PtracePsw C.ptracePsw 561 562type PtraceFpregs C.ptraceFpregs 563 564type PtracePer C.ptracePer 565 566// Misc 567 568type FdSet C.fd_set 569 570type Sysinfo_t C.struct_sysinfo 571 572type Utsname C.struct_utsname 573 574type Ustat_t C.struct_ustat 575 576type EpollEvent C.struct_my_epoll_event 577 578const ( 579 AT_EMPTY_PATH = C.AT_EMPTY_PATH 580 AT_FDCWD = C.AT_FDCWD 581 AT_NO_AUTOMOUNT = C.AT_NO_AUTOMOUNT 582 AT_REMOVEDIR = C.AT_REMOVEDIR 583 584 AT_STATX_SYNC_AS_STAT = C.AT_STATX_SYNC_AS_STAT 585 AT_STATX_FORCE_SYNC = C.AT_STATX_FORCE_SYNC 586 AT_STATX_DONT_SYNC = C.AT_STATX_DONT_SYNC 587 588 AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW 589 AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW 590) 591 592type PollFd C.struct_pollfd 593 594const ( 595 POLLIN = C.POLLIN 596 POLLPRI = C.POLLPRI 597 POLLOUT = C.POLLOUT 598 POLLRDHUP = C.POLLRDHUP 599 POLLERR = C.POLLERR 600 POLLHUP = C.POLLHUP 601 POLLNVAL = C.POLLNVAL 602) 603 604type Sigset_t C.sigset_t 605 606const RNDGETENTCNT = C.RNDGETENTCNT 607 608const PERF_IOC_FLAG_GROUP = C.PERF_IOC_FLAG_GROUP 609 610// Terminal handling 611 612type Termios C.termios_t 613 614type Winsize C.struct_winsize 615 616// Taskstats and cgroup stats. 617 618type Taskstats C.struct_taskstats 619 620const ( 621 TASKSTATS_CMD_UNSPEC = C.TASKSTATS_CMD_UNSPEC 622 TASKSTATS_CMD_GET = C.TASKSTATS_CMD_GET 623 TASKSTATS_CMD_NEW = C.TASKSTATS_CMD_NEW 624 TASKSTATS_TYPE_UNSPEC = C.TASKSTATS_TYPE_UNSPEC 625 TASKSTATS_TYPE_PID = C.TASKSTATS_TYPE_PID 626 TASKSTATS_TYPE_TGID = C.TASKSTATS_TYPE_TGID 627 TASKSTATS_TYPE_STATS = C.TASKSTATS_TYPE_STATS 628 TASKSTATS_TYPE_AGGR_PID = C.TASKSTATS_TYPE_AGGR_PID 629 TASKSTATS_TYPE_AGGR_TGID = C.TASKSTATS_TYPE_AGGR_TGID 630 TASKSTATS_TYPE_NULL = C.TASKSTATS_TYPE_NULL 631 TASKSTATS_CMD_ATTR_UNSPEC = C.TASKSTATS_CMD_ATTR_UNSPEC 632 TASKSTATS_CMD_ATTR_PID = C.TASKSTATS_CMD_ATTR_PID 633 TASKSTATS_CMD_ATTR_TGID = C.TASKSTATS_CMD_ATTR_TGID 634 TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = C.TASKSTATS_CMD_ATTR_REGISTER_CPUMASK 635 TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = C.TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK 636) 637 638type CGroupStats C.struct_cgroupstats 639 640const ( 641 CGROUPSTATS_CMD_UNSPEC = C.__TASKSTATS_CMD_MAX 642 CGROUPSTATS_CMD_GET = C.CGROUPSTATS_CMD_GET 643 CGROUPSTATS_CMD_NEW = C.CGROUPSTATS_CMD_NEW 644 CGROUPSTATS_TYPE_UNSPEC = C.CGROUPSTATS_TYPE_UNSPEC 645 CGROUPSTATS_TYPE_CGROUP_STATS = C.CGROUPSTATS_TYPE_CGROUP_STATS 646 CGROUPSTATS_CMD_ATTR_UNSPEC = C.CGROUPSTATS_CMD_ATTR_UNSPEC 647 CGROUPSTATS_CMD_ATTR_FD = C.CGROUPSTATS_CMD_ATTR_FD 648) 649 650// Generic netlink 651 652type Genlmsghdr C.struct_genlmsghdr 653 654const ( 655 CTRL_CMD_UNSPEC = C.CTRL_CMD_UNSPEC 656 CTRL_CMD_NEWFAMILY = C.CTRL_CMD_NEWFAMILY 657 CTRL_CMD_DELFAMILY = C.CTRL_CMD_DELFAMILY 658 CTRL_CMD_GETFAMILY = C.CTRL_CMD_GETFAMILY 659 CTRL_CMD_NEWOPS = C.CTRL_CMD_NEWOPS 660 CTRL_CMD_DELOPS = C.CTRL_CMD_DELOPS 661 CTRL_CMD_GETOPS = C.CTRL_CMD_GETOPS 662 CTRL_CMD_NEWMCAST_GRP = C.CTRL_CMD_NEWMCAST_GRP 663 CTRL_CMD_DELMCAST_GRP = C.CTRL_CMD_DELMCAST_GRP 664 CTRL_CMD_GETMCAST_GRP = C.CTRL_CMD_GETMCAST_GRP 665 CTRL_ATTR_UNSPEC = C.CTRL_ATTR_UNSPEC 666 CTRL_ATTR_FAMILY_ID = C.CTRL_ATTR_FAMILY_ID 667 CTRL_ATTR_FAMILY_NAME = C.CTRL_ATTR_FAMILY_NAME 668 CTRL_ATTR_VERSION = C.CTRL_ATTR_VERSION 669 CTRL_ATTR_HDRSIZE = C.CTRL_ATTR_HDRSIZE 670 CTRL_ATTR_MAXATTR = C.CTRL_ATTR_MAXATTR 671 CTRL_ATTR_OPS = C.CTRL_ATTR_OPS 672 CTRL_ATTR_MCAST_GROUPS = C.CTRL_ATTR_MCAST_GROUPS 673 CTRL_ATTR_OP_UNSPEC = C.CTRL_ATTR_OP_UNSPEC 674 CTRL_ATTR_OP_ID = C.CTRL_ATTR_OP_ID 675 CTRL_ATTR_OP_FLAGS = C.CTRL_ATTR_OP_FLAGS 676 CTRL_ATTR_MCAST_GRP_UNSPEC = C.CTRL_ATTR_MCAST_GRP_UNSPEC 677 CTRL_ATTR_MCAST_GRP_NAME = C.CTRL_ATTR_MCAST_GRP_NAME 678 CTRL_ATTR_MCAST_GRP_ID = C.CTRL_ATTR_MCAST_GRP_ID 679) 680 681// CPU affinity 682 683type cpuMask C.__cpu_mask 684 685const ( 686 _CPU_SETSIZE = C.__CPU_SETSIZE 687 _NCPUBITS = C.__NCPUBITS 688) 689 690// Bluetooth 691 692const ( 693 BDADDR_BREDR = C.BDADDR_BREDR 694 BDADDR_LE_PUBLIC = C.BDADDR_LE_PUBLIC 695 BDADDR_LE_RANDOM = C.BDADDR_LE_RANDOM 696) 697