mirror of https://github.com/golang/go.git
syscall: add support for linux/riscv64
Based on the riscv-go port and the linux/riscv64 files in x/sys/unix. Updates #27532 Change-Id: Ib33a59a61f6b2721b12292c18f1fc9f9d0509cd3 Reviewed-on: https://go-review.googlesource.com/c/go/+/204659 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
a570fcf74b
commit
8d45e612f1
|
|
@ -0,0 +1,115 @@
|
||||||
|
// Copyright 2019 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.
|
||||||
|
|
||||||
|
#include "textflag.h"
|
||||||
|
|
||||||
|
//
|
||||||
|
// System calls for riscv64, Linux
|
||||||
|
//
|
||||||
|
|
||||||
|
// func Syscall(trap int64, a1, a2, a3 int64) (r1, r2, err int64)
|
||||||
|
TEXT ·Syscall(SB),NOSPLIT,$0-56
|
||||||
|
CALL runtime·entersyscall(SB)
|
||||||
|
MOV a1+8(FP), A0
|
||||||
|
MOV a2+16(FP), A1
|
||||||
|
MOV a3+24(FP), A2
|
||||||
|
MOV trap+0(FP), A7 // syscall entry
|
||||||
|
ECALL
|
||||||
|
MOV $-4096, T0
|
||||||
|
BLTU T0, A0, err
|
||||||
|
MOV A0, r1+32(FP) // r1
|
||||||
|
MOV A1, r2+40(FP) // r2
|
||||||
|
MOV $0, err+48(FP) // errno
|
||||||
|
CALL runtime·exitsyscall(SB)
|
||||||
|
RET
|
||||||
|
err:
|
||||||
|
MOV $-1, T0
|
||||||
|
MOV T0, r1+32(FP) // r1
|
||||||
|
MOV $0, r2+40(FP) // r2
|
||||||
|
SUB A0, $0, A0
|
||||||
|
MOV A0, err+48(FP) // errno
|
||||||
|
CALL runtime·exitsyscall(SB)
|
||||||
|
RET
|
||||||
|
|
||||||
|
// func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
|
||||||
|
TEXT ·Syscall6(SB),NOSPLIT,$0-80
|
||||||
|
CALL runtime·entersyscall(SB)
|
||||||
|
MOV a1+8(FP), A0
|
||||||
|
MOV a2+16(FP), A1
|
||||||
|
MOV a3+24(FP), A2
|
||||||
|
MOV a4+32(FP), A3
|
||||||
|
MOV a5+40(FP), A4
|
||||||
|
MOV a6+48(FP), A5
|
||||||
|
MOV trap+0(FP), A7 // syscall entry
|
||||||
|
ECALL
|
||||||
|
MOV $-4096, T0
|
||||||
|
BLTU T0, A0, err
|
||||||
|
MOV A0, r1+56(FP) // r1
|
||||||
|
MOV A1, r2+64(FP) // r2
|
||||||
|
MOV $0, err+72(FP) // errno
|
||||||
|
CALL runtime·exitsyscall(SB)
|
||||||
|
RET
|
||||||
|
err:
|
||||||
|
MOV $-1, T0
|
||||||
|
MOV T0, r1+56(FP) // r1
|
||||||
|
MOV $0, r2+64(FP) // r2
|
||||||
|
SUB A0, $0, A0
|
||||||
|
MOV A0, err+72(FP) // errno
|
||||||
|
CALL runtime·exitsyscall(SB)
|
||||||
|
RET
|
||||||
|
|
||||||
|
// func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
|
||||||
|
TEXT ·RawSyscall(SB),NOSPLIT,$0-56
|
||||||
|
MOV a1+8(FP), A0
|
||||||
|
MOV a2+16(FP), A1
|
||||||
|
MOV a3+24(FP), A2
|
||||||
|
MOV trap+0(FP), A7 // syscall entry
|
||||||
|
ECALL
|
||||||
|
MOV $-4096, T0
|
||||||
|
BLTU T0, A0, err
|
||||||
|
MOV A0, r1+32(FP) // r1
|
||||||
|
MOV A1, r2+40(FP) // r2
|
||||||
|
MOV $0, err+48(FP) // errno
|
||||||
|
RET
|
||||||
|
err:
|
||||||
|
MOV $-1, T0
|
||||||
|
MOV T0, r1+32(FP) // r1
|
||||||
|
MOV $0, r2+40(FP) // r2
|
||||||
|
SUB A0, $0, A0
|
||||||
|
MOV A0, err+48(FP) // errno
|
||||||
|
RET
|
||||||
|
|
||||||
|
// func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
|
||||||
|
TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
|
||||||
|
MOV a1+8(FP), A0
|
||||||
|
MOV a2+16(FP), A1
|
||||||
|
MOV a3+24(FP), A2
|
||||||
|
MOV a4+32(FP), A3
|
||||||
|
MOV a5+40(FP), A4
|
||||||
|
MOV a6+48(FP), A5
|
||||||
|
MOV trap+0(FP), A7 // syscall entry
|
||||||
|
ECALL
|
||||||
|
MOV $-4096, T0
|
||||||
|
BLTU T0, A0, err
|
||||||
|
MOV A0, r1+56(FP) // r1
|
||||||
|
MOV A1, r2+64(FP) // r2
|
||||||
|
MOV $0, err+72(FP) // errno
|
||||||
|
RET
|
||||||
|
err:
|
||||||
|
MOV $-1, T0
|
||||||
|
MOV T0, r1+56(FP) // r1
|
||||||
|
MOV $0, r2+64(FP) // r2
|
||||||
|
SUB A0, $0, A0
|
||||||
|
MOV A0, err+72(FP) // errno
|
||||||
|
RET
|
||||||
|
|
||||||
|
TEXT ·rawSyscallNoError(SB),NOSPLIT,$0-48
|
||||||
|
MOV a1+8(FP), A0
|
||||||
|
MOV a2+16(FP), A1
|
||||||
|
MOV a3+24(FP), A2
|
||||||
|
MOV trap+0(FP), A7 // syscall entry
|
||||||
|
ECALL
|
||||||
|
MOV A0, r1+32(FP)
|
||||||
|
MOV A1, r2+40(FP)
|
||||||
|
RET
|
||||||
|
|
@ -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 arm arm64 ppc64le mips64le mipsle wasm
|
// +build 386 amd64 arm arm64 ppc64le mips64le mipsle riscv64 wasm
|
||||||
|
|
||||||
package syscall
|
package syscall
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -258,6 +258,15 @@ linux_ppc64le)
|
||||||
mksysnum="./mksysnum_linux.pl $unistd_h"
|
mksysnum="./mksysnum_linux.pl $unistd_h"
|
||||||
mktypes="GOARCH=$GOARCH go tool cgo -godefs"
|
mktypes="GOARCH=$GOARCH go tool cgo -godefs"
|
||||||
;;
|
;;
|
||||||
|
linux_riscv64)
|
||||||
|
unistd_h=$(ls -1 /usr/include/asm/unistd.h /usr/include/asm-generic/unistd.h 2>/dev/null | head -1)
|
||||||
|
if [ "$unistd_h" = "" ]; then
|
||||||
|
echo >&2 cannot find unistd_64.h
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
mksysnum="./mksysnum_linux.pl $unistd_h"
|
||||||
|
mktypes="GOARCH=$GOARCH go tool cgo -godefs"
|
||||||
|
;;
|
||||||
linux_s390x)
|
linux_s390x)
|
||||||
GOOSARCH_in=syscall_linux_s390x.go
|
GOOSARCH_in=syscall_linux_s390x.go
|
||||||
unistd_h=/usr/include/asm/unistd.h
|
unistd_h=/usr/include/asm/unistd.h
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,203 @@
|
||||||
|
// Copyright 2019 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.
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
import "unsafe"
|
||||||
|
|
||||||
|
const (
|
||||||
|
_SYS_dup = SYS_DUP3
|
||||||
|
_SYS_setgroups = SYS_SETGROUPS
|
||||||
|
)
|
||||||
|
|
||||||
|
func EpollCreate(size int) (fd int, err error) {
|
||||||
|
if size <= 0 {
|
||||||
|
return -1, EINVAL
|
||||||
|
}
|
||||||
|
return EpollCreate1(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
|
||||||
|
//sys Fchown(fd int, uid int, gid int) (err error)
|
||||||
|
//sys Fstat(fd int, stat *Stat_t) (err error)
|
||||||
|
//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
|
||||||
|
//sys fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error)
|
||||||
|
//sys Fstatfs(fd int, buf *Statfs_t) (err error)
|
||||||
|
//sys Ftruncate(fd int, length int64) (err error)
|
||||||
|
//sysnb Getegid() (egid int)
|
||||||
|
//sysnb Geteuid() (euid int)
|
||||||
|
//sysnb Getgid() (gid int)
|
||||||
|
//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
|
||||||
|
//sysnb Getuid() (uid int)
|
||||||
|
//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 Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
|
||||||
|
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
|
||||||
|
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
|
||||||
|
//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 Setrlimit(resource int, rlim *Rlimit) (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)
|
||||||
|
|
||||||
|
func Stat(path string, stat *Stat_t) (err error) {
|
||||||
|
return Fstatat(_AT_FDCWD, path, stat, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Lchown(path string, uid int, gid int) (err error) {
|
||||||
|
return Fchownat(_AT_FDCWD, path, uid, gid, _AT_SYMLINK_NOFOLLOW)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Lstat(path string, stat *Stat_t) (err error) {
|
||||||
|
return Fstatat(_AT_FDCWD, path, stat, _AT_SYMLINK_NOFOLLOW)
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys Statfs(path string, buf *Statfs_t) (err error)
|
||||||
|
//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
|
||||||
|
//sys Truncate(path string, length int64) (err error)
|
||||||
|
//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)
|
||||||
|
//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
|
||||||
|
|
||||||
|
type sigset_t struct {
|
||||||
|
X__val [16]uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_t) (n int, err error) = SYS_PSELECT6
|
||||||
|
|
||||||
|
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
|
||||||
|
var ts *Timespec
|
||||||
|
if timeout != nil {
|
||||||
|
ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
|
||||||
|
}
|
||||||
|
return pselect(nfd, r, w, e, ts, nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
//sysnb Gettimeofday(tv *Timeval) (err error)
|
||||||
|
|
||||||
|
func setTimespec(sec, nsec int64) Timespec {
|
||||||
|
return Timespec{Sec: sec, Nsec: nsec}
|
||||||
|
}
|
||||||
|
|
||||||
|
func setTimeval(sec, usec int64) Timeval {
|
||||||
|
return Timeval{Sec: sec, Usec: usec}
|
||||||
|
}
|
||||||
|
|
||||||
|
func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {
|
||||||
|
if tv == nil {
|
||||||
|
return utimensat(dirfd, path, nil, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
ts := []Timespec{
|
||||||
|
NsecToTimespec(TimevalToNsec(tv[0])),
|
||||||
|
NsecToTimespec(TimevalToNsec(tv[1])),
|
||||||
|
}
|
||||||
|
return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Time(t *Time_t) (Time_t, error) {
|
||||||
|
var tv Timeval
|
||||||
|
err := Gettimeofday(&tv)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
if t != nil {
|
||||||
|
*t = Time_t(tv.Sec)
|
||||||
|
}
|
||||||
|
return Time_t(tv.Sec), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func Utime(path string, buf *Utimbuf) error {
|
||||||
|
tv := []Timeval{
|
||||||
|
{Sec: buf.Actime},
|
||||||
|
{Sec: buf.Modtime},
|
||||||
|
}
|
||||||
|
return Utimes(path, tv)
|
||||||
|
}
|
||||||
|
|
||||||
|
func utimes(path string, tv *[2]Timeval) (err error) {
|
||||||
|
if tv == nil {
|
||||||
|
return utimensat(_AT_FDCWD, path, nil, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
ts := []Timespec{
|
||||||
|
NsecToTimespec(TimevalToNsec(tv[0])),
|
||||||
|
NsecToTimespec(TimevalToNsec(tv[1])),
|
||||||
|
}
|
||||||
|
return utimensat(_AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
//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 (r *PtraceRegs) PC() uint64 { return r.Pc }
|
||||||
|
|
||||||
|
func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }
|
||||||
|
|
||||||
|
func (iov *Iovec) SetLen(length int) {
|
||||||
|
iov.Len = uint64(length)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (msghdr *Msghdr) SetControllen(length int) {
|
||||||
|
msghdr.Controllen = uint64(length)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cmsg *Cmsghdr) SetLen(length int) {
|
||||||
|
cmsg.Len = uint64(length)
|
||||||
|
}
|
||||||
|
|
||||||
|
func InotifyInit() (fd int, err error) {
|
||||||
|
return InotifyInit1(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
//sys ppoll(fds *pollFd, nfds int, timeout *Timespec, sigmask *sigset_t) (n int, err error)
|
||||||
|
|
||||||
|
func Pause() error {
|
||||||
|
_, err := ppoll(nil, 0, nil, nil)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func rawVforkSyscall(trap, a1 uintptr) (r1 uintptr, err Errno) {
|
||||||
|
panic("not implemented")
|
||||||
|
}
|
||||||
|
|
@ -76,8 +76,8 @@ struct sockaddr_any {
|
||||||
// copied from /usr/include/linux/un.h
|
// copied from /usr/include/linux/un.h
|
||||||
struct my_sockaddr_un {
|
struct my_sockaddr_un {
|
||||||
sa_family_t sun_family;
|
sa_family_t sun_family;
|
||||||
#if defined(__ARM_EABI__) || defined(__powerpc64__) || defined(__s390x__)
|
#if defined(__ARM_EABI__) || defined(__powerpc64__) || defined(__riscv__) || defined(__s390x__)
|
||||||
// on ARM, PPC and s390x char is by default unsigned
|
// on ARM, PPC, RISC-V, and s390x char is by default unsigned
|
||||||
signed char sun_path[108];
|
signed char sun_path[108];
|
||||||
#else
|
#else
|
||||||
char sun_path[108];
|
char sun_path[108];
|
||||||
|
|
@ -116,7 +116,7 @@ struct my_epoll_event {
|
||||||
// alignment requirements of EABI
|
// alignment requirements of EABI
|
||||||
int32_t padFd;
|
int32_t padFd;
|
||||||
#endif
|
#endif
|
||||||
#if defined(__powerpc64__) || defined(__s390x__)
|
#if defined(__powerpc64__) || defined(__s390x__) || (defined(__riscv_xlen) && __riscv_xlen == 64)
|
||||||
int32_t _padFd;
|
int32_t _padFd;
|
||||||
#endif
|
#endif
|
||||||
int32_t fd;
|
int32_t fd;
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,273 @@
|
||||||
|
// mksysnum_linux.pl /usr/include/asm/unistd.h
|
||||||
|
// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
SYS_IO_SETUP = 0
|
||||||
|
SYS_IO_DESTROY = 1
|
||||||
|
SYS_IO_SUBMIT = 2
|
||||||
|
SYS_IO_CANCEL = 3
|
||||||
|
SYS_IO_GETEVENTS = 4
|
||||||
|
SYS_SETXATTR = 5
|
||||||
|
SYS_LSETXATTR = 6
|
||||||
|
SYS_FSETXATTR = 7
|
||||||
|
SYS_GETXATTR = 8
|
||||||
|
SYS_LGETXATTR = 9
|
||||||
|
SYS_FGETXATTR = 10
|
||||||
|
SYS_LISTXATTR = 11
|
||||||
|
SYS_LLISTXATTR = 12
|
||||||
|
SYS_FLISTXATTR = 13
|
||||||
|
SYS_REMOVEXATTR = 14
|
||||||
|
SYS_LREMOVEXATTR = 15
|
||||||
|
SYS_FREMOVEXATTR = 16
|
||||||
|
SYS_GETCWD = 17
|
||||||
|
SYS_LOOKUP_DCOOKIE = 18
|
||||||
|
SYS_EVENTFD2 = 19
|
||||||
|
SYS_EPOLL_CREATE1 = 20
|
||||||
|
SYS_EPOLL_CTL = 21
|
||||||
|
SYS_EPOLL_PWAIT = 22
|
||||||
|
SYS_DUP = 23
|
||||||
|
SYS_DUP3 = 24
|
||||||
|
SYS_FCNTL = 25
|
||||||
|
SYS_INOTIFY_INIT1 = 26
|
||||||
|
SYS_INOTIFY_ADD_WATCH = 27
|
||||||
|
SYS_INOTIFY_RM_WATCH = 28
|
||||||
|
SYS_IOCTL = 29
|
||||||
|
SYS_IOPRIO_SET = 30
|
||||||
|
SYS_IOPRIO_GET = 31
|
||||||
|
SYS_FLOCK = 32
|
||||||
|
SYS_MKNODAT = 33
|
||||||
|
SYS_MKDIRAT = 34
|
||||||
|
SYS_UNLINKAT = 35
|
||||||
|
SYS_SYMLINKAT = 36
|
||||||
|
SYS_LINKAT = 37
|
||||||
|
SYS_UMOUNT2 = 39
|
||||||
|
SYS_MOUNT = 40
|
||||||
|
SYS_PIVOT_ROOT = 41
|
||||||
|
SYS_NFSSERVCTL = 42
|
||||||
|
SYS_STATFS = 43
|
||||||
|
SYS_FSTATFS = 44
|
||||||
|
SYS_TRUNCATE = 45
|
||||||
|
SYS_FTRUNCATE = 46
|
||||||
|
SYS_FALLOCATE = 47
|
||||||
|
SYS_FACCESSAT = 48
|
||||||
|
SYS_CHDIR = 49
|
||||||
|
SYS_FCHDIR = 50
|
||||||
|
SYS_CHROOT = 51
|
||||||
|
SYS_FCHMOD = 52
|
||||||
|
SYS_FCHMODAT = 53
|
||||||
|
SYS_FCHOWNAT = 54
|
||||||
|
SYS_FCHOWN = 55
|
||||||
|
SYS_OPENAT = 56
|
||||||
|
SYS_CLOSE = 57
|
||||||
|
SYS_VHANGUP = 58
|
||||||
|
SYS_PIPE2 = 59
|
||||||
|
SYS_QUOTACTL = 60
|
||||||
|
SYS_GETDENTS64 = 61
|
||||||
|
SYS_LSEEK = 62
|
||||||
|
SYS_READ = 63
|
||||||
|
SYS_WRITE = 64
|
||||||
|
SYS_READV = 65
|
||||||
|
SYS_WRITEV = 66
|
||||||
|
SYS_PREAD64 = 67
|
||||||
|
SYS_PWRITE64 = 68
|
||||||
|
SYS_PREADV = 69
|
||||||
|
SYS_PWRITEV = 70
|
||||||
|
SYS_SENDFILE = 71
|
||||||
|
SYS_PSELECT6 = 72
|
||||||
|
SYS_PPOLL = 73
|
||||||
|
SYS_SIGNALFD4 = 74
|
||||||
|
SYS_VMSPLICE = 75
|
||||||
|
SYS_SPLICE = 76
|
||||||
|
SYS_TEE = 77
|
||||||
|
SYS_READLINKAT = 78
|
||||||
|
SYS_FSTATAT = 79
|
||||||
|
SYS_FSTAT = 80
|
||||||
|
SYS_SYNC = 81
|
||||||
|
SYS_FSYNC = 82
|
||||||
|
SYS_FDATASYNC = 83
|
||||||
|
SYS_SYNC_FILE_RANGE = 84
|
||||||
|
SYS_TIMERFD_CREATE = 85
|
||||||
|
SYS_TIMERFD_SETTIME = 86
|
||||||
|
SYS_TIMERFD_GETTIME = 87
|
||||||
|
SYS_UTIMENSAT = 88
|
||||||
|
SYS_ACCT = 89
|
||||||
|
SYS_CAPGET = 90
|
||||||
|
SYS_CAPSET = 91
|
||||||
|
SYS_PERSONALITY = 92
|
||||||
|
SYS_EXIT = 93
|
||||||
|
SYS_EXIT_GROUP = 94
|
||||||
|
SYS_WAITID = 95
|
||||||
|
SYS_SET_TID_ADDRESS = 96
|
||||||
|
SYS_UNSHARE = 97
|
||||||
|
SYS_FUTEX = 98
|
||||||
|
SYS_SET_ROBUST_LIST = 99
|
||||||
|
SYS_GET_ROBUST_LIST = 100
|
||||||
|
SYS_NANOSLEEP = 101
|
||||||
|
SYS_GETITIMER = 102
|
||||||
|
SYS_SETITIMER = 103
|
||||||
|
SYS_KEXEC_LOAD = 104
|
||||||
|
SYS_INIT_MODULE = 105
|
||||||
|
SYS_DELETE_MODULE = 106
|
||||||
|
SYS_TIMER_CREATE = 107
|
||||||
|
SYS_TIMER_GETTIME = 108
|
||||||
|
SYS_TIMER_GETOVERRUN = 109
|
||||||
|
SYS_TIMER_SETTIME = 110
|
||||||
|
SYS_TIMER_DELETE = 111
|
||||||
|
SYS_CLOCK_SETTIME = 112
|
||||||
|
SYS_CLOCK_GETTIME = 113
|
||||||
|
SYS_CLOCK_GETRES = 114
|
||||||
|
SYS_CLOCK_NANOSLEEP = 115
|
||||||
|
SYS_SYSLOG = 116
|
||||||
|
SYS_PTRACE = 117
|
||||||
|
SYS_SCHED_SETPARAM = 118
|
||||||
|
SYS_SCHED_SETSCHEDULER = 119
|
||||||
|
SYS_SCHED_GETSCHEDULER = 120
|
||||||
|
SYS_SCHED_GETPARAM = 121
|
||||||
|
SYS_SCHED_SETAFFINITY = 122
|
||||||
|
SYS_SCHED_GETAFFINITY = 123
|
||||||
|
SYS_SCHED_YIELD = 124
|
||||||
|
SYS_SCHED_GET_PRIORITY_MAX = 125
|
||||||
|
SYS_SCHED_GET_PRIORITY_MIN = 126
|
||||||
|
SYS_SCHED_RR_GET_INTERVAL = 127
|
||||||
|
SYS_RESTART_SYSCALL = 128
|
||||||
|
SYS_KILL = 129
|
||||||
|
SYS_TKILL = 130
|
||||||
|
SYS_TGKILL = 131
|
||||||
|
SYS_SIGALTSTACK = 132
|
||||||
|
SYS_RT_SIGSUSPEND = 133
|
||||||
|
SYS_RT_SIGACTION = 134
|
||||||
|
SYS_RT_SIGPROCMASK = 135
|
||||||
|
SYS_RT_SIGPENDING = 136
|
||||||
|
SYS_RT_SIGTIMEDWAIT = 137
|
||||||
|
SYS_RT_SIGQUEUEINFO = 138
|
||||||
|
SYS_RT_SIGRETURN = 139
|
||||||
|
SYS_SETPRIORITY = 140
|
||||||
|
SYS_GETPRIORITY = 141
|
||||||
|
SYS_REBOOT = 142
|
||||||
|
SYS_SETREGID = 143
|
||||||
|
SYS_SETGID = 144
|
||||||
|
SYS_SETREUID = 145
|
||||||
|
SYS_SETUID = 146
|
||||||
|
SYS_SETRESUID = 147
|
||||||
|
SYS_GETRESUID = 148
|
||||||
|
SYS_SETRESGID = 149
|
||||||
|
SYS_GETRESGID = 150
|
||||||
|
SYS_SETFSUID = 151
|
||||||
|
SYS_SETFSGID = 152
|
||||||
|
SYS_TIMES = 153
|
||||||
|
SYS_SETPGID = 154
|
||||||
|
SYS_GETPGID = 155
|
||||||
|
SYS_GETSID = 156
|
||||||
|
SYS_SETSID = 157
|
||||||
|
SYS_GETGROUPS = 158
|
||||||
|
SYS_SETGROUPS = 159
|
||||||
|
SYS_UNAME = 160
|
||||||
|
SYS_SETHOSTNAME = 161
|
||||||
|
SYS_SETDOMAINNAME = 162
|
||||||
|
SYS_GETRLIMIT = 163
|
||||||
|
SYS_SETRLIMIT = 164
|
||||||
|
SYS_GETRUSAGE = 165
|
||||||
|
SYS_UMASK = 166
|
||||||
|
SYS_PRCTL = 167
|
||||||
|
SYS_GETCPU = 168
|
||||||
|
SYS_GETTIMEOFDAY = 169
|
||||||
|
SYS_SETTIMEOFDAY = 170
|
||||||
|
SYS_ADJTIMEX = 171
|
||||||
|
SYS_GETPID = 172
|
||||||
|
SYS_GETPPID = 173
|
||||||
|
SYS_GETUID = 174
|
||||||
|
SYS_GETEUID = 175
|
||||||
|
SYS_GETGID = 176
|
||||||
|
SYS_GETEGID = 177
|
||||||
|
SYS_GETTID = 178
|
||||||
|
SYS_SYSINFO = 179
|
||||||
|
SYS_MQ_OPEN = 180
|
||||||
|
SYS_MQ_UNLINK = 181
|
||||||
|
SYS_MQ_TIMEDSEND = 182
|
||||||
|
SYS_MQ_TIMEDRECEIVE = 183
|
||||||
|
SYS_MQ_NOTIFY = 184
|
||||||
|
SYS_MQ_GETSETATTR = 185
|
||||||
|
SYS_MSGGET = 186
|
||||||
|
SYS_MSGCTL = 187
|
||||||
|
SYS_MSGRCV = 188
|
||||||
|
SYS_MSGSND = 189
|
||||||
|
SYS_SEMGET = 190
|
||||||
|
SYS_SEMCTL = 191
|
||||||
|
SYS_SEMTIMEDOP = 192
|
||||||
|
SYS_SEMOP = 193
|
||||||
|
SYS_SHMGET = 194
|
||||||
|
SYS_SHMCTL = 195
|
||||||
|
SYS_SHMAT = 196
|
||||||
|
SYS_SHMDT = 197
|
||||||
|
SYS_SOCKET = 198
|
||||||
|
SYS_SOCKETPAIR = 199
|
||||||
|
SYS_BIND = 200
|
||||||
|
SYS_LISTEN = 201
|
||||||
|
SYS_ACCEPT = 202
|
||||||
|
SYS_CONNECT = 203
|
||||||
|
SYS_GETSOCKNAME = 204
|
||||||
|
SYS_GETPEERNAME = 205
|
||||||
|
SYS_SENDTO = 206
|
||||||
|
SYS_RECVFROM = 207
|
||||||
|
SYS_SETSOCKOPT = 208
|
||||||
|
SYS_GETSOCKOPT = 209
|
||||||
|
SYS_SHUTDOWN = 210
|
||||||
|
SYS_SENDMSG = 211
|
||||||
|
SYS_RECVMSG = 212
|
||||||
|
SYS_READAHEAD = 213
|
||||||
|
SYS_BRK = 214
|
||||||
|
SYS_MUNMAP = 215
|
||||||
|
SYS_MREMAP = 216
|
||||||
|
SYS_ADD_KEY = 217
|
||||||
|
SYS_REQUEST_KEY = 218
|
||||||
|
SYS_KEYCTL = 219
|
||||||
|
SYS_CLONE = 220
|
||||||
|
SYS_EXECVE = 221
|
||||||
|
SYS_MMAP = 222
|
||||||
|
SYS_FADVISE64 = 223
|
||||||
|
SYS_SWAPON = 224
|
||||||
|
SYS_SWAPOFF = 225
|
||||||
|
SYS_MPROTECT = 226
|
||||||
|
SYS_MSYNC = 227
|
||||||
|
SYS_MLOCK = 228
|
||||||
|
SYS_MUNLOCK = 229
|
||||||
|
SYS_MLOCKALL = 230
|
||||||
|
SYS_MUNLOCKALL = 231
|
||||||
|
SYS_MINCORE = 232
|
||||||
|
SYS_MADVISE = 233
|
||||||
|
SYS_REMAP_FILE_PAGES = 234
|
||||||
|
SYS_MBIND = 235
|
||||||
|
SYS_GET_MEMPOLICY = 236
|
||||||
|
SYS_SET_MEMPOLICY = 237
|
||||||
|
SYS_MIGRATE_PAGES = 238
|
||||||
|
SYS_MOVE_PAGES = 239
|
||||||
|
SYS_RT_TGSIGQUEUEINFO = 240
|
||||||
|
SYS_PERF_EVENT_OPEN = 241
|
||||||
|
SYS_ACCEPT4 = 242
|
||||||
|
SYS_RECVMMSG = 243
|
||||||
|
SYS_ARCH_SPECIFIC_SYSCALL = 244
|
||||||
|
SYS_WAIT4 = 260
|
||||||
|
SYS_PRLIMIT64 = 261
|
||||||
|
SYS_FANOTIFY_INIT = 262
|
||||||
|
SYS_FANOTIFY_MARK = 263
|
||||||
|
SYS_NAME_TO_HANDLE_AT = 264
|
||||||
|
SYS_OPEN_BY_HANDLE_AT = 265
|
||||||
|
SYS_CLOCK_ADJTIME = 266
|
||||||
|
SYS_SYNCFS = 267
|
||||||
|
SYS_SETNS = 268
|
||||||
|
SYS_SENDMMSG = 269
|
||||||
|
SYS_PROCESS_VM_READV = 270
|
||||||
|
SYS_PROCESS_VM_WRITEV = 271
|
||||||
|
SYS_KCMP = 272
|
||||||
|
SYS_FINIT_MODULE = 273
|
||||||
|
SYS_SCHED_SETATTR = 274
|
||||||
|
SYS_SCHED_GETATTR = 275
|
||||||
|
SYS_RENAMEAT2 = 276
|
||||||
|
SYS_SECCOMP = 277
|
||||||
|
SYS_GETRANDOM = 278
|
||||||
|
SYS_MEMFD_CREATE = 279
|
||||||
|
SYS_BPF = 280
|
||||||
|
SYS_EXECVEAT = 281
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,631 @@
|
||||||
|
// Created by cgo -godefs - DO NOT EDIT
|
||||||
|
// cgo -godefs types_linux.go
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x8
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x8
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
_C_short int16
|
||||||
|
_C_int int32
|
||||||
|
_C_long int64
|
||||||
|
_C_long_long int64
|
||||||
|
)
|
||||||
|
|
||||||
|
type Timespec struct {
|
||||||
|
Sec int64
|
||||||
|
Nsec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int64
|
||||||
|
Usec int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timex struct {
|
||||||
|
Modes uint32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Offset int64
|
||||||
|
Freq int64
|
||||||
|
Maxerror int64
|
||||||
|
Esterror int64
|
||||||
|
Status int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
Constant int64
|
||||||
|
Precision int64
|
||||||
|
Tolerance int64
|
||||||
|
Time Timeval
|
||||||
|
Tick int64
|
||||||
|
Ppsfreq int64
|
||||||
|
Jitter int64
|
||||||
|
Shift int32
|
||||||
|
Pad_cgo_2 [4]byte
|
||||||
|
Stabil int64
|
||||||
|
Jitcnt int64
|
||||||
|
Calcnt int64
|
||||||
|
Errcnt int64
|
||||||
|
Stbcnt int64
|
||||||
|
Tai int32
|
||||||
|
Pad_cgo_3 [44]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Time_t int64
|
||||||
|
|
||||||
|
type Tms struct {
|
||||||
|
Utime int64
|
||||||
|
Stime int64
|
||||||
|
Cutime int64
|
||||||
|
Cstime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utimbuf struct {
|
||||||
|
Actime int64
|
||||||
|
Modtime int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rusage struct {
|
||||||
|
Utime Timeval
|
||||||
|
Stime Timeval
|
||||||
|
Maxrss int64
|
||||||
|
Ixrss int64
|
||||||
|
Idrss int64
|
||||||
|
Isrss int64
|
||||||
|
Minflt int64
|
||||||
|
Majflt int64
|
||||||
|
Nswap int64
|
||||||
|
Inblock int64
|
||||||
|
Oublock int64
|
||||||
|
Msgsnd int64
|
||||||
|
Msgrcv int64
|
||||||
|
Nsignals int64
|
||||||
|
Nvcsw int64
|
||||||
|
Nivcsw int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rlimit struct {
|
||||||
|
Cur uint64
|
||||||
|
Max uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Gid_t uint32
|
||||||
|
|
||||||
|
type Stat_t struct {
|
||||||
|
Dev uint64
|
||||||
|
Ino uint64
|
||||||
|
Mode uint32
|
||||||
|
Nlink uint32
|
||||||
|
Uid uint32
|
||||||
|
Gid uint32
|
||||||
|
Rdev uint64
|
||||||
|
X__pad1 uint64
|
||||||
|
Size int64
|
||||||
|
Blksize int32
|
||||||
|
X__pad2 int32
|
||||||
|
Blocks int64
|
||||||
|
Atim Timespec
|
||||||
|
Mtim Timespec
|
||||||
|
Ctim Timespec
|
||||||
|
X__glibc_reserved [2]int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Statfs_t struct {
|
||||||
|
Type int64
|
||||||
|
Bsize int64
|
||||||
|
Blocks uint64
|
||||||
|
Bfree uint64
|
||||||
|
Bavail uint64
|
||||||
|
Files uint64
|
||||||
|
Ffree uint64
|
||||||
|
Fsid Fsid
|
||||||
|
Namelen int64
|
||||||
|
Frsize int64
|
||||||
|
Flags int64
|
||||||
|
Spare [4]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Dirent struct {
|
||||||
|
Ino uint64
|
||||||
|
Off int64
|
||||||
|
Reclen uint16
|
||||||
|
Type uint8
|
||||||
|
Name [256]uint8
|
||||||
|
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]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type RawSockaddrAny struct {
|
||||||
|
Addr RawSockaddr
|
||||||
|
Pad [96]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type _Socklen uint32
|
||||||
|
|
||||||
|
type Linger struct {
|
||||||
|
Onoff int32
|
||||||
|
Linger int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Iovec struct {
|
||||||
|
Base *byte
|
||||||
|
Len uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Iov *Iovec
|
||||||
|
Iovlen uint64
|
||||||
|
Control *byte
|
||||||
|
Controllen uint64
|
||||||
|
Flags int32
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Cmsghdr struct {
|
||||||
|
Len uint64
|
||||||
|
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 = 0x38
|
||||||
|
SizeofCmsghdr = 0x10
|
||||||
|
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 = 0x26
|
||||||
|
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 = 0x10
|
||||||
|
)
|
||||||
|
|
||||||
|
type SockFilter struct {
|
||||||
|
Code uint16
|
||||||
|
Jt uint8
|
||||||
|
Jf uint8
|
||||||
|
K uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type SockFprog struct {
|
||||||
|
Len uint16
|
||||||
|
Pad_cgo_0 [6]byte
|
||||||
|
Filter *SockFilter
|
||||||
|
}
|
||||||
|
|
||||||
|
type InotifyEvent struct {
|
||||||
|
Wd int32
|
||||||
|
Mask uint32
|
||||||
|
Cookie uint32
|
||||||
|
Len uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const SizeofInotifyEvent = 0x10
|
||||||
|
|
||||||
|
type PtraceRegs struct {
|
||||||
|
Pc uint64
|
||||||
|
Ra uint64
|
||||||
|
Sp uint64
|
||||||
|
Gp uint64
|
||||||
|
Tp uint64
|
||||||
|
T0 uint64
|
||||||
|
T1 uint64
|
||||||
|
T2 uint64
|
||||||
|
S0 uint64
|
||||||
|
S1 uint64
|
||||||
|
A0 uint64
|
||||||
|
A1 uint64
|
||||||
|
A2 uint64
|
||||||
|
A3 uint64
|
||||||
|
A4 uint64
|
||||||
|
A5 uint64
|
||||||
|
A6 uint64
|
||||||
|
A7 uint64
|
||||||
|
S2 uint64
|
||||||
|
S3 uint64
|
||||||
|
S4 uint64
|
||||||
|
S5 uint64
|
||||||
|
S6 uint64
|
||||||
|
S7 uint64
|
||||||
|
S8 uint64
|
||||||
|
S9 uint64
|
||||||
|
S10 uint64
|
||||||
|
S11 uint64
|
||||||
|
T3 uint64
|
||||||
|
T4 uint64
|
||||||
|
T5 uint64
|
||||||
|
T6 uint64
|
||||||
|
}
|
||||||
|
|
||||||
|
type ptracePsw struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type ptraceFpregs struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type ptracePer struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type FdSet struct {
|
||||||
|
Bits [16]int64
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sysinfo_t struct {
|
||||||
|
Uptime int64
|
||||||
|
Loads [3]uint64
|
||||||
|
Totalram uint64
|
||||||
|
Freeram uint64
|
||||||
|
Sharedram uint64
|
||||||
|
Bufferram uint64
|
||||||
|
Totalswap uint64
|
||||||
|
Freeswap uint64
|
||||||
|
Procs uint16
|
||||||
|
Pad uint16
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Totalhigh uint64
|
||||||
|
Freehigh uint64
|
||||||
|
Unit uint32
|
||||||
|
X_f [0]uint8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Utsname struct {
|
||||||
|
Sysname [65]uint8
|
||||||
|
Nodename [65]uint8
|
||||||
|
Release [65]uint8
|
||||||
|
Version [65]uint8
|
||||||
|
Machine [65]uint8
|
||||||
|
Domainname [65]uint8
|
||||||
|
}
|
||||||
|
|
||||||
|
type Ustat_t struct {
|
||||||
|
Tfree int32
|
||||||
|
Pad_cgo_0 [4]byte
|
||||||
|
Tinode uint64
|
||||||
|
Fname [6]uint8
|
||||||
|
Fpack [6]uint8
|
||||||
|
Pad_cgo_1 [4]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type EpollEvent struct {
|
||||||
|
Events uint32
|
||||||
|
_ int32
|
||||||
|
Fd int32
|
||||||
|
Pad int32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
_AT_FDCWD = -0x64
|
||||||
|
_AT_REMOVEDIR = 0x200
|
||||||
|
_AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
_AT_EACCESS = 0x200
|
||||||
|
)
|
||||||
|
|
||||||
|
type Termios struct {
|
||||||
|
Iflag uint32
|
||||||
|
Oflag uint32
|
||||||
|
Cflag uint32
|
||||||
|
Lflag uint32
|
||||||
|
Line uint8
|
||||||
|
Cc [32]uint8
|
||||||
|
Pad_cgo_0 [3]byte
|
||||||
|
Ispeed uint32
|
||||||
|
Ospeed uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
IUCLC = 0x200
|
||||||
|
OLCUC = 0x2
|
||||||
|
TCGETS = 0x5401
|
||||||
|
TCSETS = 0x5402
|
||||||
|
XCASE = 0x4
|
||||||
|
)
|
||||||
Loading…
Reference in New Issue