1
0
mirror of https://github.com/golang/go synced 2024-10-03 07:11:21 -06:00

syscall: add support for GOARCH=mips{,le}

Change-Id: I39a46b2a9412981db1780b688a86fec791f68b6f
Reviewed-on: https://go-review.googlesource.com/31488
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
Vladimir Stefanovic 2016-10-18 23:51:03 +02:00 committed by Brad Fitzpatrick
parent ad366fdbe4
commit 58e3bf11fb
15 changed files with 9464 additions and 6 deletions

View File

@ -0,0 +1,142 @@
// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build linux
// +build mips mipsle
#include "textflag.h"
#include "funcdata.h"
//
// System calls for mips, Linux
//
// func Syscall(trap uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr);
TEXT ·Syscall(SB),NOSPLIT,$0-28
JAL runtime·entersyscall(SB)
MOVW a1+4(FP), R4
MOVW a2+8(FP), R5
MOVW a3+12(FP), R6
MOVW R0, R7
MOVW trap+0(FP), R2 // syscall entry
SYSCALL
BEQ R7, ok
MOVW $-1, R1
MOVW R1, r1+16(FP) // r1
MOVW R0, r2+20(FP) // r2
MOVW R2, err+24(FP) // errno
JAL runtime·exitsyscall(SB)
RET
ok:
MOVW R2, r1+16(FP) // r1
MOVW R3, r2+20(FP) // r2
MOVW R0, err+24(FP) // errno
JAL runtime·exitsyscall(SB)
RET
// func Syscall6(trap trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr);
// 5th and 6th arg go at sp+16, sp+20.
// Note that frame size of 20 means that 24 bytes gets reserved on stack.
TEXT ·Syscall6(SB),NOSPLIT,$20-40
NO_LOCAL_POINTERS
JAL runtime·entersyscall(SB)
MOVW a1+4(FP), R4
MOVW a2+8(FP), R5
MOVW a3+12(FP), R6
MOVW a4+16(FP), R7
MOVW a5+20(FP), R8
MOVW a6+24(FP), R9
MOVW R8, 16(R29)
MOVW R9, 20(R29)
MOVW trap+0(FP), R2 // syscall entry
SYSCALL
BEQ R7, ok6
MOVW $-1, R1
MOVW R1, r1+28(FP) // r1
MOVW R0, r2+32(FP) // r2
MOVW R2, err+36(FP) // errno
JAL runtime·exitsyscall(SB)
RET
ok6:
MOVW R2, r1+28(FP) // r1
MOVW R3, r2+32(FP) // r2
MOVW R0, err+36(FP) // errno
JAL runtime·exitsyscall(SB)
RET
// func Syscall9(trap trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2, err uintptr);
// Actually Syscall8 but the rest of the code expects it to be named Syscall9.
TEXT ·Syscall9(SB),NOSPLIT,$28-52
NO_LOCAL_POINTERS
JAL runtime·entersyscall(SB)
MOVW a1+4(FP), R4
MOVW a2+8(FP), R5
MOVW a3+12(FP), R6
MOVW a4+16(FP), R7
MOVW a5+20(FP), R8
MOVW a6+24(FP), R9
MOVW a7+28(FP), R10
MOVW a8+32(FP), R11
MOVW R8, 16(R29)
MOVW R9, 20(R29)
MOVW R10, 24(R29)
MOVW R11, 28(R29)
MOVW trap+0(FP), R2 // syscall entry
SYSCALL
BEQ R7, ok9
MOVW $-1, R1
MOVW R1, r1+28(FP) // r1
MOVW R0, r2+32(FP) // r2
MOVW R2, err+36(FP) // errno
JAL runtime·exitsyscall(SB)
RET
ok9:
MOVW R2, r1+28(FP) // r1
MOVW R3, r2+32(FP) // r2
MOVW R0, err+36(FP) // errno
JAL runtime·exitsyscall(SB)
RET
TEXT ·RawSyscall(SB),NOSPLIT,$24-28
MOVW a1+4(FP), R4
MOVW a2+8(FP), R5
MOVW a3+12(FP), R6
MOVW trap+0(FP), R2 // syscall entry
SYSCALL
BEQ R7, ok1
MOVW $-1, R1
MOVW R1, r1+16(FP) // r1
MOVW R0, r2+20(FP) // r2
MOVW R2, err+24(FP) // errno
RET
ok1:
MOVW R2, r1+16(FP) // r1
MOVW R3, r2+20(FP) // r2
MOVW R0, err+24(FP) // errno
RET
TEXT ·RawSyscall6(SB),NOSPLIT,$20-40
MOVW a1+4(FP), R4
MOVW a2+8(FP), R5
MOVW a3+12(FP), R6
MOVW a4+16(FP), R7
MOVW a5+20(FP), R8
MOVW a6+24(FP), R9
MOVW R8, 16(R29)
MOVW R9, 20(R29)
MOVW trap+0(FP), R2 // syscall entry
SYSCALL
BEQ R7, ok2
MOVW $-1, R1
MOVW R1, r1+28(FP) // r1
MOVW R0, r2+32(FP) // r2
MOVW R2, err+36(FP) // errno
RET
ok2:
MOVW R2, r1+28(FP) // r1
MOVW R3, r2+32(FP) // r2
MOVW R0, err+36(FP) // errno
RET

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// //
// +build ppc64 s390x mips64 // +build ppc64 s390x mips mips64
package syscall package syscall

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// //
// +build 386 amd64 amd64p32 arm arm64 ppc64le mips64le // +build 386 amd64 amd64p32 arm arm64 ppc64le mips64le mipsle
package syscall package syscall

View File

@ -1,4 +1,4 @@
// +build linux,386 linux,arm // +build linux,386 linux,arm linux,mips linux,mipsle
// Copyright 2014 The Go Authors. All rights reserved. // Copyright 2014 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style

View File

