summaryrefslogtreecommitdiff
path: root/modules/language/python/module/errno.scm
blob: 1b1a508359e9e2ec6a20a724d2f8e2b56fa00b04 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
(define-module (language python module errno)
  #:use-module (system foreign)
  #:use-module (rnrs bytevectors)
  #:use-module (oop pf-objects)
  #:export (errno set_errno errorcode))


(define errno
  (let ((f (dynamic-pointer "errno" (dynamic-link))))
    (lambda ()
      (pointer-address (dereference-pointer f)))))

(define set_errno
  (let* ((f (dynamic-pointer "errno" (dynamic-link)))
         (v (pointer->bytevector f 1)))
    (lambda (x)
      (bytevector-s8-set! v 0 x))))

(define errorcode (make-hash-table))

(define-syntax-rule (mk x n)
  (begin
    (if (defined? 'x)
        (define! 'x x)
        (define! 'x n))
    (export x)
    (pylist-set! errorcode n (symbol->string 'x))))

(mk EPERM    1)
(mk ENOENT   2)
(mk ESRCH    3)
(mk EINTR    4)
(mk EIO      5)
(mk ENXIO    6)
(mk E2BIG    7)
(mk ENOEXEC  8)
(mk EBADF    9)
(mk ECHILD   10)
(mk EAGAIN   11)
(mk ENOMEM   12)
(mk EACCES   13)
(mk EFAULT   14)
(mk ENOTBLK  15)
(mk EBUSY    16)
(mk EEXIST   17)
(mk EXDEV    18)
(mk ENODEV   19)
(mk ENOTDIR  20)
(mk EISDIR   21)
(mk EINVAL   22)
(mk ENFILE   23)
(mk EMFILE   24)
(mk ENOTTY   25)
(mk ETXTBSY  26)
(mk EFBIG    27)
(mk ENOSPC   28)
(mk ESPIPE   29)
(mk EROFS    30)
(mk EMLINK   31)
(mk EPIPE    32)
(mk EDOM     33)
(mk ERANGE   34)
(mk EDEADLK  35)
(mk ENAMETOOLONG 36)
(mk ENOLCK   37)
(mk ENOSYS   38)
(mk ENOTEMPTY 39)
(mk ELOOP    40)
(mk EWOULDBLOCK 41)
(mk ENOMSG   42)
(mk EIDRM    43)
(mk ECHRNG   44)
(mk EL2NSYNC 45)
(mk EL3HLT   46)
(mk EL3RST   47)
(mk ELNRNG   48)
(mk EUNATCH  49)
(mk ENOCSI   50)
(mk EL2HLT   51)
(mk EBADE    52)
(mk EBADR    53)
(mk EXFULL   54)
(mk ENOANO   55)
(mk EBADRQC  56)
(mk EBADSLT  57)
(mk EDEADLOCK EDEADLK)
(mk EBFONT   59)
(mk ENOSTR   60)
(mk ENODATA  61)
(mk ETIME    62)
(mk ENOSR    63)
(mk ENONET   64)
(mk ENOPKG   65)
(mk EREMOTE  66)
(mk ENOLINK  67)
(mk EADV     68)
(mk ESRMNT   69)
(mk ECOMM    70)
(mk EPROTO   71)
(mk EMULTIHOP 72)
(mk EDOTDOT  73)
(mk EBADMSG  74)
(mk EOVERFLOW 75)
(mk ENOTUNIQ 76)
(mk EBADFD   77)
(mk EREMCHG  78)
(mk ELIBACC  79)
(mk ELIBBAD  80)
(mk ELIBSCN  81)
(mk ELIBMAX  82)
(mk ELIBEXEC 83)
(mk EILSEQ   84)
(mk ERESTART 85)
(mk ESTRPIPE 86)
(mk EUSERS   87)
(mk ENOTSOCK 88)
(mk EDESTADDRREQ 89)
(mk EMSGSIZE 90)
(mk EPROTOTYPE 91)
(mk ENOPROTOOPT 92)
(mk EPROTONOSUPPORT 93)
(mk ESOCKTNOSUPPORT 94)
(mk EOPNOTSUPP 95)
(mk EPFNOSUPPORT 96)
(mk EAFNOSUPPORT 97)
(mk EADDRINUSE 98)
(mk EADDRNOTAVAIL 99)
(mk ENETDOWN 100)
(mk ENETUNREACH 101)
(mk ENETRESET 102)
(mk ECONNABORTED 103)
(mk ECONNRESET 104)
(mk ENOBUFS  105)
(mk EISCONN  106)
(mk ENOTCONN 107)
(mk ESHUTDOWN 108)
(mk ETOOMANYREFS 109)
(mk ETIMEDOUT 110)
(mk ECONNREFUSED 111)
(mk EHOSTDOWN 112)
(mk EHOSTUNREACH 113)
(mk EALREADY  114)
(mk EINPROGRESS 115)
(mk ESTALE    116)
(mk EUCLEAN   117)
(mk ENOTNAM   118)
(mk ENAVAIL   119)
(mk EISNAM    120)
(mk EREMOTEIO 121)
(mk EDQUOT    122)
(mk ENOMEDIUM 123)
(mk EMEDIUMTYPE 124)
(mk ECANCELED 125)
(mk ENOKEY 126)
(mk EKEYEXPIRED 127)
(mk EKEYREVOKED 128)
(mk EKEYREJECTED 129)
(mk EOWNERDEAD 130)
(mk ENOTRECOVERABLE 131)
(mk ERFKILL 132)
(mk EHWPOISON 133)