mirror of
https://github.com/schollz/cowyo.git
synced 2023-08-10 21:13:00 +03:00
update dependencies
This commit is contained in:
37
vendor/golang.org/x/sys/unix/linux/Dockerfile
generated
vendored
37
vendor/golang.org/x/sys/unix/linux/Dockerfile
generated
vendored
@@ -1,26 +1,25 @@
|
||||
FROM ubuntu:16.04
|
||||
|
||||
# Use the most recent ubuntu sources
|
||||
RUN echo 'deb http://en.archive.ubuntu.com/ubuntu/ artful main universe' >> /etc/apt/sources.list
|
||||
FROM ubuntu:17.10
|
||||
|
||||
# Dependencies to get the git sources and go binaries
|
||||
RUN apt-get update && apt-get install -y \
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ca-certificates \
|
||||
curl \
|
||||
git \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Get the git sources. If not cached, this takes O(5 minutes).
|
||||
WORKDIR /git
|
||||
RUN git config --global advice.detachedHead false
|
||||
# Linux Kernel: Released 03 Sep 2017
|
||||
RUN git clone --branch v4.13 --depth 1 https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
|
||||
# GNU C library: Released 02 Aug 2017 (we should try to get a secure way to clone this)
|
||||
RUN git clone --branch glibc-2.26 --depth 1 git://sourceware.org/git/glibc.git
|
||||
# Linux Kernel: Released 01 Apr 2018
|
||||
RUN git clone --branch v4.16 --depth 1 https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
|
||||
# GNU C library: Released 01 Feb 2018 (we should try to get a secure way to clone this)
|
||||
RUN git clone --branch glibc-2.27 --depth 1 git://sourceware.org/git/glibc.git
|
||||
|
||||
# Get Go 1.9.2
|
||||
ENV GOLANG_VERSION 1.9.2
|
||||
# Get Go
|
||||
ENV GOLANG_VERSION 1.10.1
|
||||
ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
|
||||
ENV GOLANG_DOWNLOAD_SHA256 de874549d9a8d8d8062be05808509c09a88a248e77ec14eb77453530829ac02b
|
||||
ENV GOLANG_DOWNLOAD_SHA256 72d820dec546752e5a8303b33b009079c15c2390ce76d67cf514991646c6127b
|
||||
|
||||
RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \
|
||||
&& echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \
|
||||
@@ -29,20 +28,22 @@ RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \
|
||||
|
||||
ENV PATH /usr/local/go/bin:$PATH
|
||||
|
||||
# Linux and Glibc build dependencies
|
||||
RUN apt-get update && apt-get install -y \
|
||||
gawk make python \
|
||||
# Linux and Glibc build dependencies and emulator
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
bison gawk make python \
|
||||
gcc gcc-multilib \
|
||||
gettext texinfo \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
# Emulator and cross compilers
|
||||
RUN apt-get update && apt-get install -y \
|
||||
qemu \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
# Cross compilers (install recommended packages to get cross libc-dev)
|
||||
RUN apt-get update && apt-get install -y \
|
||||
gcc-aarch64-linux-gnu gcc-arm-linux-gnueabi \
|
||||
gcc-mips-linux-gnu gcc-mips64-linux-gnuabi64 \
|
||||
gcc-mips64el-linux-gnuabi64 gcc-mipsel-linux-gnu \
|
||||
gcc-powerpc64-linux-gnu gcc-powerpc64le-linux-gnu \
|
||||
gcc-s390x-linux-gnu gcc-sparc64-linux-gnu \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Let the scripts know they are in the docker environment
|
||||
|
||||
270
vendor/golang.org/x/sys/unix/linux/mkall.go
generated
vendored
270
vendor/golang.org/x/sys/unix/linux/mkall.go
generated
vendored
@@ -17,6 +17,9 @@ package main
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"debug/elf"
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
@@ -292,7 +295,7 @@ func (t *target) generateFiles() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Create the Linux and glibc headers in the include directory.
|
||||
// Create the Linux, glibc and ABI (C compiler convention) headers in the include directory.
|
||||
func (t *target) makeHeaders() error {
|
||||
// Make the Linux headers we need for this architecture
|
||||
linuxMake := makeCommand("make", "headers_install", "ARCH="+t.LinuxArch, "INSTALL_HDR_PATH="+TempDir)
|
||||
@@ -327,6 +330,114 @@ func (t *target) makeHeaders() error {
|
||||
file.Close()
|
||||
}
|
||||
|
||||
// ABI headers will specify C compiler behavior for the target platform.
|
||||
return t.makeABIHeaders()
|
||||
}
|
||||
|
||||
// makeABIHeaders generates C header files based on the platform's calling convention.
|
||||
// While many platforms have formal Application Binary Interfaces, in practice, whatever the
|
||||
// dominant C compilers generate is the de-facto calling convention.
|
||||
//
|
||||
// We generate C headers instead of a Go file, so as to enable references to the ABI from Cgo.
|
||||
func (t *target) makeABIHeaders() (err error) {
|
||||
abiDir := filepath.Join(IncludeDir, "abi")
|
||||
if err = os.Mkdir(abiDir, os.ModePerm); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cc := os.Getenv("CC")
|
||||
if cc == "" {
|
||||
return errors.New("CC (compiler) env var not set")
|
||||
}
|
||||
|
||||
// Build a sacrificial ELF file, to mine for C compiler behavior.
|
||||
binPath := filepath.Join(TempDir, "tmp_abi.o")
|
||||
bin, err := t.buildELF(cc, cCode, binPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("cannot build ELF to analyze: %v", err)
|
||||
}
|
||||
defer bin.Close()
|
||||
defer os.Remove(binPath)
|
||||
|
||||
// Right now, we put everything in abi.h, but we may change this later.
|
||||
abiFile, err := os.Create(filepath.Join(abiDir, "abi.h"))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer func() {
|
||||
if cerr := abiFile.Close(); cerr != nil && err == nil {
|
||||
err = cerr
|
||||
}
|
||||
}()
|
||||
|
||||
if err = t.writeBitFieldMasks(bin, abiFile); err != nil {
|
||||
return fmt.Errorf("cannot write bitfield masks: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t *target) buildELF(cc, src, path string) (*elf.File, error) {
|
||||
// Compile the cCode source using the set compiler - we will need its .data section.
|
||||
// Do not link the binary, so that we can find .data section offsets from the symbol values.
|
||||
ccCmd := makeCommand(cc, "-o", path, "-gdwarf", "-x", "c", "-c", "-")
|
||||
ccCmd.Stdin = strings.NewReader(src)
|
||||
ccCmd.Stdout = os.Stdout
|
||||
if err := ccCmd.Run(); err != nil {
|
||||
return nil, fmt.Errorf("compiler error: %v", err)
|
||||
}
|
||||
|
||||
bin, err := elf.Open(path)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("cannot read ELF file %s: %v", path, err)
|
||||
}
|
||||
|
||||
return bin, nil
|
||||
}
|
||||
|
||||
func (t *target) writeBitFieldMasks(bin *elf.File, out io.Writer) error {
|
||||
symbols, err := bin.Symbols()
|
||||
if err != nil {
|
||||
return fmt.Errorf("getting ELF symbols: %v", err)
|
||||
}
|
||||
var masksSym *elf.Symbol
|
||||
|
||||
for _, sym := range symbols {
|
||||
if sym.Name == "masks" {
|
||||
masksSym = &sym
|
||||
}
|
||||
}
|
||||
|
||||
if masksSym == nil {
|
||||
return errors.New("could not find the 'masks' symbol in ELF symtab")
|
||||
}
|
||||
|
||||
dataSection := bin.Section(".data")
|
||||
if dataSection == nil {
|
||||
return errors.New("ELF file has no .data section")
|
||||
}
|
||||
|
||||
data, err := dataSection.Data()
|
||||
if err != nil {
|
||||
return fmt.Errorf("could not read .data section: %v\n", err)
|
||||
}
|
||||
|
||||
var bo binary.ByteOrder
|
||||
if t.BigEndian {
|
||||
bo = binary.BigEndian
|
||||
} else {
|
||||
bo = binary.LittleEndian
|
||||
}
|
||||
|
||||
// 64 bit masks of type uint64 are stored in the data section starting at masks.Value.
|
||||
// Here we are running on AMD64, but these values may be big endian or little endian,
|
||||
// depending on target architecture.
|
||||
for i := uint64(0); i < 64; i++ {
|
||||
off := masksSym.Value + i*8
|
||||
// Define each mask in native by order, so as to match target endian.
|
||||
fmt.Fprintf(out, "#define BITFIELD_MASK_%d %dULL\n", i, bo.Uint64(data[off:off+8]))
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -480,3 +591,160 @@ func writeOnePtrace(w io.Writer, arch, def string) {
|
||||
fmt.Fprintf(w, "\treturn ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))\n")
|
||||
fmt.Fprintf(w, "}\n")
|
||||
}
|
||||
|
||||
// cCode is compiled for the target architecture, and the resulting data section is carved for
|
||||
// the statically initialized bit masks.
|
||||
const cCode = `
|
||||
// Bit fields are used in some system calls and other ABIs, but their memory layout is
|
||||
// implementation-defined [1]. Even with formal ABIs, bit fields are a source of subtle bugs [2].
|
||||
// Here we generate the offsets for all 64 bits in an uint64.
|
||||
// 1: http://en.cppreference.com/w/c/language/bit_field
|
||||
// 2: https://lwn.net/Articles/478657/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
struct bitfield {
|
||||
union {
|
||||
uint64_t val;
|
||||
struct {
|
||||
uint64_t u64_bit_0 : 1;
|
||||
uint64_t u64_bit_1 : 1;
|
||||
uint64_t u64_bit_2 : 1;
|
||||
uint64_t u64_bit_3 : 1;
|
||||
uint64_t u64_bit_4 : 1;
|
||||
uint64_t u64_bit_5 : 1;
|
||||
uint64_t u64_bit_6 : 1;
|
||||
uint64_t u64_bit_7 : 1;
|
||||
uint64_t u64_bit_8 : 1;
|
||||
uint64_t u64_bit_9 : 1;
|
||||
uint64_t u64_bit_10 : 1;
|
||||
uint64_t u64_bit_11 : 1;
|
||||
uint64_t u64_bit_12 : 1;
|
||||
uint64_t u64_bit_13 : 1;
|
||||
uint64_t u64_bit_14 : 1;
|
||||
uint64_t u64_bit_15 : 1;
|
||||
uint64_t u64_bit_16 : 1;
|
||||
uint64_t u64_bit_17 : 1;
|
||||
uint64_t u64_bit_18 : 1;
|
||||
uint64_t u64_bit_19 : 1;
|
||||
uint64_t u64_bit_20 : 1;
|
||||
uint64_t u64_bit_21 : 1;
|
||||
uint64_t u64_bit_22 : 1;
|
||||
uint64_t u64_bit_23 : 1;
|
||||
uint64_t u64_bit_24 : 1;
|
||||
uint64_t u64_bit_25 : 1;
|
||||
uint64_t u64_bit_26 : 1;
|
||||
uint64_t u64_bit_27 : 1;
|
||||
uint64_t u64_bit_28 : 1;
|
||||
uint64_t u64_bit_29 : 1;
|
||||
uint64_t u64_bit_30 : 1;
|
||||
uint64_t u64_bit_31 : 1;
|
||||
uint64_t u64_bit_32 : 1;
|
||||
uint64_t u64_bit_33 : 1;
|
||||
uint64_t u64_bit_34 : 1;
|
||||
uint64_t u64_bit_35 : 1;
|
||||
uint64_t u64_bit_36 : 1;
|
||||
uint64_t u64_bit_37 : 1;
|
||||
uint64_t u64_bit_38 : 1;
|
||||
uint64_t u64_bit_39 : 1;
|
||||
uint64_t u64_bit_40 : 1;
|
||||
uint64_t u64_bit_41 : 1;
|
||||
uint64_t u64_bit_42 : 1;
|
||||
uint64_t u64_bit_43 : 1;
|
||||
uint64_t u64_bit_44 : 1;
|
||||
uint64_t u64_bit_45 : 1;
|
||||
uint64_t u64_bit_46 : 1;
|
||||
uint64_t u64_bit_47 : 1;
|
||||
uint64_t u64_bit_48 : 1;
|
||||
uint64_t u64_bit_49 : 1;
|
||||
uint64_t u64_bit_50 : 1;
|
||||
uint64_t u64_bit_51 : 1;
|
||||
uint64_t u64_bit_52 : 1;
|
||||
uint64_t u64_bit_53 : 1;
|
||||
uint64_t u64_bit_54 : 1;
|
||||
uint64_t u64_bit_55 : 1;
|
||||
uint64_t u64_bit_56 : 1;
|
||||
uint64_t u64_bit_57 : 1;
|
||||
uint64_t u64_bit_58 : 1;
|
||||
uint64_t u64_bit_59 : 1;
|
||||
uint64_t u64_bit_60 : 1;
|
||||
uint64_t u64_bit_61 : 1;
|
||||
uint64_t u64_bit_62 : 1;
|
||||
uint64_t u64_bit_63 : 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
struct bitfield masks[] = {
|
||||
{.u64_bit_0 = 1},
|
||||
{.u64_bit_1 = 1},
|
||||
{.u64_bit_2 = 1},
|
||||
{.u64_bit_3 = 1},
|
||||
{.u64_bit_4 = 1},
|
||||
{.u64_bit_5 = 1},
|
||||
{.u64_bit_6 = 1},
|
||||
{.u64_bit_7 = 1},
|
||||
{.u64_bit_8 = 1},
|
||||
{.u64_bit_9 = 1},
|
||||
{.u64_bit_10 = 1},
|
||||
{.u64_bit_11 = 1},
|
||||
{.u64_bit_12 = 1},
|
||||
{.u64_bit_13 = 1},
|
||||
{.u64_bit_14 = 1},
|
||||
{.u64_bit_15 = 1},
|
||||
{.u64_bit_16 = 1},
|
||||
{.u64_bit_17 = 1},
|
||||
{.u64_bit_18 = 1},
|
||||
{.u64_bit_19 = 1},
|
||||
{.u64_bit_20 = 1},
|
||||
{.u64_bit_21 = 1},
|
||||
{.u64_bit_22 = 1},
|
||||
{.u64_bit_23 = 1},
|
||||
{.u64_bit_24 = 1},
|
||||
{.u64_bit_25 = 1},
|
||||
{.u64_bit_26 = 1},
|
||||
{.u64_bit_27 = 1},
|
||||
{.u64_bit_28 = 1},
|
||||
{.u64_bit_29 = 1},
|
||||
{.u64_bit_30 = 1},
|
||||
{.u64_bit_31 = 1},
|
||||
{.u64_bit_32 = 1},
|
||||
{.u64_bit_33 = 1},
|
||||
{.u64_bit_34 = 1},
|
||||
{.u64_bit_35 = 1},
|
||||
{.u64_bit_36 = 1},
|
||||
{.u64_bit_37 = 1},
|
||||
{.u64_bit_38 = 1},
|
||||
{.u64_bit_39 = 1},
|
||||
{.u64_bit_40 = 1},
|
||||
{.u64_bit_41 = 1},
|
||||
{.u64_bit_42 = 1},
|
||||
{.u64_bit_43 = 1},
|
||||
{.u64_bit_44 = 1},
|
||||
{.u64_bit_45 = 1},
|
||||
{.u64_bit_46 = 1},
|
||||
{.u64_bit_47 = 1},
|
||||
{.u64_bit_48 = 1},
|
||||
{.u64_bit_49 = 1},
|
||||
{.u64_bit_50 = 1},
|
||||
{.u64_bit_51 = 1},
|
||||
{.u64_bit_52 = 1},
|
||||
{.u64_bit_53 = 1},
|
||||
{.u64_bit_54 = 1},
|
||||
{.u64_bit_55 = 1},
|
||||
{.u64_bit_56 = 1},
|
||||
{.u64_bit_57 = 1},
|
||||
{.u64_bit_58 = 1},
|
||||
{.u64_bit_59 = 1},
|
||||
{.u64_bit_60 = 1},
|
||||
{.u64_bit_61 = 1},
|
||||
{.u64_bit_62 = 1},
|
||||
{.u64_bit_63 = 1}
|
||||
};
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
struct bitfield *mask_ptr = &masks[0];
|
||||
return mask_ptr->val;
|
||||
}
|
||||
|
||||
`
|
||||
|
||||
519
vendor/golang.org/x/sys/unix/linux/types.go
generated
vendored
519
vendor/golang.org/x/sys/unix/linux/types.go
generated
vendored
@@ -67,13 +67,18 @@ package unix
|
||||
#include <linux/taskstats.h>
|
||||
#include <linux/cgroupstats.h>
|
||||
#include <linux/genetlink.h>
|
||||
#include <linux/socket.h>
|
||||
#include <linux/hdreg.h>
|
||||
|
||||
// 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 consitancy with the glibc fields.
|
||||
// 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 {
|
||||
@@ -93,8 +98,8 @@ struct stat {
|
||||
|
||||
off_t st_size;
|
||||
|
||||
// These are declared as speperate fields in the kernel. Here we use
|
||||
// the timespec struct for consistancy with the other stat structs.
|
||||
// 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;
|
||||
@@ -162,7 +167,21 @@ 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 {
|
||||
@@ -214,6 +233,61 @@ struct my_epoll_event {
|
||||
int32_t pad;
|
||||
};
|
||||
|
||||
// Copied from <linux/perf_event.h> 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"
|
||||
|
||||
@@ -310,6 +384,8 @@ 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
|
||||
@@ -358,6 +434,7 @@ const (
|
||||
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
|
||||
@@ -380,97 +457,123 @@ const (
|
||||
// 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_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
|
||||
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
|
||||
@@ -643,3 +746,229 @@ 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
|
||||
|
||||
Reference in New Issue
Block a user