@ -16,21 +16,28 @@ package syscall
const( const(
EOF EOF
my $offset = 0;
sub fmt { sub fmt {
my ($name, $num) = @_; my ($name, $num) = @_;
if($num > 999){ if($num > 999){
# ignore depricated syscalls that are no longer implemented # ignore deprecated syscalls that are no longer implemented
# https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h?id=refs/heads/master#n716 # https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h?id=refs/heads/master#n716
return; return;
} }
$name =~ y/a-z/A-Z/; $name =~ y/a-z/A-Z/;
$num = $num + $offset;
print " SYS_$name = $num;\n"; print " SYS_$name = $num;\n";
} }
my $prev; my $prev;
open(GCC, "gcc -E -dD $ARGV[0] |") || die "can't run gcc"; open(GCC, "gcc -E -dD $ARGV[0] |") || die "can't run gcc";
while(<GCC>){ while(<GCC>){
if(/^#define __NR_syscalls\s+/) { if(/^#define __NR_Linux\s+([0-9]+)/){
# mips/mips64: extract offset
$offset = $1;
}
elsif(/^#define __NR_syscalls\s+/) {
# ignore redefinitions of __NR_syscalls # ignore redefinitions of __NR_syscalls
} }
elsif(/^#define __NR_(\w+)\s+([0-9]+)/){ elsif(/^#define __NR_(\w+)\s+([0-9]+)/){
@ -44,6 +51,9 @@ while(<GCC>){
elsif(/^#define __NR_(\w+)\s+\(\w+\+\s*([0-9]+)\)/){ elsif(/^#define __NR_(\w+)\s+\(\w+\+\s*([0-9]+)\)/){
fmt($1, $prev+$2) fmt($1, $prev+$2)
} }
elsif(/^#define __NR_(\w+)\s+\(__NR_Linux \+ ([0-9]+)/){
fmt($1, $2);
}
} }
print <<EOF; print <<EOF;

View File

@ -0,0 +1,222 @@
// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build linux
// +build mips mipsle
package syscall
import "unsafe"
const (
_SYS_dup = SYS_DUP2
_SYS_getdents = SYS_GETDENTS64
_SYS_setgroups = SYS_SETGROUPS
)
func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno)
//sys Dup2(oldfd int, newfd int) (err error)
//sys Fchown(fd int, uid int, gid int) (err error)
//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
//sysnb Getegid() (egid int)
//sysnb Geteuid() (euid int)
//sysnb Getgid() (gid int)
//sysnb Getuid() (uid int)
//sys Lchown(path string, uid int, gid int) (err error)
//sys Listen(s int, n int) (err error)
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
//sys Setfsgid(gid int) (err error)
//sys Setfsuid(uid int) (err error)
//sysnb Setregid(rgid int, egid int) (err error)
//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
//sysnb Setresuid(ruid int, euid int, suid int) (err error)
//sysnb Setreuid(ruid int, euid int) (err error)
//sys Shutdown(fd int, how int) (err error)
//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
//sysnb getgroups(n int, list *_Gid_t) (nn int, err error)
//sysnb setgroups(n int, list *_Gid_t) (err error)
//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
//sysnb socket(domain int, typ int, proto int) (fd int, err error)
//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
//sysnb InotifyInit() (fd int, err error)
//sys Ioperm(from int, num int, on int) (err error)
//sys Iopl(level int) (err error)
//sysnb Gettimeofday(tv *Timeval) (err error)
//sysnb Time(t *Time_t) (tt Time_t, err error)
//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
func Fstatfs(fd int, buf *Statfs_t) (err error) {
_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
use(unsafe.Pointer(buf))
if e != 0 {
err = errnoErr(e)
}
return
}
func Statfs(path string, buf *Statfs_t) (err error) {
p, err := BytePtrFromString(path)
if err != nil {
return err
}
_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
use(unsafe.Pointer(p))
if e != 0 {
err = errnoErr(e)
}
return
}
func Seek(fd int, offset int64, whence int) (off int64, err error) {
_, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0)
if e != 0 {
err = errnoErr(e)
}
return
}
func setTimespec(sec, nsec int64) Timespec {
return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
}
func setTimeval(sec, usec int64) Timeval {
return Timeval{Sec: int32(sec), Usec: int32(usec)}
}
//sysnb pipe2(p *[2]_C_int, flags int) (err error)
func Pipe2(p []int, flags int) (err error) {
if len(p) != 2 {
return EINVAL
}
var pp [2]_C_int
err = pipe2(&pp, flags)
p[0] = int(pp[0])
p[1] = int(pp[1])
return
}
func Pipe(p []int) (err error) {
if len(p) != 2 {
return EINVAL
}
var pp [2]_C_int
err = pipe2(&pp, 0)
p[0] = int(pp[0])
p[1] = int(pp[1])
return
}
//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)
func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
page := uintptr(offset / 4096)
if offset != int64(page)*4096 {
return 0, EINVAL
}
return mmap2(addr, length, prot, flags, fd, page)
}
const rlimInf32 = ^uint32(0)
const rlimInf64 = ^uint64(0)
type rlimit32 struct {
Cur uint32
Max uint32
}
//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT
func Getrlimit(resource int, rlim *Rlimit) (err error) {
err = prlimit(0, resource, nil, rlim)
if err != ENOSYS {
return err
}
rl := rlimit32{}
err = getrlimit(resource, &rl)
if err != nil {
return
}
if rl.Cur == rlimInf32 {
rlim.Cur = rlimInf64
} else {
rlim.Cur = uint64(rl.Cur)
}
if rl.Max == rlimInf32 {
rlim.Max = rlimInf64
} else {
rlim.Max = uint64(rl.Max)
}
return
}
//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
func Setrlimit(resource int, rlim *Rlimit) (err error) {
err = prlimit(0, resource, rlim, nil)
if err != ENOSYS {
return err
}
rl := rlimit32{}
if rlim.Cur == rlimInf64 {
rl.Cur = rlimInf32
} else if rlim.Cur < uint64(rlimInf32) {
rl.Cur = uint32(rlim.Cur)
} else {
return EINVAL
}
if rlim.Max == rlimInf64 {
rl.Max = rlimInf32
} else if rlim.Max < uint64(rlimInf32) {
rl.Max = uint32(rlim.Max)
} else {
return EINVAL
}
return setrlimit(resource, &rl)
}
func (r *PtraceRegs) PC() uint64 { return uint64(r.Regs[64]) }
func (r *PtraceRegs) SetPC(pc uint64) { r.Regs[64] = uint32(pc) }
func (iov *Iovec) SetLen(length int) {
iov.Len = uint32(length)
}
func (msghdr *Msghdr) SetControllen(length int) {
msghdr.Controllen = uint32(length)
}
func (cmsg *Cmsghdr) SetLen(length int) {
cmsg.Len = uint32(length)
}

View File

