...

Source file src/github.com/cilium/ebpf/internal/unix/types_linux.go

Documentation: github.com/cilium/ebpf/internal/unix

     1  //go:build linux
     2  // +build linux
     3  
     4  package unix
     5  
     6  import (
     7  	"syscall"
     8  
     9  	linux "golang.org/x/sys/unix"
    10  )
    11  
    12  const (
    13  	ENOENT  = linux.ENOENT
    14  	EEXIST  = linux.EEXIST
    15  	EAGAIN  = linux.EAGAIN
    16  	ENOSPC  = linux.ENOSPC
    17  	EINVAL  = linux.EINVAL
    18  	EPOLLIN = linux.EPOLLIN
    19  	EINTR   = linux.EINTR
    20  	EPERM   = linux.EPERM
    21  	ESRCH   = linux.ESRCH
    22  	ENODEV  = linux.ENODEV
    23  	EBADF   = linux.EBADF
    24  	E2BIG   = linux.E2BIG
    25  	EFAULT  = linux.EFAULT
    26  	EACCES  = linux.EACCES
    27  	// ENOTSUPP is not the same as ENOTSUP or EOPNOTSUP
    28  	ENOTSUPP = syscall.Errno(0x20c)
    29  
    30  	BPF_F_NO_PREALLOC        = linux.BPF_F_NO_PREALLOC
    31  	BPF_F_NUMA_NODE          = linux.BPF_F_NUMA_NODE
    32  	BPF_F_RDONLY             = linux.BPF_F_RDONLY
    33  	BPF_F_WRONLY             = linux.BPF_F_WRONLY
    34  	BPF_F_RDONLY_PROG        = linux.BPF_F_RDONLY_PROG
    35  	BPF_F_WRONLY_PROG        = linux.BPF_F_WRONLY_PROG
    36  	BPF_F_SLEEPABLE          = linux.BPF_F_SLEEPABLE
    37  	BPF_F_MMAPABLE           = linux.BPF_F_MMAPABLE
    38  	BPF_F_INNER_MAP          = linux.BPF_F_INNER_MAP
    39  	BPF_OBJ_NAME_LEN         = linux.BPF_OBJ_NAME_LEN
    40  	BPF_TAG_SIZE             = linux.BPF_TAG_SIZE
    41  	BPF_RINGBUF_BUSY_BIT     = linux.BPF_RINGBUF_BUSY_BIT
    42  	BPF_RINGBUF_DISCARD_BIT  = linux.BPF_RINGBUF_DISCARD_BIT
    43  	BPF_RINGBUF_HDR_SZ       = linux.BPF_RINGBUF_HDR_SZ
    44  	SYS_BPF                  = linux.SYS_BPF
    45  	F_DUPFD_CLOEXEC          = linux.F_DUPFD_CLOEXEC
    46  	EPOLL_CTL_ADD            = linux.EPOLL_CTL_ADD
    47  	EPOLL_CLOEXEC            = linux.EPOLL_CLOEXEC
    48  	O_CLOEXEC                = linux.O_CLOEXEC
    49  	O_NONBLOCK               = linux.O_NONBLOCK
    50  	PROT_READ                = linux.PROT_READ
    51  	PROT_WRITE               = linux.PROT_WRITE
    52  	MAP_SHARED               = linux.MAP_SHARED
    53  	PERF_ATTR_SIZE_VER1      = linux.PERF_ATTR_SIZE_VER1
    54  	PERF_TYPE_SOFTWARE       = linux.PERF_TYPE_SOFTWARE
    55  	PERF_TYPE_TRACEPOINT     = linux.PERF_TYPE_TRACEPOINT
    56  	PERF_COUNT_SW_BPF_OUTPUT = linux.PERF_COUNT_SW_BPF_OUTPUT
    57  	PERF_EVENT_IOC_DISABLE   = linux.PERF_EVENT_IOC_DISABLE
    58  	PERF_EVENT_IOC_ENABLE    = linux.PERF_EVENT_IOC_ENABLE
    59  	PERF_EVENT_IOC_SET_BPF   = linux.PERF_EVENT_IOC_SET_BPF
    60  	PerfBitWatermark         = linux.PerfBitWatermark
    61  	PERF_SAMPLE_RAW          = linux.PERF_SAMPLE_RAW
    62  	PERF_FLAG_FD_CLOEXEC     = linux.PERF_FLAG_FD_CLOEXEC
    63  	RLIM_INFINITY            = linux.RLIM_INFINITY
    64  	RLIMIT_MEMLOCK           = linux.RLIMIT_MEMLOCK
    65  	BPF_STATS_RUN_TIME       = linux.BPF_STATS_RUN_TIME
    66  	PERF_RECORD_LOST         = linux.PERF_RECORD_LOST
    67  	PERF_RECORD_SAMPLE       = linux.PERF_RECORD_SAMPLE
    68  	AT_FDCWD                 = linux.AT_FDCWD
    69  	RENAME_NOREPLACE         = linux.RENAME_NOREPLACE
    70  	SO_ATTACH_BPF            = linux.SO_ATTACH_BPF
    71  	SO_DETACH_BPF            = linux.SO_DETACH_BPF
    72  	SOL_SOCKET               = linux.SOL_SOCKET
    73  )
    74  
    75  // Statfs_t is a wrapper
    76  type Statfs_t = linux.Statfs_t
    77  
    78  type Stat_t = linux.Stat_t
    79  
    80  // Rlimit is a wrapper
    81  type Rlimit = linux.Rlimit
    82  
    83  // Syscall is a wrapper
    84  func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
    85  	return linux.Syscall(trap, a1, a2, a3)
    86  }
    87  
    88  // FcntlInt is a wrapper
    89  func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
    90  	return linux.FcntlInt(fd, cmd, arg)
    91  }
    92  
    93  // IoctlSetInt is a wrapper
    94  func IoctlSetInt(fd int, req uint, value int) error {
    95  	return linux.IoctlSetInt(fd, req, value)
    96  }
    97  
    98  // Statfs is a wrapper
    99  func Statfs(path string, buf *Statfs_t) (err error) {
   100  	return linux.Statfs(path, buf)
   101  }
   102  
   103  // Close is a wrapper
   104  func Close(fd int) (err error) {
   105  	return linux.Close(fd)
   106  }
   107  
   108  // EpollEvent is a wrapper
   109  type EpollEvent = linux.EpollEvent
   110  
   111  // EpollWait is a wrapper
   112  func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
   113  	return linux.EpollWait(epfd, events, msec)
   114  }
   115  
   116  // EpollCtl is a wrapper
   117  func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
   118  	return linux.EpollCtl(epfd, op, fd, event)
   119  }
   120  
   121  // Eventfd is a wrapper
   122  func Eventfd(initval uint, flags int) (fd int, err error) {
   123  	return linux.Eventfd(initval, flags)
   124  }
   125  
   126  // Write is a wrapper
   127  func Write(fd int, p []byte) (n int, err error) {
   128  	return linux.Write(fd, p)
   129  }
   130  
   131  // EpollCreate1 is a wrapper
   132  func EpollCreate1(flag int) (fd int, err error) {
   133  	return linux.EpollCreate1(flag)
   134  }
   135  
   136  // PerfEventMmapPage is a wrapper
   137  type PerfEventMmapPage linux.PerfEventMmapPage
   138  
   139  // SetNonblock is a wrapper
   140  func SetNonblock(fd int, nonblocking bool) (err error) {
   141  	return linux.SetNonblock(fd, nonblocking)
   142  }
   143  
   144  // Mmap is a wrapper
   145  func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
   146  	return linux.Mmap(fd, offset, length, prot, flags)
   147  }
   148  
   149  // Munmap is a wrapper
   150  func Munmap(b []byte) (err error) {
   151  	return linux.Munmap(b)
   152  }
   153  
   154  // PerfEventAttr is a wrapper
   155  type PerfEventAttr = linux.PerfEventAttr
   156  
   157  // PerfEventOpen is a wrapper
   158  func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
   159  	return linux.PerfEventOpen(attr, pid, cpu, groupFd, flags)
   160  }
   161  
   162  // Utsname is a wrapper
   163  type Utsname = linux.Utsname
   164  
   165  // Uname is a wrapper
   166  func Uname(buf *Utsname) (err error) {
   167  	return linux.Uname(buf)
   168  }
   169  
   170  // Getpid is a wrapper
   171  func Getpid() int {
   172  	return linux.Getpid()
   173  }
   174  
   175  // Gettid is a wrapper
   176  func Gettid() int {
   177  	return linux.Gettid()
   178  }
   179  
   180  // Tgkill is a wrapper
   181  func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
   182  	return linux.Tgkill(tgid, tid, sig)
   183  }
   184  
   185  // BytePtrFromString is a wrapper
   186  func BytePtrFromString(s string) (*byte, error) {
   187  	return linux.BytePtrFromString(s)
   188  }
   189  
   190  // ByteSliceToString is a wrapper
   191  func ByteSliceToString(s []byte) string {
   192  	return linux.ByteSliceToString(s)
   193  }
   194  
   195  // Renameat2 is a wrapper
   196  func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) error {
   197  	return linux.Renameat2(olddirfd, oldpath, newdirfd, newpath, flags)
   198  }
   199  
   200  func Prlimit(pid, resource int, new, old *Rlimit) error {
   201  	return linux.Prlimit(pid, resource, new, old)
   202  }
   203  
   204  func Open(path string, mode int, perm uint32) (int, error) {
   205  	return linux.Open(path, mode, perm)
   206  }
   207  
   208  func Fstat(fd int, stat *Stat_t) error {
   209  	return linux.Fstat(fd, stat)
   210  }
   211  

View as plain text