gcc/libgo/go/os/error_plan9.go
Ian Lance Taylor 2fd401c8f1 libgo: Update to weekly.2011-11-02.
From-SVN: r181964
2011-12-03 02:17:34 +00:00

66 lines
1.8 KiB
Go

// Copyright 2011 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 os
import (
"errors"
"syscall"
)
// SyscallError records an error from a specific system call.
type SyscallError struct {
Syscall string
Err string
}
func (e *SyscallError) Error() string { return e.Syscall + ": " + e.Err }
// Note: If the name of the function NewSyscallError changes,
// pkg/go/doc/doc.go should be adjusted since it hardwires
// this name in a heuristic.
// NewSyscallError returns, as an error, a new SyscallError
// with the given system call name and error details.
// As a convenience, if err is nil, NewSyscallError returns nil.
func NewSyscallError(syscall string, err syscall.Error) error {
if err == nil {
return nil
}
return &SyscallError{syscall, err.String()}
}
var (
Eshortstat = errors.New("stat buffer too small")
Ebadstat = errors.New("malformed stat buffer")
Ebadfd = errors.New("fd out of range or not open")
Ebadarg = errors.New("bad arg in system call")
Enotdir = errors.New("not a directory")
Enonexist = errors.New("file does not exist")
Eexist = errors.New("file already exists")
Eio = errors.New("i/o error")
Eperm = errors.New("permission denied")
EINVAL = Ebadarg
ENOTDIR = Enotdir
ENOENT = Enonexist
EEXIST = Eexist
EIO = Eio
EACCES = Eperm
EPERM = Eperm
EISDIR = syscall.EISDIR
EBADF = errors.New("bad file descriptor")
ENAMETOOLONG = errors.New("file name too long")
ERANGE = errors.New("math result not representable")
EPIPE = errors.New("Broken Pipe")
EPLAN9 = errors.New("not supported by plan 9")
)
func iserror(err syscall.Error) bool {
return err != nil
}
func Errno(e syscall.Error) syscall.Error { return e }