@ -112,7 +112,7 @@ typedef struct {} ptracePer;
// The real epoll_event is a union, and godefs doesn't handle it well. // The real epoll_event is a union, and godefs doesn't handle it well.
struct my_epoll_event { struct my_epoll_event {
uint32_t events; uint32_t events;
#ifdef __ARM_EABI__ #if defined(__ARM_EABI__) || (defined(__mips__) && _MIPS_SIM == _ABIO32)
// padding is not specified in linux/eventpoll.h but added to conform to the // padding is not specified in linux/eventpoll.h but added to conform to the
// alignment requirements of EABI // alignment requirements of EABI
int32_t padFd; int32_t padFd;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,357 @@
// mksysnum_linux.pl /usr/include/mips-linux-gnu/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
package syscall
const (
SYS_SYSCALL = 4000
SYS_EXIT = 4001
SYS_FORK = 4002
SYS_READ = 4003
SYS_WRITE = 4004
SYS_OPEN = 4005
SYS_CLOSE = 4006
SYS_WAITPID = 4007
SYS_CREAT = 4008
SYS_LINK = 4009
SYS_UNLINK = 4010
SYS_EXECVE = 4011
SYS_CHDIR = 4012
SYS_TIME = 4013
SYS_MKNOD = 4014
SYS_CHMOD = 4015
SYS_LCHOWN = 4016
SYS_BREAK = 4017
SYS_UNUSED18 = 4018
SYS_LSEEK = 4019
SYS_GETPID = 4020
SYS_MOUNT = 4021
SYS_UMOUNT = 4022
SYS_SETUID = 4023
SYS_GETUID = 4024
SYS_STIME = 4025
SYS_PTRACE = 4026
SYS_ALARM = 4027
SYS_UNUSED28 = 4028
SYS_PAUSE = 4029
SYS_UTIME = 4030
SYS_STTY = 4031
SYS_GTTY = 4032
SYS_ACCESS = 4033
SYS_NICE = 4034
SYS_FTIME = 4035
SYS_SYNC = 4036
SYS_KILL = 4037
SYS_RENAME = 4038
SYS_MKDIR = 4039
SYS_RMDIR = 4040
SYS_DUP = 4041
SYS_PIPE = 4042
SYS_TIMES = 4043
SYS_PROF = 4044
SYS_BRK = 4045
SYS_SETGID = 4046
SYS_GETGID = 4047
SYS_SIGNAL = 4048
SYS_GETEUID = 4049
SYS_GETEGID = 4050
SYS_ACCT = 4051
SYS_UMOUNT2 = 4052
SYS_LOCK = 4053
SYS_IOCTL = 4054
SYS_FCNTL = 4055
SYS_MPX = 4056
SYS_SETPGID = 4057
SYS_ULIMIT = 4058
SYS_UNUSED59 = 4059
SYS_UMASK = 4060
SYS_CHROOT = 4061
SYS_USTAT = 4062
SYS_DUP2 = 4063
SYS_GETPPID = 4064
SYS_GETPGRP = 4065
SYS_SETSID = 4066
SYS_SIGACTION = 4067
SYS_SGETMASK = 4068
SYS_SSETMASK = 4069
SYS_SETREUID = 4070
SYS_SETREGID = 4071
SYS_SIGSUSPEND = 4072
SYS_SIGPENDING = 4073
SYS_SETHOSTNAME = 4074
SYS_SETRLIMIT = 4075
SYS_GETRLIMIT = 4076
SYS_GETRUSAGE = 4077
SYS_GETTIMEOFDAY = 4078
SYS_SETTIMEOFDAY = 4079
SYS_GETGROUPS = 4080
SYS_SETGROUPS = 4081
SYS_RESERVED82 = 4082
SYS_SYMLINK = 4083
SYS_UNUSED84 = 4084
SYS_READLINK = 4085
SYS_USELIB = 4086
SYS_SWAPON = 4087
SYS_REBOOT = 4088
SYS_READDIR = 4089
SYS_MMAP = 4090
SYS_MUNMAP = 4091
SYS_TRUNCATE = 4092
SYS_FTRUNCATE = 4093
SYS_FCHMOD = 4094
SYS_FCHOWN = 4095
SYS_GETPRIORITY = 4096
SYS_SETPRIORITY = 4097
SYS_PROFIL = 4098
SYS_STATFS = 4099
SYS_FSTATFS = 4100
SYS_IOPERM = 4101
SYS_SOCKETCALL = 4102
SYS_SYSLOG = 4103
SYS_SETITIMER = 4104
SYS_GETITIMER = 4105
SYS_STAT = 4106
SYS_LSTAT = 4107
SYS_FSTAT = 4108
SYS_UNUSED109 = 4109
SYS_IOPL = 4110
SYS_VHANGUP = 4111
SYS_IDLE = 4112
SYS_VM86 = 4113
SYS_WAIT4 = 4114
SYS_SWAPOFF = 4115
SYS_SYSINFO = 4116
SYS_IPC = 4117
SYS_FSYNC = 4118
SYS_SIGRETURN = 4119
SYS_CLONE = 4120
SYS_SETDOMAINNAME = 4121
SYS_UNAME = 4122
SYS_MODIFY_LDT = 4123
SYS_ADJTIMEX = 4124
SYS_MPROTECT = 4125
SYS_SIGPROCMASK = 4126
SYS_CREATE_MODULE = 4127
SYS_INIT_MODULE = 4128
SYS_DELETE_MODULE = 4129
SYS_GET_KERNEL_SYMS = 4130
SYS_QUOTACTL = 4131
SYS_GETPGID = 4132
SYS_FCHDIR = 4133
SYS_BDFLUSH = 4134
SYS_SYSFS = 4135
SYS_PERSONALITY = 4136
SYS_AFS_SYSCALL = 4137
SYS_SETFSUID = 4138
SYS_SETFSGID = 4139
SYS__LLSEEK = 4140
SYS_GETDENTS = 4141
SYS__NEWSELECT = 4142
SYS_FLOCK = 4143
SYS_MSYNC = 4144
SYS_READV = 4145
SYS_WRITEV = 4146
SYS_CACHEFLUSH = 4147
SYS_CACHECTL = 4148
SYS_SYSMIPS = 4149
SYS_UNUSED150 = 4150
SYS_GETSID = 4151
SYS_FDATASYNC = 4152
SYS__SYSCTL = 4153
SYS_MLOCK = 4154
SYS_MUNLOCK = 4155
SYS_MLOCKALL = 4156
SYS_MUNLOCKALL = 4157
SYS_SCHED_SETPARAM = 4158
SYS_SCHED_GETPARAM = 4159
SYS_SCHED_SETSCHEDULER = 4160
SYS_SCHED_GETSCHEDULER = 4161
SYS_SCHED_YIELD = 4162
SYS_SCHED_GET_PRIORITY_MAX = 4163
SYS_SCHED_GET_PRIORITY_MIN = 4164
SYS_SCHED_RR_GET_INTERVAL = 4165
SYS_NANOSLEEP = 4166
SYS_MREMAP = 4167
SYS_ACCEPT = 4168
SYS_BIND = 4169
SYS_CONNECT = 4170
SYS_GETPEERNAME = 4171
SYS_GETSOCKNAME = 4172
SYS_GETSOCKOPT = 4173
SYS_LISTEN = 4174
SYS_RECV = 4175
SYS_RECVFROM = 4176
SYS_RECVMSG = 4177
SYS_SEND = 4178
SYS_SENDMSG = 4179
SYS_SENDTO = 4180
SYS_SETSOCKOPT = 4181
SYS_SHUTDOWN = 4182
SYS_SOCKET = 4183
SYS_SOCKETPAIR = 4184
SYS_SETRESUID = 4185
SYS_GETRESUID = 4186
SYS_QUERY_MODULE = 4187
SYS_POLL = 4188
SYS_NFSSERVCTL = 4189
SYS_SETRESGID = 4190
SYS_GETRESGID = 4191
SYS_PRCTL = 4192
SYS_RT_SIGRETURN = 4193
SYS_RT_SIGACTION = 4194
SYS_RT_SIGPROCMASK = 4195
SYS_RT_SIGPENDING = 4196
SYS_RT_SIGTIMEDWAIT = 4197
SYS_RT_SIGQUEUEINFO = 4198
SYS_RT_SIGSUSPEND = 4199
SYS_PREAD64 = 4200
SYS_PWRITE64 = 4201
SYS_CHOWN = 4202
SYS_GETCWD = 4203
SYS_CAPGET = 4204
SYS_CAPSET = 4205
SYS_SIGALTSTACK = 4206
SYS_SENDFILE = 4207
SYS_GETPMSG = 4208
SYS_PUTPMSG = 4209
SYS_MMAP2 = 4210
SYS_TRUNCATE64 = 4211
SYS_FTRUNCATE64 = 4212
SYS_STAT64 = 4213
SYS_LSTAT64 = 4214
SYS_FSTAT64 = 4215
SYS_PIVOT_ROOT = 4216
SYS_MINCORE = 4217
SYS_MADVISE = 4218
SYS_GETDENTS64 = 4219
SYS_FCNTL64 = 4220
SYS_RESERVED221 = 4221
SYS_GETTID = 4222
SYS_READAHEAD = 4223
SYS_SETXATTR = 4224
SYS_LSETXATTR = 4225
SYS_FSETXATTR = 4226
SYS_GETXATTR = 4227
SYS_LGETXATTR = 4228
SYS_FGETXATTR = 4229
SYS_LISTXATTR = 4230
SYS_LLISTXATTR = 4231
SYS_FLISTXATTR = 4232
SYS_REMOVEXATTR = 4233
SYS_LREMOVEXATTR = 4234
SYS_FREMOVEXATTR = 4235
SYS_TKILL = 4236
SYS_SENDFILE64 = 4237
SYS_FUTEX = 4238
SYS_SCHED_SETAFFINITY = 4239
SYS_SCHED_GETAFFINITY = 4240
SYS_IO_SETUP = 4241
SYS_IO_DESTROY = 4242
SYS_IO_GETEVENTS = 4243
SYS_IO_SUBMIT = 4244
SYS_IO_CANCEL = 4245
SYS_EXIT_GROUP = 4246
SYS_LOOKUP_DCOOKIE = 4247
SYS_EPOLL_CREATE = 4248
SYS_EPOLL_CTL = 4249
SYS_EPOLL_WAIT = 4250
SYS_REMAP_FILE_PAGES = 4251
SYS_SET_TID_ADDRESS = 4252
SYS_RESTART_SYSCALL = 4253
SYS_FADVISE64 = 4254
SYS_STATFS64 = 4255
SYS_FSTATFS64 = 4256
SYS_TIMER_CREATE = 4257
SYS_TIMER_SETTIME = 4258
SYS_TIMER_GETTIME = 4259
SYS_TIMER_GETOVERRUN = 4260
SYS_TIMER_DELETE = 4261
SYS_CLOCK_SETTIME = 4262
SYS_CLOCK_GETTIME = 4263
SYS_CLOCK_GETRES = 4264
SYS_CLOCK_NANOSLEEP = 4265
SYS_TGKILL = 4266
SYS_UTIMES = 4267
SYS_MBIND = 4268
SYS_GET_MEMPOLICY = 4269
SYS_SET_MEMPOLICY = 4270
SYS_MQ_OPEN = 4271
SYS_MQ_UNLINK = 4272
SYS_MQ_TIMEDSEND = 4273
SYS_MQ_TIMEDRECEIVE = 4274
SYS_MQ_NOTIFY = 4275
SYS_MQ_GETSETATTR = 4276
SYS_VSERVER = 4277
SYS_WAITID = 4278
SYS_ADD_KEY = 4280
SYS_REQUEST_KEY = 4281
SYS_KEYCTL = 4282
SYS_SET_THREAD_AREA = 4283
SYS_INOTIFY_INIT = 4284
SYS_INOTIFY_ADD_WATCH = 4285
SYS_INOTIFY_RM_WATCH = 4286
SYS_MIGRATE_PAGES = 4287
SYS_OPENAT = 4288
SYS_MKDIRAT = 4289
SYS_MKNODAT = 4290
SYS_FCHOWNAT = 4291
SYS_FUTIMESAT = 4292
SYS_FSTATAT64 = 4293
SYS_UNLINKAT = 4294
SYS_RENAMEAT = 4295
SYS_LINKAT = 4296
SYS_SYMLINKAT = 4297
SYS_READLINKAT = 4298
SYS_FCHMODAT = 4299
SYS_FACCESSAT = 4300
SYS_PSELECT6 = 4301
SYS_PPOLL = 4302
SYS_UNSHARE = 4303
SYS_SPLICE = 4304
SYS_SYNC_FILE_RANGE = 4305
SYS_TEE = 4306
SYS_VMSPLICE = 4307
SYS_MOVE_PAGES = 4308
SYS_SET_ROBUST_LIST = 4309
SYS_GET_ROBUST_LIST = 4310
SYS_KEXEC_LOAD = 4311
SYS_GETCPU = 4312
SYS_EPOLL_PWAIT = 4313
SYS_IOPRIO_SET = 4314
SYS_IOPRIO_GET = 4315
SYS_UTIMENSAT = 4316
SYS_SIGNALFD = 4317
SYS_TIMERFD = 4318
SYS_EVENTFD = 4319
SYS_FALLOCATE = 4320
SYS_TIMERFD_CREATE = 4321
SYS_TIMERFD_GETTIME = 4322
SYS_TIMERFD_SETTIME = 4323
SYS_SIGNALFD4 = 4324
SYS_EVENTFD2 = 4325
SYS_EPOLL_CREATE1 = 4326
SYS_DUP3 = 4327
SYS_PIPE2 = 4328
SYS_INOTIFY_INIT1 = 4329
SYS_PREADV = 4330
SYS_PWRITEV = 4331
SYS_RT_TGSIGQUEUEINFO = 4332
SYS_PERF_EVENT_OPEN = 4333
SYS_ACCEPT4 = 4334
SYS_RECVMMSG = 4335
SYS_FANOTIFY_INIT = 4336
SYS_FANOTIFY_MARK = 4337
SYS_PRLIMIT64 = 4338
SYS_NAME_TO_HANDLE_AT = 4339
SYS_OPEN_BY_HANDLE_AT = 4340
SYS_CLOCK_ADJTIME = 4341
SYS_SYNCFS = 4342
SYS_SENDMMSG = 4343
SYS_SETNS = 4344
SYS_PROCESS_VM_READV = 4345
SYS_PROCESS_VM_WRITEV = 4346
SYS_LINUX_SYSCALLS = 4346
SYS_O32_LINUX_SYSCALLS = 4346
SYS_64_LINUX_SYSCALLS = 4305
SYS_N32_LINUX_SYSCALLS = 4310
)

View File

@ -0,0 +1,357 @@
// mksysnum_linux.pl /usr/include/mips-linux-gnu/asm/unistd.h
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
package syscall
const (
SYS_SYSCALL = 4000
SYS_EXIT = 4001
SYS_FORK = 4002
SYS_READ = 4003
SYS_WRITE = 4004
SYS_OPEN = 4005
SYS_CLOSE = 4006
SYS_WAITPID = 4007
SYS_CREAT = 4008
SYS_LINK = 4009
SYS_UNLINK = 4010
SYS_EXECVE = 4011
SYS_CHDIR = 4012
SYS_TIME = 4013
SYS_MKNOD = 4014
SYS_CHMOD = 4015
SYS_LCHOWN = 4016
SYS_BREAK = 4017
SYS_UNUSED18 = 4018
SYS_LSEEK = 4019
SYS_GETPID = 4020
SYS_MOUNT = 4021
SYS_UMOUNT = 4022
SYS_SETUID = 4023
SYS_GETUID = 4024
SYS_STIME = 4025
SYS_PTRACE = 4026
SYS_ALARM = 4027
SYS_UNUSED28 = 4028
SYS_PAUSE = 4029
SYS_UTIME = 4030
SYS_STTY = 4031
SYS_GTTY = 4032
SYS_ACCESS = 4033
SYS_NICE = 4034
SYS_FTIME = 4035
SYS_SYNC = 4036
SYS_KILL = 4037
SYS_RENAME = 4038
SYS_MKDIR = 4039
SYS_RMDIR = 4040
SYS_DUP = 4041
SYS_PIPE = 4042
SYS_TIMES = 4043
SYS_PROF = 4044
SYS_BRK = 4045
SYS_SETGID = 4046
SYS_GETGID = 4047
SYS_SIGNAL = 4048
SYS_GETEUID = 4049
SYS_GETEGID = 4050
SYS_ACCT = 4051
SYS_UMOUNT2 = 4052
SYS_LOCK = 4053
SYS_IOCTL = 4054
SYS_FCNTL = 4055
SYS_MPX = 4056
SYS_SETPGID = 4057
SYS_ULIMIT = 4058
SYS_UNUSED59 = 4059
SYS_UMASK = 4060
SYS_CHROOT = 4061
SYS_USTAT = 4062
SYS_DUP2 = 4063
SYS_GETPPID = 4064
SYS_GETPGRP = 4065
SYS_SETSID = 4066
SYS_SIGACTION = 4067
SYS_SGETMASK = 4068
SYS_SSETMASK = 4069
SYS_SETREUID = 4070
SYS_SETREGID = 4071
SYS_SIGSUSPEND = 4072
SYS_SIGPENDING = 4073
SYS_SETHOSTNAME = 4074
SYS_SETRLIMIT = 4075
SYS_GETRLIMIT = 4076
SYS_GETRUSAGE = 4077
SYS_GETTIMEOFDAY = 4078
SYS_SETTIMEOFDAY = 4079
SYS_GETGROUPS = 4080
SYS_SETGROUPS = 4081
SYS_RESERVED82 = 4082
SYS_SYMLINK = 4083
SYS_UNUSED84 = 4084
SYS_READLINK = 4085
SYS_USELIB = 4086
SYS_SWAPON = 4087
SYS_REBOOT = 4088
SYS_READDIR = 4089
SYS_MMAP = 4090
SYS_MUNMAP = 4091
SYS_TRUNCATE = 4092
SYS_FTRUNCATE = 4093
SYS_FCHMOD = 4094
SYS_FCHOWN = 4095
SYS_GETPRIORITY = 4096
SYS_SETPRIORITY = 4097
SYS_PROFIL = 4098
SYS_STATFS = 4099
SYS_FSTATFS = 4100
SYS_IOPERM = 4101
SYS_SOCKETCALL = 4102
SYS_SYSLOG = 4103
SYS_SETITIMER = 4104
SYS_GETITIMER = 4105
SYS_STAT = 4106
SYS_LSTAT = 4107
SYS_FSTAT = 4108
SYS_UNUSED109 = 4109
SYS_IOPL = 4110
SYS_VHANGUP = 4111
SYS_IDLE = 4112
SYS_VM86 = 4113
SYS_WAIT4 = 4114
SYS_SWAPOFF = 4115
SYS_SYSINFO = 4116
SYS_IPC = 4117
SYS_FSYNC = 4118
SYS_SIGRETURN = 4119
SYS_CLONE = 4120
SYS_SETDOMAINNAME = 4121
SYS_UNAME = 4122
SYS_MODIFY_LDT = 4123
SYS_ADJTIMEX = 4124
SYS_MPROTECT = 4125
SYS_SIGPROCMASK = 4126
SYS_CREATE_MODULE = 4127
SYS_INIT_MODULE = 4128
SYS_DELETE_MODULE = 4129
SYS_GET_KERNEL_SYMS = 4130
SYS_QUOTACTL = 4131
SYS_GETPGID = 4132
SYS_FCHDIR = 4133
SYS_BDFLUSH = 4134
SYS_SYSFS = 4135
SYS_PERSONALITY = 4136
SYS_AFS_SYSCALL = 4137
SYS_SETFSUID = 4138
SYS_SETFSGID = 4139
SYS__LLSEEK = 4140
SYS_GETDENTS = 4141
SYS__NEWSELECT = 4142
SYS_FLOCK = 4143
SYS_MSYNC = 4144
SYS_READV = 4145
SYS_WRITEV = 4146
SYS_CACHEFLUSH = 4147
SYS_CACHECTL = 4148
SYS_SYSMIPS = 4149
SYS_UNUSED150 = 4150
SYS_GETSID = 4151
SYS_FDATASYNC = 4152
SYS__SYSCTL = 4153
SYS_MLOCK = 4154
SYS_MUNLOCK = 4155
SYS_MLOCKALL = 4156
SYS_MUNLOCKALL = 4157
SYS_SCHED_SETPARAM = 4158
SYS_SCHED_GETPARAM = 4159
SYS_SCHED_SETSCHEDULER = 4160
SYS_SCHED_GETSCHEDULER = 4161
SYS_SCHED_YIELD = 4162
SYS_SCHED_GET_PRIORITY_MAX = 4163
SYS_SCHED_GET_PRIORITY_MIN = 4164
SYS_SCHED_RR_GET_INTERVAL = 4165
SYS_NANOSLEEP = 4166
SYS_MREMAP = 4167
SYS_ACCEPT = 4168
SYS_BIND = 4169
SYS_CONNECT = 4170
SYS_GETPEERNAME = 4171
SYS_GETSOCKNAME = 4172
SYS_GETSOCKOPT = 4173
SYS_LISTEN = 4174
SYS_RECV = 4175
SYS_RECVFROM = 4176
SYS_RECVMSG = 4177
SYS_SEND = 4178
SYS_SENDMSG = 4179
SYS_SENDTO = 4180
SYS_SETSOCKOPT = 4181
SYS_SHUTDOWN = 4182
SYS_SOCKET = 4183
SYS_SOCKETPAIR = 4184
SYS_SETRESUID = 4185
SYS_GETRESUID = 4186
SYS_QUERY_MODULE = 4187
SYS_POLL = 4188
SYS_NFSSERVCTL = 4189
SYS_SETRESGID = 4190
SYS_GETRESGID = 4191
SYS_PRCTL = 4192
SYS_RT_SIGRETURN = 4193
SYS_RT_SIGACTION = 4194
SYS_RT_SIGPROCMASK = 4195
SYS_RT_SIGPENDING = 4196
SYS_RT_SIGTIMEDWAIT = 4197
SYS_RT_SIGQUEUEINFO = 4198
SYS_RT_SIGSUSPEND = 4199
SYS_PREAD64 = 4200
SYS_PWRITE64 = 4201
SYS_CHOWN = 4202
SYS_GETCWD = 4203
SYS_CAPGET = 4204
SYS_CAPSET = 4205
SYS_SIGALTSTACK = 4206
SYS_SENDFILE = 4207
SYS_GETPMSG = 4208
SYS_PUTPMSG = 4209
SYS_MMAP2 = 4210
SYS_TRUNCATE64 = 4211
SYS_FTRUNCATE64 = 4212
SYS_STAT64 = 4213
SYS_LSTAT64 = 4214
SYS_FSTAT64 = 4215
SYS_PIVOT_ROOT = 4216
SYS_MINCORE = 4217
SYS_MADVISE = 4218
SYS_GETDENTS64 = 4219
SYS_FCNTL64 = 4220
SYS_RESERVED221 = 4221
SYS_GETTID = 4222
SYS_READAHEAD = 4223
SYS_SETXATTR = 4224
SYS_LSETXATTR = 4225
SYS_FSETXATTR = 4226
SYS_GETXATTR = 4227
SYS_LGETXATTR = 4228
SYS_FGETXATTR = 4229
SYS_LISTXATTR = 4230
SYS_LLISTXATTR = 4231
SYS_FLISTXATTR = 4232
SYS_REMOVEXATTR = 4233
SYS_LREMOVEXATTR = 4234
SYS_FREMOVEXATTR = 4235
SYS_TKILL = 4236
SYS_SENDFILE64 = 4237
SYS_FUTEX = 4238
SYS_SCHED_SETAFFINITY = 4239
SYS_SCHED_GETAFFINITY = 4240
SYS_IO_SETUP = 4241
SYS_IO_DESTROY = 4242
SYS_IO_GETEVENTS = 4243
SYS_IO_SUBMIT = 4244
SYS_IO_CANCEL = 4245
SYS_EXIT_GROUP = 4246
SYS_LOOKUP_DCOOKIE = 4247
SYS_EPOLL_CREATE = 4248
SYS_EPOLL_CTL = 4249
SYS_EPOLL_WAIT = 4250
SYS_REMAP_FILE_PAGES = 4251
SYS_SET_TID_ADDRESS = 4252
SYS_RESTART_SYSCALL = 4253
SYS_FADVISE64 = 4254
SYS_STATFS64 = 4255
SYS_FSTATFS64 = 4256
SYS_TIMER_CREATE = 4257
SYS_TIMER_SETTIME = 4258
SYS_TIMER_GETTIME = 4259
SYS_TIMER_GETOVERRUN = 4260
SYS_TIMER_DELETE = 4261
SYS_CLOCK_SETTIME = 4262
SYS_CLOCK_GETTIME = 4263
SYS_CLOCK_GETRES = 4264
SYS_CLOCK_NANOSLEEP = 4265
SYS_TGKILL = 4266
SYS_UTIMES = 4267
SYS_MBIND = 4268
SYS_GET_MEMPOLICY = 4269
SYS_SET_MEMPOLICY = 4270
SYS_MQ_OPEN = 4271
SYS_MQ_UNLINK = 4272
SYS_MQ_TIMEDSEND = 4273
SYS_MQ_TIMEDRECEIVE = 4274
SYS_MQ_NOTIFY = 4275
SYS_MQ_GETSETATTR = 4276
SYS_VSERVER = 4277
SYS_WAITID = 4278
SYS_ADD_KEY = 4280
SYS_REQUEST_KEY = 4281
SYS_KEYCTL = 4282
SYS_SET_THREAD_AREA = 4283
SYS_INOTIFY_INIT = 4284
SYS_INOTIFY_ADD_WATCH = 4285
SYS_INOTIFY_RM_WATCH = 4286
SYS_MIGRATE_PAGES = 4287
SYS_OPENAT = 4288
SYS_MKDIRAT = 4289
SYS_MKNODAT = 4290
SYS_FCHOWNAT = 4291
SYS_FUTIMESAT = 4292
SYS_FSTATAT64 = 4293
SYS_UNLINKAT = 4294
SYS_RENAMEAT = 4295
SYS_LINKAT = 4296
SYS_SYMLINKAT = 4297
SYS_READLINKAT = 4298
SYS_FCHMODAT = 4299
SYS_FACCESSAT = 4300
SYS_PSELECT6 = 4301
SYS_PPOLL = 4302
SYS_UNSHARE = 4303
SYS_SPLICE = 4304
SYS_SYNC_FILE_RANGE = 4305
SYS_TEE = 4306
SYS_VMSPLICE = 4307
SYS_MOVE_PAGES = 4308
SYS_SET_ROBUST_LIST = 4309
SYS_GET_ROBUST_LIST = 4310
SYS_KEXEC_LOAD = 4311
SYS_GETCPU = 4312
SYS_EPOLL_PWAIT = 4313
SYS_IOPRIO_SET = 4314
SYS_IOPRIO_GET = 4315
SYS_UTIMENSAT = 4316
SYS_SIGNALFD = 4317
SYS_TIMERFD = 4318
SYS_EVENTFD = 4319
SYS_FALLOCATE = 4320
SYS_TIMERFD_CREATE = 4321
SYS_TIMERFD_GETTIME = 4322
SYS_TIMERFD_SETTIME = 4323
SYS_SIGNALFD4 = 4324
SYS_EVENTFD2 = 4325
SYS_EPOLL_CREATE1 = 4326
SYS_DUP3 = 4327
SYS_PIPE2 = 4328
SYS_INOTIFY_INIT1 = 4329
SYS_PREADV = 4330
SYS_PWRITEV = 4331
SYS_RT_TGSIGQUEUEINFO = 4332
SYS_PERF_EVENT_OPEN = 4333
SYS_ACCEPT4 = 4334
SYS_RECVMMSG = 4335
SYS_FANOTIFY_INIT = 4336
SYS_FANOTIFY_MARK = 4337
SYS_PRLIMIT64 = 4338
SYS_NAME_TO_HANDLE_AT = 4339
SYS_OPEN_BY_HANDLE_AT = 4340
SYS_CLOCK_ADJTIME = 4341
SYS_SYNCFS = 4342
SYS_SENDMMSG = 4343
SYS_SETNS = 4344
SYS_PROCESS_VM_READV = 4345
SYS_PROCESS_VM_WRITEV = 4346
SYS_LINUX_SYSCALLS = 4346
SYS_O32_LINUX_SYSCALLS = 4346
SYS_64_LINUX_SYSCALLS = 4305
SYS_N32_LINUX_SYSCALLS = 4310
)

View File

@ -0,0 +1,592 @@
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types_linux.go
package syscall
const (
sizeofPtr = 0x4
sizeofShort = 0x2
sizeofInt = 0x4
sizeofLong = 0x4
sizeofLongLong = 0x8
PathMax = 0x1000
)
type (
_C_short int16
_C_int int32
_C_long int32
_C_long_long int64
)
type Timespec struct {
Sec int32
Nsec int32
}
type Timeval struct {
Sec int32
Usec int32
}
type Timex struct {
Modes uint32
Offset int32
Freq int32
Maxerror int32
Esterror int32
Status int32
Constant int32
Precision int32
Tolerance int32
Time Timeval
Tick int32
Ppsfreq int32
Jitter int32
Shift int32
Stabil int32
Jitcnt int32
Calcnt int32
Errcnt int32
Stbcnt int32
Tai int32
Pad_cgo_0 [44]byte
}
type Time_t int32
type Tms struct {
Utime int32
Stime int32
Cutime int32
Cstime int32
}
type Utimbuf struct {
Actime int32
Modtime int32
}
type Rusage struct {
Utime Timeval
Stime Timeval
Maxrss int32
Ixrss int32
Idrss int32
Isrss int32
Minflt int32
Majflt int32
Nswap int32
Inblock int32
Oublock int32
Msgsnd int32
Msgrcv int32
Nsignals int32
Nvcsw int32
Nivcsw int32
}
type Rlimit struct {
Cur uint64
Max uint64
}
type _Gid_t uint32
type Stat_t struct {
Dev uint32
Pad1 [3]int32
Ino uint64
Mode uint32
Nlink uint32
Uid uint32
Gid uint32
Rdev uint32
Pad2 [3]int32
Size int64
Atim Timespec
Mtim Timespec
Ctim Timespec
Blksize int32
Pad4 int32
Blocks int64
Pad5 [14]int32
}
type Statfs_t struct {
Type int32
Bsize int32
Frsize int32
Pad_cgo_0 [4]byte
Blocks uint64
Bfree uint64
Files uint64
Ffree uint64
Bavail uint64
Fsid Fsid
Namelen int32
Flags int32
Spare [5]int32
Pad_cgo_1 [4]byte
}
type Dirent struct {
Ino uint64
Off int64
Reclen uint16
Type uint8
Name [256]int8
Pad_cgo_0 [5]byte
}
type Fsid struct {
X__val [2]int32
}
type Flock_t struct {
Type int16
Whence int16
Pad_cgo_0 [4]byte
Start int64
Len int64
Pid int32
Pad_cgo_1 [4]byte
}
type RawSockaddrInet4 struct {
Family uint16
Port uint16
Addr [4]byte /* in_addr */
Zero [8]uint8
}
type RawSockaddrInet6 struct {
Family uint16
Port uint16
Flowinfo uint32
Addr [16]byte /* in6_addr */
Scope_id uint32
}
type RawSockaddrUnix struct {
Family uint16
Path [108]int8
}
type RawSockaddrLinklayer struct {
Family uint16
Protocol uint16
Ifindex int32
Hatype uint16
Pkttype uint8
Halen uint8
Addr [8]uint8
}
type RawSockaddrNetlink struct {
Family uint16
Pad uint16
Pid uint32
Groups uint32
}
type RawSockaddr struct {
Family uint16
Data [14]int8
}
type RawSockaddrAny struct {
Addr RawSockaddr
Pad [96]int8
}
type _Socklen uint32
type Linger struct {
Onoff int32
Linger int32
}
type Iovec struct {
Base *byte
Len uint32
}
type IPMreq struct {
Multiaddr [4]byte /* in_addr */
Interface [4]byte /* in_addr */
}
type IPMreqn struct {
Multiaddr [4]byte /* in_addr */
Address [4]byte /* in_addr */
Ifindex int32
}
type IPv6Mreq struct {
Multiaddr [16]byte /* in6_addr */
Interface uint32
}
type Msghdr struct {
Name *byte
Namelen uint32
Iov *Iovec
Iovlen uint32
Control *byte
Controllen uint32
Flags int32
}
type Cmsghdr struct {
Len uint32
Level int32
Type int32
}
type Inet4Pktinfo struct {
Ifindex int32
Spec_dst [4]byte /* in_addr */
Addr [4]byte /* in_addr */
}
type Inet6Pktinfo struct {
Addr [16]byte /* in6_addr */
Ifindex uint32
}
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Data [8]uint32
}
type Ucred struct {
Pid int32
Uid uint32
Gid uint32
}
type TCPInfo struct {
State uint8
Ca_state uint8
Retransmits uint8
Probes uint8
Backoff uint8
Options uint8
Pad_cgo_0 [2]byte
Rto uint32
Ato uint32
Snd_mss uint32
Rcv_mss uint32
Unacked uint32
Sacked uint32
Lost uint32
Retrans uint32
Fackets uint32
Last_data_sent uint32
Last_ack_sent uint32
Last_data_recv uint32
Last_ack_recv uint32
Pmtu uint32
Rcv_ssthresh uint32
Rtt uint32
Rttvar uint32
Snd_ssthresh uint32
Snd_cwnd uint32
Advmss uint32
Reordering uint32
Rcv_rtt uint32
Rcv_space uint32
Total_retrans uint32
}
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
SizeofSockaddrAny = 0x70
SizeofSockaddrUnix = 0x6e
SizeofSockaddrLinklayer = 0x14
SizeofSockaddrNetlink = 0xc
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
SizeofIPv6Mreq = 0x14
SizeofMsghdr = 0x1c
SizeofCmsghdr = 0xc
SizeofInet4Pktinfo = 0xc
SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
)
const (
IFA_UNSPEC = 0x0
IFA_ADDRESS = 0x1
IFA_LOCAL = 0x2
IFA_LABEL = 0x3
IFA_BROADCAST = 0x4
IFA_ANYCAST = 0x5
IFA_CACHEINFO = 0x6
IFA_MULTICAST = 0x7
IFLA_UNSPEC = 0x0
IFLA_ADDRESS = 0x1
IFLA_BROADCAST = 0x2
IFLA_IFNAME = 0x3
IFLA_MTU = 0x4
IFLA_LINK = 0x5
IFLA_QDISC = 0x6
IFLA_STATS = 0x7
IFLA_COST = 0x8
IFLA_PRIORITY = 0x9
IFLA_MASTER = 0xa
IFLA_WIRELESS = 0xb
IFLA_PROTINFO = 0xc
IFLA_TXQLEN = 0xd
IFLA_MAP = 0xe
IFLA_WEIGHT = 0xf
IFLA_OPERSTATE = 0x10
IFLA_LINKMODE = 0x11
IFLA_LINKINFO = 0x12
IFLA_NET_NS_PID = 0x13
IFLA_IFALIAS = 0x14
IFLA_MAX = 0x27
RT_SCOPE_UNIVERSE = 0x0
RT_SCOPE_SITE = 0xc8
RT_SCOPE_LINK = 0xfd
RT_SCOPE_HOST = 0xfe
RT_SCOPE_NOWHERE = 0xff
RT_TABLE_UNSPEC = 0x0
RT_TABLE_COMPAT = 0xfc
RT_TABLE_DEFAULT = 0xfd
RT_TABLE_MAIN = 0xfe
RT_TABLE_LOCAL = 0xff
RT_TABLE_MAX = 0xffffffff
RTA_UNSPEC = 0x0
RTA_DST = 0x1
RTA_SRC = 0x2
RTA_IIF = 0x3
RTA_OIF = 0x4
RTA_GATEWAY = 0x5
RTA_PRIORITY = 0x6
RTA_PREFSRC = 0x7
RTA_METRICS = 0x8
RTA_MULTIPATH = 0x9
RTA_FLOW = 0xb
RTA_CACHEINFO = 0xc
RTA_TABLE = 0xf
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
)
type NlMsghdr struct {
Len uint32
Type uint16
Flags uint16
Seq uint32
Pid uint32
}
type NlMsgerr struct {
Error int32
Msg NlMsghdr
}
type RtGenmsg struct {
Family uint8
}
type NlAttr struct {
Len uint16
Type uint16
}
type RtAttr struct {
Len uint16
Type uint16
}
type IfInfomsg struct {
Family uint8
X__ifi_pad uint8
Type uint16
Index int32
Flags uint32
Change uint32
}
type IfAddrmsg struct {
Family uint8
Prefixlen uint8
Flags uint8
Scope uint8
Index uint32
}
type RtMsg struct {
Family uint8
Dst_len uint8
Src_len uint8
Tos uint8
Table uint8
Protocol uint8
Scope uint8
Type uint8
Flags uint32
}
type RtNexthop struct {
Len uint16
Flags uint8
Hops uint8
Ifindex int32
}
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x8
)
type SockFilter struct {
Code uint16
Jt uint8
Jf uint8
K uint32
}
type SockFprog struct {
Len uint16
Pad_cgo_0 [2]byte
Filter *SockFilter
}
type InotifyEvent struct {
Wd int32
Mask uint32
Cookie uint32
Len uint32
}
const SizeofInotifyEvent = 0x10
type PtraceRegs struct {
Regs [109]uint32
U_tsize uint32
U_dsize uint32
U_ssize uint32
Start_code uint32
Start_data uint32
Start_stack uint32
Signal int32
U_ar0 *byte
Magic uint32
U_comm [32]int8
}
type FdSet struct {
Bits [32]int32
}
type Sysinfo_t struct {
Uptime int32
Loads [3]uint32
Totalram uint32
Freeram uint32
Sharedram uint32
Bufferram uint32
Totalswap uint32
Freeswap uint32
Procs uint16
Pad uint16
Totalhigh uint32
Freehigh uint32
Unit uint32
X_f [8]int8
}
type Utsname struct {
Sysname [65]int8
Nodename [65]int8
Release [65]int8
Version [65]int8
Machine [65]int8
Domainname [65]int8
}
type Ustat_t struct {
Tfree int32
Tinode uint32
Fname [6]int8
Fpack [6]int8
}
type EpollEvent struct {
Events uint32
PadFd int32
Fd int32
Pad int32
}
const (
_AT_FDCWD = -0x64
_AT_REMOVEDIR = 0x200
_AT_SYMLINK_NOFOLLOW = 0x100
)
type Termios struct {
Iflag uint32
Oflag uint32
Cflag uint32
Lflag uint32
Line uint8
Cc [32]uint8
Pad_cgo_0 [3]byte
}
const (
IUCLC = 0x200
OLCUC = 0x2
TCGETS = 0x540d
TCSETS = 0x540e
XCASE = 0x4
)

