vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
changeset 251 1c52a0eeb952
parent 242 2a9ec03fe5a1
child 256 6d9efbef00a9
equal deleted inserted replaced
250:c040f992052f 251:1c52a0eeb952
    18 //sysnb	Getegid() (egid int)
    18 //sysnb	Getegid() (egid int)
    19 //sysnb	Geteuid() (euid int)
    19 //sysnb	Geteuid() (euid int)
    20 //sysnb	Getgid() (gid int)
    20 //sysnb	Getgid() (gid int)
    21 //sysnb	Getrlimit(resource int, rlim *Rlimit) (err error)
    21 //sysnb	Getrlimit(resource int, rlim *Rlimit) (err error)
    22 //sysnb	Getuid() (uid int)
    22 //sysnb	Getuid() (uid int)
    23 //sysnb	InotifyInit() (fd int, err error)
    23 //sysnb	inotifyInit() (fd int, err error)
       
    24 
       
    25 func InotifyInit() (fd int, err error) {
       
    26 	// First try inotify_init1, because Android's seccomp policy blocks the latter.
       
    27 	fd, err = InotifyInit1(0)
       
    28 	if err == ENOSYS {
       
    29 		fd, err = inotifyInit()
       
    30 	}
       
    31 	return
       
    32 }
       
    33 
    24 //sys	Ioperm(from int, num int, on int) (err error)
    34 //sys	Ioperm(from int, num int, on int) (err error)
    25 //sys	Iopl(level int) (err error)
    35 //sys	Iopl(level int) (err error)
    26 //sys	Lchown(path string, uid int, gid int) (err error)
    36 //sys	Lchown(path string, uid int, gid int) (err error)
    27 //sys	Listen(s int, n int) (err error)
    37 //sys	Listen(s int, n int) (err error)
    28 //sys	Lstat(path string, stat *Stat_t) (err error)
    38 
       
    39 func Lstat(path string, stat *Stat_t) (err error) {
       
    40 	return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)
       
    41 }
       
    42 
    29 //sys	Pause() (err error)
    43 //sys	Pause() (err error)
    30 //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
    44 //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
    31 //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
    45 //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
       
    46 //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
    32 //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
    47 //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
    33 
    48 
    34 func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
    49 func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
    35 	var ts *Timespec
    50 	var ts *Timespec
    36 	if timeout != nil {
    51 	if timeout != nil {
    38 	}
    53 	}
    39 	return Pselect(nfd, r, w, e, ts, nil)
    54 	return Pselect(nfd, r, w, e, ts, nil)
    40 }
    55 }
    41 
    56 
    42 //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
    57 //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
    43 //sys	Setfsgid(gid int) (err error)
    58 //sys	setfsgid(gid int) (prev int, err error)
    44 //sys	Setfsuid(uid int) (err error)
    59 //sys	setfsuid(uid int) (prev int, err error)
    45 //sysnb	Setregid(rgid int, egid int) (err error)
    60 //sysnb	Setregid(rgid int, egid int) (err error)
    46 //sysnb	Setresgid(rgid int, egid int, sgid int) (err error)
    61 //sysnb	Setresgid(rgid int, egid int, sgid int) (err error)
    47 //sysnb	Setresuid(ruid int, euid int, suid int) (err error)
    62 //sysnb	Setresuid(ruid int, euid int, suid int) (err error)
    48 //sysnb	Setrlimit(resource int, rlim *Rlimit) (err error)
    63 //sysnb	Setrlimit(resource int, rlim *Rlimit) (err error)
    49 //sysnb	Setreuid(ruid int, euid int) (err error)
    64 //sysnb	Setreuid(ruid int, euid int) (err error)
   146 
   161 
   147 func (msghdr *Msghdr) SetControllen(length int) {
   162 func (msghdr *Msghdr) SetControllen(length int) {
   148 	msghdr.Controllen = uint64(length)
   163 	msghdr.Controllen = uint64(length)
   149 }
   164 }
   150 
   165 
       
   166 func (msghdr *Msghdr) SetIovlen(length int) {
       
   167 	msghdr.Iovlen = uint64(length)
       
   168 }
       
   169 
   151 func (cmsg *Cmsghdr) SetLen(length int) {
   170 func (cmsg *Cmsghdr) SetLen(length int) {
   152 	cmsg.Len = uint64(length)
   171 	cmsg.Len = uint64(length)
   153 }
   172 }
   154 
   173 
   155 //sys	poll(fds *PollFd, nfds int, timeout int) (n int, err error)
   174 //sys	poll(fds *PollFd, nfds int, timeout int) (n int, err error)
   158 	if len(fds) == 0 {
   177 	if len(fds) == 0 {
   159 		return poll(nil, 0, timeout)
   178 		return poll(nil, 0, timeout)
   160 	}
   179 	}
   161 	return poll(&fds[0], len(fds), timeout)
   180 	return poll(&fds[0], len(fds), timeout)
   162 }
   181 }
       
   182 
       
   183 //sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
       
   184 
       
   185 func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
       
   186 	cmdlineLen := len(cmdline)
       
   187 	if cmdlineLen > 0 {
       
   188 		// Account for the additional NULL byte added by
       
   189 		// BytePtrFromString in kexecFileLoad. The kexec_file_load
       
   190 		// syscall expects a NULL-terminated string.
       
   191 		cmdlineLen++
       
   192 	}
       
   193 	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
       
   194 }