diff options
author | Russ Cox <rsc@golang.org> | 2009-06-16 17:17:02 -0700 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2009-06-16 17:17:02 -0700 |
commit | 67d5e00af1c62a237623278b0181b98f25a3179c (patch) | |
tree | e6f2ed8488a281a586664e0a0085aa6fe227365e /src/pkg/syscall/zsyscall_linux_386.go | |
parent | 16cf893acaf7106a53a595ac6ca736026a617f93 (diff) | |
download | golang-67d5e00af1c62a237623278b0181b98f25a3179c.tar.gz |
386 system call fixes:
* use 64-bit file system calls (Linux, Darwin)
* use 32-bit [sic] uid/gid calls (Linux)
* fix sockets on Linux
Darwin/386 works again.
Linux/386 is better but must never have worked;
there are still bugs surrounding the creation of new
threads in the runtime package.
R=austin
DELTA=1332 (673 added, 614 deleted, 45 changed)
OCL=30327
CL=30380
Diffstat (limited to 'src/pkg/syscall/zsyscall_linux_386.go')
-rw-r--r-- | src/pkg/syscall/zsyscall_linux_386.go | 269 |
1 files changed, 130 insertions, 139 deletions
diff --git a/src/pkg/syscall/zsyscall_linux_386.go b/src/pkg/syscall/zsyscall_linux_386.go index ef323b088..6e82bbb1b 100644 --- a/src/pkg/syscall/zsyscall_linux_386.go +++ b/src/pkg/syscall/zsyscall_linux_386.go @@ -1,4 +1,4 @@ -// mksyscall syscall_linux.go syscall_linux_386.go +// mksyscall -l32 syscall_linux.go syscall_linux_386.go // MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT package syscall @@ -35,19 +35,6 @@ func Getcwd(buf []byte) (n int, errno int) { return; } -func getgroups(n int, list *_Gid_t) (nn int, errno int) { - r0, r1, e1 := Syscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0); - nn = int(r0); - errno = int(e1); - return; -} - -func setgroups(n int, list *_Gid_t) (errno int) { - r0, r1, e1 := Syscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0); - errno = int(e1); - return; -} - func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, errno int) { r0, r1, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0); wpid = int(r0); @@ -86,12 +73,6 @@ func Chmod(path string, mode int) (errno int) { return; } -func Chown(path string, uid int, gid int) (errno int) { - r0, r1, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(uid), uintptr(gid)); - errno = int(e1); - return; -} - func Chroot(path string) (errno int) { r0, r1, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(StringBytePtr(path))), 0, 0); errno = int(e1); @@ -182,12 +163,6 @@ func Fchmodat(dirfd int, path string, mode int, flags int) (errno int) { return; } -func Fchown(fd int, uid int, gid int) (errno int) { - r0, r1, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)); - errno = int(e1); - return; -} - func Fchownat(dirfd int, path string, uid int, gid int, flags int) (errno int) { r0, r1, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(uid), uintptr(gid), uintptr(flags), 0); errno = int(e1); @@ -207,18 +182,6 @@ func Fdatasync(fd int) (errno int) { return; } -func Fstat(fd int, stat *Stat_t) (errno int) { - r0, r1, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0); - errno = int(e1); - return; -} - -func Fstatfs(fd int, buf *Statfs_t) (errno int) { - r0, r1, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0); - errno = int(e1); - return; -} - func Fsync(fd int) (errno int) { r0, r1, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0); errno = int(e1); @@ -240,24 +203,6 @@ func Getdents(fd int, buf []byte) (n int, errno int) { return; } -func Getegid() (egid int) { - r0, r1, e1 := Syscall(SYS_GETEGID, 0, 0, 0); - egid = int(r0); - return; -} - -func Geteuid() (euid int) { - r0, r1, e1 := Syscall(SYS_GETEUID, 0, 0, 0); - euid = int(r0); - return; -} - -func Getgid() (gid int) { - r0, r1, e1 := Syscall(SYS_GETGID, 0, 0, 0); - gid = int(r0); - return; -} - func Getpgid(pid int) (pgid int, errno int) { r0, r1, e1 := Syscall(SYS_GETPGID, uintptr(pid), 0, 0); pgid = int(r0); @@ -307,12 +252,6 @@ func Gettimeofday(tv *Timeval) (errno int) { return; } -func Getuid() (uid int) { - r0, r1, e1 := Syscall(SYS_GETUID, 0, 0, 0); - uid = int(r0); - return; -} - func Ioperm(from int, num int, on int) (errno int) { r0, r1, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)); errno = int(e1); @@ -340,24 +279,12 @@ func Klogctl(typ int, buf []byte) (n int, errno int) { return; } -func Lchown(path string, uid int, gid int) (errno int) { - r0, r1, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(uid), uintptr(gid)); - errno = int(e1); - return; -} - func Link(oldpath string, newpath string) (errno int) { r0, r1, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(StringBytePtr(oldpath))), uintptr(unsafe.Pointer(StringBytePtr(newpath))), 0); errno = int(e1); return; } -func Lstat(path string, stat *Stat_t) (errno int) { - r0, r1, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(stat)), 0); - errno = int(e1); - return; -} - func Mkdir(path string, mode int) (errno int) { r0, r1, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(mode), 0); errno = int(e1); @@ -468,13 +395,6 @@ func Rmdir(path string) (errno int) { return; } -func Seek(fd int, offset int64, whence int) (off int64, errno int) { - r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset >> 32), uintptr(whence), 0, 0); - off = int64(r0); - errno = int(e1); - return; -} - func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, errno int) { r0, r1, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0); n = int(r0); @@ -490,24 +410,6 @@ func Setdomainname(p []byte) (errno int) { return; } -func Setfsgid(gid int) (errno int) { - r0, r1, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0); - errno = int(e1); - return; -} - -func Setfsuid(uid int) (errno int) { - r0, r1, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0); - errno = int(e1); - return; -} - -func Setgid(gid int) (errno int) { - r0, r1, e1 := Syscall(SYS_SETGID, uintptr(gid), 0, 0); - errno = int(e1); - return; -} - func Sethostname(p []byte) (errno int) { var _p0 *byte; if len(p) > 0 { _p0 = &p[0]; } @@ -522,30 +424,6 @@ func Setpgid(pid int, pgid int) (errno int) { return; } -func Setregid(rgid int, egid int) (errno int) { - r0, r1, e1 := Syscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0); - errno = int(e1); - return; -} - -func Setresgid(rgid int, egid int, sgid int) (errno int) { - r0, r1, e1 := Syscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)); - errno = int(e1); - return; -} - -func Setresuid(ruid int, euid int, suid int) (errno int) { - r0, r1, e1 := Syscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)); - errno = int(e1); - return; -} - -func Setreuid(ruid int, euid int) (errno int) { - r0, r1, e1 := Syscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0); - errno = int(e1); - return; -} - func Setrlimit(resource int, rlim *Rlimit) (errno int) { r0, r1, e1 := Syscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0); errno = int(e1); @@ -572,20 +450,7 @@ func Setuid(uid int) (errno int) { func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, errno int) { r0, r1, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)); - n = int64(r0); - errno = int(e1); - return; -} - -func Stat(path string, stat *Stat_t) (errno int) { - r0, r1, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(stat)), 0); - errno = int(e1); - return; -} - -func Statfs(path string, buf *Statfs_t) (errno int) { - r0, r1, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(buf)), 0); - errno = int(e1); + n = int64(int64(r1)<<32 | int64(r0)); return; } @@ -614,8 +479,7 @@ func Sysinfo(info *Sysinfo_t) (errno int) { func Tee(rfd int, wfd int, len int, flags int) (n int64, errno int) { r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0); - n = int64(r0); - errno = int(e1); + n = int64(int64(r1)<<32 | int64(r0)); return; } @@ -716,5 +580,132 @@ func write(fd int, p *byte, np int) (n int, errno int) { return; } +func Chown(path string, uid int, gid int) (errno int) { + r0, r1, e1 := Syscall(SYS_CHOWN32, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(uid), uintptr(gid)); + errno = int(e1); + return; +} + +func Fchown(fd int, uid int, gid int) (errno int) { + r0, r1, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid)); + errno = int(e1); + return; +} + +func Fstat(fd int, stat *Stat_t) (errno int) { + r0, r1, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0); + errno = int(e1); + return; +} + +func Fstatfs(fd int, buf *Statfs_t) (errno int) { + r0, r1, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0); + errno = int(e1); + return; +} + +func Getegid() (egid int) { + r0, r1, e1 := Syscall(SYS_GETEGID32, 0, 0, 0); + egid = int(r0); + return; +} + +func Geteuid() (euid int) { + r0, r1, e1 := Syscall(SYS_GETEUID32, 0, 0, 0); + euid = int(r0); + return; +} + +func Getgid() (gid int) { + r0, r1, e1 := Syscall(SYS_GETGID32, 0, 0, 0); + gid = int(r0); + return; +} + +func Getuid() (uid int) { + r0, r1, e1 := Syscall(SYS_GETUID32, 0, 0, 0); + uid = int(r0); + return; +} + +func Lchown(path string, uid int, gid int) (errno int) { + r0, r1, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(uid), uintptr(gid)); + errno = int(e1); + return; +} + +func Lstat(path string, stat *Stat_t) (errno int) { + r0, r1, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(stat)), 0); + errno = int(e1); + return; +} + +func Setfsgid(gid int) (errno int) { + r0, r1, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0); + errno = int(e1); + return; +} + +func Setfsuid(uid int) (errno int) { + r0, r1, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0); + errno = int(e1); + return; +} + +func Setgid(gid int) (errno int) { + r0, r1, e1 := Syscall(SYS_SETGID32, uintptr(gid), 0, 0); + errno = int(e1); + return; +} + +func Setregid(rgid int, egid int) (errno int) { + r0, r1, e1 := Syscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0); + errno = int(e1); + return; +} + +func Setresgid(rgid int, egid int, sgid int) (errno int) { + r0, r1, e1 := Syscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid)); + errno = int(e1); + return; +} + +func Setresuid(ruid int, euid int, suid int) (errno int) { + r0, r1, e1 := Syscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid)); + errno = int(e1); + return; +} + +func Setreuid(ruid int, euid int) (errno int) { + r0, r1, e1 := Syscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0); + errno = int(e1); + return; +} + +func Stat(path string, stat *Stat_t) (errno int) { + r0, r1, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(stat)), 0); + errno = int(e1); + return; +} + +func Statfs(path string, buf *Statfs_t) (errno int) { + r0, r1, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(StringBytePtr(path))), uintptr(unsafe.Pointer(buf)), 0); + errno = int(e1); + return; +} + +func getgroups(n int, list *_Gid_t) (nn int, errno int) { + r0, r1, e1 := Syscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0); + nn = int(r0); + errno = int(e1); + return; +} + +func setgroups(n int, list *_Gid_t) (errno int) { + r0, r1, e1 := Syscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0); + errno = int(e1); + return; +} + |