| // Copyright 2019 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. |
| |
| //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris |
| |
| package poll |
| |
| import "syscall" |
| |
| // Do the interface allocations only once for common |
| // Errno values. |
| var ( |
| errEAGAIN error = syscall.EAGAIN |
| errEINVAL error = syscall.EINVAL |
| errENOENT error = syscall.ENOENT |
| ) |
| |
| // errnoErr returns common boxed Errno values, to prevent |
| // allocations at runtime. |
| func errnoErr(e syscall.Errno) error { |
| switch e { |
| case 0: |
| return nil |
| case syscall.EAGAIN: |
| return errEAGAIN |
| case syscall.EINVAL: |
| return errEINVAL |
| case syscall.ENOENT: |
| return errENOENT |
| } |
| return e |
| } |