-0058658a9efb6e5c5faa6f0f65949beea5ddbc98
+bbb3a4347714faee620dc205674510a0f20b81ae
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
}
// gbit16 reads a 16-bit number in little-endian order from b and returns it with the remaining slice of b.
+//
//go:nosplit
func gbit16(b []byte) (uint16, []byte) {
return uint16(b[0]) | uint16(b[1])<<8, b[2:]
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// +build !hurd
-// +build !linux
+//go:build !hurd && !linux
+// +build !hurd,!linux
package syscall
// We use this rather than errstr.go because on GNU/Linux sterror_r
// returns a pointer to the error message, and may not use buf at all.
+//go:build hurd || linux
// +build hurd linux
package syscall
// For the same reason compiler does not race instrument it.
// The calls to RawSyscall are okay because they are assembly
// functions that do not grow the stack.
+//
//go:norace
func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr *ProcAttr, sys *SysProcAttr, pipe int) (pid int, err Errno) {
// Declare all variables at top in case any
// For the same reason compiler does not race instrument it.
// The calls to RawSyscall are okay because they are assembly
// functions that do not grow the stack.
+//
//go:norace
func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr *ProcAttr, sys *SysProcAttr, pipe int) (pid int, err Errno) {
// Declare all variables at top in case any
// For the same reason compiler does not race instrument it.
// The calls to RawSyscall are okay because they are assembly
// functions that do not grow the stack.
+//
//go:norace
func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr *ProcAttr, sys *SysProcAttr, pipe int) (pid int, err Errno) {
// Declare all variables at top in case any
func runtime_AfterForkInChild()
// Implemented in clone_linux.c
+//
//go:noescape
func rawClone(flags _C_ulong, child_stack *byte, ptid *Pid_t, ctid *Pid_t, regs unsafe.Pointer) _C_long
// For the same reason compiler does not race instrument it.
// The calls to RawSyscall are okay because they are assembly
// functions that do not grow the stack.
+//
//go:norace
func forkAndExecInChild(argv0 *byte, argv, envv []*byte, chroot, dir *byte, attr *ProcAttr, sys *SysProcAttr, pipe int) (pid int, err Errno) {
// Set up and fork. This returns immediately in the parent or
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build rtems
// +build rtems
// Stubs for fork, exec and wait.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build aix
// +build aix
package syscall
//sys reboot(how int) (err error)
//__linux_reboot(how _C_int) _C_int
+
func Reboot(how int) (err error) {
return reboot(how)
}
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build darwin || dragonfly || freebsd || netbsd || openbsd
// +build darwin dragonfly freebsd netbsd openbsd
// BSD library calls.
//sysnb pipe2(p *[2]_C_int, flags int) (err error)
//pipe2(p *[2]_C_int, flags _C_int) _C_int
+
func Pipe2(p []int, flags int) (err error) {
if len(p) != 2 {
return EINVAL
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build (solaris && 386) || (solaris && sparc)
// +build solaris,386 solaris,sparc
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build darwin || dragonfly || freebsd || openbsd || (solaris && amd64) || (solaris && sparc64)
// +build darwin dragonfly freebsd openbsd solaris,amd64 solaris,sparc64
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build darwin || dragonfly || freebsd || openbsd || solaris
// +build darwin dragonfly freebsd openbsd solaris
// BSD sendfile support.
//sys futimesat(dirfd int, path *byte, times *[2]Timeval) (err error)
//futimesat(dirfd _C_int, path *byte, times *[2]Timeval) _C_int
+
func Futimesat(dirfd int, path string, tv []Timeval) (err error) {
if len(tv) != 2 {
return EINVAL
//sysnb pipe2(p *[2]_C_int, flags int) (err error)
//pipe2(p *[2]_C_int, flags _C_int) _C_int
+
func Pipe2(p []int, flags int) (err error) {
if len(p) != 2 {
return EINVAL
//sys sendfile(outfd int, infd int, offset *Offset_t, count int) (written int, err error)
//sendfile64(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
+
func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
if race.Enabled {
race.ReleaseMerge(unsafe.Pointer(&ioSync))
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build irix
// +build irix
package syscall
//sys reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error)
//reboot(magic1 _C_uint, magic2 _C_uint, cmd _C_int, arg *byte) _C_int
+
func Reboot(cmd int) (err error) {
return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "")
}
//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error)
//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t
+
func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
var lroff _loff_t
var plroff *_loff_t
//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
//utimensat(dirfd _C_int, path *byte, times *[2]Timespec, flags _C_int) _C_int
+
func UtimesNano(path string, ts []Timespec) (err error) {
if len(ts) != 2 {
return EINVAL
//sysnb pipe(p *[2]_C_int) (err error)
//pipe(p *[2]_C_int) _C_int
+
func Pipe(p []int) (err error) {
if len(p) != 2 {
return EINVAL
//sys utimes(path string, times *[2]Timeval) (err error)
//utimes(path *byte, times *[2]Timeval) _C_int
+
func Utimes(path string, tv []Timeval) (err error) {
if len(tv) != 2 {
return EINVAL
//sysnb gettimeofday(tv *Timeval, tz *byte) (err error)
//gettimeofday(tv *Timeval, tz *byte) _C_int
+
func Gettimeofday(tv *Timeval) (err error) {
return gettimeofday(tv, nil)
}
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build aix || hurd || linux || (solaris && 386) || (solaris && sparc)
// +build aix hurd linux solaris,386 solaris,sparc
// POSIX library calls on systems which use the largefile interface.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build !hurd
// +build !hurd
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build !aix && !hurd && !linux && (!solaris || !386) && (!solaris || !sparc)
// +build !aix
// +build !hurd
// +build !linux
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build aix || darwin || dragonfly || freebsd || hurd || openbsd || netbsd || solaris
// +build aix darwin dragonfly freebsd hurd openbsd netbsd solaris
// General POSIX version of UtimesNano.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build (solaris && 386) || (solaris && sparc)
// +build solaris,386 solaris,sparc
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build (solaris && amd64) || (solaris && sparc64)
// +build solaris,amd64 solaris,sparc64
package syscall
// Build on all systems other than solaris/386.
// 32-bit Solaris 2/x86 needs _nuname, handled in libcall_solaris_386.go.
+//go:build !386 || !solaris
// +build !386 !solaris
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build !aix
// +build !aix
// For systems with the wait4 library call.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build rtems
// +build rtems
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build !rtems
// +build !rtems
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build darwin || dragonfly || freebsd || openbsd || netbsd
// +build darwin dragonfly freebsd openbsd netbsd
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build hurd
// +build hurd
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build irix
// +build irix
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build (linux && ppc64) || (linux && ppc64le)
// +build linux,ppc64 linux,ppc64le
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// +build linux
-// +build !ppc64
-// +build !ppc64le
+//go:build linux && !ppc64 && !ppc64le
+// +build linux,!ppc64,!ppc64le
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build !solaris
// +build !solaris
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build solaris
// +build solaris
package syscall
// That is also where updates required by new systems or versions
// should be applied. See https://golang.org/s/go1.4-syscall for more
// information.
-//
package syscall
import "unsafe"
// An Errno is an unsigned number describing an error condition.
// It implements the error interface. The zero Errno is by convention
// a non-error, so code to convert from Errno to error should use:
+//
// err = nil
// if errno != 0 {
// err = errno
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd || solaris
// +build darwin dragonfly freebsd hurd linux netbsd openbsd solaris
package syscall
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build aix || rtems
// +build aix rtems
// These are stubs.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+//go:build hurd || linux
// +build hurd linux
package syscall
// An Errno is an unsigned number describing an error condition.
// It implements the error interface. The zero Errno is by convention
// a non-error, so code to convert from Errno to error should use:
+//
// err = nil
// if errno != 0 {
// err = errno
// AllThreadsSyscall is unaware of any threads that are launched
// explicitly by cgo linked code, so the function always returns
// ENOTSUP in binaries that use cgo.
+//
//go:uintptrescapes
func AllThreadsSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) {
return minus1, minus1, ENOTSUP
// AllThreadsSyscall6 is like AllThreadsSyscall, but extended to six
// arguments.
+//
//go:uintptrescapes
func AllThreadsSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) {
return minus1, minus1, ENOTSUP