github.com/aayushi-bansal/sys@v0.0.0-20180118120756-90d962a959d8/unix/linux/types.go (about) 1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // +build ignore 6 7 /* 8 Input to cgo -godefs. See README.md 9 */ 10 11 // +godefs map struct_in_addr [4]byte /* in_addr */ 12 // +godefs map struct_in6_addr [16]byte /* in6_addr */ 13 14 package unix 15 16 /* 17 #define _LARGEFILE_SOURCE 18 #define _LARGEFILE64_SOURCE 19 #define _FILE_OFFSET_BITS 64 20 #define _GNU_SOURCE 21 22 #include <dirent.h> 23 #include <netinet/in.h> 24 #include <netinet/tcp.h> 25 #include <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. 79 struct 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. 137 typedef struct termios2 termios_t; 138 #else 139 typedef struct termios termios_t; 140 #endif 141 142 enum { 143 sizeofPtr = sizeof(void*), 144 }; 145 146 union 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 155 struct 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 161 struct 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/linux/un.h 168 struct my_sockaddr_un { 169 sa_family_t sun_family; 170 #if defined(__ARM_EABI__) || defined(__powerpc64__) 171 // on ARM char is by default unsigned 172 signed char sun_path[108]; 173 #else 174 char sun_path[108]; 175 #endif 176 }; 177 178 #ifdef __ARM_EABI__ 179 typedef struct user_regs PtraceRegs; 180 #elif defined(__aarch64__) 181 typedef struct user_pt_regs PtraceRegs; 182 #elif defined(__mips__) || defined(__powerpc64__) 183 typedef struct pt_regs PtraceRegs; 184 #elif defined(__s390x__) 185 typedef struct _user_regs_struct PtraceRegs; 186 #elif defined(__sparc__) 187 #include <asm/ptrace.h> 188 typedef struct pt_regs PtraceRegs; 189 #else 190 typedef struct user_regs_struct PtraceRegs; 191 #endif 192 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 203 // The real epoll_event is a union, and godefs doesn't handle it well. 204 struct my_epoll_event { 205 uint32_t events; 206 #if defined(__ARM_EABI__) || defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABIO32) 207 // padding is not specified in linux/eventpoll.h but added to conform to the 208 // alignment requirements of EABI 209 int32_t padFd; 210 #elif defined(__powerpc64__) || defined(__s390x__) || defined(__sparc__) 211 int32_t _padFd; 212 #endif 213 int32_t fd; 214 int32_t pad; 215 }; 216 217 */ 218 import "C" 219 220 // Machine characteristics; for internal use. 221 222 const ( 223 sizeofPtr = C.sizeofPtr 224 sizeofShort = C.sizeof_short 225 sizeofInt = C.sizeof_int 226 sizeofLong = C.sizeof_long 227 sizeofLongLong = C.sizeof_longlong 228 PathMax = C.PATH_MAX 229 ) 230 231 // Basic types 232 233 type ( 234 _C_short C.short 235 _C_int C.int 236 _C_long C.long 237 _C_long_long C.longlong 238 ) 239 240 // Time 241 242 type Timespec C.struct_timespec 243 244 type Timeval C.struct_timeval 245 246 type Timex C.struct_timex 247 248 type Time_t C.time_t 249 250 type Tms C.struct_tms 251 252 type Utimbuf C.struct_utimbuf 253 254 // Processes 255 256 type Rusage C.struct_rusage 257 258 type Rlimit C.struct_rlimit 259 260 type _Gid_t C.gid_t 261 262 // Files 263 264 type Stat_t C.struct_stat 265 266 type Statfs_t C.struct_statfs 267 268 type StatxTimestamp C.struct_statx_timestamp 269 270 type Statx_t C.struct_statx 271 272 type Dirent C.struct_dirent 273 274 type Fsid C.fsid_t 275 276 type Flock_t C.struct_flock 277 278 // Filesystem Encryption 279 280 type FscryptPolicy C.struct_fscrypt_policy 281 282 type FscryptKey C.struct_fscrypt_key 283 284 // Structure for Keyctl 285 286 type KeyctlDHParams C.struct_keyctl_dh_params 287 288 // Advice to Fadvise 289 290 const ( 291 FADV_NORMAL = C.POSIX_FADV_NORMAL 292 FADV_RANDOM = C.POSIX_FADV_RANDOM 293 FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL 294 FADV_WILLNEED = C.POSIX_FADV_WILLNEED 295 FADV_DONTNEED = C.POSIX_FADV_DONTNEED 296 FADV_NOREUSE = C.POSIX_FADV_NOREUSE 297 ) 298 299 // Sockets 300 301 type RawSockaddrInet4 C.struct_sockaddr_in 302 303 type RawSockaddrInet6 C.struct_sockaddr_in6 304 305 type RawSockaddrUnix C.struct_my_sockaddr_un 306 307 type RawSockaddrLinklayer C.struct_sockaddr_ll 308 309 type RawSockaddrNetlink C.struct_sockaddr_nl 310 311 type RawSockaddrHCI C.struct_sockaddr_hci 312 313 type RawSockaddrCAN C.struct_sockaddr_can 314 315 type RawSockaddrALG C.struct_sockaddr_alg 316 317 type RawSockaddrVM C.struct_sockaddr_vm 318 319 type RawSockaddr C.struct_sockaddr 320 321 type RawSockaddrAny C.struct_sockaddr_any 322 323 type _Socklen C.socklen_t 324 325 type Linger C.struct_linger 326 327 type Iovec C.struct_iovec 328 329 type IPMreq C.struct_ip_mreq 330 331 type IPMreqn C.struct_ip_mreqn 332 333 type IPv6Mreq C.struct_ipv6_mreq 334 335 type PacketMreq C.struct_packet_mreq 336 337 type Msghdr C.struct_msghdr 338 339 type Cmsghdr C.struct_cmsghdr 340 341 type Inet4Pktinfo C.struct_in_pktinfo 342 343 type Inet6Pktinfo C.struct_in6_pktinfo 344 345 type IPv6MTUInfo C.struct_ip6_mtuinfo 346 347 type ICMPv6Filter C.struct_icmp6_filter 348 349 type Ucred C.struct_ucred 350 351 type TCPInfo C.struct_tcp_info 352 353 const ( 354 SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in 355 SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 356 SizeofSockaddrAny = C.sizeof_struct_sockaddr_any 357 SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un 358 SizeofSockaddrLinklayer = C.sizeof_struct_sockaddr_ll 359 SizeofSockaddrNetlink = C.sizeof_struct_sockaddr_nl 360 SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci 361 SizeofSockaddrCAN = C.sizeof_struct_sockaddr_can 362 SizeofSockaddrALG = C.sizeof_struct_sockaddr_alg 363 SizeofSockaddrVM = C.sizeof_struct_sockaddr_vm 364 SizeofLinger = C.sizeof_struct_linger 365 SizeofIovec = C.sizeof_struct_iovec 366 SizeofIPMreq = C.sizeof_struct_ip_mreq 367 SizeofIPMreqn = C.sizeof_struct_ip_mreqn 368 SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq 369 SizeofPacketMreq = C.sizeof_struct_packet_mreq 370 SizeofMsghdr = C.sizeof_struct_msghdr 371 SizeofCmsghdr = C.sizeof_struct_cmsghdr 372 SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo 373 SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo 374 SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo 375 SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter 376 SizeofUcred = C.sizeof_struct_ucred 377 SizeofTCPInfo = C.sizeof_struct_tcp_info 378 ) 379 380 // Netlink routing and interface messages 381 382 const ( 383 IFA_UNSPEC = C.IFA_UNSPEC 384 IFA_ADDRESS = C.IFA_ADDRESS 385 IFA_LOCAL = C.IFA_LOCAL 386 IFA_LABEL = C.IFA_LABEL 387 IFA_BROADCAST = C.IFA_BROADCAST 388 IFA_ANYCAST = C.IFA_ANYCAST 389 IFA_CACHEINFO = C.IFA_CACHEINFO 390 IFA_MULTICAST = C.IFA_MULTICAST 391 IFLA_UNSPEC = C.IFLA_UNSPEC 392 IFLA_ADDRESS = C.IFLA_ADDRESS 393 IFLA_BROADCAST = C.IFLA_BROADCAST 394 IFLA_IFNAME = C.IFLA_IFNAME 395 IFLA_MTU = C.IFLA_MTU 396 IFLA_LINK = C.IFLA_LINK 397 IFLA_QDISC = C.IFLA_QDISC 398 IFLA_STATS = C.IFLA_STATS 399 IFLA_COST = C.IFLA_COST 400 IFLA_PRIORITY = C.IFLA_PRIORITY 401 IFLA_MASTER = C.IFLA_MASTER 402 IFLA_WIRELESS = C.IFLA_WIRELESS 403 IFLA_PROTINFO = C.IFLA_PROTINFO 404 IFLA_TXQLEN = C.IFLA_TXQLEN 405 IFLA_MAP = C.IFLA_MAP 406 IFLA_WEIGHT = C.IFLA_WEIGHT 407 IFLA_OPERSTATE = C.IFLA_OPERSTATE 408 IFLA_LINKMODE = C.IFLA_LINKMODE 409 IFLA_LINKINFO = C.IFLA_LINKINFO 410 IFLA_NET_NS_PID = C.IFLA_NET_NS_PID 411 IFLA_IFALIAS = C.IFLA_IFALIAS 412 IFLA_MAX = C.IFLA_MAX 413 RT_SCOPE_UNIVERSE = C.RT_SCOPE_UNIVERSE 414 RT_SCOPE_SITE = C.RT_SCOPE_SITE 415 RT_SCOPE_LINK = C.RT_SCOPE_LINK 416 RT_SCOPE_HOST = C.RT_SCOPE_HOST 417 RT_SCOPE_NOWHERE = C.RT_SCOPE_NOWHERE 418 RT_TABLE_UNSPEC = C.RT_TABLE_UNSPEC 419 RT_TABLE_COMPAT = C.RT_TABLE_COMPAT 420 RT_TABLE_DEFAULT = C.RT_TABLE_DEFAULT 421 RT_TABLE_MAIN = C.RT_TABLE_MAIN 422 RT_TABLE_LOCAL = C.RT_TABLE_LOCAL 423 RT_TABLE_MAX = C.RT_TABLE_MAX 424 RTA_UNSPEC = C.RTA_UNSPEC 425 RTA_DST = C.RTA_DST 426 RTA_SRC = C.RTA_SRC 427 RTA_IIF = C.RTA_IIF 428 RTA_OIF = C.RTA_OIF 429 RTA_GATEWAY = C.RTA_GATEWAY 430 RTA_PRIORITY = C.RTA_PRIORITY 431 RTA_PREFSRC = C.RTA_PREFSRC 432 RTA_METRICS = C.RTA_METRICS 433 RTA_MULTIPATH = C.RTA_MULTIPATH 434 RTA_FLOW = C.RTA_FLOW 435 RTA_CACHEINFO = C.RTA_CACHEINFO 436 RTA_TABLE = C.RTA_TABLE 437 RTN_UNSPEC = C.RTN_UNSPEC 438 RTN_UNICAST = C.RTN_UNICAST 439 RTN_LOCAL = C.RTN_LOCAL 440 RTN_BROADCAST = C.RTN_BROADCAST 441 RTN_ANYCAST = C.RTN_ANYCAST 442 RTN_MULTICAST = C.RTN_MULTICAST 443 RTN_BLACKHOLE = C.RTN_BLACKHOLE 444 RTN_UNREACHABLE = C.RTN_UNREACHABLE 445 RTN_PROHIBIT = C.RTN_PROHIBIT 446 RTN_THROW = C.RTN_THROW 447 RTN_NAT = C.RTN_NAT 448 RTN_XRESOLVE = C.RTN_XRESOLVE 449 RTNLGRP_NONE = C.RTNLGRP_NONE 450 RTNLGRP_LINK = C.RTNLGRP_LINK 451 RTNLGRP_NOTIFY = C.RTNLGRP_NOTIFY 452 RTNLGRP_NEIGH = C.RTNLGRP_NEIGH 453 RTNLGRP_TC = C.RTNLGRP_TC 454 RTNLGRP_IPV4_IFADDR = C.RTNLGRP_IPV4_IFADDR 455 RTNLGRP_IPV4_MROUTE = C.RTNLGRP_IPV4_MROUTE 456 RTNLGRP_IPV4_ROUTE = C.RTNLGRP_IPV4_ROUTE 457 RTNLGRP_IPV4_RULE = C.RTNLGRP_IPV4_RULE 458 RTNLGRP_IPV6_IFADDR = C.RTNLGRP_IPV6_IFADDR 459 RTNLGRP_IPV6_MROUTE = C.RTNLGRP_IPV6_MROUTE 460 RTNLGRP_IPV6_ROUTE = C.RTNLGRP_IPV6_ROUTE 461 RTNLGRP_IPV6_IFINFO = C.RTNLGRP_IPV6_IFINFO 462 RTNLGRP_IPV6_PREFIX = C.RTNLGRP_IPV6_PREFIX 463 RTNLGRP_IPV6_RULE = C.RTNLGRP_IPV6_RULE 464 RTNLGRP_ND_USEROPT = C.RTNLGRP_ND_USEROPT 465 SizeofNlMsghdr = C.sizeof_struct_nlmsghdr 466 SizeofNlMsgerr = C.sizeof_struct_nlmsgerr 467 SizeofRtGenmsg = C.sizeof_struct_rtgenmsg 468 SizeofNlAttr = C.sizeof_struct_nlattr 469 SizeofRtAttr = C.sizeof_struct_rtattr 470 SizeofIfInfomsg = C.sizeof_struct_ifinfomsg 471 SizeofIfAddrmsg = C.sizeof_struct_ifaddrmsg 472 SizeofRtMsg = C.sizeof_struct_rtmsg 473 SizeofRtNexthop = C.sizeof_struct_rtnexthop 474 ) 475 476 type NlMsghdr C.struct_nlmsghdr 477 478 type NlMsgerr C.struct_nlmsgerr 479 480 type RtGenmsg C.struct_rtgenmsg 481 482 type NlAttr C.struct_nlattr 483 484 type RtAttr C.struct_rtattr 485 486 type IfInfomsg C.struct_ifinfomsg 487 488 type IfAddrmsg C.struct_ifaddrmsg 489 490 type RtMsg C.struct_rtmsg 491 492 type RtNexthop C.struct_rtnexthop 493 494 // Linux socket filter 495 496 const ( 497 SizeofSockFilter = C.sizeof_struct_sock_filter 498 SizeofSockFprog = C.sizeof_struct_sock_fprog 499 ) 500 501 type SockFilter C.struct_sock_filter 502 503 type SockFprog C.struct_sock_fprog 504 505 // Inotify 506 507 type InotifyEvent C.struct_inotify_event 508 509 const SizeofInotifyEvent = C.sizeof_struct_inotify_event 510 511 // Ptrace 512 513 // Register structures 514 type PtraceRegs C.PtraceRegs 515 516 // Structures contained in PtraceRegs on s390x (exported by mkpost.go) 517 type PtracePsw C.ptracePsw 518 519 type PtraceFpregs C.ptraceFpregs 520 521 type PtracePer C.ptracePer 522 523 // Misc 524 525 type FdSet C.fd_set 526 527 type Sysinfo_t C.struct_sysinfo 528 529 type Utsname C.struct_utsname 530 531 type Ustat_t C.struct_ustat 532 533 type EpollEvent C.struct_my_epoll_event 534 535 const ( 536 AT_EMPTY_PATH = C.AT_EMPTY_PATH 537 AT_FDCWD = C.AT_FDCWD 538 AT_NO_AUTOMOUNT = C.AT_NO_AUTOMOUNT 539 AT_REMOVEDIR = C.AT_REMOVEDIR 540 541 AT_STATX_SYNC_AS_STAT = C.AT_STATX_SYNC_AS_STAT 542 AT_STATX_FORCE_SYNC = C.AT_STATX_FORCE_SYNC 543 AT_STATX_DONT_SYNC = C.AT_STATX_DONT_SYNC 544 545 AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW 546 AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW 547 ) 548 549 type PollFd C.struct_pollfd 550 551 const ( 552 POLLIN = C.POLLIN 553 POLLPRI = C.POLLPRI 554 POLLOUT = C.POLLOUT 555 POLLRDHUP = C.POLLRDHUP 556 POLLERR = C.POLLERR 557 POLLHUP = C.POLLHUP 558 POLLNVAL = C.POLLNVAL 559 ) 560 561 type Sigset_t C.sigset_t 562 563 const RNDGETENTCNT = C.RNDGETENTCNT 564 565 const PERF_IOC_FLAG_GROUP = C.PERF_IOC_FLAG_GROUP 566 567 // Terminal handling 568 569 type Termios C.termios_t 570 571 type Winsize C.struct_winsize 572 573 // Taskstats and cgroup stats. 574 575 type Taskstats C.struct_taskstats 576 577 const ( 578 TASKSTATS_CMD_UNSPEC = C.TASKSTATS_CMD_UNSPEC 579 TASKSTATS_CMD_GET = C.TASKSTATS_CMD_GET 580 TASKSTATS_CMD_NEW = C.TASKSTATS_CMD_NEW 581 TASKSTATS_TYPE_UNSPEC = C.TASKSTATS_TYPE_UNSPEC 582 TASKSTATS_TYPE_PID = C.TASKSTATS_TYPE_PID 583 TASKSTATS_TYPE_TGID = C.TASKSTATS_TYPE_TGID 584 TASKSTATS_TYPE_STATS = C.TASKSTATS_TYPE_STATS 585 TASKSTATS_TYPE_AGGR_PID = C.TASKSTATS_TYPE_AGGR_PID 586 TASKSTATS_TYPE_AGGR_TGID = C.TASKSTATS_TYPE_AGGR_TGID 587 TASKSTATS_TYPE_NULL = C.TASKSTATS_TYPE_NULL 588 TASKSTATS_CMD_ATTR_UNSPEC = C.TASKSTATS_CMD_ATTR_UNSPEC 589 TASKSTATS_CMD_ATTR_PID = C.TASKSTATS_CMD_ATTR_PID 590 TASKSTATS_CMD_ATTR_TGID = C.TASKSTATS_CMD_ATTR_TGID 591 TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = C.TASKSTATS_CMD_ATTR_REGISTER_CPUMASK 592 TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = C.TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK 593 ) 594 595 type CGroupStats C.struct_cgroupstats 596 597 const ( 598 CGROUPSTATS_CMD_UNSPEC = C.__TASKSTATS_CMD_MAX 599 CGROUPSTATS_CMD_GET = C.CGROUPSTATS_CMD_GET 600 CGROUPSTATS_CMD_NEW = C.CGROUPSTATS_CMD_NEW 601 CGROUPSTATS_TYPE_UNSPEC = C.CGROUPSTATS_TYPE_UNSPEC 602 CGROUPSTATS_TYPE_CGROUP_STATS = C.CGROUPSTATS_TYPE_CGROUP_STATS 603 CGROUPSTATS_CMD_ATTR_UNSPEC = C.CGROUPSTATS_CMD_ATTR_UNSPEC 604 CGROUPSTATS_CMD_ATTR_FD = C.CGROUPSTATS_CMD_ATTR_FD 605 ) 606 607 // Generic netlink 608 609 type Genlmsghdr C.struct_genlmsghdr 610 611 const ( 612 CTRL_CMD_UNSPEC = C.CTRL_CMD_UNSPEC 613 CTRL_CMD_NEWFAMILY = C.CTRL_CMD_NEWFAMILY 614 CTRL_CMD_DELFAMILY = C.CTRL_CMD_DELFAMILY 615 CTRL_CMD_GETFAMILY = C.CTRL_CMD_GETFAMILY 616 CTRL_CMD_NEWOPS = C.CTRL_CMD_NEWOPS 617 CTRL_CMD_DELOPS = C.CTRL_CMD_DELOPS 618 CTRL_CMD_GETOPS = C.CTRL_CMD_GETOPS 619 CTRL_CMD_NEWMCAST_GRP = C.CTRL_CMD_NEWMCAST_GRP 620 CTRL_CMD_DELMCAST_GRP = C.CTRL_CMD_DELMCAST_GRP 621 CTRL_CMD_GETMCAST_GRP = C.CTRL_CMD_GETMCAST_GRP 622 CTRL_ATTR_UNSPEC = C.CTRL_ATTR_UNSPEC 623 CTRL_ATTR_FAMILY_ID = C.CTRL_ATTR_FAMILY_ID 624 CTRL_ATTR_FAMILY_NAME = C.CTRL_ATTR_FAMILY_NAME 625 CTRL_ATTR_VERSION = C.CTRL_ATTR_VERSION 626 CTRL_ATTR_HDRSIZE = C.CTRL_ATTR_HDRSIZE 627 CTRL_ATTR_MAXATTR = C.CTRL_ATTR_MAXATTR 628 CTRL_ATTR_OPS = C.CTRL_ATTR_OPS 629 CTRL_ATTR_MCAST_GROUPS = C.CTRL_ATTR_MCAST_GROUPS 630 CTRL_ATTR_OP_UNSPEC = C.CTRL_ATTR_OP_UNSPEC 631 CTRL_ATTR_OP_ID = C.CTRL_ATTR_OP_ID 632 CTRL_ATTR_OP_FLAGS = C.CTRL_ATTR_OP_FLAGS 633 CTRL_ATTR_MCAST_GRP_UNSPEC = C.CTRL_ATTR_MCAST_GRP_UNSPEC 634 CTRL_ATTR_MCAST_GRP_NAME = C.CTRL_ATTR_MCAST_GRP_NAME 635 CTRL_ATTR_MCAST_GRP_ID = C.CTRL_ATTR_MCAST_GRP_ID 636 ) 637 638 // CPU affinity 639 640 type cpuMask C.__cpu_mask 641 642 const ( 643 _CPU_SETSIZE = C.__CPU_SETSIZE 644 _NCPUBITS = C.__NCPUBITS 645 )