// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build ignore /* Input to cgo -godefs. See README.md */ // +godefs map struct_in_addr [4]byte /* in_addr */ // +godefs map struct_in6_addr [16]byte /* in6_addr */ package unix /* #define _LARGEFILE_SOURCE #define _LARGEFILE64_SOURCE #define _FILE_OFFSET_BITS 64 #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // abi/abi.h generated by mkall.go. #include "abi/abi.h" // On mips64, the glibc stat and kernel stat do not agree #if (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI64) // Use the stat defined by the kernel with a few modifications. These are: // * The time fields (like st_atime and st_atimensec) use the timespec // struct (like st_atim) for consistency with the glibc fields. // * The padding fields get different names to not break compatibility. // * st_blocks is signed, again for compatibility. struct stat { unsigned int st_dev; unsigned int st_pad1[3]; // Reserved for st_dev expansion unsigned long st_ino; mode_t st_mode; __u32 st_nlink; uid_t st_uid; gid_t st_gid; unsigned int st_rdev; unsigned int st_pad2[3]; // Reserved for st_rdev expansion off_t st_size; // These are declared as separate fields in the kernel. Here we use // the timespec struct for consistency with the other stat structs. struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; unsigned int st_blksize; unsigned int st_pad4; long st_blocks; }; // These are needed because we do not include fcntl.h or sys/types.h #include #include #else // Use the stat defined by glibc #include #include #endif // These are defined in linux/fcntl.h, but including it globally causes // conflicts with fcntl.h #ifndef AT_STATX_SYNC_TYPE # define AT_STATX_SYNC_TYPE 0x6000 // Type of synchronisation required from statx() #endif #ifndef AT_STATX_SYNC_AS_STAT # define AT_STATX_SYNC_AS_STAT 0x0000 // - Do whatever stat() does #endif #ifndef AT_STATX_FORCE_SYNC # define AT_STATX_FORCE_SYNC 0x2000 // - Force the attributes to be sync'd with the server #endif #ifndef AT_STATX_DONT_SYNC # define AT_STATX_DONT_SYNC 0x4000 // - Don't sync attributes with the server #endif #ifdef TCSETS2 // On systems that have "struct termios2" use this as type Termios. typedef struct termios2 termios_t; #else typedef struct termios termios_t; #endif enum { sizeofPtr = sizeof(void*), }; union sockaddr_all { struct sockaddr s1; // this one gets used for fields struct sockaddr_in s2; // these pad it out struct sockaddr_in6 s3; struct sockaddr_un s4; struct sockaddr_ll s5; struct sockaddr_nl s6; }; struct sockaddr_any { struct sockaddr addr; char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; }; // copied from /usr/include/bluetooth/hci.h struct sockaddr_hci { sa_family_t hci_family; unsigned short hci_dev; unsigned short hci_channel; }; // copied from /usr/include/bluetooth/bluetooth.h #define BDADDR_BREDR 0x00 #define BDADDR_LE_PUBLIC 0x01 #define BDADDR_LE_RANDOM 0x02 // copied from /usr/include/bluetooth/l2cap.h struct sockaddr_l2 { sa_family_t l2_family; unsigned short l2_psm; uint8_t l2_bdaddr[6]; unsigned short l2_cid; uint8_t l2_bdaddr_type; }; // copied from /usr/include/linux/un.h struct my_sockaddr_un { sa_family_t sun_family; #if defined(__ARM_EABI__) || defined(__powerpc64__) // on ARM char is by default unsigned signed char sun_path[108]; #else char sun_path[108]; #endif }; #ifdef __ARM_EABI__ typedef struct user_regs PtraceRegs; #elif defined(__aarch64__) typedef struct user_pt_regs PtraceRegs; #elif defined(__mips__) || defined(__powerpc64__) typedef struct pt_regs PtraceRegs; #elif defined(__s390x__) typedef struct _user_regs_struct PtraceRegs; #elif defined(__sparc__) #include typedef struct pt_regs PtraceRegs; #else typedef struct user_regs_struct PtraceRegs; #endif #if defined(__s390x__) typedef struct _user_psw_struct ptracePsw; typedef struct _user_fpregs_struct ptraceFpregs; typedef struct _user_per_struct ptracePer; #else typedef struct {} ptracePsw; typedef struct {} ptraceFpregs; typedef struct {} ptracePer; #endif // The real epoll_event is a union, and godefs doesn't handle it well. struct my_epoll_event { uint32_t events; #if defined(__ARM_EABI__) || defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABIO32) // padding is not specified in linux/eventpoll.h but added to conform to the // alignment requirements of EABI int32_t padFd; #elif defined(__powerpc64__) || defined(__s390x__) || defined(__sparc__) int32_t _padFd; #endif int32_t fd; int32_t pad; }; // Copied from with the following modifications: // 1) bit field after read_format redeclared as '__u64 bits' to make it // accessible from Go // 2) collapsed the unions, to avoid confusing godoc for the generated output // (e.g. having to use BpAddr as an extension of Config) struct perf_event_attr_go { __u32 type; __u32 size; __u64 config; // union { // __u64 sample_period; // __u64 sample_freq; // }; __u64 sample; __u64 sample_type; __u64 read_format; // Replaces the bit field. Flags are defined as constants. __u64 bits; // union { // __u32 wakeup_events; // __u32 wakeup_watermark; // }; __u32 wakeup; __u32 bp_type; // union { // __u64 bp_addr; // __u64 config1; // }; __u64 ext1; // union { // __u64 bp_len; // __u64 config2; // }; __u64 ext2; __u64 branch_sample_type; __u64 sample_regs_user; __u32 sample_stack_user; __s32 clockid; __u64 sample_regs_intr; __u32 aux_watermark; __u32 __reserved_2; }; */ import "C" // Machine characteristics; for internal use. const ( sizeofPtr = C.sizeofPtr sizeofShort = C.sizeof_short sizeofInt = C.sizeof_int sizeofLong = C.sizeof_long sizeofLongLong = C.sizeof_longlong PathMax = C.PATH_MAX ) // Basic types type ( _C_short C.short _C_int C.int _C_long C.long _C_long_long C.longlong ) // Time type Timespec C.struct_timespec type Timeval C.struct_timeval type Timex C.struct_timex type Time_t C.time_t type Tms C.struct_tms type Utimbuf C.struct_utimbuf // Processes type Rusage C.struct_rusage type Rlimit C.struct_rlimit type _Gid_t C.gid_t // Files type Stat_t C.struct_stat type Statfs_t C.struct_statfs type StatxTimestamp C.struct_statx_timestamp type Statx_t C.struct_statx type Dirent C.struct_dirent type Fsid C.fsid_t type Flock_t C.struct_flock // Filesystem Encryption type FscryptPolicy C.struct_fscrypt_policy type FscryptKey C.struct_fscrypt_key // Structure for Keyctl type KeyctlDHParams C.struct_keyctl_dh_params // Advice to Fadvise const ( FADV_NORMAL = C.POSIX_FADV_NORMAL FADV_RANDOM = C.POSIX_FADV_RANDOM FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL FADV_WILLNEED = C.POSIX_FADV_WILLNEED FADV_DONTNEED = C.POSIX_FADV_DONTNEED FADV_NOREUSE = C.POSIX_FADV_NOREUSE ) // Sockets type RawSockaddrInet4 C.struct_sockaddr_in type RawSockaddrInet6 C.struct_sockaddr_in6 type RawSockaddrUnix C.struct_my_sockaddr_un type RawSockaddrLinklayer C.struct_sockaddr_ll type RawSockaddrNetlink C.struct_sockaddr_nl type RawSockaddrHCI C.struct_sockaddr_hci type RawSockaddrL2 C.struct_sockaddr_l2 type RawSockaddrCAN C.struct_sockaddr_can type RawSockaddrALG C.struct_sockaddr_alg type RawSockaddrVM C.struct_sockaddr_vm type RawSockaddr C.struct_sockaddr type RawSockaddrAny C.struct_sockaddr_any type _Socklen C.socklen_t type Linger C.struct_linger type Iovec C.struct_iovec type IPMreq C.struct_ip_mreq type IPMreqn C.struct_ip_mreqn type IPv6Mreq C.struct_ipv6_mreq type PacketMreq C.struct_packet_mreq type Msghdr C.struct_msghdr type Cmsghdr C.struct_cmsghdr type Inet4Pktinfo C.struct_in_pktinfo type Inet6Pktinfo C.struct_in6_pktinfo type IPv6MTUInfo C.struct_ip6_mtuinfo type ICMPv6Filter C.struct_icmp6_filter type Ucred C.struct_ucred type TCPInfo C.struct_tcp_info const ( SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 SizeofSockaddrAny = C.sizeof_struct_sockaddr_any SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un SizeofSockaddrLinklayer = C.sizeof_struct_sockaddr_ll SizeofSockaddrNetlink = C.sizeof_struct_sockaddr_nl SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci SizeofSockaddrL2 = C.sizeof_struct_sockaddr_l2 SizeofSockaddrCAN = C.sizeof_struct_sockaddr_can SizeofSockaddrALG = C.sizeof_struct_sockaddr_alg SizeofSockaddrVM = C.sizeof_struct_sockaddr_vm SizeofLinger = C.sizeof_struct_linger SizeofIovec = C.sizeof_struct_iovec SizeofIPMreq = C.sizeof_struct_ip_mreq SizeofIPMreqn = C.sizeof_struct_ip_mreqn SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq SizeofPacketMreq = C.sizeof_struct_packet_mreq SizeofMsghdr = C.sizeof_struct_msghdr SizeofCmsghdr = C.sizeof_struct_cmsghdr SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter SizeofUcred = C.sizeof_struct_ucred SizeofTCPInfo = C.sizeof_struct_tcp_info ) // Netlink routing and interface messages const ( IFA_UNSPEC = C.IFA_UNSPEC IFA_ADDRESS = C.IFA_ADDRESS IFA_LOCAL = C.IFA_LOCAL IFA_LABEL = C.IFA_LABEL IFA_BROADCAST = C.IFA_BROADCAST IFA_ANYCAST = C.IFA_ANYCAST IFA_CACHEINFO = C.IFA_CACHEINFO IFA_MULTICAST = C.IFA_MULTICAST IFLA_UNSPEC = C.IFLA_UNSPEC IFLA_ADDRESS = C.IFLA_ADDRESS IFLA_BROADCAST = C.IFLA_BROADCAST IFLA_IFNAME = C.IFLA_IFNAME IFLA_MTU = C.IFLA_MTU IFLA_LINK = C.IFLA_LINK IFLA_QDISC = C.IFLA_QDISC IFLA_STATS = C.IFLA_STATS IFLA_COST = C.IFLA_COST IFLA_PRIORITY = C.IFLA_PRIORITY IFLA_MASTER = C.IFLA_MASTER IFLA_WIRELESS = C.IFLA_WIRELESS IFLA_PROTINFO = C.IFLA_PROTINFO IFLA_TXQLEN = C.IFLA_TXQLEN IFLA_MAP = C.IFLA_MAP IFLA_WEIGHT = C.IFLA_WEIGHT IFLA_OPERSTATE = C.IFLA_OPERSTATE IFLA_LINKMODE = C.IFLA_LINKMODE IFLA_LINKINFO = C.IFLA_LINKINFO IFLA_NET_NS_PID = C.IFLA_NET_NS_PID IFLA_IFALIAS = C.IFLA_IFALIAS IFLA_NUM_VF = C.IFLA_NUM_VF IFLA_VFINFO_LIST = C.IFLA_VFINFO_LIST IFLA_STATS64 = C.IFLA_STATS64 IFLA_VF_PORTS = C.IFLA_VF_PORTS IFLA_PORT_SELF = C.IFLA_PORT_SELF IFLA_AF_SPEC = C.IFLA_AF_SPEC IFLA_GROUP = C.IFLA_GROUP IFLA_NET_NS_FD = C.IFLA_NET_NS_FD IFLA_EXT_MASK = C.IFLA_EXT_MASK IFLA_PROMISCUITY = C.IFLA_PROMISCUITY IFLA_NUM_TX_QUEUES = C.IFLA_NUM_TX_QUEUES IFLA_NUM_RX_QUEUES = C.IFLA_NUM_RX_QUEUES IFLA_CARRIER = C.IFLA_CARRIER IFLA_PHYS_PORT_ID = C.IFLA_PHYS_PORT_ID IFLA_CARRIER_CHANGES = C.IFLA_CARRIER_CHANGES IFLA_PHYS_SWITCH_ID = C.IFLA_PHYS_SWITCH_ID IFLA_LINK_NETNSID = C.IFLA_LINK_NETNSID IFLA_PHYS_PORT_NAME = C.IFLA_PHYS_PORT_NAME IFLA_PROTO_DOWN = C.IFLA_PROTO_DOWN IFLA_GSO_MAX_SEGS = C.IFLA_GSO_MAX_SEGS IFLA_GSO_MAX_SIZE = C.IFLA_GSO_MAX_SIZE IFLA_PAD = C.IFLA_PAD IFLA_XDP = C.IFLA_XDP IFLA_EVENT = C.IFLA_EVENT IFLA_NEW_NETNSID = C.IFLA_NEW_NETNSID IFLA_IF_NETNSID = C.IFLA_IF_NETNSID IFLA_MAX = C.IFLA_MAX RT_SCOPE_UNIVERSE = C.RT_SCOPE_UNIVERSE RT_SCOPE_SITE = C.RT_SCOPE_SITE RT_SCOPE_LINK = C.RT_SCOPE_LINK RT_SCOPE_HOST = C.RT_SCOPE_HOST RT_SCOPE_NOWHERE = C.RT_SCOPE_NOWHERE RT_TABLE_UNSPEC = C.RT_TABLE_UNSPEC RT_TABLE_COMPAT = C.RT_TABLE_COMPAT RT_TABLE_DEFAULT = C.RT_TABLE_DEFAULT RT_TABLE_MAIN = C.RT_TABLE_MAIN RT_TABLE_LOCAL = C.RT_TABLE_LOCAL RT_TABLE_MAX = C.RT_TABLE_MAX RTA_UNSPEC = C.RTA_UNSPEC RTA_DST = C.RTA_DST RTA_SRC = C.RTA_SRC RTA_IIF = C.RTA_IIF RTA_OIF = C.RTA_OIF RTA_GATEWAY = C.RTA_GATEWAY RTA_PRIORITY = C.RTA_PRIORITY RTA_PREFSRC = C.RTA_PREFSRC RTA_METRICS = C.RTA_METRICS RTA_MULTIPATH = C.RTA_MULTIPATH RTA_FLOW = C.RTA_FLOW RTA_CACHEINFO = C.RTA_CACHEINFO RTA_TABLE = C.RTA_TABLE RTN_UNSPEC = C.RTN_UNSPEC RTN_UNICAST = C.RTN_UNICAST RTN_LOCAL = C.RTN_LOCAL RTN_BROADCAST = C.RTN_BROADCAST RTN_ANYCAST = C.RTN_ANYCAST RTN_MULTICAST = C.RTN_MULTICAST RTN_BLACKHOLE = C.RTN_BLACKHOLE RTN_UNREACHABLE = C.RTN_UNREACHABLE RTN_PROHIBIT = C.RTN_PROHIBIT RTN_THROW = C.RTN_THROW RTN_NAT = C.RTN_NAT RTN_XRESOLVE = C.RTN_XRESOLVE RTNLGRP_NONE = C.RTNLGRP_NONE RTNLGRP_LINK = C.RTNLGRP_LINK RTNLGRP_NOTIFY = C.RTNLGRP_NOTIFY RTNLGRP_NEIGH = C.RTNLGRP_NEIGH RTNLGRP_TC = C.RTNLGRP_TC RTNLGRP_IPV4_IFADDR = C.RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_MROUTE = C.RTNLGRP_IPV4_MROUTE RTNLGRP_IPV4_ROUTE = C.RTNLGRP_IPV4_ROUTE RTNLGRP_IPV4_RULE = C.RTNLGRP_IPV4_RULE RTNLGRP_IPV6_IFADDR = C.RTNLGRP_IPV6_IFADDR RTNLGRP_IPV6_MROUTE = C.RTNLGRP_IPV6_MROUTE RTNLGRP_IPV6_ROUTE = C.RTNLGRP_IPV6_ROUTE RTNLGRP_IPV6_IFINFO = C.RTNLGRP_IPV6_IFINFO RTNLGRP_IPV6_PREFIX = C.RTNLGRP_IPV6_PREFIX RTNLGRP_IPV6_RULE = C.RTNLGRP_IPV6_RULE RTNLGRP_ND_USEROPT = C.RTNLGRP_ND_USEROPT SizeofNlMsghdr = C.sizeof_struct_nlmsghdr SizeofNlMsgerr = C.sizeof_struct_nlmsgerr SizeofRtGenmsg = C.sizeof_struct_rtgenmsg SizeofNlAttr = C.sizeof_struct_nlattr SizeofRtAttr = C.sizeof_struct_rtattr SizeofIfInfomsg = C.sizeof_struct_ifinfomsg SizeofIfAddrmsg = C.sizeof_struct_ifaddrmsg SizeofRtMsg = C.sizeof_struct_rtmsg SizeofRtNexthop = C.sizeof_struct_rtnexthop ) type NlMsghdr C.struct_nlmsghdr type NlMsgerr C.struct_nlmsgerr type RtGenmsg C.struct_rtgenmsg type NlAttr C.struct_nlattr type RtAttr C.struct_rtattr type IfInfomsg C.struct_ifinfomsg type IfAddrmsg C.struct_ifaddrmsg type RtMsg C.struct_rtmsg type RtNexthop C.struct_rtnexthop // Linux socket filter const ( SizeofSockFilter = C.sizeof_struct_sock_filter SizeofSockFprog = C.sizeof_struct_sock_fprog ) type SockFilter C.struct_sock_filter type SockFprog C.struct_sock_fprog // Inotify type InotifyEvent C.struct_inotify_event const SizeofInotifyEvent = C.sizeof_struct_inotify_event // Ptrace // Register structures type PtraceRegs C.PtraceRegs // Structures contained in PtraceRegs on s390x (exported by mkpost.go) type PtracePsw C.ptracePsw type PtraceFpregs C.ptraceFpregs type PtracePer C.ptracePer // Misc type FdSet C.fd_set type Sysinfo_t C.struct_sysinfo type Utsname C.struct_utsname type Ustat_t C.struct_ustat type EpollEvent C.struct_my_epoll_event const ( AT_EMPTY_PATH = C.AT_EMPTY_PATH AT_FDCWD = C.AT_FDCWD AT_NO_AUTOMOUNT = C.AT_NO_AUTOMOUNT AT_REMOVEDIR = C.AT_REMOVEDIR AT_STATX_SYNC_AS_STAT = C.AT_STATX_SYNC_AS_STAT AT_STATX_FORCE_SYNC = C.AT_STATX_FORCE_SYNC AT_STATX_DONT_SYNC = C.AT_STATX_DONT_SYNC AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW ) type PollFd C.struct_pollfd const ( POLLIN = C.POLLIN POLLPRI = C.POLLPRI POLLOUT = C.POLLOUT POLLRDHUP = C.POLLRDHUP POLLERR = C.POLLERR POLLHUP = C.POLLHUP POLLNVAL = C.POLLNVAL ) type Sigset_t C.sigset_t const RNDGETENTCNT = C.RNDGETENTCNT const PERF_IOC_FLAG_GROUP = C.PERF_IOC_FLAG_GROUP // Terminal handling type Termios C.termios_t type Winsize C.struct_winsize // Taskstats and cgroup stats. type Taskstats C.struct_taskstats const ( TASKSTATS_CMD_UNSPEC = C.TASKSTATS_CMD_UNSPEC TASKSTATS_CMD_GET = C.TASKSTATS_CMD_GET TASKSTATS_CMD_NEW = C.TASKSTATS_CMD_NEW TASKSTATS_TYPE_UNSPEC = C.TASKSTATS_TYPE_UNSPEC TASKSTATS_TYPE_PID = C.TASKSTATS_TYPE_PID TASKSTATS_TYPE_TGID = C.TASKSTATS_TYPE_TGID TASKSTATS_TYPE_STATS = C.TASKSTATS_TYPE_STATS TASKSTATS_TYPE_AGGR_PID = C.TASKSTATS_TYPE_AGGR_PID TASKSTATS_TYPE_AGGR_TGID = C.TASKSTATS_TYPE_AGGR_TGID TASKSTATS_TYPE_NULL = C.TASKSTATS_TYPE_NULL TASKSTATS_CMD_ATTR_UNSPEC = C.TASKSTATS_CMD_ATTR_UNSPEC TASKSTATS_CMD_ATTR_PID = C.TASKSTATS_CMD_ATTR_PID TASKSTATS_CMD_ATTR_TGID = C.TASKSTATS_CMD_ATTR_TGID TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = C.TASKSTATS_CMD_ATTR_REGISTER_CPUMASK TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = C.TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK ) type CGroupStats C.struct_cgroupstats const ( CGROUPSTATS_CMD_UNSPEC = C.__TASKSTATS_CMD_MAX CGROUPSTATS_CMD_GET = C.CGROUPSTATS_CMD_GET CGROUPSTATS_CMD_NEW = C.CGROUPSTATS_CMD_NEW CGROUPSTATS_TYPE_UNSPEC = C.CGROUPSTATS_TYPE_UNSPEC CGROUPSTATS_TYPE_CGROUP_STATS = C.CGROUPSTATS_TYPE_CGROUP_STATS CGROUPSTATS_CMD_ATTR_UNSPEC = C.CGROUPSTATS_CMD_ATTR_UNSPEC CGROUPSTATS_CMD_ATTR_FD = C.CGROUPSTATS_CMD_ATTR_FD ) // Generic netlink type Genlmsghdr C.struct_genlmsghdr const ( CTRL_CMD_UNSPEC = C.CTRL_CMD_UNSPEC CTRL_CMD_NEWFAMILY = C.CTRL_CMD_NEWFAMILY CTRL_CMD_DELFAMILY = C.CTRL_CMD_DELFAMILY CTRL_CMD_GETFAMILY = C.CTRL_CMD_GETFAMILY CTRL_CMD_NEWOPS = C.CTRL_CMD_NEWOPS CTRL_CMD_DELOPS = C.CTRL_CMD_DELOPS CTRL_CMD_GETOPS = C.CTRL_CMD_GETOPS CTRL_CMD_NEWMCAST_GRP = C.CTRL_CMD_NEWMCAST_GRP CTRL_CMD_DELMCAST_GRP = C.CTRL_CMD_DELMCAST_GRP CTRL_CMD_GETMCAST_GRP = C.CTRL_CMD_GETMCAST_GRP CTRL_ATTR_UNSPEC = C.CTRL_ATTR_UNSPEC CTRL_ATTR_FAMILY_ID = C.CTRL_ATTR_FAMILY_ID CTRL_ATTR_FAMILY_NAME = C.CTRL_ATTR_FAMILY_NAME CTRL_ATTR_VERSION = C.CTRL_ATTR_VERSION CTRL_ATTR_HDRSIZE = C.CTRL_ATTR_HDRSIZE CTRL_ATTR_MAXATTR = C.CTRL_ATTR_MAXATTR CTRL_ATTR_OPS = C.CTRL_ATTR_OPS CTRL_ATTR_MCAST_GROUPS = C.CTRL_ATTR_MCAST_GROUPS CTRL_ATTR_OP_UNSPEC = C.CTRL_ATTR_OP_UNSPEC CTRL_ATTR_OP_ID = C.CTRL_ATTR_OP_ID CTRL_ATTR_OP_FLAGS = C.CTRL_ATTR_OP_FLAGS CTRL_ATTR_MCAST_GRP_UNSPEC = C.CTRL_ATTR_MCAST_GRP_UNSPEC CTRL_ATTR_MCAST_GRP_NAME = C.CTRL_ATTR_MCAST_GRP_NAME CTRL_ATTR_MCAST_GRP_ID = C.CTRL_ATTR_MCAST_GRP_ID ) // CPU affinity type cpuMask C.__cpu_mask const ( _CPU_SETSIZE = C.__CPU_SETSIZE _NCPUBITS = C.__NCPUBITS ) // Bluetooth const ( BDADDR_BREDR = C.BDADDR_BREDR BDADDR_LE_PUBLIC = C.BDADDR_LE_PUBLIC BDADDR_LE_RANDOM = C.BDADDR_LE_RANDOM ) // Perf subsystem type PerfEventAttr C.struct_perf_event_attr_go type PerfEventMmapPage C.struct_perf_event_mmap_page // Bit field in struct perf_event_attr expanded as flags. // Set these on PerfEventAttr.Bits by ORing them together. const ( PerfBitDisabled uint64 = CBitFieldMaskBit0 PerfBitInherit = CBitFieldMaskBit1 PerfBitPinned = CBitFieldMaskBit2 PerfBitExclusive = CBitFieldMaskBit3 PerfBitExcludeUser = CBitFieldMaskBit4 PerfBitExcludeKernel = CBitFieldMaskBit5 PerfBitExcludeHv = CBitFieldMaskBit6 PerfBitExcludeIdle = CBitFieldMaskBit7 PerfBitMmap = CBitFieldMaskBit8 PerfBitComm = CBitFieldMaskBit9 PerfBitFreq = CBitFieldMaskBit10 PerfBitInheritStat = CBitFieldMaskBit11 PerfBitEnableOnExec = CBitFieldMaskBit12 PerfBitTask = CBitFieldMaskBit13 PerfBitWatermark = CBitFieldMaskBit14 PerfBitPreciseIPBit1 = CBitFieldMaskBit15 PerfBitPreciseIPBit2 = CBitFieldMaskBit16 PerfBitMmapData = CBitFieldMaskBit17 PerfBitSampleIDAll = CBitFieldMaskBit18 PerfBitExcludeHost = CBitFieldMaskBit19 PerfBitExcludeGuest = CBitFieldMaskBit20 PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 PerfBitExcludeCallchainUser = CBitFieldMaskBit22 PerfBitMmap2 = CBitFieldMaskBit23 PerfBitCommExec = CBitFieldMaskBit24 PerfBitUseClockID = CBitFieldMaskBit25 PerfBitContextSwitch = CBitFieldMaskBit26 ) const ( PERF_TYPE_HARDWARE = C.PERF_TYPE_HARDWARE PERF_TYPE_SOFTWARE = C.PERF_TYPE_SOFTWARE PERF_TYPE_TRACEPOINT = C.PERF_TYPE_TRACEPOINT PERF_TYPE_HW_CACHE = C.PERF_TYPE_HW_CACHE PERF_TYPE_RAW = C.PERF_TYPE_RAW PERF_TYPE_BREAKPOINT = C.PERF_TYPE_BREAKPOINT PERF_COUNT_HW_CPU_CYCLES = C.PERF_COUNT_HW_CPU_CYCLES PERF_COUNT_HW_INSTRUCTIONS = C.PERF_COUNT_HW_INSTRUCTIONS PERF_COUNT_HW_CACHE_REFERENCES = C.PERF_COUNT_HW_CACHE_REFERENCES PERF_COUNT_HW_CACHE_MISSES = C.PERF_COUNT_HW_CACHE_MISSES PERF_COUNT_HW_BRANCH_INSTRUCTIONS = C.PERF_COUNT_HW_BRANCH_INSTRUCTIONS PERF_COUNT_HW_BRANCH_MISSES = C.PERF_COUNT_HW_BRANCH_MISSES PERF_COUNT_HW_BUS_CYCLES = C.PERF_COUNT_HW_BUS_CYCLES PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = C.PERF_COUNT_HW_STALLED_CYCLES_FRONTEND PERF_COUNT_HW_STALLED_CYCLES_BACKEND = C.PERF_COUNT_HW_STALLED_CYCLES_BACKEND PERF_COUNT_HW_REF_CPU_CYCLES = C.PERF_COUNT_HW_REF_CPU_CYCLES PERF_COUNT_HW_CACHE_L1D = C.PERF_COUNT_HW_CACHE_L1D PERF_COUNT_HW_CACHE_L1I = C.PERF_COUNT_HW_CACHE_L1I PERF_COUNT_HW_CACHE_LL = C.PERF_COUNT_HW_CACHE_LL PERF_COUNT_HW_CACHE_DTLB = C.PERF_COUNT_HW_CACHE_DTLB PERF_COUNT_HW_CACHE_ITLB = C.PERF_COUNT_HW_CACHE_ITLB PERF_COUNT_HW_CACHE_BPU = C.PERF_COUNT_HW_CACHE_BPU PERF_COUNT_HW_CACHE_NODE = C.PERF_COUNT_HW_CACHE_NODE PERF_COUNT_HW_CACHE_OP_READ = C.PERF_COUNT_HW_CACHE_OP_READ PERF_COUNT_HW_CACHE_OP_WRITE = C.PERF_COUNT_HW_CACHE_OP_WRITE PERF_COUNT_HW_CACHE_OP_PREFETCH = C.PERF_COUNT_HW_CACHE_OP_PREFETCH PERF_COUNT_HW_CACHE_RESULT_ACCESS = C.PERF_COUNT_HW_CACHE_RESULT_ACCESS PERF_COUNT_HW_CACHE_RESULT_MISS = C.PERF_COUNT_HW_CACHE_RESULT_MISS PERF_COUNT_SW_CPU_CLOCK = C.PERF_COUNT_SW_CPU_CLOCK PERF_COUNT_SW_TASK_CLOCK = C.PERF_COUNT_SW_TASK_CLOCK PERF_COUNT_SW_PAGE_FAULTS = C.PERF_COUNT_SW_PAGE_FAULTS PERF_COUNT_SW_CONTEXT_SWITCHES = C.PERF_COUNT_SW_CONTEXT_SWITCHES PERF_COUNT_SW_CPU_MIGRATIONS = C.PERF_COUNT_SW_CPU_MIGRATIONS PERF_COUNT_SW_PAGE_FAULTS_MIN = C.PERF_COUNT_SW_PAGE_FAULTS_MIN PERF_COUNT_SW_PAGE_FAULTS_MAJ = C.PERF_COUNT_SW_PAGE_FAULTS_MAJ PERF_COUNT_SW_ALIGNMENT_FAULTS = C.PERF_COUNT_SW_ALIGNMENT_FAULTS PERF_COUNT_SW_EMULATION_FAULTS = C.PERF_COUNT_SW_EMULATION_FAULTS PERF_COUNT_SW_DUMMY = C.PERF_COUNT_SW_DUMMY PERF_SAMPLE_IP = C.PERF_SAMPLE_IP PERF_SAMPLE_TID = C.PERF_SAMPLE_TID PERF_SAMPLE_TIME = C.PERF_SAMPLE_TIME PERF_SAMPLE_ADDR = C.PERF_SAMPLE_ADDR PERF_SAMPLE_READ = C.PERF_SAMPLE_READ PERF_SAMPLE_CALLCHAIN = C.PERF_SAMPLE_CALLCHAIN PERF_SAMPLE_ID = C.PERF_SAMPLE_ID PERF_SAMPLE_CPU = C.PERF_SAMPLE_CPU PERF_SAMPLE_PERIOD = C.PERF_SAMPLE_PERIOD PERF_SAMPLE_STREAM_ID = C.PERF_SAMPLE_STREAM_ID PERF_SAMPLE_RAW = C.PERF_SAMPLE_RAW PERF_SAMPLE_BRANCH_STACK = C.PERF_SAMPLE_BRANCH_STACK PERF_SAMPLE_BRANCH_USER = C.PERF_SAMPLE_BRANCH_USER PERF_SAMPLE_BRANCH_KERNEL = C.PERF_SAMPLE_BRANCH_KERNEL PERF_SAMPLE_BRANCH_HV = C.PERF_SAMPLE_BRANCH_HV PERF_SAMPLE_BRANCH_ANY = C.PERF_SAMPLE_BRANCH_ANY PERF_SAMPLE_BRANCH_ANY_CALL = C.PERF_SAMPLE_BRANCH_ANY_CALL PERF_SAMPLE_BRANCH_ANY_RETURN = C.PERF_SAMPLE_BRANCH_ANY_RETURN PERF_SAMPLE_BRANCH_IND_CALL = C.PERF_SAMPLE_BRANCH_IND_CALL PERF_FORMAT_TOTAL_TIME_ENABLED = C.PERF_FORMAT_TOTAL_TIME_ENABLED PERF_FORMAT_TOTAL_TIME_RUNNING = C.PERF_FORMAT_TOTAL_TIME_RUNNING PERF_FORMAT_ID = C.PERF_FORMAT_ID PERF_FORMAT_GROUP = C.PERF_FORMAT_GROUP PERF_RECORD_MMAP = C.PERF_RECORD_MMAP PERF_RECORD_LOST = C.PERF_RECORD_LOST PERF_RECORD_COMM = C.PERF_RECORD_COMM PERF_RECORD_EXIT = C.PERF_RECORD_EXIT PERF_RECORD_THROTTLE = C.PERF_RECORD_THROTTLE PERF_RECORD_UNTHROTTLE = C.PERF_RECORD_UNTHROTTLE PERF_RECORD_FORK = C.PERF_RECORD_FORK PERF_RECORD_READ = C.PERF_RECORD_READ PERF_RECORD_SAMPLE = C.PERF_RECORD_SAMPLE PERF_CONTEXT_HV = C.PERF_CONTEXT_HV PERF_CONTEXT_KERNEL = C.PERF_CONTEXT_KERNEL PERF_CONTEXT_USER = C.PERF_CONTEXT_USER PERF_CONTEXT_GUEST = C.PERF_CONTEXT_GUEST PERF_CONTEXT_GUEST_KERNEL = C.PERF_CONTEXT_GUEST_KERNEL PERF_CONTEXT_GUEST_USER = C.PERF_CONTEXT_GUEST_USER PERF_FLAG_FD_NO_GROUP = C.PERF_FLAG_FD_NO_GROUP PERF_FLAG_FD_OUTPUT = C.PERF_FLAG_FD_OUTPUT PERF_FLAG_PID_CGROUP = C.PERF_FLAG_PID_CGROUP ) // Platform ABI and calling convention // Bit field masks for interoperability with C code that uses bit fields. // Each mask corresponds to a single bit set - bit field behavior can be replicated by combining // the masks with bitwise OR. const ( CBitFieldMaskBit0 = C.BITFIELD_MASK_0 CBitFieldMaskBit1 = C.BITFIELD_MASK_1 CBitFieldMaskBit2 = C.BITFIELD_MASK_2 CBitFieldMaskBit3 = C.BITFIELD_MASK_3 CBitFieldMaskBit4 = C.BITFIELD_MASK_4 CBitFieldMaskBit5 = C.BITFIELD_MASK_5 CBitFieldMaskBit6 = C.BITFIELD_MASK_6 CBitFieldMaskBit7 = C.BITFIELD_MASK_7 CBitFieldMaskBit8 = C.BITFIELD_MASK_8 CBitFieldMaskBit9 = C.BITFIELD_MASK_9 CBitFieldMaskBit10 = C.BITFIELD_MASK_10 CBitFieldMaskBit11 = C.BITFIELD_MASK_11 CBitFieldMaskBit12 = C.BITFIELD_MASK_12 CBitFieldMaskBit13 = C.BITFIELD_MASK_13 CBitFieldMaskBit14 = C.BITFIELD_MASK_14 CBitFieldMaskBit15 = C.BITFIELD_MASK_15 CBitFieldMaskBit16 = C.BITFIELD_MASK_16 CBitFieldMaskBit17 = C.BITFIELD_MASK_17 CBitFieldMaskBit18 = C.BITFIELD_MASK_18 CBitFieldMaskBit19 = C.BITFIELD_MASK_19 CBitFieldMaskBit20 = C.BITFIELD_MASK_20 CBitFieldMaskBit21 = C.BITFIELD_MASK_21 CBitFieldMaskBit22 = C.BITFIELD_MASK_22 CBitFieldMaskBit23 = C.BITFIELD_MASK_23 CBitFieldMaskBit24 = C.BITFIELD_MASK_24 CBitFieldMaskBit25 = C.BITFIELD_MASK_25 CBitFieldMaskBit26 = C.BITFIELD_MASK_26 CBitFieldMaskBit27 = C.BITFIELD_MASK_27 CBitFieldMaskBit28 = C.BITFIELD_MASK_28 CBitFieldMaskBit29 = C.BITFIELD_MASK_29 CBitFieldMaskBit30 = C.BITFIELD_MASK_30 CBitFieldMaskBit31 = C.BITFIELD_MASK_31 CBitFieldMaskBit32 = C.BITFIELD_MASK_32 CBitFieldMaskBit33 = C.BITFIELD_MASK_33 CBitFieldMaskBit34 = C.BITFIELD_MASK_34 CBitFieldMaskBit35 = C.BITFIELD_MASK_35 CBitFieldMaskBit36 = C.BITFIELD_MASK_36 CBitFieldMaskBit37 = C.BITFIELD_MASK_37 CBitFieldMaskBit38 = C.BITFIELD_MASK_38 CBitFieldMaskBit39 = C.BITFIELD_MASK_39 CBitFieldMaskBit40 = C.BITFIELD_MASK_40 CBitFieldMaskBit41 = C.BITFIELD_MASK_41 CBitFieldMaskBit42 = C.BITFIELD_MASK_42 CBitFieldMaskBit43 = C.BITFIELD_MASK_43 CBitFieldMaskBit44 = C.BITFIELD_MASK_44 CBitFieldMaskBit45 = C.BITFIELD_MASK_45 CBitFieldMaskBit46 = C.BITFIELD_MASK_46 CBitFieldMaskBit47 = C.BITFIELD_MASK_47 CBitFieldMaskBit48 = C.BITFIELD_MASK_48 CBitFieldMaskBit49 = C.BITFIELD_MASK_49 CBitFieldMaskBit50 = C.BITFIELD_MASK_50 CBitFieldMaskBit51 = C.BITFIELD_MASK_51 CBitFieldMaskBit52 = C.BITFIELD_MASK_52 CBitFieldMaskBit53 = C.BITFIELD_MASK_53 CBitFieldMaskBit54 = C.BITFIELD_MASK_54 CBitFieldMaskBit55 = C.BITFIELD_MASK_55 CBitFieldMaskBit56 = C.BITFIELD_MASK_56 CBitFieldMaskBit57 = C.BITFIELD_MASK_57 CBitFieldMaskBit58 = C.BITFIELD_MASK_58 CBitFieldMaskBit59 = C.BITFIELD_MASK_59 CBitFieldMaskBit60 = C.BITFIELD_MASK_60 CBitFieldMaskBit61 = C.BITFIELD_MASK_61 CBitFieldMaskBit62 = C.BITFIELD_MASK_62 CBitFieldMaskBit63 = C.BITFIELD_MASK_63 ) // TCP-MD5 signature. type SockaddrStorage C.struct_sockaddr_storage type TCPMD5Sig C.struct_tcp_md5sig // Disk drive operations. type HDDriveCmdHdr C.struct_hd_drive_cmd_hdr type HDGeometry C.struct_hd_geometry type HDDriveID C.struct_hd_driveid