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 }