Blame vendor/golang.org/x/sys/unix/syscall_linux_arm64.go

Packit Service 4d2de5
// Copyright 2015 The Go Authors. All rights reserved.
Packit Service 4d2de5
// Use of this source code is governed by a BSD-style
Packit Service 4d2de5
// license that can be found in the LICENSE file.
Packit Service 4d2de5
Packit Service 4d2de5
// +build arm64,linux
Packit Service 4d2de5
Packit Service 4d2de5
package unix
Packit Service 4d2de5
Packit Service 4d2de5
import "unsafe"
Packit Service 4d2de5
Packit Service 4d2de5
func EpollCreate(size int) (fd int, err error) {
Packit Service 4d2de5
	if size <= 0 {
Packit Service 4d2de5
		return -1, EINVAL
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return EpollCreate1(0)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
//sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
Packit Service 4d2de5
//sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
Packit Service 4d2de5
//sys	Fchown(fd int, uid int, gid int) (err error)
Packit Service 4d2de5
//sys	Fstat(fd int, stat *Stat_t) (err error)
Packit Service 4d2de5
//sys	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
Packit Service 4d2de5
//sys	Fstatfs(fd int, buf *Statfs_t) (err error)
Packit Service 4d2de5
//sys	Ftruncate(fd int, length int64) (err error)
Packit Service 4d2de5
//sysnb	Getegid() (egid int)
Packit Service 4d2de5
//sysnb	Geteuid() (euid int)
Packit Service 4d2de5
//sysnb	Getgid() (gid int)
Packit Service 4d2de5
//sysnb	Getrlimit(resource int, rlim *Rlimit) (err error)
Packit Service 4d2de5
//sysnb	Getuid() (uid int)
Packit Service 4d2de5
//sys	Listen(s int, n int) (err error)
Packit Service 4d2de5
//sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
Packit Service 4d2de5
//sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
Packit Service 4d2de5
//sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
Packit Service 4d2de5
//sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
Packit Service 4d2de5
Packit Service 4d2de5
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
Packit Service 4d2de5
	var ts *Timespec
Packit Service 4d2de5
	if timeout != nil {
Packit Service 4d2de5
		ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return Pselect(nfd, r, w, e, ts, nil)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
//sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
Packit Service 4d2de5
//sys	setfsgid(gid int) (prev int, err error)
Packit Service 4d2de5
//sys	setfsuid(uid int) (prev int, err error)
Packit Service 4d2de5
//sysnb	Setregid(rgid int, egid int) (err error)
Packit Service 4d2de5
//sysnb	Setresgid(rgid int, egid int, sgid int) (err error)
Packit Service 4d2de5
//sysnb	Setresuid(ruid int, euid int, suid int) (err error)
Packit Service 4d2de5
//sysnb	Setrlimit(resource int, rlim *Rlimit) (err error)
Packit Service 4d2de5
//sysnb	Setreuid(ruid int, euid int) (err error)
Packit Service 4d2de5
//sys	Shutdown(fd int, how int) (err error)
Packit Service 4d2de5
//sys	Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
Packit Service 4d2de5
Packit Service 4d2de5
func Stat(path string, stat *Stat_t) (err error) {
Packit Service 4d2de5
	return Fstatat(AT_FDCWD, path, stat, 0)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func Lchown(path string, uid int, gid int) (err error) {
Packit Service 4d2de5
	return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func Lstat(path string, stat *Stat_t) (err error) {
Packit Service 4d2de5
	return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
//sys	Statfs(path string, buf *Statfs_t) (err error)
Packit Service 4d2de5
//sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error)
Packit Service 4d2de5
//sys	Truncate(path string, length int64) (err error)
Packit Service 4d2de5
Packit Service 4d2de5
func Ustat(dev int, ubuf *Ustat_t) (err error) {
Packit Service 4d2de5
	return ENOSYS
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
//sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
Packit Service 4d2de5
//sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
Packit Service 4d2de5
//sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
Packit Service 4d2de5
//sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
Packit Service 4d2de5
//sysnb	getgroups(n int, list *_Gid_t) (nn int, err error)
Packit Service 4d2de5
//sysnb	setgroups(n int, list *_Gid_t) (err error)
Packit Service 4d2de5
//sys	getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
Packit Service 4d2de5
//sys	setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
Packit Service 4d2de5
//sysnb	socket(domain int, typ int, proto int) (fd int, err error)
Packit Service 4d2de5
//sysnb	socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
Packit Service 4d2de5
//sysnb	getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
Packit Service 4d2de5
//sysnb	getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
Packit Service 4d2de5
//sys	recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
Packit Service 4d2de5
//sys	sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
Packit Service 4d2de5
//sys	recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
Packit Service 4d2de5
//sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
Packit Service 4d2de5
//sys	mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
Packit Service 4d2de5
Packit Service 4d2de5
//sysnb	Gettimeofday(tv *Timeval) (err error)
Packit Service 4d2de5
Packit Service 4d2de5
func setTimespec(sec, nsec int64) Timespec {
Packit Service 4d2de5
	return Timespec{Sec: sec, Nsec: nsec}
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func setTimeval(sec, usec int64) Timeval {
Packit Service 4d2de5
	return Timeval{Sec: sec, Usec: usec}
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {
Packit Service 4d2de5
	if tv == nil {
Packit Service 4d2de5
		return utimensat(dirfd, path, nil, 0)
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	ts := []Timespec{
Packit Service 4d2de5
		NsecToTimespec(TimevalToNsec(tv[0])),
Packit Service 4d2de5
		NsecToTimespec(TimevalToNsec(tv[1])),
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func Time(t *Time_t) (Time_t, error) {
Packit Service 4d2de5
	var tv Timeval
Packit Service 4d2de5
	err := Gettimeofday(&tv)
Packit Service 4d2de5
	if err != nil {
Packit Service 4d2de5
		return 0, err
Packit Service 4d2de5
	}
Packit Service 4d2de5
	if t != nil {
Packit Service 4d2de5
		*t = Time_t(tv.Sec)
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return Time_t(tv.Sec), nil
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func Utime(path string, buf *Utimbuf) error {
Packit Service 4d2de5
	tv := []Timeval{
Packit Service 4d2de5
		{Sec: buf.Actime},
Packit Service 4d2de5
		{Sec: buf.Modtime},
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return Utimes(path, tv)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func utimes(path string, tv *[2]Timeval) (err error) {
Packit Service 4d2de5
	if tv == nil {
Packit Service 4d2de5
		return utimensat(AT_FDCWD, path, nil, 0)
Packit Service 4d2de5
	}
Packit Service 4d2de5
Packit Service 4d2de5
	ts := []Timespec{
Packit Service 4d2de5
		NsecToTimespec(TimevalToNsec(tv[0])),
Packit Service 4d2de5
		NsecToTimespec(TimevalToNsec(tv[1])),
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func Pipe(p []int) (err error) {
Packit Service 4d2de5
	if len(p) != 2 {
Packit Service 4d2de5
		return EINVAL
Packit Service 4d2de5
	}
Packit Service 4d2de5
	var pp [2]_C_int
Packit Service 4d2de5
	err = pipe2(&pp, 0)
Packit Service 4d2de5
	p[0] = int(pp[0])
Packit Service 4d2de5
	p[1] = int(pp[1])
Packit Service 4d2de5
	return
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
//sysnb pipe2(p *[2]_C_int, flags int) (err error)
Packit Service 4d2de5
Packit Service 4d2de5
func Pipe2(p []int, flags int) (err error) {
Packit Service 4d2de5
	if len(p) != 2 {
Packit Service 4d2de5
		return EINVAL
Packit Service 4d2de5
	}
Packit Service 4d2de5
	var pp [2]_C_int
Packit Service 4d2de5
	err = pipe2(&pp, flags)
Packit Service 4d2de5
	p[0] = int(pp[0])
Packit Service 4d2de5
	p[1] = int(pp[1])
Packit Service 4d2de5
	return
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (r *PtraceRegs) PC() uint64 { return r.Pc }
Packit Service 4d2de5
Packit Service 4d2de5
func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }
Packit Service 4d2de5
Packit Service 4d2de5
func (iov *Iovec) SetLen(length int) {
Packit Service 4d2de5
	iov.Len = uint64(length)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (msghdr *Msghdr) SetControllen(length int) {
Packit Service 4d2de5
	msghdr.Controllen = uint64(length)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (msghdr *Msghdr) SetIovlen(length int) {
Packit Service 4d2de5
	msghdr.Iovlen = uint64(length)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func (cmsg *Cmsghdr) SetLen(length int) {
Packit Service 4d2de5
	cmsg.Len = uint64(length)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func InotifyInit() (fd int, err error) {
Packit Service 4d2de5
	return InotifyInit1(0)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func Dup2(oldfd int, newfd int) (err error) {
Packit Service 4d2de5
	return Dup3(oldfd, newfd, 0)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func Pause() error {
Packit Service 4d2de5
	_, err := ppoll(nil, 0, nil, nil)
Packit Service 4d2de5
	return err
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
func Poll(fds []PollFd, timeout int) (n int, err error) {
Packit Service 4d2de5
	var ts *Timespec
Packit Service 4d2de5
	if timeout >= 0 {
Packit Service 4d2de5
		ts = new(Timespec)
Packit Service 4d2de5
		*ts = NsecToTimespec(int64(timeout) * 1e6)
Packit Service 4d2de5
	}
Packit Service 4d2de5
	if len(fds) == 0 {
Packit Service 4d2de5
		return ppoll(nil, 0, ts, nil)
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return ppoll(&fds[0], len(fds), ts, nil)
Packit Service 4d2de5
}
Packit Service 4d2de5
Packit Service 4d2de5
//sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
Packit Service 4d2de5
Packit Service 4d2de5
func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
Packit Service 4d2de5
	cmdlineLen := len(cmdline)
Packit Service 4d2de5
	if cmdlineLen > 0 {
Packit Service 4d2de5
		// Account for the additional NULL byte added by
Packit Service 4d2de5
		// BytePtrFromString in kexecFileLoad. The kexec_file_load
Packit Service 4d2de5
		// syscall expects a NULL-terminated string.
Packit Service 4d2de5
		cmdlineLen++
Packit Service 4d2de5
	}
Packit Service 4d2de5
	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
Packit Service 4d2de5
}