(define-module (language python module errno) #:use-module (system foreign) #:use-module (language python dict) #:use-module (language python list) #:export (errno errorcode)) (define errno (let ((f (dynamic-pointer "errno" (dynamic-link)))) (lambda () (pointer-address (dereference-pointer f))))) (define errorcode (dict)) (define-syntax-rule (mk x n) (begin (define x n) (export x) (pylist-set! errorcode n "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)