...
1 package sys
2
3 import "syscall"
4
5
6
7
8
9 const (
10
11
12 _ERROR_INVALID_HANDLE = syscall.Errno(6)
13
14
15
16 _ERROR_INVALID_NAME = syscall.Errno(0x7B)
17
18
19
20 _ERROR_NEGATIVE_SEEK = syscall.Errno(0x83)
21
22
23
24 _ERROR_DIRECTORY = syscall.Errno(0x10B)
25
26
27
28 _ERROR_INVALID_SOCKET = syscall.Errno(0x2736)
29 )
30
31 func errorToErrno(err error) Errno {
32 switch err := err.(type) {
33 case Errno:
34 return err
35 case syscall.Errno:
36
37 switch err {
38 case syscall.ERROR_ALREADY_EXISTS:
39 return EEXIST
40 case _ERROR_DIRECTORY:
41 return ENOTDIR
42 case syscall.ERROR_DIR_NOT_EMPTY:
43 return ENOTEMPTY
44 case syscall.ERROR_FILE_EXISTS:
45 return EEXIST
46 case _ERROR_INVALID_HANDLE, _ERROR_INVALID_SOCKET:
47 return EBADF
48 case syscall.ERROR_ACCESS_DENIED:
49
50
51 return EBADF
52 case syscall.ERROR_PRIVILEGE_NOT_HELD:
53 return EPERM
54 case _ERROR_NEGATIVE_SEEK, _ERROR_INVALID_NAME:
55 return EINVAL
56 }
57 errno, _ := syscallToErrno(err)
58 return errno
59 default:
60 return EIO
61 }
62 }
63
View as plain text