vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
changeset 260 445e01aede7e
parent 256 6d9efbef00a9
child 262 8d3354485fc3
equal deleted inserted replaced
259:db4911b0c721 260:445e01aede7e
     6 // +build arm64,linux
     6 // +build arm64,linux
     7 
     7 
     8 package unix
     8 package unix
     9 
     9 
    10 import "unsafe"
    10 import "unsafe"
    11 
       
    12 func EpollCreate(size int) (fd int, err error) {
       
    13 	if size <= 0 {
       
    14 		return -1, EINVAL
       
    15 	}
       
    16 	return EpollCreate1(0)
       
    17 }
       
    18 
    11 
    19 //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
    12 //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
    20 //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
    13 //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
    21 //sys	Fchown(fd int, uid int, gid int) (err error)
    14 //sys	Fchown(fd int, uid int, gid int) (err error)
    22 //sys	Fstat(fd int, stat *Stat_t) (err error)
    15 //sys	Fstat(fd int, stat *Stat_t) (err error)
    27 //sysnb	Geteuid() (euid int)
    20 //sysnb	Geteuid() (euid int)
    28 //sysnb	Getgid() (gid int)
    21 //sysnb	Getgid() (gid int)
    29 //sysnb	getrlimit(resource int, rlim *Rlimit) (err error)
    22 //sysnb	getrlimit(resource int, rlim *Rlimit) (err error)
    30 //sysnb	Getuid() (uid int)
    23 //sysnb	Getuid() (uid int)
    31 //sys	Listen(s int, n int) (err error)
    24 //sys	Listen(s int, n int) (err error)
    32 //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
    25 //sys	MemfdSecret(flags int) (fd int, err error)
    33 //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
    26 //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
       
    27 //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
    34 //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
    28 //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
    35 //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
    29 //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
    36 
    30 
    37 func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
    31 func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
    38 	var ts *Timespec
    32 	var ts *Timespec
    71 
    65 
    72 func Ustat(dev int, ubuf *Ustat_t) (err error) {
    66 func Ustat(dev int, ubuf *Ustat_t) (err error) {
    73 	return ENOSYS
    67 	return ENOSYS
    74 }
    68 }
    75 
    69 
    76 //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
       
    77 //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
    70 //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
    78 //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
    71 //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
    79 //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
    72 //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
    80 //sysnb	getgroups(n int, list *_Gid_t) (nn int, err error)
    73 //sysnb	getgroups(n int, list *_Gid_t) (nn int, err error)
    81 //sysnb	setgroups(n int, list *_Gid_t) (err error)
    74 //sysnb	setgroups(n int, list *_Gid_t) (err error)
   143 		NsecToTimespec(TimevalToNsec(tv[1])),
   136 		NsecToTimespec(TimevalToNsec(tv[1])),
   144 	}
   137 	}
   145 	return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
   138 	return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
   146 }
   139 }
   147 
   140 
   148 func Pipe(p []int) (err error) {
       
   149 	if len(p) != 2 {
       
   150 		return EINVAL
       
   151 	}
       
   152 	var pp [2]_C_int
       
   153 	err = pipe2(&pp, 0)
       
   154 	p[0] = int(pp[0])
       
   155 	p[1] = int(pp[1])
       
   156 	return
       
   157 }
       
   158 
       
   159 //sysnb	pipe2(p *[2]_C_int, flags int) (err error)
       
   160 
       
   161 func Pipe2(p []int, flags int) (err error) {
       
   162 	if len(p) != 2 {
       
   163 		return EINVAL
       
   164 	}
       
   165 	var pp [2]_C_int
       
   166 	err = pipe2(&pp, flags)
       
   167 	p[0] = int(pp[0])
       
   168 	p[1] = int(pp[1])
       
   169 	return
       
   170 }
       
   171 
       
   172 // Getrlimit prefers the prlimit64 system call. See issue 38604.
   141 // Getrlimit prefers the prlimit64 system call. See issue 38604.
   173 func Getrlimit(resource int, rlim *Rlimit) error {
   142 func Getrlimit(resource int, rlim *Rlimit) error {
   174 	err := prlimit(0, resource, nil, rlim)
   143 	err := Prlimit(0, resource, nil, rlim)
   175 	if err != ENOSYS {
   144 	if err != ENOSYS {
   176 		return err
   145 		return err
   177 	}
   146 	}
   178 	return getrlimit(resource, rlim)
   147 	return getrlimit(resource, rlim)
   179 }
   148 }
   180 
   149 
   181 // Setrlimit prefers the prlimit64 system call. See issue 38604.
   150 // Setrlimit prefers the prlimit64 system call. See issue 38604.
   182 func Setrlimit(resource int, rlim *Rlimit) error {
   151 func Setrlimit(resource int, rlim *Rlimit) error {
   183 	err := prlimit(0, resource, rlim, nil)
   152 	err := Prlimit(0, resource, rlim, nil)
   184 	if err != ENOSYS {
   153 	if err != ENOSYS {
   185 		return err
   154 		return err
   186 	}
   155 	}
   187 	return setrlimit(resource, rlim)
   156 	return setrlimit(resource, rlim)
   188 }
   157 }
   209 
   178 
   210 func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {
   179 func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {
   211 	rsa.Service_name_len = uint64(length)
   180 	rsa.Service_name_len = uint64(length)
   212 }
   181 }
   213 
   182 
   214 func InotifyInit() (fd int, err error) {
       
   215 	return InotifyInit1(0)
       
   216 }
       
   217 
       
   218 // dup2 exists because func Dup3 in syscall_linux.go references
       
   219 // it in an unreachable path. dup2 isn't available on arm64.
       
   220 func dup2(oldfd int, newfd int) error
       
   221 
       
   222 func Pause() error {
   183 func Pause() error {
   223 	_, err := ppoll(nil, 0, nil, nil)
   184 	_, err := ppoll(nil, 0, nil, nil)
   224 	return err
   185 	return err
   225 }
       
   226 
       
   227 func Poll(fds []PollFd, timeout int) (n int, err error) {
       
   228 	var ts *Timespec
       
   229 	if timeout >= 0 {
       
   230 		ts = new(Timespec)
       
   231 		*ts = NsecToTimespec(int64(timeout) * 1e6)
       
   232 	}
       
   233 	if len(fds) == 0 {
       
   234 		return ppoll(nil, 0, ts, nil)
       
   235 	}
       
   236 	return ppoll(&fds[0], len(fds), ts, nil)
       
   237 }
   186 }
   238 
   187 
   239 //sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
   188 //sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
   240 
   189 
   241 func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
   190 func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {