Commit 8fdc90ac authored by Akshat Kumar's avatar Akshat Kumar Committed by Rob Pike

pkg/syscall: Plan 9, 64-bit: Update error checks from sys calls.

The system calls return 32-bit integers. With the recent change
in size of `int' in Go for amd64, the type conversion was not
catching `-1' return values. This change makes the conversion
explicitly `int32'.

R=rsc, rminnich, npe, r
CC=golang-dev
https://golang.org/cl/6576057
parent a7d4c3f4
...@@ -257,7 +257,7 @@ while(<>) { ...@@ -257,7 +257,7 @@ while(<>) {
$text .= $body; $text .= $body;
if ($plan9 && $ret[2] eq "e1") { if ($plan9 && $ret[2] eq "e1") {
$text .= "\tif int(r0) == -1 {\n"; $text .= "\tif int32(r0) == -1 {\n";
$text .= "\t\terr = e1\n"; $text .= "\t\terr = e1\n";
$text .= "\t}\n"; $text .= "\t}\n";
} elsif ($do_errno) { } elsif ($do_errno) {
......
// mksyscall.pl -l32 -plan9 syscall_plan9.go syscall_plan9_386.go // mksyscall.pl -l32 -plan9 syscall_plan9.go syscall_plan9_amd64.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT // MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
package syscall package syscall
...@@ -7,13 +7,6 @@ import "unsafe" ...@@ -7,13 +7,6 @@ import "unsafe"
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func exits(msg *byte) {
Syscall(SYS_EXITS, uintptr(unsafe.Pointer(msg)), 0, 0)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fd2path(fd int, buf []byte) (err error) { func fd2path(fd int, buf []byte) (err error) {
var _p0 unsafe.Pointer var _p0 unsafe.Pointer
if len(buf) > 0 { if len(buf) > 0 {
...@@ -22,7 +15,7 @@ func fd2path(fd int, buf []byte) (err error) { ...@@ -22,7 +15,7 @@ func fd2path(fd int, buf []byte) (err error) {
_p0 = unsafe.Pointer(&_zero) _p0 = unsafe.Pointer(&_zero)
} }
r0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf))) r0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -32,7 +25,7 @@ func fd2path(fd int, buf []byte) (err error) { ...@@ -32,7 +25,7 @@ func fd2path(fd int, buf []byte) (err error) {
func pipe(p *[2]_C_int) (err error) { func pipe(p *[2]_C_int) (err error) {
r0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) r0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -49,7 +42,7 @@ func await(s []byte) (n int, err error) { ...@@ -49,7 +42,7 @@ func await(s []byte) (n int, err error) {
} }
r0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0) r0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0)
n = int(r0) n = int(r0)
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -60,7 +53,7 @@ func await(s []byte) (n int, err error) { ...@@ -60,7 +53,7 @@ func await(s []byte) (n int, err error) {
func Dup(oldfd int, newfd int) (fd int, err error) { func Dup(oldfd int, newfd int) (fd int, err error) {
r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0) r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0)
fd = int(r0) fd = int(r0)
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -69,9 +62,14 @@ func Dup(oldfd int, newfd int) (fd int, err error) { ...@@ -69,9 +62,14 @@ func Dup(oldfd int, newfd int) (fd int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Open(path string, mode int) (fd int, err error) { func Open(path string, mode int) (fd int, err error) {
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(mode), 0) var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
fd = int(r0) fd = int(r0)
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -80,9 +78,14 @@ func Open(path string, mode int) (fd int, err error) { ...@@ -80,9 +78,14 @@ func Open(path string, mode int) (fd int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Create(path string, mode int, perm uint32) (fd int, err error) { func Create(path string, mode int, perm uint32) (fd int, err error) {
r0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(mode), uintptr(perm)) var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
r0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
fd = int(r0) fd = int(r0)
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -91,8 +94,13 @@ func Create(path string, mode int, perm uint32) (fd int, err error) { ...@@ -91,8 +94,13 @@ func Create(path string, mode int, perm uint32) (fd int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Remove(path string) (err error) { func Remove(path string) (err error) {
r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(StringBytePtr(path))), 0, 0) var _p0 *byte
if int(r0) == -1 { _p0, err = BytePtrFromString(path)
if err != nil {
return
}
r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)
if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -109,7 +117,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { ...@@ -109,7 +117,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) r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
n = int(r0) n = int(r0)
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -126,7 +134,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ...@@ -126,7 +134,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) r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
n = int(r0) n = int(r0)
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -136,7 +144,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ...@@ -136,7 +144,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
func Close(fd int) (err error) { func Close(fd int) (err error) {
r0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) r0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -145,8 +153,13 @@ func Close(fd int) (err error) { ...@@ -145,8 +153,13 @@ func Close(fd int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Chdir(path string) (err error) { func Chdir(path string) (err error) {
r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(StringBytePtr(path))), 0, 0) var _p0 *byte
if int(r0) == -1 { _p0, err = BytePtrFromString(path)
if err != nil {
return
}
r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -155,8 +168,18 @@ func Chdir(path string) (err error) { ...@@ -155,8 +168,18 @@ func Chdir(path string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Bind(name string, old string, flag int) (err error) { func Bind(name string, old string, flag int) (err error) {
r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(StringBytePtr(name))), uintptr(unsafe.Pointer(StringBytePtr(old))), uintptr(flag)) var _p0 *byte
if int(r0) == -1 { _p0, err = BytePtrFromString(name)
if err != nil {
return
}
var _p1 *byte
_p1, err = BytePtrFromString(old)
if err != nil {
return
}
r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))
if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -165,8 +188,18 @@ func Bind(name string, old string, flag int) (err error) { ...@@ -165,8 +188,18 @@ func Bind(name string, old string, flag int) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Mount(fd int, afd int, old string, flag int, aname string) (err error) { func Mount(fd int, afd int, old string, flag int, aname string) (err error) {
r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(StringBytePtr(old))), uintptr(flag), uintptr(unsafe.Pointer(StringBytePtr(aname))), 0) var _p0 *byte
if int(r0) == -1 { _p0, err = BytePtrFromString(old)
if err != nil {
return
}
var _p1 *byte
_p1, err = BytePtrFromString(aname)
if err != nil {
return
}
r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)
if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -175,15 +208,20 @@ func Mount(fd int, afd int, old string, flag int, aname string) (err error) { ...@@ -175,15 +208,20 @@ func Mount(fd int, afd int, old string, flag int, aname string) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Stat(path string, edir []byte) (n int, err error) { func Stat(path string, edir []byte) (n int, err error) {
var _p0 unsafe.Pointer var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
var _p1 unsafe.Pointer
if len(edir) > 0 { if len(edir) > 0 {
_p0 = unsafe.Pointer(&edir[0]) _p1 = unsafe.Pointer(&edir[0])
} else { } else {
_p0 = unsafe.Pointer(&_zero) _p1 = unsafe.Pointer(&_zero)
} }
r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(_p0), uintptr(len(edir))) r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))
n = int(r0) n = int(r0)
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -200,7 +238,7 @@ func Fstat(fd int, edir []byte) (n int, err error) { ...@@ -200,7 +238,7 @@ func Fstat(fd int, edir []byte) (n int, err error) {
} }
r0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) r0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))
n = int(r0) n = int(r0)
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -209,14 +247,19 @@ func Fstat(fd int, edir []byte) (n int, err error) { ...@@ -209,14 +247,19 @@ func Fstat(fd int, edir []byte) (n int, err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Wstat(path string, edir []byte) (err error) { func Wstat(path string, edir []byte) (err error) {
var _p0 unsafe.Pointer var _p0 *byte
_p0, err = BytePtrFromString(path)
if err != nil {
return
}
var _p1 unsafe.Pointer
if len(edir) > 0 { if len(edir) > 0 {
_p0 = unsafe.Pointer(&edir[0]) _p1 = unsafe.Pointer(&edir[0])
} else { } else {
_p0 = unsafe.Pointer(&_zero) _p1 = unsafe.Pointer(&_zero)
} }
r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(_p0), uintptr(len(edir))) r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
...@@ -232,7 +275,7 @@ func Fwstat(fd int, edir []byte) (err error) { ...@@ -232,7 +275,7 @@ func Fwstat(fd int, edir []byte) (err error) {
_p0 = unsafe.Pointer(&_zero) _p0 = unsafe.Pointer(&_zero)
} }
r0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) r0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))
if int(r0) == -1 { if int32(r0) == -1 {
err = e1 err = e1
} }
return return
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment