Selaa lähdekoodia

go.sys/plan9: update to use "use"

LGTM=rsc, aram, 0intro
R=rsc, aram, 0intro
CC=golang-codereviews
https://golang.org/cl/138280043
Rob Pike 11 vuotta sitten
vanhempi
commit
477fd0357c
4 muutettua tiedostoa jossa 53 lisäystä ja 19 poistoa
  1. 8 0
      plan9/asm.s
  2. 6 0
      plan9/mksyscall.pl
  3. 28 18
      plan9/zsyscall_plan9_386.go
  4. 11 1
      plan9/zsyscall_plan9_amd64.go

+ 8 - 0
plan9/asm.s

@@ -0,0 +1,8 @@
+// Copyright 2014 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+#include "textflag.h"
+
+TEXT ·use(SB),NOSPLIT,$0
+	RET

+ 6 - 0
plan9/mksyscall.pl

@@ -132,6 +132,7 @@ while(<>) {
 
 	# Prepare arguments to Syscall.
 	my @args = ();
+	my @uses = ();
 	my $n = 0;
 	foreach my $p (@in) {
 		my ($name, $type) = parseparam($p);
@@ -142,12 +143,14 @@ while(<>) {
 			$text .= "\t_p$n, $errvar = BytePtrFromString($name)\n";
 			$text .= "\tif $errvar != nil {\n\t\treturn\n\t}\n";
 			push @args, "uintptr(unsafe.Pointer(_p$n))";
+			push @uses, "use(unsafe.Pointer(_p$n))";
 			$n++;
 		} elsif($type eq "string") {
 			print STDERR "$ARGV:$.: $func uses string arguments, but has no error return\n";
 			$text .= "\tvar _p$n *byte\n";
 			$text .= "\t_p$n, _ = BytePtrFromString($name)\n";
 			push @args, "uintptr(unsafe.Pointer(_p$n))";
+			push @uses, "use(unsafe.Pointer(_p$n))";
 			$n++;
 		} elsif($type =~ /^\[\](.*)/) {
 			# Convert slice into pointer, length.
@@ -278,6 +281,9 @@ while(<>) {
 	} else {
 		$text .= "\t$ret[0], $ret[1], $ret[2] := $call\n";
 	}
+	foreach my $use (@uses) {
+		$text .= "\t$use\n";
+	}
 	$text .= $body;
 	
 	if ($plan9 && $ret[2] eq "e1") {

+ 28 - 18
plan9/zsyscall_plan9_386.go

@@ -1,4 +1,4 @@
-// mksyscall.pl -l32 -plan9 syscall_plan9.go syscall_plan9_386.go
+// mksyscall.pl -l32 -plan9 syscall_plan9.go
 // MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
 
 package plan9
@@ -15,7 +15,7 @@ func fd2path(fd int, buf []byte) (err error) {
 		_p0 = unsafe.Pointer(&_zero)
 	}
 	r0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
-	if int(r0) == -1 {
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -25,7 +25,7 @@ func fd2path(fd int, buf []byte) (err error) {
 
 func pipe(p *[2]_C_int) (err error) {
 	r0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
-	if int(r0) == -1 {
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -42,7 +42,7 @@ func await(s []byte) (n int, err error) {
 	}
 	r0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0)
 	n = int(r0)
-	if int(r0) == -1 {
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -53,7 +53,7 @@ func await(s []byte) (n int, err error) {
 func Dup(oldfd int, newfd int) (fd int, err error) {
 	r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0)
 	fd = int(r0)
-	if int(r0) == -1 {
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -68,8 +68,9 @@ func Open(path string, mode int) (fd int, err error) {
 		return
 	}
 	r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+	use(unsafe.Pointer(_p0))
 	fd = int(r0)
-	if int(r0) == -1 {
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -84,8 +85,9 @@ func Create(path string, mode int, perm uint32) (fd int, err error) {
 		return
 	}
 	r0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+	use(unsafe.Pointer(_p0))
 	fd = int(r0)
-	if int(r0) == -1 {
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -100,7 +102,8 @@ func Remove(path string) (err error) {
 		return
 	}
 	r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)
-	if int(r0) == -1 {
+	use(unsafe.Pointer(_p0))
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -117,7 +120,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
 	}
 	r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
 	n = int(r0)
-	if int(r0) == -1 {
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -134,7 +137,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
 	}
 	r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
 	n = int(r0)
-	if int(r0) == -1 {
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -144,7 +147,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
 
 func Close(fd int) (err error) {
 	r0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
-	if int(r0) == -1 {
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -159,7 +162,8 @@ func Chdir(path string) (err error) {
 		return
 	}
 	r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
-	if int(r0) == -1 {
+	use(unsafe.Pointer(_p0))
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -179,7 +183,9 @@ func Bind(name string, old string, flag int) (err error) {
 		return
 	}
 	r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))
-	if int(r0) == -1 {
+	use(unsafe.Pointer(_p0))
+	use(unsafe.Pointer(_p1))
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -199,7 +205,9 @@ func Mount(fd int, afd int, old string, flag int, aname string) (err error) {
 		return
 	}
 	r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)
-	if int(r0) == -1 {
+	use(unsafe.Pointer(_p0))
+	use(unsafe.Pointer(_p1))
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -220,8 +228,9 @@ func Stat(path string, edir []byte) (n int, err error) {
 		_p1 = unsafe.Pointer(&_zero)
 	}
 	r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))
+	use(unsafe.Pointer(_p0))
 	n = int(r0)
-	if int(r0) == -1 {
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -238,7 +247,7 @@ func Fstat(fd int, edir []byte) (n int, err error) {
 	}
 	r0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))
 	n = int(r0)
-	if int(r0) == -1 {
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -259,7 +268,8 @@ func Wstat(path string, edir []byte) (err error) {
 		_p1 = unsafe.Pointer(&_zero)
 	}
 	r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))
-	if int(r0) == -1 {
+	use(unsafe.Pointer(_p0))
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return
@@ -275,7 +285,7 @@ func Fwstat(fd int, edir []byte) (err error) {
 		_p0 = unsafe.Pointer(&_zero)
 	}
 	r0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))
-	if int(r0) == -1 {
+	if int32(r0) == -1 {
 		err = e1
 	}
 	return

+ 11 - 1
plan9/zsyscall_plan9_amd64.go

@@ -1,4 +1,4 @@
-// mksyscall.pl -l32 -plan9 syscall_plan9.go syscall_plan9_amd64.go
+// mksyscall.pl -l32 -plan9 syscall_plan9.go
 // MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
 
 package plan9
@@ -68,6 +68,7 @@ func Open(path string, mode int) (fd int, err error) {
 		return
 	}
 	r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+	use(unsafe.Pointer(_p0))
 	fd = int(r0)
 	if int32(r0) == -1 {
 		err = e1
@@ -84,6 +85,7 @@ func Create(path string, mode int, perm uint32) (fd int, err error) {
 		return
 	}
 	r0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+	use(unsafe.Pointer(_p0))
 	fd = int(r0)
 	if int32(r0) == -1 {
 		err = e1
@@ -100,6 +102,7 @@ func Remove(path string) (err error) {
 		return
 	}
 	r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)
+	use(unsafe.Pointer(_p0))
 	if int32(r0) == -1 {
 		err = e1
 	}
@@ -159,6 +162,7 @@ func Chdir(path string) (err error) {
 		return
 	}
 	r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
+	use(unsafe.Pointer(_p0))
 	if int32(r0) == -1 {
 		err = e1
 	}
@@ -179,6 +183,8 @@ func Bind(name string, old string, flag int) (err error) {
 		return
 	}
 	r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))
+	use(unsafe.Pointer(_p0))
+	use(unsafe.Pointer(_p1))
 	if int32(r0) == -1 {
 		err = e1
 	}
@@ -199,6 +205,8 @@ func Mount(fd int, afd int, old string, flag int, aname string) (err error) {
 		return
 	}
 	r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)
+	use(unsafe.Pointer(_p0))
+	use(unsafe.Pointer(_p1))
 	if int32(r0) == -1 {
 		err = e1
 	}
@@ -220,6 +228,7 @@ func Stat(path string, edir []byte) (n int, err error) {
 		_p1 = unsafe.Pointer(&_zero)
 	}
 	r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))
+	use(unsafe.Pointer(_p0))
 	n = int(r0)
 	if int32(r0) == -1 {
 		err = e1
@@ -259,6 +268,7 @@ func Wstat(path string, edir []byte) (err error) {
 		_p1 = unsafe.Pointer(&_zero)
 	}
 	r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))
+	use(unsafe.Pointer(_p0))
 	if int32(r0) == -1 {
 		err = e1
 	}