* Wrapped
*/
-//sysnb pipe(p *[2]int) (errno int)
+//sysnb pipe(p *[2]int) (err error)
//pipe(p *[2]int) int
-func Pipe(p []int) (errno int) {
+func Pipe(p []int) (err error) {
if len(p) != 2 {
return EINVAL
}
var pp [2]int
- errno = pipe(&pp)
+ err = pipe(&pp)
p[0] = pp[0]
p[1] = pp[1]
return
}
-//sys utimes(path string, times *[2]Timeval) (errno int)
+//sys utimes(path string, times *[2]Timeval) (err error)
//utimes(path *byte, times *[2]Timeval) int
-func Utimes(path string, tv []Timeval) (errno int) {
+func Utimes(path string, tv []Timeval) (err error) {
if len(tv) != 2 {
return EINVAL
}
return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
}
-//sys getcwd(buf *byte, size Size_t) (errno int)
+//sys getcwd(buf *byte, size Size_t) (err error)
//getcwd(buf *byte, size Size_t) *byte
const ImplementsGetwd = true
-func Getwd() (ret string, errno int) {
+func Getwd() (ret string, err error) {
for len := Size_t(4096); ; len *= 2 {
b := make([]byte, len)
err := getcwd(&b[0], len)
- if err == 0 {
- i := 0;
+ if err == nil {
+ i := 0
for b[i] != 0 {
- i++;
+ i++
}
- return string(b[0:i]), 0;
+ return string(b[0:i]), nil
}
if err != ERANGE {
return "", err
}
}
-//sysnb getgroups(size int, list *Gid_t) (nn int, errno int)
+func Getcwd(buf []byte) (n int, err error) {
+ err = getcwd(&buf[0], Size_t(len(buf)))
+ if err == nil {
+ i := 0
+ for buf[i] != 0 {
+ i++
+ }
+ n = i + 1
+ }
+ return
+}
+
+//sysnb getgroups(size int, list *Gid_t) (nn int, err error)
//getgroups(size int, list *Gid_t) int
-func Getgroups() (gids []int, errno int) {
+func Getgroups() (gids []int, err error) {
n, err := getgroups(0, nil)
- if err != 0 {
- return nil, errno
+ if err != nil {
+ return nil, err
}
if n == 0 {
- return nil, 0
+ return nil, nil
}
- // Sanity check group count. Max is 1<<16 on Linux.
+ // Sanity check group count. Max is 1<<16 on GNU/Linux.
if n < 0 || n > 1<<20 {
return nil, EINVAL
}
a := make([]Gid_t, n)
n, err = getgroups(n, &a[0])
- if err != 0 {
- return nil, errno
+ if err != nil {
+ return nil, err
}
gids = make([]int, n)
for i, v := range a[0:n] {
return
}
-//sysnb setgroups(n int, list *Gid_t) (errno int)
+//sysnb setgroups(n int, list *Gid_t) (err error)
//setgroups(n Size_t, list *Gid_t) int
-func Setgroups(gids []int) (errno int) {
+func Setgroups(gids []int) (err error) {
if len(gids) == 0 {
return setgroups(0, nil)
}
func (w WaitStatus) StopSignal() int
func (w WaitStatus) TrapCause() int
-//sys Mkfifo(path string, mode uint32) (errno int)
+//sys Mkfifo(path string, mode uint32) (err error)
//mkfifo(path *byte, mode Mode_t) int
-//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, errno int)
+//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
//select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) int
const nfdbits = unsafe.Sizeof(fds_bits_type) * 8
}
func FDSet(fd int, set *FdSet) {
- set.Bits[fd / nfdbits] |= (1 << (uint)(fd % nfdbits))
+ set.Bits[fd/nfdbits] |= (1 << (uint)(fd%nfdbits))
}
func FDClr(fd int, set *FdSet) {
- set.Bits[fd / nfdbits] &^= (1 << (uint)(fd % nfdbits))
+ set.Bits[fd/nfdbits] &^= (1 << (uint)(fd%nfdbits))
}
func FDIsSet(fd int, set *FdSet) bool {
- if set.Bits[fd / nfdbits] & (1 << (uint)(fd % nfdbits)) != 0 {
+ if set.Bits[fd/nfdbits]&(1<<(uint)(fd%nfdbits)) != 0 {
return true
} else {
return false
}
}
-//sys Access(path string, mode uint32) (errno int)
+//sys Access(path string, mode uint32) (err error)
//access(path *byte, mode int) int
-//sys Chdir(path string) (errno int)
+//sys Chdir(path string) (err error)
//chdir(path *byte) int
-//sys Chmod(path string, mode uint32) (errno int)
+//sys Chmod(path string, mode uint32) (err error)
//chmod(path *byte, mode Mode_t) int
-//sys Chown(path string, uid int, gid int) (errno int)
+//sys Chown(path string, uid int, gid int) (err error)
//chown(path *byte, uid Uid_t, gid Gid_t) int
-//sys Chroot(path string) (errno int)
+//sys Chroot(path string) (err error)
//chroot(path *byte) int
-//sys Close(fd int) (errno int)
+//sys Close(fd int) (err error)
//close(fd int) int
-//sys Creat(path string, mode uint32) (fd int, errno int)
+//sys Creat(path string, mode uint32) (fd int, err error)
//creat(path *byte, mode Mode_t) int
-//sysnb Dup(oldfd int) (fd int, errno int)
+//sysnb Dup(oldfd int) (fd int, err error)
//dup(oldfd int) int
-//sysnb Dup2(oldfd int, newfd int) (fd int, errno int)
+//sysnb Dup2(oldfd int, newfd int) (err error)
//dup2(oldfd int, newfd int) int
//sys Exit(code int)
//exit(code int)
-//sys Fchdir(fd int) (errno int)
+//sys Fchdir(fd int) (err error)
//fchdir(fd int) int
-//sys Fchmod(fd int, mode uint32) (errno int)
+//sys Fchmod(fd int, mode uint32) (err error)
//fchmod(fd int, mode Mode_t) int
-//sys Fchown(fd int, uid int, gid int) (errno int)
+//sys Fchown(fd int, uid int, gid int) (err error)
//fchown(fd int, uid Uid_t, gid Gid_t) int
-//sys fcntl(fd int, cmd int, arg int) (val int, errno int)
+//sys fcntl(fd int, cmd int, arg int) (val int, err error)
//fcntl(fd int, cmd int, arg int) int
-//sys Fdatasync(fd int) (errno int)
+//sys Fdatasync(fd int) (err error)
//fdatasync(fd int) int
-//sys Flock(fd int, how int) (errno int)
-//flock(fd int, how int) int
-
-//sys Fsync(fd int) (errno int)
+//sys Fsync(fd int) (err error)
//fsync(fd int) int
//sysnb Getegid() (egid int)
//sysnb Getpagesize() (pagesize int)
//getpagesize() int
-//sysnb Getpgid(pid int) (pgid int, errno int)
+//sysnb Getpgid(pid int) (pgid int, err error)
//getpgid(pid Pid_t) Pid_t
//sysnb Getpgrp() (pid int)
//sysnb Getppid() (ppid int)
//getppid() Pid_t
-// FIXME: mksysinfo Rlimit
-// //sysnb Getrlimit(resource int, rlim *Rlimit) (errno int)
-// //getrlimit(resource int, rlim *Rlimit) int
+//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
+//getrlimit(resource int, rlim *Rlimit) int
-//sysnb Getrusage(who int, rusage *Rusage) (errno int)
+//sysnb Getrusage(who int, rusage *Rusage) (err error)
//getrusage(who int, rusage *Rusage) int
-//sysnb Gettid() (tid int)
-//gettid() Pid_t
-
-//sysnb gettimeofday(tv *Timeval, tz *byte) (errno int)
+//sysnb gettimeofday(tv *Timeval, tz *byte) (err error)
//gettimeofday(tv *Timeval, tz *byte) int
-func Gettimeofday(tv *Timeval) (errno int) {
+func Gettimeofday(tv *Timeval) (err error) {
return gettimeofday(tv, nil)
}
//sysnb Getuid() (uid int)
//getuid() Uid_t
-//sysnb Kill(pid int, sig int) (errno int)
+//sysnb Kill(pid int, sig int) (err error)
//kill(pid Pid_t, sig int) int
-//sys Lchown(path string, uid int, gid int) (errno int)
+//sys Lchown(path string, uid int, gid int) (err error)
//lchown(path *byte, uid Uid_t, gid Gid_t) int
-//sys Link(oldpath string, newpath string) (errno int)
+//sys Link(oldpath string, newpath string) (err error)
//link(oldpath *byte, newpath *byte) int
-//sys Mkdir(path string, mode uint32) (errno int)
+//sys Mkdir(path string, mode uint32) (err error)
//mkdir(path *byte, mode Mode_t) int
-//sys Mknod(path string, mode uint32, dev int) (errno int)
+//sys Mknod(path string, mode uint32, dev int) (err error)
//mknod(path *byte, mode Mode_t, dev _dev_t) int
-//sys Mount(source string, target string, fstype string, flags int, data string) (errno int)
+//sys Mount(source string, target string, fstype string, flags int, data string) (err error)
//mount(source *byte, target *byte, fstype *byte, flags _C_long, data *byte) int
-//sys Nanosleep(time *Timespec, leftover *Timespec) (errno int)
+//sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
//nanosleep(time *Timespec, leftover *Timespec) int
-//sys Pause() (errno int)
+//sys Pause() (err error)
//pause() int
-//sys Read(fd int, p []byte) (n int, errno int)
+//sys Read(fd int, p []byte) (n int, err error)
//read(fd int, buf *byte, count Size_t) Ssize_t
-//sys Readlink(path string, buf []byte) (n int, errno int)
+//sys Readlink(path string, buf []byte) (n int, err error)
//readlink(path *byte, buf *byte, bufsiz Size_t) Ssize_t
-//sys Rename(oldpath string, newpath string) (errno int)
+//sys Rename(oldpath string, newpath string) (err error)
//rename(oldpath *byte, newpath *byte) int
-//sys Rmdir(path string) (errno int)
+//sys Rmdir(path string) (err error)
//rmdir(path *byte) int
-//sys Setdomainname(p []byte) (errno int)
+//sys Setdomainname(p []byte) (err error)
//setdomainname(name *byte, len Size_t) int
-//sys Sethostname(p []byte) (errno int)
+//sys Sethostname(p []byte) (err error)
//sethostname(name *byte, len Size_t) int
-//sysnb Setgid(gid int) (errno int)
+//sysnb Setgid(gid int) (err error)
//setgid(gid Gid_t) int
-//sysnb Setregid(rgid int, egid int) (errno int)
+//sysnb Setregid(rgid int, egid int) (err error)
//setregid(rgid Gid_t, egid Gid_t) int
-//sysnb Setpgid(pid int, pgid int) (errno int)
+//sysnb Setpgid(pid int, pgid int) (err error)
//setpgid(pid Pid_t, pgid Pid_t) int
-//sysnb Setreuid(ruid int, euid int) (errno int)
+//sysnb Setreuid(ruid int, euid int) (err error)
//setreuid(ruid Uid_t, euid Uid_t) int
-// FIXME: mksysinfo Rlimit
-// //sysnb Setrlimit(resource int, rlim *Rlimit) (errno int)
-// //setrlimit(resource int, rlim *Rlimit) int
+//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
+//setrlimit(resource int, rlim *Rlimit) int
-//sysnb Setsid() (pid int, errno int)
+//sysnb Setsid() (pid int, err error)
//setsid() Pid_t
-//sysnb settimeofday(tv *Timeval, tz *byte) (errno int)
+//sysnb settimeofday(tv *Timeval, tz *byte) (err error)
//settimeofday(tv *Timeval, tz *byte) int
-func Settimeofday(tv *Timeval) (errno int) {
+func Settimeofday(tv *Timeval) (err error) {
return settimeofday(tv, nil)
}
-//sysnb Setuid(uid int) (errno int)
+//sysnb Setuid(uid int) (err error)
//setuid(uid Uid_t) int
-//sys Symlink(oldpath string, newpath string) (errno int)
+//sys Symlink(oldpath string, newpath string) (err error)
//symlink(oldpath *byte, newpath *byte) int
//sys Sync()
//sync()
-// FIXME: mksysinfo Time_t
-// //sysnb Time(t *Time_t) (tt Time_t, errno int)
-// //time(t *Time_t) Time_t
+//sysnb Time(t *Time_t) (tt Time_t, err error)
+//time(t *Time_t) Time_t
-// FIXME: mksysinfo Tms
-// //sysnb Times(tms *Tms) (ticks uintptr, errno int)
-// //times(tms *Tms) _clock_t
+//sysnb Times(tms *Tms) (ticks uintptr, err error)
+//times(tms *Tms) _clock_t
//sysnb Umask(mask int) (oldmask int)
-//umark(mask Mode_t) Mode_t
+//umask(mask Mode_t) Mode_t
-//sys Unlink(path string) (errno int)
+//sys Unlink(path string) (err error)
//unlink(path *byte) int
-// FIXME: mksysinfo Utimbuf
-// //sys Utime(path string, buf *Utimbuf) (errno int)
-// //utime(path *byte, buf *Utimbuf) int
+//sys Utime(path string, buf *Utimbuf) (err error)
+//utime(path *byte, buf *Utimbuf) int
-//sys Write(fd int, p []byte) (n int, errno int)
+//sys Write(fd int, p []byte) (n int, err error)
//write(fd int, buf *byte, count Size_t) Ssize_t
-//sys munmap(addr uintptr, length uintptr) (errno int)
+//sys munmap(addr uintptr, length uintptr) (err error)
//munmap(addr *byte, length Size_t) int
-//sys Madvise(b []byte, advice int) (errno int)
+//sys Madvise(b []byte, advice int) (err error)
//madvise(addr *byte, len Size_t, advice int) int
-//sys Mprotect(b []byte, prot int) (errno int)
+//sys Mprotect(b []byte, prot int) (err error)
//mprotect(addr *byte, len Size_t, prot int) int
-//sys Mlock(b []byte) (errno int)
+//sys Mlock(b []byte) (err error)
//mlock(addr *byte, len Size_t) int
-//sys Munlock(b []byte) (errno int)
+//sys Munlock(b []byte) (err error)
//munlock(addr *byte, len Size_t) int
-//sys Mlockall(flags int) (errno int)
+//sys Mlockall(flags int) (err error)
//mlockall(flags int) int
-//sys Munlockall() (errno int)
+//sys Munlockall() (err error)
//munlockall() int
func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
tv.Usec = Timeval_usec_t(nsec % 1e9 / 1e3)
return
}
+
+//sysnb Tcgetattr(fd int, p *Termios) (err error)
+//tcgetattr(fd int, p *Termios) int
+
+//sys Tcsetattr(fd int, actions int, p *Termios) (err error)
+//tcsetattr(fd int, actions int, p *Termios) int