vendor/golang.org/x/sys/unix/syscall_linux_arm.go
changeset 260 445e01aede7e
parent 256 6d9efbef00a9
child 262 8d3354485fc3
equal deleted inserted replaced
259:db4911b0c721 260:445e01aede7e
    15 	return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
    15 	return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
    16 }
    16 }
    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 }
       
    21 
       
    22 //sysnb	pipe(p *[2]_C_int) (err error)
       
    23 
       
    24 func Pipe(p []int) (err error) {
       
    25 	if len(p) != 2 {
       
    26 		return EINVAL
       
    27 	}
       
    28 	var pp [2]_C_int
       
    29 	// Try pipe2 first for Android O, then try pipe for kernel 2.6.23.
       
    30 	err = pipe2(&pp, 0)
       
    31 	if err == ENOSYS {
       
    32 		err = pipe(&pp)
       
    33 	}
       
    34 	p[0] = int(pp[0])
       
    35 	p[1] = int(pp[1])
       
    36 	return
       
    37 }
       
    38 
       
    39 //sysnb	pipe2(p *[2]_C_int, flags int) (err error)
       
    40 
       
    41 func Pipe2(p []int, flags int) (err error) {
       
    42 	if len(p) != 2 {
       
    43 		return EINVAL
       
    44 	}
       
    45 	var pp [2]_C_int
       
    46 	err = pipe2(&pp, flags)
       
    47 	p[0] = int(pp[0])
       
    48 	p[1] = int(pp[1])
       
    49 	return
       
    50 }
    20 }
    51 
    21 
    52 func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
    22 func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
    53 	newoffset, errno := seek(fd, offset, whence)
    23 	newoffset, errno := seek(fd, offset, whence)
    54 	if errno != 0 {
    24 	if errno != 0 {
    55 		return 0, errno
    25 		return 0, errno
    56 	}
    26 	}
    57 	return newoffset, nil
    27 	return newoffset, nil
    58 }
    28 }
    59 
    29 
    60 //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
       
    61 //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
    30 //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
    62 //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
    31 //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
    63 //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
    32 //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
    64 //sysnb	getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32
    33 //sysnb	getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32
    65 //sysnb	setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32
    34 //sysnb	setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32
    74 //sys	recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
    43 //sys	recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
    75 //sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
    44 //sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
    76 
    45 
    77 // 64-bit file system and 32-bit uid calls
    46 // 64-bit file system and 32-bit uid calls
    78 // (16-bit uid calls are not always supported in newer kernels)
    47 // (16-bit uid calls are not always supported in newer kernels)
    79 //sys	dup2(oldfd int, newfd int) (err error)
       
    80 //sysnb	EpollCreate(size int) (fd int, err error)
       
    81 //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
    48 //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
    82 //sys	Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
    49 //sys	Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
    83 //sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
    50 //sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
    84 //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
    51 //sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
    85 //sysnb	Getegid() (egid int) = SYS_GETEGID32
    52 //sysnb	Getegid() (egid int) = SYS_GETEGID32
    86 //sysnb	Geteuid() (euid int) = SYS_GETEUID32
    53 //sysnb	Geteuid() (euid int) = SYS_GETEUID32
    87 //sysnb	Getgid() (gid int) = SYS_GETGID32
    54 //sysnb	Getgid() (gid int) = SYS_GETGID32
    88 //sysnb	Getuid() (uid int) = SYS_GETUID32
    55 //sysnb	Getuid() (uid int) = SYS_GETUID32
    89 //sysnb	InotifyInit() (fd int, err error)
       
    90 //sys	Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
    56 //sys	Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
    91 //sys	Listen(s int, n int) (err error)
    57 //sys	Listen(s int, n int) (err error)
    92 //sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
    58 //sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
    93 //sys	Pause() (err error)
    59 //sys	Pause() (err error)
    94 //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
    60 //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
   128 	return Utimes(path, tv)
    94 	return Utimes(path, tv)
   129 }
    95 }
   130 
    96 
   131 //sys	utimes(path string, times *[2]Timeval) (err error)
    97 //sys	utimes(path string, times *[2]Timeval) (err error)
   132 
    98 
   133 //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
    99 //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
   134 //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
   100 //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
   135 //sys	Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
   101 //sys	Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
   136 //sys	Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
   102 //sys	Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
   137 
   103 
   138 func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
   104 func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
   139 	_, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32))
   105 	_, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32))
   182 
   148 
   183 const rlimInf32 = ^uint32(0)
   149 const rlimInf32 = ^uint32(0)
   184 const rlimInf64 = ^uint64(0)
   150 const rlimInf64 = ^uint64(0)
   185 
   151 
   186 func Getrlimit(resource int, rlim *Rlimit) (err error) {
   152 func Getrlimit(resource int, rlim *Rlimit) (err error) {
   187 	err = prlimit(0, resource, nil, rlim)
   153 	err = Prlimit(0, resource, nil, rlim)
   188 	if err != ENOSYS {
   154 	if err != ENOSYS {
   189 		return err
   155 		return err
   190 	}
   156 	}
   191 
   157 
   192 	rl := rlimit32{}
   158 	rl := rlimit32{}
   210 }
   176 }
   211 
   177 
   212 //sysnb	setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
   178 //sysnb	setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
   213 
   179 
   214 func Setrlimit(resource int, rlim *Rlimit) (err error) {
   180 func Setrlimit(resource int, rlim *Rlimit) (err error) {
   215 	err = prlimit(0, resource, rlim, nil)
   181 	err = Prlimit(0, resource, rlim, nil)
   216 	if err != ENOSYS {
   182 	if err != ENOSYS {
   217 		return err
   183 		return err
   218 	}
   184 	}
   219 
   185 
   220 	rl := rlimit32{}
   186 	rl := rlimit32{}
   256 	cmsg.Len = uint32(length)
   222 	cmsg.Len = uint32(length)
   257 }
   223 }
   258 
   224 
   259 func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {
   225 func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {
   260 	rsa.Service_name_len = uint32(length)
   226 	rsa.Service_name_len = uint32(length)
   261 }
       
   262 
       
   263 //sys	poll(fds *PollFd, nfds int, timeout int) (n int, err error)
       
   264 
       
   265 func Poll(fds []PollFd, timeout int) (n int, err error) {
       
   266 	if len(fds) == 0 {
       
   267 		return poll(nil, 0, timeout)
       
   268 	}
       
   269 	return poll(&fds[0], len(fds), timeout)
       
   270 }
   227 }
   271 
   228 
   272 //sys	armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE
   229 //sys	armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE
   273 
   230 
   274 func SyncFileRange(fd int, off int64, n int64, flags int) error {
   231 func SyncFileRange(fd int, off int64, n int64, flags int) error {