vendor/golang.org/x/sys/unix/syscall_linux_arm.go
changeset 251 1c52a0eeb952
parent 242 2a9ec03fe5a1
child 256 6d9efbef00a9
equal deleted inserted replaced
250:c040f992052f 251:1c52a0eeb952
    17 
    17 
    18 func setTimeval(sec, usec int64) Timeval {
    18 func setTimeval(sec, usec int64) Timeval {
    19 	return Timeval{Sec: int32(sec), Usec: int32(usec)}
    19 	return Timeval{Sec: int32(sec), Usec: int32(usec)}
    20 }
    20 }
    21 
    21 
       
    22 //sysnb	pipe(p *[2]_C_int) (err error)
       
    23 
    22 func Pipe(p []int) (err error) {
    24 func Pipe(p []int) (err error) {
    23 	if len(p) != 2 {
    25 	if len(p) != 2 {
    24 		return EINVAL
    26 		return EINVAL
    25 	}
    27 	}
    26 	var pp [2]_C_int
    28 	var pp [2]_C_int
       
    29 	// Try pipe2 first for Android O, then try pipe for kernel 2.6.23.
    27 	err = pipe2(&pp, 0)
    30 	err = pipe2(&pp, 0)
       
    31 	if err == ENOSYS {
       
    32 		err = pipe(&pp)
       
    33 	}
    28 	p[0] = int(pp[0])
    34 	p[0] = int(pp[0])
    29 	p[1] = int(pp[1])
    35 	p[1] = int(pp[1])
    30 	return
    36 	return
    31 }
    37 }
    32 
    38 
    87 //sysnb	InotifyInit() (fd int, err error)
    93 //sysnb	InotifyInit() (fd int, err error)
    88 //sys	Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
    94 //sys	Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
    89 //sys	Listen(s int, n int) (err error)
    95 //sys	Listen(s int, n int) (err error)
    90 //sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
    96 //sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
    91 //sys	Pause() (err error)
    97 //sys	Pause() (err error)
       
    98 //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
    92 //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
    99 //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
    93 //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
   100 //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
    94 //sys	Setfsgid(gid int) (err error) = SYS_SETFSGID32
   101 //sys	setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32
    95 //sys	Setfsuid(uid int) (err error) = SYS_SETFSUID32
   102 //sys	setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32
    96 //sysnb	Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
   103 //sysnb	Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
    97 //sysnb	Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32
   104 //sysnb	Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32
    98 //sysnb	Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32
   105 //sysnb	Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32
    99 //sysnb	Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32
   106 //sysnb	Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32
   100 //sys	Shutdown(fd int, how int) (err error)
   107 //sys	Shutdown(fd int, how int) (err error)
   243 
   250 
   244 func (msghdr *Msghdr) SetControllen(length int) {
   251 func (msghdr *Msghdr) SetControllen(length int) {
   245 	msghdr.Controllen = uint32(length)
   252 	msghdr.Controllen = uint32(length)
   246 }
   253 }
   247 
   254 
       
   255 func (msghdr *Msghdr) SetIovlen(length int) {
       
   256 	msghdr.Iovlen = uint32(length)
       
   257 }
       
   258 
   248 func (cmsg *Cmsghdr) SetLen(length int) {
   259 func (cmsg *Cmsghdr) SetLen(length int) {
   249 	cmsg.Len = uint32(length)
   260 	cmsg.Len = uint32(length)
   250 }
   261 }
   251 
   262 
   252 //sys	poll(fds *PollFd, nfds int, timeout int) (n int, err error)
   263 //sys	poll(fds *PollFd, nfds int, timeout int) (n int, err error)
   255 	if len(fds) == 0 {
   266 	if len(fds) == 0 {
   256 		return poll(nil, 0, timeout)
   267 		return poll(nil, 0, timeout)
   257 	}
   268 	}
   258 	return poll(&fds[0], len(fds), timeout)
   269 	return poll(&fds[0], len(fds), timeout)
   259 }
   270 }
       
   271 
       
   272 //sys	armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE
       
   273 
       
   274 func SyncFileRange(fd int, off int64, n int64, flags int) error {
       
   275 	// The sync_file_range and arm_sync_file_range syscalls differ only in the
       
   276 	// order of their arguments.
       
   277 	return armSyncFileRange(fd, flags, off, n)
       
   278 }
       
   279 
       
   280 //sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
       
   281 
       
   282 func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
       
   283 	cmdlineLen := len(cmdline)
       
   284 	if cmdlineLen > 0 {
       
   285 		// Account for the additional NULL byte added by
       
   286 		// BytePtrFromString in kexecFileLoad. The kexec_file_load
       
   287 		// syscall expects a NULL-terminated string.
       
   288 		cmdlineLen++
       
   289 	}
       
   290 	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
       
   291 }