1// +build !linux 2 3package unix 4 5import ( 6 "fmt" 7 "runtime" 8 "syscall" 9) 10 11var errNonLinux = fmt.Errorf("unsupported platform %s/%s", runtime.GOOS, runtime.GOARCH) 12 13const ( 14 ENOENT = syscall.ENOENT 15 EEXIST = syscall.EEXIST 16 EAGAIN = syscall.EAGAIN 17 ENOSPC = syscall.ENOSPC 18 EINVAL = syscall.EINVAL 19 EINTR = syscall.EINTR 20 EPERM = syscall.EPERM 21 ESRCH = syscall.ESRCH 22 ENODEV = syscall.ENODEV 23 BPF_F_NUMA_NODE = 0 24 BPF_F_RDONLY_PROG = 0 25 BPF_F_WRONLY_PROG = 0 26 BPF_OBJ_NAME_LEN = 0x10 27 BPF_TAG_SIZE = 0x8 28 SYS_BPF = 321 29 F_DUPFD_CLOEXEC = 0x406 30 EPOLLIN = 0x1 31 EPOLL_CTL_ADD = 0x1 32 EPOLL_CLOEXEC = 0x80000 33 O_CLOEXEC = 0x80000 34 O_NONBLOCK = 0x800 35 PROT_READ = 0x1 36 PROT_WRITE = 0x2 37 MAP_SHARED = 0x1 38 PERF_TYPE_SOFTWARE = 0x1 39 PERF_COUNT_SW_BPF_OUTPUT = 0xa 40 PerfBitWatermark = 0x4000 41 PERF_SAMPLE_RAW = 0x400 42 PERF_FLAG_FD_CLOEXEC = 0x8 43 RLIM_INFINITY = 0x7fffffffffffffff 44 RLIMIT_MEMLOCK = 8 45) 46 47// Statfs_t is a wrapper 48type Statfs_t struct { 49 Type int64 50 Bsize int64 51 Blocks uint64 52 Bfree uint64 53 Bavail uint64 54 Files uint64 55 Ffree uint64 56 Fsid [2]int32 57 Namelen int64 58 Frsize int64 59 Flags int64 60 Spare [4]int64 61} 62 63// Rlimit is a wrapper 64type Rlimit struct { 65 Cur uint64 66 Max uint64 67} 68 69// Setrlimit is a wrapper 70func Setrlimit(resource int, rlim *Rlimit) (err error) { 71 return errNonLinux 72} 73 74// Syscall is a wrapper 75func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { 76 return 0, 0, syscall.Errno(1) 77} 78 79// FcntlInt is a wrapper 80func FcntlInt(fd uintptr, cmd, arg int) (int, error) { 81 return -1, errNonLinux 82} 83 84// Statfs is a wrapper 85func Statfs(path string, buf *Statfs_t) error { 86 return errNonLinux 87} 88 89// Close is a wrapper 90func Close(fd int) (err error) { 91 return errNonLinux 92} 93 94// EpollEvent is a wrapper 95type EpollEvent struct { 96 Events uint32 97 Fd int32 98 Pad int32 99} 100 101// EpollWait is a wrapper 102func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { 103 return 0, errNonLinux 104} 105 106// EpollCtl is a wrapper 107func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { 108 return errNonLinux 109} 110 111// Eventfd is a wrapper 112func Eventfd(initval uint, flags int) (fd int, err error) { 113 return 0, errNonLinux 114} 115 116// Write is a wrapper 117func Write(fd int, p []byte) (n int, err error) { 118 return 0, errNonLinux 119} 120 121// EpollCreate1 is a wrapper 122func EpollCreate1(flag int) (fd int, err error) { 123 return 0, errNonLinux 124} 125 126// PerfEventMmapPage is a wrapper 127type PerfEventMmapPage struct { 128 Version uint32 129 Compat_version uint32 130 Lock uint32 131 Index uint32 132 Offset int64 133 Time_enabled uint64 134 Time_running uint64 135 Capabilities uint64 136 Pmc_width uint16 137 Time_shift uint16 138 Time_mult uint32 139 Time_offset uint64 140 Time_zero uint64 141 Size uint32 142 143 Data_head uint64 144 Data_tail uint64 145 Data_offset uint64 146 Data_size uint64 147 Aux_head uint64 148 Aux_tail uint64 149 Aux_offset uint64 150 Aux_size uint64 151} 152 153// SetNonblock is a wrapper 154func SetNonblock(fd int, nonblocking bool) (err error) { 155 return errNonLinux 156} 157 158// Mmap is a wrapper 159func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { 160 return []byte{}, errNonLinux 161} 162 163// Munmap is a wrapper 164func Munmap(b []byte) (err error) { 165 return errNonLinux 166} 167 168// PerfEventAttr is a wrapper 169type PerfEventAttr struct { 170 Type uint32 171 Size uint32 172 Config uint64 173 Sample uint64 174 Sample_type uint64 175 Read_format uint64 176 Bits uint64 177 Wakeup uint32 178 Bp_type uint32 179 Ext1 uint64 180 Ext2 uint64 181 Branch_sample_type uint64 182 Sample_regs_user uint64 183 Sample_stack_user uint32 184 Clockid int32 185 Sample_regs_intr uint64 186 Aux_watermark uint32 187 Sample_max_stack uint16 188} 189 190// PerfEventOpen is a wrapper 191func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { 192 return 0, errNonLinux 193} 194 195// Utsname is a wrapper 196type Utsname struct { 197 Release [65]byte 198} 199 200// Uname is a wrapper 201func Uname(buf *Utsname) (err error) { 202 return errNonLinux 203} 204 205// Getpid is a wrapper 206func Getpid() int { 207 return -1 208} 209 210// Gettid is a wrapper 211func Gettid() int { 212 return -1 213} 214 215// Tgkill is a wrapper 216func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { 217 return errNonLinux 218} 219 220func KernelRelease() (string, error) { 221 return "", errNonLinux 222} 223