go/src/syscall
Russ Cox 1ac637c766 cmd/compile: recognize Syscall-like functions for liveness analysis
Consider this code:

	func f(*int)

	func g() {
		p := new(int)
		f(p)
	}

where f is an assembly function.
In general liveness analysis assumes that during the call to f, p is dead
in this frame. If f has retained p, p will be found alive in f's frame and keep
the new(int) from being garbage collected. This is all correct and works.
We use the Go func declaration for f to give the assembly function
liveness information (the arguments are assumed live for the entire call).

Now consider this code:

	func h1() {
		p := new(int)
		syscall.Syscall(1, 2, 3, uintptr(unsafe.Pointer(p)))
	}

Here syscall.Syscall is taking the place of f, but because its arguments
are uintptr, the liveness analysis and the garbage collector ignore them.
Since p is no longer live in h once the call starts, if the garbage collector
scans the stack while the system call is blocked, it will find no reference
to the new(int) and reclaim it. If the kernel is going to write to *p once
the call finishes, reclaiming the memory is a mistake.

We can't change the arguments or the liveness information for
syscall.Syscall itself, both for compatibility and because sometimes the
arguments really are integers, and the garbage collector will get quite upset
if it finds an integer where it expects a pointer. The problem is that
these arguments are fundamentally untyped.

The solution we have taken in the syscall package's wrappers in past
releases is to insert a call to a dummy function named "use", to make
it look like the argument is live during the call to syscall.Syscall:

	func h2() {
		p := new(int)
		syscall.Syscall(1, 2, 3, uintptr(unsafe.Pointer(p)))
		use(unsafe.Pointer(p))
	}

Keeping p alive during the call means that if the garbage collector
scans the stack during the system call now, it will find the reference to p.

