Revision: 399daa14ca
Author: Ian Lance Taylor <
ia...@golang.org>
Date: Tue Sep 21 06:49:56 2010
Log: syscall: Use vsyscall for syscall.Gettimeofday and .Time on linux
amd64.
Regenerate zsyscall_linux_*.go files with recent changes to
mksyscall.sh.
Add socketpair to syscall_linux_amd64.go; for some reason it
was in the generated file but not in the source file.
R=rsc, r2
CC=golang-dev
http://codereview.appspot.com/2190044
http://code.google.com/p/go/source/detail?r=399daa14ca
Modified:
/src/pkg/syscall/asm_linux_amd64.s
/src/pkg/syscall/syscall_linux.go
/src/pkg/syscall/syscall_linux_386.go
/src/pkg/syscall/syscall_linux_amd64.go
/src/pkg/syscall/syscall_linux_arm.go
/src/pkg/syscall/zsyscall_linux_386.go
/src/pkg/syscall/zsyscall_linux_amd64.go
/src/pkg/syscall/zsyscall_linux_arm.go
=======================================
--- /src/pkg/syscall/asm_linux_amd64.s Mon Jan 25 18:52:55 2010
+++ /src/pkg/syscall/asm_linux_amd64.s Tue Sep 21 06:49:56 2010
@@ -82,3 +82,26 @@
MOVQ DX, 48(SP) // r2
MOVQ $0, 56(SP) // errno
RET
+
+TEXT ·Gettimeofday(SB),7,$0
+ MOVQ 8(SP), DI
+ MOVQ $0, SI
+ MOVQ $0xffffffffff600000, AX
+ CALL AX
+
+ CMPQ AX, $0xfffffffffffff001
+ JLS ok7
+ NEGQ AX
+ MOVQ AX, 16(SP) // errno
+ RET
+ok7:
+ MOVQ $0, 16(SP) // errno
+ RET
+
+TEXT ·Time(SB),7,$0
+ MOVQ 8(SP), DI
+ MOVQ $0xffffffffff600400, AX
+ CALL AX
+ MOVQ AX, 16(SP) // tt
+ MOVQ $0, 24(SP) // errno
+ RET
=======================================
--- /src/pkg/syscall/syscall_linux.go Fri Aug 20 06:12:21 2010
+++ /src/pkg/syscall/syscall_linux.go Tue Sep 21 06:49:56 2010
@@ -593,7 +593,6 @@
//sys Getrlimit(resource int, rlim *Rlimit) (errno int)
//sys Getrusage(who int, rusage *Rusage) (errno int)
//sys Gettid() (tid int)
-//sys Gettimeofday(tv *Timeval) (errno int)
//sys Kill(pid int, sig int) (errno int)
//sys Klogctl(typ int, buf []byte) (n int, errno int) = SYS_SYSLOG
//sys Link(oldpath string, newpath string) (errno int)
@@ -624,7 +623,6 @@
//sys Sysinfo(info *Sysinfo_t) (errno int)
//sys Tee(rfd int, wfd int, len int, flags int) (n int64, errno int)
//sys Tgkill(tgid int, tid int, sig int) (errno int)
-//sys Time(t *Time_t) (tt Time_t, errno int)
//sys Times(tms *Tms) (ticks uintptr, errno int)
//sys Truncate(path string, length int64) (errno int)
//sys Umask(mask int) (oldmask int)
=======================================
--- /src/pkg/syscall/syscall_linux_386.go Fri Aug 20 06:12:21 2010
+++ /src/pkg/syscall/syscall_linux_386.go Tue Sep 21 06:49:56 2010
@@ -55,6 +55,10 @@
// Implemented in assembly to avoid allocation.
func Seek(fd int, offset int64, whence int) (newoffset int64, errno int)
+// Vsyscalls on amd64.
+//sys Gettimeofday(tv *Timeval) (errno int)
+//sys Time(t *Time_t) (tt Time_t, errno int)
+
// On x86 Linux, all the socket calls go through an extra indirection,
// I think because the 5-register system call interface can't handle
// the 6-argument calls like sendto and recvfrom. Instead the
=======================================
--- /src/pkg/syscall/syscall_linux_amd64.go Tue Dec 15 15:40:16 2009
+++ /src/pkg/syscall/syscall_linux_amd64.go Tue Sep 21 06:49:56 2010
@@ -37,12 +37,16 @@
//sys setgroups(n int, list *_Gid_t) (errno int)
//sys setsockopt(s int, level int, name int, val uintptr, vallen int)
(errno int)
//sys socket(domain int, typ int, proto int) (fd int, errno int)
+//sys socketpair(domain int, typ int, proto int, fd *[2]int) (errno int)
//sys getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno
int)
//sys getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno
int)
//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen
*_Socklen) (n int, errno int)
//sys sendto(s int, buf []byte, flags int, to uintptr, addrlen _Socklen)
(errno int)
func Getpagesize() int { return 4096 }
+
+func Gettimeofday(tv *Timeval) (errno int)
+func Time(t *Time_t) (tt Time_t, errno int)
func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 +
int64(ts.Nsec) }
=======================================
--- /src/pkg/syscall/syscall_linux_arm.go Tue Sep 7 06:23:49 2010
+++ /src/pkg/syscall/syscall_linux_arm.go Tue Sep 21 06:49:56 2010
@@ -58,6 +58,10 @@
//sys Stat(path string, stat *Stat_t) (errno int) = SYS_STAT64
//sys Statfs(path string, buf *Statfs_t) (errno int) = SYS_STATFS64
+// Vsyscalls on amd64.
+//sys Gettimeofday(tv *Timeval) (errno int)
+//sys Time(t *Time_t) (tt Time_t, errno int)
+
// TODO(kaib): add support for tracing
func (r *PtraceRegs) PC() uint64 { return 0 }
=======================================
--- /src/pkg/syscall/zsyscall_linux_386.go Tue Aug 3 15:34:52 2010
+++ /src/pkg/syscall/zsyscall_linux_386.go Tue Sep 21 06:49:56 2010
@@ -38,11 +38,11 @@
}
func Getcwd(buf []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(unsafe.Pointer(_p0)),
uintptr(len(buf)), 0)
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
n = int(r0)
errno = int(e1)
return
@@ -139,11 +139,11 @@
}
func EpollWait(epfd int, events []EpollEvent, msec int) (n int, errno int)
{
- var _p0 *EpollEvent
+ var _p0 unsafe.Pointer
if len(events) > 0 {
- _p0 = &events[0]
- }
- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(events)), uintptr(msec), 0, 0)
+ _p0 = unsafe.Pointer(&events[0])
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0),
uintptr(len(events)), uintptr(msec), 0, 0)
n = int(r0)
errno = int(e1)
return
@@ -216,11 +216,11 @@
}
func Getdents(fd int, buf []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)))
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0),
uintptr(len(buf)))
n = int(r0)
errno = int(e1)
return
@@ -268,12 +268,6 @@
tid = int(r0)
return
}
-
-func Gettimeofday(tv *Timeval) (errno int) {
- _, _, e1 := Syscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
- errno = int(e1)
- return
-}
func Kill(pid int, sig int) (errno int) {
_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
@@ -282,11 +276,11 @@
}
func Klogctl(typ int, buf []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ),
uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)))
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0),
uintptr(len(buf)))
n = int(r0)
errno = int(e1)
return
@@ -341,44 +335,44 @@
}
func Pread(fd int, p []byte, offset int64) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset),
uintptr(offset>>32), 0)
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0),
uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
n = int(r0)
errno = int(e1)
return
}
func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset),
uintptr(offset>>32), 0)
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0),
uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
n = int(r0)
errno = int(e1)
return
}
func Read(fd int, p []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(_p0)),
uintptr(len(p)))
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
n = int(r0)
errno = int(e1)
return
}
func Readlink(path string, buf []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- r0, _, e1 := Syscall(SYS_READLINK,
uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(_p0)),
uintptr(len(buf)))
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ r0, _, e1 := Syscall(SYS_READLINK,
uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(_p0),
uintptr(len(buf)))
n = int(r0)
errno = int(e1)
return
@@ -403,21 +397,21 @@
}
func Setdomainname(p []byte) (errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(unsafe.Pointer(_p0)),
uintptr(len(p)), 0)
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
errno = int(e1)
return
}
func Sethostname(p []byte) (errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(unsafe.Pointer(_p0)),
uintptr(len(p)), 0)
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
errno = int(e1)
return
}
@@ -489,13 +483,6 @@
errno = int(e1)
return
}
-
-func Time(t *Time_t) (tt Time_t, errno int) {
- r0, _, e1 := Syscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)
- tt = Time_t(r0)
- errno = int(e1)
- return
-}
func Times(tms *Tms) (ticks uintptr, errno int) {
r0, _, e1 := Syscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
@@ -553,11 +540,11 @@
}
func Write(fd int, p []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(p)))
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0),
uintptr(len(p)))
n = int(r0)
errno = int(e1)
return
@@ -722,3 +709,16 @@
errno = int(e1)
return
}
+
+func Gettimeofday(tv *Timeval) (errno int) {
+ _, _, e1 := Syscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ errno = int(e1)
+ return
+}
+
+func Time(t *Time_t) (tt Time_t, errno int) {
+ r0, _, e1 := Syscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)
+ tt = Time_t(r0)
+ errno = int(e1)
+ return
+}
=======================================
--- /src/pkg/syscall/zsyscall_linux_amd64.go Fri Aug 20 06:12:21 2010
+++ /src/pkg/syscall/zsyscall_linux_amd64.go Tue Sep 21 06:49:56 2010
@@ -38,11 +38,11 @@
}
func Getcwd(buf []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(unsafe.Pointer(_p0)),
uintptr(len(buf)), 0)
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
n = int(r0)
errno = int(e1)
return
@@ -139,11 +139,11 @@
}
func EpollWait(epfd int, events []EpollEvent, msec int) (n int, errno int)
{
- var _p0 *EpollEvent
+ var _p0 unsafe.Pointer
if len(events) > 0 {
- _p0 = &events[0]
- }
- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(events)), uintptr(msec), 0, 0)
+ _p0 = unsafe.Pointer(&events[0])
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0),
uintptr(len(events)), uintptr(msec), 0, 0)
n = int(r0)
errno = int(e1)
return
@@ -216,11 +216,11 @@
}
func Getdents(fd int, buf []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)))
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0),
uintptr(len(buf)))
n = int(r0)
errno = int(e1)
return
@@ -268,12 +268,6 @@
tid = int(r0)
return
}
-
-func Gettimeofday(tv *Timeval) (errno int) {
- _, _, e1 := Syscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
- errno = int(e1)
- return
-}
func Kill(pid int, sig int) (errno int) {
_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
@@ -282,11 +276,11 @@
}
func Klogctl(typ int, buf []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ),
uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)))
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0),
uintptr(len(buf)))
n = int(r0)
errno = int(e1)
return
@@ -341,44 +335,44 @@
}
func Pread(fd int, p []byte, offset int64) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0)
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0),
uintptr(len(p)), uintptr(offset), 0, 0)
n = int(r0)
errno = int(e1)
return
}
func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0)
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0),
uintptr(len(p)), uintptr(offset), 0, 0)
n = int(r0)
errno = int(e1)
return
}
func Read(fd int, p []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(_p0)),
uintptr(len(p)))
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
n = int(r0)
errno = int(e1)
return
}
func Readlink(path string, buf []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- r0, _, e1 := Syscall(SYS_READLINK,
uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(_p0)),
uintptr(len(buf)))
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ r0, _, e1 := Syscall(SYS_READLINK,
uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(_p0),
uintptr(len(buf)))
n = int(r0)
errno = int(e1)
return
@@ -403,21 +397,21 @@
}
func Setdomainname(p []byte) (errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(unsafe.Pointer(_p0)),
uintptr(len(p)), 0)
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
errno = int(e1)
return
}
func Sethostname(p []byte) (errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(unsafe.Pointer(_p0)),
uintptr(len(p)), 0)
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
errno = int(e1)
return
}
@@ -489,13 +483,6 @@
errno = int(e1)
return
}
-
-func Time(t *Time_t) (tt Time_t, errno int) {
- r0, _, e1 := Syscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)
- tt = Time_t(r0)
- errno = int(e1)
- return
-}
func Times(tms *Tms) (ticks uintptr, errno int) {
r0, _, e1 := Syscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
@@ -553,11 +540,11 @@
}
func Write(fd int, p []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(p)))
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0),
uintptr(len(p)))
n = int(r0)
errno = int(e1)
return
@@ -805,22 +792,22 @@
}
func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen
*_Socklen) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags),
uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0),
uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)),
uintptr(unsafe.Pointer(fromlen)))
n = int(r0)
errno = int(e1)
return
}
func sendto(s int, buf []byte, flags int, to uintptr, addrlen _Socklen)
(errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s),
uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags),
uintptr(to), uintptr(addrlen))
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0),
uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
errno = int(e1)
return
}
=======================================
--- /src/pkg/syscall/zsyscall_linux_arm.go Tue Sep 7 06:23:49 2010
+++ /src/pkg/syscall/zsyscall_linux_arm.go Tue Sep 21 06:49:56 2010
@@ -38,11 +38,11 @@
}
func Getcwd(buf []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- r0, _, e1 := Syscall(SYS_GETCWD, uintptr(unsafe.Pointer(_p0)),
uintptr(len(buf)), 0)
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
n = int(r0)
errno = int(e1)
return
@@ -139,11 +139,11 @@
}
func EpollWait(epfd int, events []EpollEvent, msec int) (n int, errno int)
{
- var _p0 *EpollEvent
+ var _p0 unsafe.Pointer
if len(events) > 0 {
- _p0 = &events[0]
- }
- r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(events)), uintptr(msec), 0, 0)
+ _p0 = unsafe.Pointer(&events[0])
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0),
uintptr(len(events)), uintptr(msec), 0, 0)
n = int(r0)
errno = int(e1)
return
@@ -216,11 +216,11 @@
}
func Getdents(fd int, buf []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)))
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0),
uintptr(len(buf)))
n = int(r0)
errno = int(e1)
return
@@ -268,12 +268,6 @@
tid = int(r0)
return
}
-
-func Gettimeofday(tv *Timeval) (errno int) {
- _, _, e1 := Syscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
- errno = int(e1)
- return
-}
func Kill(pid int, sig int) (errno int) {
_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)
@@ -282,11 +276,11 @@
}
func Klogctl(typ int, buf []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ),
uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)))
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0),
uintptr(len(buf)))
n = int(r0)
errno = int(e1)
return
@@ -341,44 +335,44 @@
}
func Pread(fd int, p []byte, offset int64) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset),
uintptr(offset>>32), 0)
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0),
uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
n = int(r0)
errno = int(e1)
return
}
func Pwrite(fd int, p []byte, offset int64) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset),
uintptr(offset>>32), 0)
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0),
uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
n = int(r0)
errno = int(e1)
return
}
func Read(fd int, p []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(_p0)),
uintptr(len(p)))
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
n = int(r0)
errno = int(e1)
return
}
func Readlink(path string, buf []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- r0, _, e1 := Syscall(SYS_READLINK,
uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(_p0)),
uintptr(len(buf)))
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ r0, _, e1 := Syscall(SYS_READLINK,
uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(_p0),
uintptr(len(buf)))
n = int(r0)
errno = int(e1)
return
@@ -403,21 +397,21 @@
}
func Setdomainname(p []byte) (errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(unsafe.Pointer(_p0)),
uintptr(len(p)), 0)
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)
errno = int(e1)
return
}
func Sethostname(p []byte) (errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(unsafe.Pointer(_p0)),
uintptr(len(p)), 0)
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)
errno = int(e1)
return
}
@@ -489,13 +483,6 @@
errno = int(e1)
return
}
-
-func Time(t *Time_t) (tt Time_t, errno int) {
- r0, _, e1 := Syscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)
- tt = Time_t(r0)
- errno = int(e1)
- return
-}
func Times(tms *Tms) (ticks uintptr, errno int) {
r0, _, e1 := Syscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)
@@ -553,11 +540,11 @@
}
func Write(fd int, p []byte) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(p)))
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0),
uintptr(len(p)))
n = int(r0)
errno = int(e1)
return
@@ -641,22 +628,22 @@
}
func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen
*_Socklen) (n int, errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(p) > 0 {
- _p0 = &p[0]
- }
- r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd),
uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags),
uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+ _p0 = unsafe.Pointer(&p[0])
+ }
+ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0),
uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)),
uintptr(unsafe.Pointer(fromlen)))
n = int(r0)
errno = int(e1)
return
}
func sendto(s int, buf []byte, flags int, to uintptr, addrlen _Socklen)
(errno int) {
- var _p0 *byte
+ var _p0 unsafe.Pointer
if len(buf) > 0 {
- _p0 = &buf[0]
- }
- _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s),
uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags),
uintptr(to), uintptr(addrlen))
+ _p0 = unsafe.Pointer(&buf[0])
+ }
+ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0),
uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
errno = int(e1)
return
}
@@ -806,3 +793,16 @@
errno = int(e1)
return
}
+
+func Gettimeofday(tv *Timeval) (errno int) {
+ _, _, e1 := Syscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ errno = int(e1)
+ return
+}
+
+func Time(t *Time_t) (tt Time_t, errno int) {
+ r0, _, e1 := Syscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)
+ tt = Time_t(r0)
+ errno = int(e1)
+ return
+}