github.com/cilium/ebpf@v0.10.0/internal/unix/types_other.go (about)

     1  //go:build !linux
     2  
     3  package unix
     4  
     5  import (
     6  	"fmt"
     7  	"runtime"
     8  	"syscall"
     9  )
    10  
    11  var errNonLinux = fmt.Errorf("unsupported platform %s/%s", runtime.GOOS, runtime.GOARCH)
    12  
    13  // Errnos are distinct and non-zero.
    14  const (
    15  	ENOENT syscall.Errno = iota + 1
    16  	EEXIST
    17  	EAGAIN
    18  	ENOSPC
    19  	EINVAL
    20  	EINTR
    21  	EPERM
    22  	ESRCH
    23  	ENODEV
    24  	EBADF
    25  	E2BIG
    26  	EFAULT
    27  	EACCES
    28  	EILSEQ
    29  	EOPNOTSUPP
    30  )
    31  
    32  // Constants are distinct to avoid breaking switch statements.
    33  const (
    34  	BPF_F_NO_PREALLOC = iota
    35  	BPF_F_NUMA_NODE
    36  	BPF_F_RDONLY
    37  	BPF_F_WRONLY
    38  	BPF_F_RDONLY_PROG
    39  	BPF_F_WRONLY_PROG
    40  	BPF_F_SLEEPABLE
    41  	BPF_F_MMAPABLE
    42  	BPF_F_INNER_MAP
    43  	BPF_F_KPROBE_MULTI_RETURN
    44  	BPF_OBJ_NAME_LEN
    45  	BPF_TAG_SIZE
    46  	BPF_RINGBUF_BUSY_BIT
    47  	BPF_RINGBUF_DISCARD_BIT
    48  	BPF_RINGBUF_HDR_SZ
    49  	SYS_BPF
    50  	F_DUPFD_CLOEXEC
    51  	EPOLLIN
    52  	EPOLL_CTL_ADD
    53  	EPOLL_CLOEXEC
    54  	O_CLOEXEC
    55  	O_NONBLOCK
    56  	PROT_READ
    57  	PROT_WRITE
    58  	MAP_SHARED
    59  	PERF_ATTR_SIZE_VER1
    60  	PERF_TYPE_SOFTWARE
    61  	PERF_TYPE_TRACEPOINT
    62  	PERF_COUNT_SW_BPF_OUTPUT
    63  	PERF_EVENT_IOC_DISABLE
    64  	PERF_EVENT_IOC_ENABLE
    65  	PERF_EVENT_IOC_SET_BPF
    66  	PerfBitWatermark
    67  	PERF_SAMPLE_RAW
    68  	PERF_FLAG_FD_CLOEXEC
    69  	RLIM_INFINITY
    70  	RLIMIT_MEMLOCK
    71  	BPF_STATS_RUN_TIME
    72  	PERF_RECORD_LOST
    73  	PERF_RECORD_SAMPLE
    74  	AT_FDCWD
    75  	RENAME_NOREPLACE
    76  	SO_ATTACH_BPF
    77  	SO_DETACH_BPF
    78  	SOL_SOCKET
    79  	SIGPROF
    80  	SIG_BLOCK
    81  	SIG_UNBLOCK
    82  	EM_NONE
    83  	EM_BPF
    84  )
    85  
    86  type Statfs_t struct {
    87  	Type    int64
    88  	Bsize   int64
    89  	Blocks  uint64
    90  	Bfree   uint64
    91  	Bavail  uint64
    92  	Files   uint64
    93  	Ffree   uint64
    94  	Fsid    [2]int32
    95  	Namelen int64
    96  	Frsize  int64
    97  	Flags   int64
    98  	Spare   [4]int64
    99  }
   100  
   101  type Stat_t struct{}
   102  
   103  type Rlimit struct {
   104  	Cur uint64
   105  	Max uint64
   106  }
   107  
   108  type Signal int
   109  
   110  type Sigset_t struct {
   111  	Val [4]uint64
   112  }
   113  
   114  func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
   115  	return 0, 0, syscall.ENOTSUP
   116  }
   117  
   118  func PthreadSigmask(how int, set, oldset *Sigset_t) error {
   119  	return errNonLinux
   120  }
   121  
   122  func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
   123  	return -1, errNonLinux
   124  }
   125  
   126  func IoctlSetInt(fd int, req uint, value int) error {
   127  	return errNonLinux
   128  }
   129  
   130  func Statfs(path string, buf *Statfs_t) error {
   131  	return errNonLinux
   132  }
   133  
   134  func Close(fd int) (err error) {
   135  	return errNonLinux
   136  }
   137  
   138  type EpollEvent struct {
   139  	Events uint32
   140  	Fd     int32
   141  	Pad    int32
   142  }
   143  
   144  func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
   145  	return 0, errNonLinux
   146  }
   147  
   148  func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {
   149  	return errNonLinux
   150  }
   151  
   152  func Eventfd(initval uint, flags int) (fd int, err error) {
   153  	return 0, errNonLinux
   154  }
   155  
   156  func Write(fd int, p []byte) (n int, err error) {
   157  	return 0, errNonLinux
   158  }
   159  
   160  func EpollCreate1(flag int) (fd int, err error) {
   161  	return 0, errNonLinux
   162  }
   163  
   164  type PerfEventMmapPage struct {
   165  	Version        uint32
   166  	Compat_version uint32
   167  	Lock           uint32
   168  	Index          uint32
   169  	Offset         int64
   170  	Time_enabled   uint64
   171  	Time_running   uint64
   172  	Capabilities   uint64
   173  	Pmc_width      uint16
   174  	Time_shift     uint16
   175  	Time_mult      uint32
   176  	Time_offset    uint64
   177  	Time_zero      uint64
   178  	Size           uint32
   179  
   180  	Data_head   uint64
   181  	Data_tail   uint64
   182  	Data_offset uint64
   183  	Data_size   uint64
   184  	Aux_head    uint64
   185  	Aux_tail    uint64
   186  	Aux_offset  uint64
   187  	Aux_size    uint64
   188  }
   189  
   190  func SetNonblock(fd int, nonblocking bool) (err error) {
   191  	return errNonLinux
   192  }
   193  
   194  func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
   195  	return []byte{}, errNonLinux
   196  }
   197  
   198  func Munmap(b []byte) (err error) {
   199  	return errNonLinux
   200  }
   201  
   202  type PerfEventAttr struct {
   203  	Type               uint32
   204  	Size               uint32
   205  	Config             uint64
   206  	Sample             uint64
   207  	Sample_type        uint64
   208  	Read_format        uint64
   209  	Bits               uint64
   210  	Wakeup             uint32
   211  	Bp_type            uint32
   212  	Ext1               uint64
   213  	Ext2               uint64
   214  	Branch_sample_type uint64
   215  	Sample_regs_user   uint64
   216  	Sample_stack_user  uint32
   217  	Clockid            int32
   218  	Sample_regs_intr   uint64
   219  	Aux_watermark      uint32
   220  	Sample_max_stack   uint16
   221  }
   222  
   223  func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
   224  	return 0, errNonLinux
   225  }
   226  
   227  type Utsname struct {
   228  	Release [65]byte
   229  	Version [65]byte
   230  }
   231  
   232  func Uname(buf *Utsname) (err error) {
   233  	return errNonLinux
   234  }
   235  
   236  func Getpid() int {
   237  	return -1
   238  }
   239  
   240  func Gettid() int {
   241  	return -1
   242  }
   243  
   244  func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
   245  	return errNonLinux
   246  }
   247  
   248  func BytePtrFromString(s string) (*byte, error) {
   249  	return nil, errNonLinux
   250  }
   251  
   252  func ByteSliceToString(s []byte) string {
   253  	return ""
   254  }
   255  
   256  func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) error {
   257  	return errNonLinux
   258  }
   259  
   260  func Prlimit(pid, resource int, new, old *Rlimit) error {
   261  	return errNonLinux
   262  }
   263  
   264  func Open(path string, mode int, perm uint32) (int, error) {
   265  	return -1, errNonLinux
   266  }
   267  
   268  func Fstat(fd int, stat *Stat_t) error {
   269  	return errNonLinux
   270  }