Unfortunately, this approach is not available to users outside syscall,
because 'use' is unexported, and people also have to realize they need
to use it and do so. There is much existing code using syscall.Syscall
without a 'use'-like function. That code will fail very occasionally in
mysterious ways (see #13372).

This CL fixes all that existing code by making the compiler do the right
thing automatically, without any code modifications. That is, it takes h1
above, which is incorrect code today, and makes it correct code.

Specifically, if the compiler sees a foreign func definition (one
without a body) that has uintptr arguments, it marks those arguments
as "unsafe uintptrs". If it later sees the function being called
with uintptr(unsafe.Pointer(x)) as an argument, it arranges to mark x
as having escaped, and it makes sure to hold x in a live temporary
variable until the call returns, so that the garbage collector cannot
reclaim whatever heap memory x points to.

For now I am leaving the explicit calls to use in package syscall,
but they can be removed early in a future cycle (likely Go 1.7).

The rule has no effect on escape analysis, only on liveness analysis.

Fixes #13372.

Change-Id: I2addb83f70d08db08c64d394f9d06ff0a063c500
Reviewed-on: https://go-review.googlesource.com/18584
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-01-14 01:16:45 +00:00
..
asm.s all: use RET instead of RETURN on ppc64 2015-06-06 00:07:23 +00:00
asm_darwin_386.s syscall: use name+(NN)FP for darwin 2015-01-14 14:14:29 +00:00
asm_darwin_amd64.s syscall: add missing Syscall9 for darwin/amd64 2015-03-14 00:21:11 +00:00
asm_darwin_arm.s [dev.cc] runtime,syscall: quiet some more vet errors 2015-02-20 00:20:54 +00:00
asm_darwin_arm64.s syscall: darwin/arm64 support 2015-04-16 12:43:44 +00:00
asm_dragonfly_amd64.s
asm_freebsd_386.s
asm_freebsd_amd64.s runtime, syscall: use SYSCALL instruction on FreeBSD. 2015-01-18 23:51:50 +00:00
asm_freebsd_arm.s [dev.cc] runtime, syscall: add names to FP offsets in freebsd, netbsd arm assembly 2015-02-23 16:52:33 +00:00
asm_linux_386.s runtime, syscall: use int $0x80 to invoke syscalls on android/386 2015-11-17 20:22:47 +00:00
asm_linux_amd64.s syscall: use name+(NN)FP on linux/amd64 2015-01-21 19:04:38 +00:00
asm_linux_arm.s syscall: use name+(NN)FP on linux/arm 2015-01-16 16:12:41 +00:00
asm_linux_arm64.s syscall: add support for GOARCH=arm64 2015-03-16 18:46:02 +00:00
asm_linux_mips64x.s syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
asm_linux_ppc64x.s all: use RET instead of RETURN on ppc64 2015-06-06 00:07:23 +00:00
asm_nacl_386.s syscall: fix nacl builds 2015-01-12 21:45:58 +00:00
asm_nacl_amd64p32.s syscall: fix nacl builds 2015-01-12 21:45:58 +00:00
asm_nacl_arm.s syscall: fix nacl builds 2015-01-12 21:45:58 +00:00
asm_netbsd_386.s
asm_netbsd_amd64.s
asm_netbsd_arm.s [dev.cc] runtime, syscall: add names to FP offsets in freebsd, netbsd arm assembly 2015-02-23 16:52:33 +00:00
asm_openbsd_386.s
asm_openbsd_amd64.s
asm_openbsd_arm.s syscall: add support for openbsd/arm 2015-03-15 04:07:54 +00:00
asm_plan9_386.s
asm_plan9_amd64.s
asm_solaris_amd64.s runtime, syscall: remove unused bits from Solaris implementation 2015-08-21 11:39:24 +00:00
bpf_bsd.go
const_plan9.go syscall: reduce the set of architecture-dependent files on Plan 9 2015-04-09 13:55:13 +00:00
creds_test.go syscall: fix TestSCMCredentials 2015-05-06 00:29:36 +00:00
dir_plan9.go
dll_windows.go go/doc, syscall: change 'more then' to 'more than' 2015-12-07 05:34:33 +00:00
env_plan9.go syscall: make pwd process-wide on Plan 9 2015-02-28 18:17:35 +00:00
env_unix.go
env_windows.go all: fix race when allocating buffer for some windows syscalls 2015-04-08 02:06:31 +00:00
errors_plan9.go syscall: define common notes on Plan 9 2015-10-26 22:12:46 +00:00
exec_bsd.go cmd/compile, syscall: use go:norace comment for forkAndExecInChild 2015-10-20 14:10:24 +00:00
exec_linux.go cmd/compile, syscall: use go:norace comment for forkAndExecInChild 2015-10-20 14:10:24 +00:00
exec_linux_test.go syscall: skip tests that create a user namespace when chrooted 2015-11-25 23:31:47 +00:00
exec_plan9.go syscall: don't check result of close(fd) in forkAndExecInChild on Plan9 2015-11-24 18:57:44 +00:00
exec_solaris.go cmd/compile, syscall: use go:norace comment for forkAndExecInChild 2015-10-20 14:10:24 +00:00
exec_solaris_test.go runtime, syscall: link Solaris binaries directly instead of using dlopen/dlsym 2015-05-06 11:38:50 +00:00
exec_unix.go all: switch to the new deprecation convention 2015-06-18 19:16:23 +00:00
exec_unix_test.go all: extract "can I exec?" check from tests into internal/testenv 2015-06-16 18:07:36 +00:00
exec_windows.go syscall: return error instead of panicking in windows StartProcess 2015-06-29 03:54:33 +00:00
export_test.go
export_unix_test.go runtime, syscall: fix Solaris exec tests 2015-03-24 19:51:21 +00:00
fd_nacl.go
flock.go
flock_linux_32bit.go
fs_nacl.go runtime, syscall: use the new get_random_bytes syscall for NaCl 2015-03-25 02:07:09 +00:00
lsf_linux.go
mkall.sh syscall: mksysnum_linux.pl: run syscall numbers through GCC 2015-05-12 22:01:25 +00:00
mkerrors.sh syscall: implement getwd on Solaris 2015-09-09 19:58:33 +00:00
mksyscall.pl syscall: don't allocate when boxing common Errno values into errors 2015-03-27 06:47:27 +00:00
mksyscall_solaris.pl syscall: implement getwd on Solaris 2015-09-09 19:58:33 +00:00
mksyscall_windows.go all: fix misprints in comments 2015-06-11 14:18:57 +00:00
mksysctl_openbsd.pl
mksysnum_darwin.pl
mksysnum_dragonfly.pl
mksysnum_freebsd.pl
mksysnum_linux.pl syscall: mksysnum_linux.pl: run syscall numbers through GCC 2015-05-12 22:01:25 +00:00
mksysnum_netbsd.pl
mksysnum_openbsd.pl
mksysnum_plan9.sh syscall: fix duplicated copyright header in mksysnum_plan9.sh 2015-12-10 20:45:18 +00:00
mmap_unix_test.go
msan.go runtime, syscall: add calls to msan functions 2015-10-21 19:17:46 +00:00
msan0.go runtime, syscall: add calls to msan functions 2015-10-21 19:17:46 +00:00
net_nacl.go syscall: allow nacl's fake network code to Listen twice on the same address 2015-11-04 16:03:21 +00:00
netlink_linux.go
pwd_plan9.go syscall: ignore getwd errors when fixing working directory on Plan 9 2015-04-12 17:37:30 +00:00
route_bsd.go syscall: fix ParseRoutingSockaddr name in docs 2015-12-05 00:10:40 +00:00
route_bsd_test.go Revert "syscall: route_freebsd switch routing socket sysctl to use NET_RT_IFLISTL" 2015-12-05 07:45:01 +00:00
route_darwin.go net, syscall: more accurate parsers for routing messages on BSD variants 2015-02-20 04:33:28 +00:00
route_dragonfly.go net, syscall: more accurate parsers for routing messages on BSD variants 2015-02-20 04:33:28 +00:00
route_freebsd.go Revert "syscall: route_freebsd switch routing socket sysctl to use NET_RT_IFLISTL" 2015-12-05 07:45:01 +00:00
route_freebsd_32bit.go Revert "syscall: route_freebsd switch routing socket sysctl to use NET_RT_IFLISTL" 2015-12-05 07:45:01 +00:00
route_freebsd_64bit.go Revert "syscall: route_freebsd switch routing socket sysctl to use NET_RT_IFLISTL" 2015-12-05 07:45:01 +00:00
route_ifma_test.go net, syscall: more accurate parsers for routing messages on BSD variants 2015-02-20 04:33:28 +00:00
route_netbsd.go net, syscall: more accurate parsers for routing messages on BSD variants 2015-02-20 04:33:28 +00:00
route_noifma_test.go net, syscall: more accurate parsers for routing messages on BSD variants 2015-02-20 04:33:28 +00:00
route_openbsd.go net, syscall: more accurate parsers for routing messages on BSD variants 2015-02-20 04:33:28 +00:00
security_windows.go all: fix race when allocating buffer for some windows syscalls 2015-04-08 02:06:31 +00:00
sockcmsg_linux.go
sockcmsg_unix.go syscall: fix vet warning in UnixRights 2015-10-08 20:10:16 +00:00
str.go
syscall.go cmd/compile: recognize Syscall-like functions for liveness analysis 2016-01-14 01:16:45 +00:00
syscall_bsd.go os, syscall: revert Yosemite readdir workaround 2015-02-08 21:04:15 +00:00
syscall_bsd_test.go
syscall_darwin.go syscall: change Dup,Dup2,Dup3 to use Syscall, not RawSyscall 2015-03-26 17:29:08 +00:00
syscall_darwin_386.go
syscall_darwin_amd64.go syscall: add missing Syscall9 for darwin/amd64 2015-03-14 00:21:11 +00:00
syscall_darwin_arm.go syscall: gofmt 2015-02-06 06:06:20 +00:00
syscall_darwin_arm64.go syscall: darwin/arm64 support 2015-04-16 12:43:44 +00:00
syscall_dragonfly.go syscall: change Dup,Dup2,Dup3 to use Syscall, not RawSyscall 2015-03-26 17:29:08 +00:00
syscall_dragonfly_amd64.go
syscall_freebsd.go syscall: change Dup,Dup2,Dup3 to use Syscall, not RawSyscall 2015-03-26 17:29:08 +00:00
syscall_freebsd_386.go Revert "syscall: route_freebsd switch routing socket sysctl to use NET_RT_IFLISTL" 2015-12-05 07:45:01 +00:00
syscall_freebsd_amd64.go Revert "syscall: route_freebsd switch routing socket sysctl to use NET_RT_IFLISTL" 2015-12-05 07:45:01 +00:00
syscall_freebsd_arm.go Revert "syscall: route_freebsd switch routing socket sysctl to use NET_RT_IFLISTL" 2015-12-05 07:45:01 +00:00
syscall_linux.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
syscall_linux_386.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
syscall_linux_amd64.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
syscall_linux_arm.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
syscall_linux_arm64.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
syscall_linux_mips64x.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
syscall_linux_ppc64x.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
syscall_linux_test.go syscall: fix formatting calls in tests 2015-09-03 21:08:04 +00:00
syscall_nacl.go runtime, syscall: use the new get_random_bytes syscall for NaCl 2015-03-25 02:07:09 +00:00
syscall_nacl_386.go
syscall_nacl_amd64p32.go
syscall_nacl_arm.go
syscall_netbsd.go syscall: change Dup,Dup2,Dup3 to use Syscall, not RawSyscall 2015-03-26 17:29:08 +00:00
syscall_netbsd_386.go
syscall_netbsd_amd64.go
syscall_netbsd_arm.go
syscall_no_getwd.go
syscall_openbsd.go syscall: change Dup,Dup2,Dup3 to use Syscall, not RawSyscall 2015-03-26 17:29:08 +00:00
syscall_openbsd_386.go
syscall_openbsd_amd64.go
syscall_openbsd_arm.go syscall: add support for openbsd/arm 2015-03-15 04:07:54 +00:00
syscall_plan9.go syscall: reduce the set of architecture-dependent files on Plan 9 2015-04-09 13:55:13 +00:00
syscall_solaris.go syscall: implement getwd on Solaris 2015-09-09 19:58:33 +00:00
syscall_solaris_amd64.go syscall, net: use sendfile on Solaris 2015-05-06 12:26:35 +00:00
syscall_test.go
syscall_unix.go internal/race: add package 2015-11-26 16:50:31 +00:00
syscall_unix_test.go all: link to https instead of http 2015-07-11 14:36:33 +00:00
syscall_windows.go internal/race: add package 2015-11-26 16:50:31 +00:00
syscall_windows_386.go
syscall_windows_amd64.go
syscall_windows_test.go
tables_nacl.go syscall: apply the errno allocation fix to other operating systems 2015-03-27 16:58:02 +00:00
time_nacl_386.s
time_nacl_amd64p32.s
time_nacl_arm.s
types_darwin.go
types_dragonfly.go
types_freebsd.go Revert "syscall: route_freebsd switch routing socket sysctl to use NET_RT_IFLISTL" 2015-12-05 07:45:01 +00:00
types_linux.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
types_netbsd.go
types_openbsd.go
types_solaris.go syscall: implement getwd on Solaris 2015-09-09 19:58:33 +00:00
unzip_nacl.go
zerrors_darwin_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_darwin_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_darwin_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_darwin_arm64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_dragonfly_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_freebsd_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_freebsd_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_freebsd_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_linux_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_linux_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_linux_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_linux_arm64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_linux_mips64.go syscall: added machine-generated code for linux/mips64{,le} 2015-11-12 04:49:19 +00:00
zerrors_linux_mips64le.go syscall: added machine-generated code for linux/mips64{,le} 2015-11-12 04:49:19 +00:00
zerrors_linux_ppc64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_linux_ppc64le.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_netbsd_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_netbsd_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_netbsd_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_openbsd_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_openbsd_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_openbsd_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_solaris_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zerrors_windows.go
zerrors_windows_386.go
zerrors_windows_amd64.go
zsyscall_darwin_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_darwin_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_darwin_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_darwin_arm64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_dragonfly_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_freebsd_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_freebsd_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_freebsd_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_linux_386.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
zsyscall_linux_amd64.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
zsyscall_linux_arm.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
zsyscall_linux_arm64.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
zsyscall_linux_mips64.go syscall: added machine-generated code for linux/mips64{,le} 2015-11-12 04:49:19 +00:00
zsyscall_linux_mips64le.go syscall: added machine-generated code for linux/mips64{,le} 2015-11-12 04:49:19 +00:00
zsyscall_linux_ppc64.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
zsyscall_linux_ppc64le.go syscall: added support for linux/mips64{,le} 2015-11-12 04:49:34 +00:00
zsyscall_nacl_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_nacl_amd64p32.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_nacl_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_netbsd_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_netbsd_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_netbsd_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_openbsd_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_openbsd_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_openbsd_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_plan9_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_plan9_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsyscall_solaris_amd64.go syscall: implement getwd on Solaris 2015-09-09 19:58:33 +00:00
zsyscall_windows.go syscall: warn not to use FormatMessage 2015-07-21 02:26:27 +00:00
zsysctl_openbsd.go
zsysnum_darwin_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_darwin_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_darwin_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_darwin_arm64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_dragonfly_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_freebsd_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_freebsd_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_freebsd_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_linux_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_linux_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_linux_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_linux_arm64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_linux_mips64.go syscall: added machine-generated code for linux/mips64{,le} 2015-11-12 04:49:19 +00:00
zsysnum_linux_mips64le.go syscall: added machine-generated code for linux/mips64{,le} 2015-11-12 04:49:19 +00:00
zsysnum_linux_ppc64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_linux_ppc64le.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_netbsd_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_netbsd_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_netbsd_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_openbsd_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_openbsd_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_openbsd_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_plan9.go syscall: reduce the set of architecture-dependent files on Plan 9 2015-04-09 13:55:13 +00:00
zsysnum_solaris_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
zsysnum_windows_386.go
zsysnum_windows_amd64.go
ztypes_darwin_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_darwin_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_darwin_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_darwin_arm64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_dragonfly_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_freebsd_386.go Revert "syscall: route_freebsd switch routing socket sysctl to use NET_RT_IFLISTL" 2015-12-05 07:45:01 +00:00
ztypes_freebsd_amd64.go Revert "syscall: route_freebsd switch routing socket sysctl to use NET_RT_IFLISTL" 2015-12-05 07:45:01 +00:00
ztypes_freebsd_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_linux_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_linux_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_linux_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_linux_arm64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_linux_mips64.go syscall: added machine-generated code for linux/mips64{,le} 2015-11-12 04:49:19 +00:00
ztypes_linux_mips64le.go syscall: added machine-generated code for linux/mips64{,le} 2015-11-12 04:49:19 +00:00
ztypes_linux_ppc64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_linux_ppc64le.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_netbsd_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_netbsd_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_netbsd_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_openbsd_386.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_openbsd_amd64.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_openbsd_arm.go syscall: add explicit build tags 2015-05-15 01:04:27 +00:00
ztypes_solaris_amd64.go syscall: implement getwd on Solaris 2015-09-09 19:58:33 +00:00
ztypes_windows.go syscall: Readlink doesn't handle junction on windows 2015-02-12 02:03:25 +00:00
ztypes_windows_386.go
ztypes_windows_amd64.go