vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
changeset 260 445e01aede7e
parent 256 6d9efbef00a9
child 262 8d3354485fc3
equal deleted inserted replaced
259:db4911b0c721 260:445e01aede7e
     5 //go:build amd64 && linux
     5 //go:build amd64 && linux
     6 // +build amd64,linux
     6 // +build amd64,linux
     7 
     7 
     8 package unix
     8 package unix
     9 
     9 
    10 //sys	dup2(oldfd int, newfd int) (err error)
       
    11 //sysnb	EpollCreate(size int) (fd int, err error)
       
    12 //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
    10 //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
    13 //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
    11 //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
    14 //sys	Fchown(fd int, uid int, gid int) (err error)
    12 //sys	Fchown(fd int, uid int, gid int) (err error)
    15 //sys	Fstat(fd int, stat *Stat_t) (err error)
    13 //sys	Fstat(fd int, stat *Stat_t) (err error)
    16 //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT
    14 //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT
    19 //sysnb	Getegid() (egid int)
    17 //sysnb	Getegid() (egid int)
    20 //sysnb	Geteuid() (euid int)
    18 //sysnb	Geteuid() (euid int)
    21 //sysnb	Getgid() (gid int)
    19 //sysnb	Getgid() (gid int)
    22 //sysnb	Getrlimit(resource int, rlim *Rlimit) (err error)
    20 //sysnb	Getrlimit(resource int, rlim *Rlimit) (err error)
    23 //sysnb	Getuid() (uid int)
    21 //sysnb	Getuid() (uid int)
    24 //sysnb	inotifyInit() (fd int, err error)
       
    25 
       
    26 func InotifyInit() (fd int, err error) {
       
    27 	// First try inotify_init1, because Android's seccomp policy blocks the latter.
       
    28 	fd, err = InotifyInit1(0)
       
    29 	if err == ENOSYS {
       
    30 		fd, err = inotifyInit()
       
    31 	}
       
    32 	return
       
    33 }
       
    34 
       
    35 //sys	Ioperm(from int, num int, on int) (err error)
    22 //sys	Ioperm(from int, num int, on int) (err error)
    36 //sys	Iopl(level int) (err error)
    23 //sys	Iopl(level int) (err error)
    37 //sys	Lchown(path string, uid int, gid int) (err error)
    24 //sys	Lchown(path string, uid int, gid int) (err error)
    38 //sys	Listen(s int, n int) (err error)
    25 //sys	Listen(s int, n int) (err error)
    39 
    26 
    40 func Lstat(path string, stat *Stat_t) (err error) {
    27 func Lstat(path string, stat *Stat_t) (err error) {
    41 	return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)
    28 	return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)
    42 }
    29 }
    43 
    30 
       
    31 //sys	MemfdSecret(flags int) (fd int, err error)
    44 //sys	Pause() (err error)
    32 //sys	Pause() (err error)
    45 //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
    33 //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
    46 //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
    34 //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
    47 //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
    35 //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
    48 //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
    36 //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
    49 
    37 
    50 func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
    38 func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
    51 	var ts *Timespec
    39 	var ts *Timespec
    73 
    61 
    74 //sys	Statfs(path string, buf *Statfs_t) (err error)
    62 //sys	Statfs(path string, buf *Statfs_t) (err error)
    75 //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error)
    63 //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error)
    76 //sys	Truncate(path string, length int64) (err error)
    64 //sys	Truncate(path string, length int64) (err error)
    77 //sys	Ustat(dev int, ubuf *Ustat_t) (err error)
    65 //sys	Ustat(dev int, ubuf *Ustat_t) (err error)
    78 //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
       
    79 //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
    66 //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
    80 //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
    67 //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
    81 //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
    68 //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
    82 //sysnb	getgroups(n int, list *_Gid_t) (nn int, err error)
    69 //sysnb	getgroups(n int, list *_Gid_t) (nn int, err error)
    83 //sysnb	setgroups(n int, list *_Gid_t) (err error)
    70 //sysnb	setgroups(n int, list *_Gid_t) (err error)
   124 
   111 
   125 func setTimeval(sec, usec int64) Timeval {
   112 func setTimeval(sec, usec int64) Timeval {
   126 	return Timeval{Sec: sec, Usec: usec}
   113 	return Timeval{Sec: sec, Usec: usec}
   127 }
   114 }
   128 
   115 
   129 //sysnb	pipe(p *[2]_C_int) (err error)
       
   130 
       
   131 func Pipe(p []int) (err error) {
       
   132 	if len(p) != 2 {
       
   133 		return EINVAL
       
   134 	}
       
   135 	var pp [2]_C_int
       
   136 	err = pipe(&pp)
       
   137 	p[0] = int(pp[0])
       
   138 	p[1] = int(pp[1])
       
   139 	return
       
   140 }
       
   141 
       
   142 //sysnb	pipe2(p *[2]_C_int, flags int) (err error)
       
   143 
       
   144 func Pipe2(p []int, flags int) (err error) {
       
   145 	if len(p) != 2 {
       
   146 		return EINVAL
       
   147 	}
       
   148 	var pp [2]_C_int
       
   149 	err = pipe2(&pp, flags)
       
   150 	p[0] = int(pp[0])
       
   151 	p[1] = int(pp[1])
       
   152 	return
       
   153 }
       
   154 
       
   155 func (r *PtraceRegs) PC() uint64 { return r.Rip }
   116 func (r *PtraceRegs) PC() uint64 { return r.Rip }
   156 
   117 
   157 func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc }
   118 func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc }
   158 
   119 
   159 func (iov *Iovec) SetLen(length int) {
   120 func (iov *Iovec) SetLen(length int) {
   174 
   135 
   175 func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {
   136 func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {
   176 	rsa.Service_name_len = uint64(length)
   137 	rsa.Service_name_len = uint64(length)
   177 }
   138 }
   178 
   139 
   179 //sys	poll(fds *PollFd, nfds int, timeout int) (n int, err error)
       
   180 
       
   181 func Poll(fds []PollFd, timeout int) (n int, err error) {
       
   182 	if len(fds) == 0 {
       
   183 		return poll(nil, 0, timeout)
       
   184 	}
       
   185 	return poll(&fds[0], len(fds), timeout)
       
   186 }
       
   187 
       
   188 //sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
   140 //sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
   189 
   141 
   190 func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
   142 func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
   191 	cmdlineLen := len(cmdline)
   143 	cmdlineLen := len(cmdline)
   192 	if cmdlineLen > 0 {
   144 	if cmdlineLen > 0 {