12345678910111213141516171819202122232425262728293031323334353637 |
- package sysx
- import (
- "syscall"
- "unsafe"
- )
- var _zero uintptr
- // use is a no-op, but the compiler cannot see that it is.
- // Calling use(p) ensures that p is kept live until that point.
- //go:noescape
- func use(p unsafe.Pointer)
- // 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
- }
|