diff options
Diffstat (limited to 'src/pkg/syscall/syscall_nacl.go')
-rw-r--r-- | src/pkg/syscall/syscall_nacl.go | 311 |
1 files changed, 0 insertions, 311 deletions
diff --git a/src/pkg/syscall/syscall_nacl.go b/src/pkg/syscall/syscall_nacl.go deleted file mode 100644 index c2788b20a..000000000 --- a/src/pkg/syscall/syscall_nacl.go +++ /dev/null @@ -1,311 +0,0 @@ -// Copyright 2013 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. - -package syscall - -import ( - "sync" - "unsafe" -) - -//sys naclClose(fd int) (err error) = sys_close -//sys Exit(code int) (err error) -//sys naclFstat(fd int, stat *Stat_t) (err error) = sys_fstat -//sys naclRead(fd int, b []byte) (n int, err error) = sys_read -//sys naclSeek(fd int, off *int64, whence int) (err error) = sys_lseek - -const direntSize = 8 + 8 + 2 + 256 - -// native_client/src/trusted/service_runtime/include/sys/dirent.h -type Dirent struct { - Ino int64 - Off int64 - Reclen uint16 - Name [256]byte -} - -func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) { - origlen := len(buf) - count = 0 - for max != 0 && len(buf) > 0 { - dirent := (*Dirent)(unsafe.Pointer(&buf[0])) - buf = buf[dirent.Reclen:] - if dirent.Ino == 0 { // File absent in directory. - continue - } - bytes := (*[512 + PathMax]byte)(unsafe.Pointer(&dirent.Name[0])) - var name = string(bytes[0:clen(bytes[:])]) - if name == "." || name == ".." { // Useless names - continue - } - max-- - count++ - names = append(names, name) - } - return origlen - len(buf), count, names -} - -func clen(n []byte) int { - for i := 0; i < len(n); i++ { - if n[i] == 0 { - return i - } - } - return len(n) -} - -const PathMax = 256 - -// An Errno is an unsigned number describing an error condition. -// It implements the error interface. The zero Errno is by convention -// a non-error, so code to convert from Errno to error should use: -// err = nil -// if errno != 0 { -// err = errno -// } -type Errno uintptr - -func (e Errno) Error() string { - if 0 <= int(e) && int(e) < len(errorstr) { - s := errorstr[e] - if s != "" { - return s - } - } - return "errno " + itoa(int(e)) -} - -func (e Errno) Temporary() bool { - return e == EINTR || e == EMFILE || e.Timeout() -} - -func (e Errno) Timeout() bool { - return e == EAGAIN || e == EWOULDBLOCK || e == ETIMEDOUT -} - -// A Signal is a number describing a process signal. -// It implements the os.Signal interface. -type Signal int - -const ( - _ Signal = iota - SIGCHLD - SIGINT - SIGKILL - SIGTRAP - SIGQUIT -) - -func (s Signal) Signal() {} - -func (s Signal) String() string { - if 0 <= s && int(s) < len(signals) { - str := signals[s] - if str != "" { - return str - } - } - return "signal " + itoa(int(s)) -} - -var signals = [...]string{} - -// File system - -const ( - Stdin = 0 - Stdout = 1 - Stderr = 2 -) - -// native_client/src/trusted/service_runtime/include/sys/fcntl.h -const ( - O_RDONLY = 0 - O_WRONLY = 1 - O_RDWR = 2 - O_ACCMODE = 3 - - O_CREAT = 0100 - O_CREATE = O_CREAT // for ken - O_TRUNC = 01000 - O_APPEND = 02000 - O_EXCL = 0200 - O_NONBLOCK = 04000 - O_NDELAY = O_NONBLOCK - O_SYNC = 010000 - O_FSYNC = O_SYNC - O_ASYNC = 020000 - - O_CLOEXEC = 0 - - FD_CLOEXEC = 1 -) - -// native_client/src/trusted/service_runtime/include/sys/fcntl.h -const ( - F_DUPFD = 0 - F_GETFD = 1 - F_SETFD = 2 - F_GETFL = 3 - F_SETFL = 4 - F_GETOWN = 5 - F_SETOWN = 6 - F_GETLK = 7 - F_SETLK = 8 - F_SETLKW = 9 - F_RGETLK = 10 - F_RSETLK = 11 - F_CNVT = 12 - F_RSETLKW = 13 - - F_RDLCK = 1 - F_WRLCK = 2 - F_UNLCK = 3 - F_UNLKSYS = 4 -) - -// native_client/src/trusted/service_runtime/include/bits/stat.h -const ( - S_IFMT = 0000370000 - S_IFSHM_SYSV = 0000300000 - S_IFSEMA = 0000270000 - S_IFCOND = 0000260000 - S_IFMUTEX = 0000250000 - S_IFSHM = 0000240000 - S_IFBOUNDSOCK = 0000230000 - S_IFSOCKADDR = 0000220000 - S_IFDSOCK = 0000210000 - - S_IFSOCK = 0000140000 - S_IFLNK = 0000120000 - S_IFREG = 0000100000 - S_IFBLK = 0000060000 - S_IFDIR = 0000040000 - S_IFCHR = 0000020000 - S_IFIFO = 0000010000 - - S_UNSUP = 0000370000 - - S_ISUID = 0004000 - S_ISGID = 0002000 - S_ISVTX = 0001000 - - S_IREAD = 0400 - S_IWRITE = 0200 - S_IEXEC = 0100 - - S_IRWXU = 0700 - S_IRUSR = 0400 - S_IWUSR = 0200 - S_IXUSR = 0100 - - S_IRWXG = 070 - S_IRGRP = 040 - S_IWGRP = 020 - S_IXGRP = 010 - - S_IRWXO = 07 - S_IROTH = 04 - S_IWOTH = 02 - S_IXOTH = 01 -) - -// native_client/src/trusted/service_runtime/include/sys/stat.h -// native_client/src/trusted/service_runtime/include/machine/_types.h -type Stat_t struct { - Dev int64 - Ino uint64 - Mode uint32 - Nlink uint32 - Uid uint32 - Gid uint32 - Rdev int64 - Size int64 - Blksize int32 - Blocks int32 - Atime int64 - AtimeNsec int64 - Mtime int64 - MtimeNsec int64 - Ctime int64 - CtimeNsec int64 -} - -// Processes -// Not supported on NaCl - just enough for package os. - -var ForkLock sync.RWMutex - -type WaitStatus uint32 - -func (w WaitStatus) Exited() bool { return false } -func (w WaitStatus) ExitStatus() int { return 0 } -func (w WaitStatus) Signaled() bool { return false } -func (w WaitStatus) Signal() Signal { return 0 } -func (w WaitStatus) CoreDump() bool { return false } -func (w WaitStatus) Stopped() bool { return false } -func (w WaitStatus) Continued() bool { return false } -func (w WaitStatus) StopSignal() Signal { return 0 } -func (w WaitStatus) TrapCause() int { return 0 } - -// XXX made up -type Rusage struct { - Utime Timeval - Stime Timeval -} - -// XXX made up -type ProcAttr struct { - Dir string - Env []string - Files []uintptr - Sys *SysProcAttr -} - -type SysProcAttr struct { -} - -// System - -func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) -func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) { return 0, 0, ENOSYS } -func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) { return 0, 0, ENOSYS } -func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) { - return 0, 0, ENOSYS -} - -func Sysctl(key string) (string, error) { - if key == "kern.hostname" { - return "naclbox", nil - } - return "", ENOSYS -} - -// Unimplemented Unix midden heap. - -const ImplementsGetwd = false - -func Getwd() (wd string, err error) { return "", ENOSYS } -func Getegid() int { return 1 } -func Geteuid() int { return 1 } -func Getgid() int { return 1 } -func Getgroups() ([]int, error) { return []int{1}, nil } -func Getpagesize() int { return 65536 } -func Getppid() int { return 2 } -func Getpid() int { return 3 } -func Getuid() int { return 1 } -func Kill(pid int, signum Signal) error { return ENOSYS } -func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { - return 0, ENOSYS -} -func StartProcess(argv0 string, argv []string, attr *ProcAttr) (pid int, handle uintptr, err error) { - return 0, 0, ENOSYS -} -func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { - return 0, ENOSYS -} -func RouteRIB(facility, param int) ([]byte, error) { return nil, ENOSYS } -func ParseRoutingMessage(b []byte) ([]RoutingMessage, error) { return nil, ENOSYS } -func ParseRoutingSockaddr(msg RoutingMessage) ([]Sockaddr, error) { return nil, ENOSYS } -func SysctlUint32(name string) (value uint32, err error) { return 0, ENOSYS } |