summaryrefslogtreecommitdiff
path: root/libgo/go/syscall/syscall_errno.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/syscall/syscall_errno.go')
-rw-r--r--libgo/go/syscall/syscall_errno.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/libgo/go/syscall/syscall_errno.go b/libgo/go/syscall/syscall_errno.go
new file mode 100644
index 00000000000..810572f58a9
--- /dev/null
+++ b/libgo/go/syscall/syscall_errno.go
@@ -0,0 +1,26 @@
+// Copyright 2009 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
+
+// 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 {
+ return Errstr(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
+}