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_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 493type NlMsghdr C.struct_nlmsghdr 494 495type NlMsgerr C.struct_nlmsgerr 496 497type RtGenmsg C.struct_rtgenmsg 498 499type NlAttr C.struct_nlattr 500 501type RtAttr C.struct_rtattr 502 503type IfInfomsg C.struct_ifinfomsg 504 505type IfAddrmsg C.struct_ifaddrmsg 506 507type RtMsg C.struct_rtmsg 508 509type RtNexthop C.struct_rtnexthop 510 511// Linux socket filter 512 513const ( 514 SizeofSockFilter = C.sizeof_struct_sock_filter 515 SizeofSockFprog = C.sizeof_struct_sock_fprog 516) 517 518type SockFilter C.struct_sock_filter 519 520type SockFprog C.struct_sock_fprog 521 522// Inotify 523 524type InotifyEvent C.struct_inotify_event 525 526const SizeofInotifyEvent = C.sizeof_struct_inotify_event 527 528// Ptrace 529 530// Register structures 531type PtraceRegs C.PtraceRegs 532 533// Structures contained in PtraceRegs on s390x (exported by mkpost.go) 534type PtracePsw C.ptracePsw 535 536type PtraceFpregs C.ptraceFpregs 537 538type PtracePer C.ptracePer 539 540// Misc 541 542type FdSet C.fd_set 543 544type Sysinfo_t C.struct_sysinfo 545 546type Utsname C.struct_utsname 547 548type Ustat_t C.struct_ustat 549 550type EpollEvent C.struct_my_epoll_event 551 552const ( 553 AT_EMPTY_PATH = C.AT_EMPTY_PATH 554 AT_FDCWD = C.AT_FDCWD 555 AT_NO_AUTOMOUNT = C.AT_NO_AUTOMOUNT 556 AT_REMOVEDIR = C.AT_REMOVEDIR 557 558 AT_STATX_SYNC_AS_STAT = C.AT_STATX_SYNC_AS_STAT 559 AT_STATX_FORCE_SYNC = C.AT_STATX_FORCE_SYNC 560 AT_STATX_DONT_SYNC = C.AT_STATX_DONT_SYNC 561 562 AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW 563 AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW 564) 565 566type PollFd C.struct_pollfd 567 568const ( 569 POLLIN = C.POLLIN 570 POLLPRI = C.POLLPRI 571 POLLOUT = C.POLLOUT 572 POLLRDHUP = C.POLLRDHUP 573 POLLERR = C.POLLERR 574 POLLHUP = C.POLLHUP 575 POLLNVAL = C.POLLNVAL 576) 577 578type Sigset_t C.sigset_t 579 580const RNDGETENTCNT = C.RNDGETENTCNT 581 582const PERF_IOC_FLAG_GROUP = C.PERF_IOC_FLAG_GROUP 583 584// Terminal handling 585 586type Termios C.termios_t 587 588type Winsize C.struct_winsize 589 590// Taskstats and cgroup stats. 591 592type Taskstats C.struct_taskstats 593 594const ( 595 TASKSTATS_CMD_UNSPEC = C.TASKSTATS_CMD_UNSPEC 596 TASKSTATS_CMD_GET = C.TASKSTATS_CMD_GET 597 TASKSTATS_CMD_NEW = C.TASKSTATS_CMD_NEW 598 TASKSTATS_TYPE_UNSPEC = C.TASKSTATS_TYPE_UNSPEC 599 TASKSTATS_TYPE_PID = C.TASKSTATS_TYPE_PID 600 TASKSTATS_TYPE_TGID = C.TASKSTATS_TYPE_TGID 601 TASKSTATS_TYPE_STATS = C.TASKSTATS_TYPE_STATS 602 TASKSTATS_TYPE_AGGR_PID = C.TASKSTATS_TYPE_AGGR_PID 603 TASKSTATS_TYPE_AGGR_TGID = C.TASKSTATS_TYPE_AGGR_TGID 604 TASKSTATS_TYPE_NULL = C.TASKSTATS_TYPE_NULL 605 TASKSTATS_CMD_ATTR_UNSPEC = C.TASKSTATS_CMD_ATTR_UNSPEC 606 TASKSTATS_CMD_ATTR_PID = C.TASKSTATS_CMD_ATTR_PID 607 TASKSTATS_CMD_ATTR_TGID = C.TASKSTATS_CMD_ATTR_TGID 608 TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = C.TASKSTATS_CMD_ATTR_REGISTER_CPUMASK 609 TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = C.TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK 610) 611 612type CGroupStats C.struct_cgroupstats 613 614const ( 615 CGROUPSTATS_CMD_UNSPEC = C.__TASKSTATS_CMD_MAX 616 CGROUPSTATS_CMD_GET = C.CGROUPSTATS_CMD_GET 617 CGROUPSTATS_CMD_NEW = C.CGROUPSTATS_CMD_NEW 618 CGROUPSTATS_TYPE_UNSPEC = C.CGROUPSTATS_TYPE_UNSPEC 619 CGROUPSTATS_TYPE_CGROUP_STATS = C.CGROUPSTATS_TYPE_CGROUP_STATS 620 CGROUPSTATS_CMD_ATTR_UNSPEC = C.CGROUPSTATS_CMD_ATTR_UNSPEC 621 CGROUPSTATS_CMD_ATTR_FD = C.CGROUPSTATS_CMD_ATTR_FD 622) 623 624// Generic netlink 625 626type Genlmsghdr C.struct_genlmsghdr 627 628const ( 629 CTRL_CMD_UNSPEC = C.CTRL_CMD_UNSPEC 630 CTRL_CMD_NEWFAMILY = C.CTRL_CMD_NEWFAMILY 631 CTRL_CMD_DELFAMILY = C.CTRL_CMD_DELFAMILY 632 CTRL_CMD_GETFAMILY = C.CTRL_CMD_GETFAMILY 633 CTRL_CMD_NEWOPS = C.CTRL_CMD_NEWOPS 634 CTRL_CMD_DELOPS = C.CTRL_CMD_DELOPS 635 CTRL_CMD_GETOPS = C.CTRL_CMD_GETOPS 636 CTRL_CMD_NEWMCAST_GRP = C.CTRL_CMD_NEWMCAST_GRP 637 CTRL_CMD_DELMCAST_GRP = C.CTRL_CMD_DELMCAST_GRP 638 CTRL_CMD_GETMCAST_GRP = C.CTRL_CMD_GETMCAST_GRP 639 CTRL_ATTR_UNSPEC = C.CTRL_ATTR_UNSPEC 640 CTRL_ATTR_FAMILY_ID = C.CTRL_ATTR_FAMILY_ID 641 CTRL_ATTR_FAMILY_NAME = C.CTRL_ATTR_FAMILY_NAME 642 CTRL_ATTR_VERSION = C.CTRL_ATTR_VERSION 643 CTRL_ATTR_HDRSIZE = C.CTRL_ATTR_HDRSIZE 644 CTRL_ATTR_MAXATTR = C.CTRL_ATTR_MAXATTR 645 CTRL_ATTR_OPS = C.CTRL_ATTR_OPS 646 CTRL_ATTR_MCAST_GROUPS = C.CTRL_ATTR_MCAST_GROUPS 647 CTRL_ATTR_OP_UNSPEC = C.CTRL_ATTR_OP_UNSPEC 648 CTRL_ATTR_OP_ID = C.CTRL_ATTR_OP_ID 649 CTRL_ATTR_OP_FLAGS = C.CTRL_ATTR_OP_FLAGS 650 CTRL_ATTR_MCAST_GRP_UNSPEC = C.CTRL_ATTR_MCAST_GRP_UNSPEC 651 CTRL_ATTR_MCAST_GRP_NAME = C.CTRL_ATTR_MCAST_GRP_NAME 652 CTRL_ATTR_MCAST_GRP_ID = C.CTRL_ATTR_MCAST_GRP_ID 653) 654 655// CPU affinity 656 657type cpuMask C.__cpu_mask 658 659const ( 660 _CPU_SETSIZE = C.__CPU_SETSIZE 661 _NCPUBITS = C.__NCPUBITS 662) 663 664// Bluetooth 665 666const ( 667 BDADDR_BREDR = C.BDADDR_BREDR 668 BDADDR_LE_PUBLIC = C.BDADDR_LE_PUBLIC 669 BDADDR_LE_RANDOM = C.BDADDR_LE_RANDOM 670) 671