View File

@ -0,0 +1,592 @@
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types_linux.go
package syscall
const (
sizeofPtr = 0x4
sizeofShort = 0x2
sizeofInt = 0x4
sizeofLong = 0x4
sizeofLongLong = 0x8
PathMax = 0x1000
)
type (
_C_short int16
_C_int int32
_C_long int32
_C_long_long int64
)
type Timespec struct {
Sec int32
Nsec int32
}
type Timeval struct {
Sec int32
Usec int32
}
type Timex struct {
Modes uint32
Offset int32
Freq int32
Maxerror int32
Esterror int32
Status int32
Constant int32
Precision int32
Tolerance int32
Time Timeval
Tick int32
Ppsfreq int32
Jitter int32
Shift int32
Stabil int32
Jitcnt int32
Calcnt int32
Errcnt int32
Stbcnt int32
Tai int32
Pad_cgo_0 [44]byte
}
type Time_t int32
type Tms struct {
Utime int32
Stime int32
Cutime int32
Cstime int32
}
type Utimbuf struct {
Actime int32
Modtime int32
}
type Rusage struct {
Utime Timeval
Stime Timeval
Maxrss int32
Ixrss int32
Idrss int32
Isrss int32
Minflt int32
Majflt int32
Nswap int32
Inblock int32
Oublock int32
Msgsnd int32
Msgrcv int32
Nsignals int32
Nvcsw int32
Nivcsw int32
}
type Rlimit struct {
Cur uint64
Max uint64
}
type _Gid_t uint32
type Stat_t struct {
Dev uint32
Pad1 [3]int32
Ino uint64
Mode uint32
Nlink uint32
Uid uint32
Gid uint32
Rdev uint32
Pad2 [3]int32
Size int64
Atim Timespec
Mtim Timespec
Ctim Timespec
Blksize int32
Pad4 int32
Blocks int64
Pad5 [14]int32
}
type Statfs_t struct {
Type int32
Bsize int32
Frsize int32
Pad_cgo_0 [4]byte
Blocks uint64
Bfree uint64
Files uint64
Ffree uint64
Bavail uint64
Fsid Fsid
Namelen int32
Flags int32
Spare [5]int32
Pad_cgo_1 [4]byte
}
type Dirent struct {
Ino uint64
Off int64
Reclen uint16
Type uint8
Name [256]int8
Pad_cgo_0 [5]byte
}
type Fsid struct {
X__val [2]int32
}
type Flock_t struct {
Type int16
Whence int16
Pad_cgo_0 [4]byte
Start int64
Len int64
Pid int32
Pad_cgo_1 [4]byte
}
type RawSockaddrInet4 struct {
Family uint16
Port uint16
Addr [4]byte /* in_addr */
Zero [8]uint8
}
type RawSockaddrInet6 struct {
Family uint16
Port uint16
Flowinfo uint32
Addr [16]byte /* in6_addr */
Scope_id uint32
}
type RawSockaddrUnix struct {
Family uint16
Path [108]int8
}
type RawSockaddrLinklayer struct {
Family uint16
Protocol uint16
Ifindex int32
Hatype uint16
Pkttype uint8
Halen uint8
Addr [8]uint8
}
type RawSockaddrNetlink struct {
Family uint16
Pad uint16
Pid uint32
Groups uint32
}
type RawSockaddr struct {
Family uint16
Data [14]int8
}
type RawSockaddrAny struct {
Addr RawSockaddr
Pad [96]int8
}
type _Socklen uint32
type Linger struct {
Onoff int32
Linger int32
}
type Iovec struct {
Base *byte
Len uint32
}
type IPMreq struct {
Multiaddr [4]byte /* in_addr */
Interface [4]byte /* in_addr */
}
type IPMreqn struct {
Multiaddr [4]byte /* in_addr */
Address [4]byte /* in_addr */
Ifindex int32
}
type IPv6Mreq struct {
Multiaddr [16]byte /* in6_addr */
Interface uint32
}
type Msghdr struct {
Name *byte
Namelen uint32
Iov *Iovec
Iovlen uint32
Control *byte
Controllen uint32
Flags int32
}
type Cmsghdr struct {
Len uint32
Level int32
Type int32
}
type Inet4Pktinfo struct {
Ifindex int32
Spec_dst [4]byte /* in_addr */
Addr [4]byte /* in_addr */
}
type Inet6Pktinfo struct {
Addr [16]byte /* in6_addr */
Ifindex uint32
}
type IPv6MTUInfo struct {
Addr RawSockaddrInet6
Mtu uint32
}
type ICMPv6Filter struct {
Data [8]uint32
}
type Ucred struct {
Pid int32
Uid uint32
Gid uint32
}
type TCPInfo struct {
State uint8
Ca_state uint8
Retransmits uint8
Probes uint8
Backoff uint8
Options uint8
Pad_cgo_0 [2]byte
Rto uint32
Ato uint32
Snd_mss uint32
Rcv_mss uint32
Unacked uint32
Sacked uint32
Lost uint32
Retrans uint32
Fackets uint32
Last_data_sent uint32
Last_ack_sent uint32
Last_data_recv uint32
Last_ack_recv uint32
Pmtu uint32
Rcv_ssthresh uint32
Rtt uint32
Rttvar uint32
Snd_ssthresh uint32
Snd_cwnd uint32
Advmss uint32
Reordering uint32
Rcv_rtt uint32
Rcv_space uint32
Total_retrans uint32
}
const (
SizeofSockaddrInet4 = 0x10
SizeofSockaddrInet6 = 0x1c
SizeofSockaddrAny = 0x70
SizeofSockaddrUnix = 0x6e
SizeofSockaddrLinklayer = 0x14
SizeofSockaddrNetlink = 0xc
SizeofLinger = 0x8
SizeofIPMreq = 0x8
SizeofIPMreqn = 0xc
SizeofIPv6Mreq = 0x14
SizeofMsghdr = 0x1c
SizeofCmsghdr = 0xc
SizeofInet4Pktinfo = 0xc
SizeofInet6Pktinfo = 0x14
SizeofIPv6MTUInfo = 0x20
SizeofICMPv6Filter = 0x20
SizeofUcred = 0xc
SizeofTCPInfo = 0x68
)
const (
IFA_UNSPEC = 0x0
IFA_ADDRESS = 0x1
IFA_LOCAL = 0x2
IFA_LABEL = 0x3
IFA_BROADCAST = 0x4
IFA_ANYCAST = 0x5
IFA_CACHEINFO = 0x6
IFA_MULTICAST = 0x7
IFLA_UNSPEC = 0x0
IFLA_ADDRESS = 0x1
IFLA_BROADCAST = 0x2
IFLA_IFNAME = 0x3
IFLA_MTU = 0x4
IFLA_LINK = 0x5
IFLA_QDISC = 0x6
IFLA_STATS = 0x7
IFLA_COST = 0x8
IFLA_PRIORITY = 0x9
IFLA_MASTER = 0xa
IFLA_WIRELESS = 0xb
IFLA_PROTINFO = 0xc
IFLA_TXQLEN = 0xd
IFLA_MAP = 0xe
IFLA_WEIGHT = 0xf
IFLA_OPERSTATE = 0x10
IFLA_LINKMODE = 0x11
IFLA_LINKINFO = 0x12
IFLA_NET_NS_PID = 0x13
IFLA_IFALIAS = 0x14
IFLA_MAX = 0x27
RT_SCOPE_UNIVERSE = 0x0
RT_SCOPE_SITE = 0xc8
RT_SCOPE_LINK = 0xfd
RT_SCOPE_HOST = 0xfe
RT_SCOPE_NOWHERE = 0xff
RT_TABLE_UNSPEC = 0x0
RT_TABLE_COMPAT = 0xfc
RT_TABLE_DEFAULT = 0xfd
RT_TABLE_MAIN = 0xfe
RT_TABLE_LOCAL = 0xff
RT_TABLE_MAX = 0xffffffff
RTA_UNSPEC = 0x0
RTA_DST = 0x1
RTA_SRC = 0x2
RTA_IIF = 0x3
RTA_OIF = 0x4
RTA_GATEWAY = 0x5
RTA_PRIORITY = 0x6
RTA_PREFSRC = 0x7
RTA_METRICS = 0x8
RTA_MULTIPATH = 0x9
RTA_FLOW = 0xb
RTA_CACHEINFO = 0xc
RTA_TABLE = 0xf
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
)
type NlMsghdr struct {
Len uint32
Type uint16
Flags uint16
Seq uint32
Pid uint32
}
type NlMsgerr struct {
Error int32
Msg NlMsghdr
}
type RtGenmsg struct {
Family uint8
}
type NlAttr struct {
Len uint16
Type uint16
}
type RtAttr struct {
Len uint16
Type uint16
}
type IfInfomsg struct {
Family uint8
X__ifi_pad uint8
Type uint16
Index int32
Flags uint32
Change uint32
}
type IfAddrmsg struct {
Family uint8
Prefixlen uint8
Flags uint8
Scope uint8
Index uint32
}
type RtMsg struct {
Family uint8
Dst_len uint8
Src_len uint8
Tos uint8
Table uint8
Protocol uint8
Scope uint8
Type uint8
Flags uint32
}
type RtNexthop struct {
Len uint16
Flags uint8
Hops uint8
Ifindex int32
}
const (
SizeofSockFilter = 0x8
SizeofSockFprog = 0x8
)
type SockFilter struct {
Code uint16
Jt uint8
Jf uint8
K uint32
}
type SockFprog struct {
Len uint16
Pad_cgo_0 [2]byte
Filter *SockFilter
}
type InotifyEvent struct {
Wd int32
Mask uint32
Cookie uint32
Len uint32
}
const SizeofInotifyEvent = 0x10
type PtraceRegs struct {
Regs [109]uint32
U_tsize uint32
U_dsize uint32
U_ssize uint32
Start_code uint32
Start_data uint32
Start_stack uint32
Signal int32
U_ar0 *byte
Magic uint32
U_comm [32]int8
}
type FdSet struct {
Bits [32]int32
}
type Sysinfo_t struct {
Uptime int32
Loads [3]uint32
Totalram uint32
Freeram uint32
Sharedram uint32
Bufferram uint32
Totalswap uint32
Freeswap uint32
Procs uint16
Pad uint16
Totalhigh uint32
Freehigh uint32
Unit uint32
X_f [8]int8
}
type Utsname struct {
Sysname [65]int8
Nodename [65]int8
Release [65]int8
Version [65]int8
Machine [65]int8
Domainname [65]int8
}
type Ustat_t struct {
Tfree int32
Tinode uint32
Fname [6]int8
Fpack [6]int8
}
type EpollEvent struct {
Events uint32
PadFd int32
Fd int32
Pad int32
}
const (
_AT_FDCWD = -0x64
_AT_REMOVEDIR = 0x200
_AT_SYMLINK_NOFOLLOW = 0x100
)
type Termios struct {
Iflag uint32
Oflag uint32
Cflag uint32
Lflag uint32
Line uint8
Cc [32]uint8
Pad_cgo_0 [3]byte
}
const (
IUCLC = 0x200
OLCUC = 0x2
TCGETS = 0x540d
TCSETS = 0x540e
XCASE = 0x4
)