Hex Artifact Content
Not logged in

Artifact eb85172af1b5ab1fa38f80ee58c49d3897b53e16:


0000: 0a 0a 28 64 65 66 69 6e 65 20 65 72 72 6f 72 73  ..(define errors
0010: 20 27 28 0a 09 09 20 3b 3b 46 52 4f 4d 20 6c 69   '(... ;;FROM li
0020: 6e 75 78 27 73 20 61 73 6d 2f 65 72 72 6e 6f 2d  nux's asm/errno-
0030: 62 61 73 65 2e 68 0a 09 09 20 45 50 45 52 4d 20  base.h... EPERM 
0040: 45 4e 4f 45 4e 54 20 45 53 52 43 48 20 45 49 4e  ENOENT ESRCH EIN
0050: 54 52 20 45 49 4f 20 45 4e 58 49 4f 20 45 32 42  TR EIO ENXIO E2B
0060: 49 47 20 45 4e 4f 45 58 45 43 20 45 42 41 44 46  IG ENOEXEC EBADF
0070: 20 45 43 48 49 4c 44 20 45 41 47 41 49 4e 0a 09   ECHILD EAGAIN..
0080: 09 20 45 4e 4f 4d 45 4d 20 45 41 43 43 45 53 20  . ENOMEM EACCES 
0090: 45 46 41 55 4c 54 20 45 4e 4f 54 42 4c 4b 20 45  EFAULT ENOTBLK E
00a0: 42 55 53 59 20 45 45 58 49 53 54 20 45 58 44 45  BUSY EEXIST EXDE
00b0: 56 20 45 4e 4f 44 45 56 20 45 4e 4f 54 44 49 52  V ENODEV ENOTDIR
00c0: 20 45 49 53 44 49 52 0a 09 09 20 45 49 4e 56 41   EISDIR... EINVA
00d0: 4c 20 45 4e 46 49 4c 45 20 45 4d 46 49 4c 45 20  L ENFILE EMFILE 
00e0: 45 4e 4f 54 54 59 20 45 54 58 54 42 53 59 20 45  ENOTTY ETXTBSY E
00f0: 46 42 49 47 20 45 4e 4f 53 50 43 20 45 53 50 49  FBIG ENOSPC ESPI
0100: 50 45 20 45 52 4f 46 53 20 45 4d 4c 49 4e 4b 0a  PE EROFS EMLINK.
0110: 09 09 20 45 50 49 50 45 20 45 44 4f 4d 20 45 52  .. EPIPE EDOM ER
0120: 41 4e 47 45 0a 09 09 20 0a 09 09 20 3b 3b 46 52  ANGE... ... ;;FR
0130: 4f 4d 20 6c 69 6e 75 78 27 73 20 61 73 6d 2f 65  OM linux's asm/e
0140: 72 72 6e 6f 2e 68 0a 09 09 20 45 44 45 41 44 4c  rrno.h... EDEADL
0150: 4b 20 45 4e 41 4d 45 54 4f 4f 4c 4f 4e 47 20 45  K ENAMETOOLONG E
0160: 4e 4f 4c 43 4b 0a 0a 09 09 20 45 4e 4f 53 59 53  NOLCK.... ENOSYS
0170: 0a 0a 09 09 20 45 4e 4f 54 45 4d 50 54 59 20 45  .... ENOTEMPTY E
0180: 4c 4f 4f 50 20 45 57 4f 55 4c 44 42 4c 4f 43 4b  LOOP EWOULDBLOCK
0190: 20 45 4e 4f 4d 53 47 20 45 49 44 52 4d 20 45 43   ENOMSG EIDRM EC
01a0: 48 52 4e 47 20 45 4c 32 4e 53 59 4e 43 20 45 4c  HRNG EL2NSYNC EL
01b0: 33 48 4c 54 20 45 4c 33 52 53 54 0a 09 09 20 45  3HLT EL3RST... E
01c0: 4c 4e 52 4e 47 20 45 55 4e 41 54 43 48 20 45 4e  LNRNG EUNATCH EN
01d0: 4f 43 53 49 20 45 4c 32 48 4c 54 20 45 42 41 44  OCSI EL2HLT EBAD
01e0: 45 20 45 42 41 44 52 20 45 58 46 55 4c 4c 20 45  E EBADR EXFULL E
01f0: 4e 4f 41 4e 4f 20 45 42 41 44 52 51 43 20 45 42  NOANO EBADRQC EB
0200: 41 44 53 4c 54 0a 0a 09 09 20 45 44 45 41 44 4c  ADSLT.... EDEADL
0210: 4f 43 4b 0a 0a 09 09 20 45 42 46 4f 4e 54 20 45  OCK.... EBFONT E
0220: 4e 4f 53 54 52 20 45 4e 4f 44 41 54 41 20 45 54  NOSTR ENODATA ET
0230: 49 4d 45 20 45 4e 4f 53 52 20 45 4e 4f 4e 45 54  IME ENOSR ENONET
0240: 20 45 4e 4f 50 4b 47 20 45 52 45 4d 4f 54 45 20   ENOPKG EREMOTE 
0250: 45 4e 4f 4c 49 4e 4b 20 45 41 44 56 0a 09 09 20  ENOLINK EADV... 
0260: 45 53 52 4d 4e 54 20 45 43 4f 4d 4d 20 45 50 52  ESRMNT ECOMM EPR
0270: 4f 54 4f 20 45 4d 55 4c 54 49 48 4f 50 20 45 44  OTO EMULTIHOP ED
0280: 4f 54 44 4f 54 20 45 42 41 44 4d 53 47 20 45 4f  OTDOT EBADMSG EO
0290: 56 45 52 46 4c 4f 57 20 45 4e 4f 54 55 4e 49 51  VERFLOW ENOTUNIQ
02a0: 0a 09 09 20 45 42 41 44 46 44 20 45 52 45 4d 43  ... EBADFD EREMC
02b0: 48 47 20 45 4c 49 42 41 43 43 20 45 4c 49 42 42  HG ELIBACC ELIBB
02c0: 41 44 20 45 4c 49 42 53 43 4e 20 45 4c 49 42 4d  AD ELIBSCN ELIBM
02d0: 41 58 20 45 4c 49 42 45 58 45 43 20 45 49 4c 53  AX ELIBEXEC EILS
02e0: 45 51 0a 09 09 20 45 52 45 53 54 41 52 54 20 45  EQ... ERESTART E
02f0: 53 54 52 50 49 50 45 20 45 55 53 45 52 53 20 45  STRPIPE EUSERS E
0300: 4e 4f 54 53 4f 43 4b 20 45 44 45 53 54 41 44 44  NOTSOCK EDESTADD
0310: 52 52 45 51 20 45 4d 53 47 53 49 5a 45 20 45 50  RREQ EMSGSIZE EP
0320: 52 4f 54 4f 54 59 50 45 0a 09 09 20 45 4e 4f 50  ROTOTYPE... ENOP
0330: 52 4f 54 4f 4f 50 54 20 45 50 52 4f 54 4f 4e 4f  ROTOOPT EPROTONO
0340: 53 55 50 50 4f 52 54 20 45 53 4f 43 4b 54 4e 4f  SUPPORT ESOCKTNO
0350: 53 55 50 50 4f 52 54 20 45 4f 50 4e 4f 54 53 55  SUPPORT EOPNOTSU
0360: 50 50 20 45 50 46 4e 4f 53 55 50 50 4f 52 54 0a  PP EPFNOSUPPORT.
0370: 09 09 20 45 41 46 4e 4f 53 55 50 50 4f 52 54 20  .. EAFNOSUPPORT 
0380: 45 41 44 44 52 49 4e 55 53 45 20 45 41 44 44 52  EADDRINUSE EADDR
0390: 4e 4f 54 41 56 41 49 4c 20 45 4e 45 54 44 4f 57  NOTAVAIL ENETDOW
03a0: 4e 20 45 4e 45 54 55 4e 52 45 41 43 48 20 45 4e  N ENETUNREACH EN
03b0: 45 54 52 45 53 45 54 0a 09 09 20 45 43 4f 4e 4e  ETRESET... ECONN
03c0: 41 42 4f 52 54 45 44 20 45 43 4f 4e 4e 52 45 53  ABORTED ECONNRES
03d0: 45 54 20 45 4e 4f 42 55 46 53 20 45 49 53 43 4f  ET ENOBUFS EISCO
03e0: 4e 4e 20 45 4e 4f 54 43 4f 4e 4e 20 45 53 48 55  NN ENOTCONN ESHU
03f0: 54 44 4f 57 4e 0a 09 09 20 45 54 4f 4f 4d 41 4e  TDOWN... ETOOMAN
0400: 59 52 45 46 53 20 45 54 49 4d 45 44 4f 55 54 20  YREFS ETIMEDOUT 
0410: 45 43 4f 4e 4e 52 45 46 55 53 45 44 20 45 48 4f  ECONNREFUSED EHO
0420: 53 54 44 4f 57 4e 20 45 48 4f 53 54 55 4e 52 45  STDOWN EHOSTUNRE
0430: 41 43 48 20 45 41 4c 52 45 41 44 59 0a 09 09 20  ACH EALREADY... 
0440: 45 49 4e 50 52 4f 47 52 45 53 53 20 45 53 54 41  EINPROGRESS ESTA
0450: 4c 45 20 45 55 43 4c 45 41 4e 20 45 4e 4f 54 4e  LE EUCLEAN ENOTN
0460: 41 4d 20 45 4e 41 56 41 49 4c 20 45 49 53 4e 41  AM ENAVAIL EISNA
0470: 4d 20 45 52 45 4d 4f 54 45 49 4f 20 45 44 51 55  M EREMOTEIO EDQU
0480: 4f 54 0a 09 09 20 45 4e 4f 4d 45 44 49 55 4d 20  OT... ENOMEDIUM 
0490: 45 4d 45 44 49 55 4d 54 59 50 45 20 45 43 41 4e  EMEDIUMTYPE ECAN
04a0: 43 45 4c 45 44 20 45 4e 4f 4b 45 59 20 45 4b 45  CELED ENOKEY EKE
04b0: 59 45 58 50 49 52 45 44 20 45 4b 45 59 52 45 56  YEXPIRED EKEYREV
04c0: 4f 4b 45 44 0a 09 09 20 45 4b 45 59 52 45 4a 45  OKED... EKEYREJE
04d0: 43 54 45 44 20 45 4f 57 4e 45 52 44 45 41 44 20  CTED EOWNERDEAD 
04e0: 45 4e 4f 54 52 45 43 4f 56 45 52 41 42 4c 45 29  ENOTRECOVERABLE)
04f0: 29 0a 0a 28 64 65 66 69 6e 65 20 28 67 65 6e 2d  )..(define (gen-
0500: 65 72 72 6e 6f 20 70 6c 61 74 66 6f 72 6d 29 0a  errno platform).
0510: 20 20 28 63 61 6c 6c 2d 77 69 74 68 2d 6f 75 74    (call-with-out
0520: 70 75 74 2d 66 69 6c 65 20 28 73 74 72 69 6e 67  put-file (string
0530: 2d 61 70 70 65 6e 64 20 22 65 72 72 6e 6f 2d 22  -append "errno-"
0540: 20 70 6c 61 74 66 6f 72 6d 20 22 2e 73 73 22 29   platform ".ss")
0550: 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 29  .    (lambda (p)
0560: 0a 20 20 20 20 20 20 28 66 70 72 69 6e 74 66 20  .      (fprintf 
0570: 70 22 3b 3b 20 67 65 6e 65 72 61 74 65 64 20 62  p";; generated b
0580: 79 20 65 72 72 6e 6f 2d 63 2d 65 76 61 6c 2e 73  y errno-c-eval.s
0590: 73 20 2d 20 70 6c 61 74 66 6f 72 6d 3a 20 7e 61  s - platform: ~a
05a0: 5c 6e 22 20 28 6d 61 63 68 69 6e 65 2d 74 79 70  \n" (machine-typ
05b0: 65 29 29 0a 0a 20 20 20 20 20 20 28 66 6f 72 2d  e))..      (for-
05c0: 65 61 63 68 20 28 6c 61 6d 62 64 61 20 28 65 72  each (lambda (er
05d0: 72 29 0a 09 09 20 20 28 70 72 69 6e 74 66 20 22  r)...  (printf "
05e0: 65 76 61 6c 27 69 6e 67 20 7e 61 2e 2e 2e 5c 6e  eval'ing ~a...\n
05f0: 22 20 65 72 72 29 0a 09 20 20 20 20 28 67 75 61  " err)..    (gua
0600: 72 64 20 28 65 20 5b 65 6c 73 65 20 28 66 70 72  rd (e [else (fpr
0610: 69 6e 74 66 20 70 20 22 28 64 65 66 69 6e 65 20  intf p "(define 
0620: 7e 61 20 27 7e 61 2d 55 4e 44 45 46 49 4e 45 44  ~a '~a-UNDEFINED
0630: 29 5c 6e 22 20 65 72 72 20 65 72 72 29 5d 29 0a  )\n" err err)]).
0640: 09 09 20 20 20 28 66 70 72 69 6e 74 66 20 70 20  ..   (fprintf p 
0650: 22 28 64 65 66 69 6e 65 20 7e 61 20 7e 61 29 5c  "(define ~a ~a)\
0660: 6e 22 20 65 72 72 20 28 63 2d 65 76 61 6c 2d 70  n" err (c-eval-p
0670: 72 69 6e 74 66 20 22 25 64 22 20 65 72 72 29 29  rintf "%d" err))
0680: 29 29 0a 09 09 65 72 72 6f 72 73 29 29 0a 20 20  ))...errors)).  
0690: 20 20 27 74 72 75 6e 63 61 74 65 29 29 0a 0a 28    'truncate))..(
06a0: 63 2d 65 76 61 6c 2d 69 6e 63 6c 75 64 65 73 20  c-eval-includes 
06b0: 27 28 22 73 74 64 69 6f 2e 68 22 20 22 65 72 72  '("stdio.h" "err
06c0: 6e 6f 2e 68 22 29 29 0a 0a 28 63 6f 6e 64 0a 20  no.h"))..(cond. 
06d0: 5b 28 6d 65 6d 71 20 28 6d 61 63 68 69 6e 65 2d  [(memq (machine-
06e0: 74 79 70 65 29 20 27 28 61 36 6c 65 20 74 61 36  type) '(a6le ta6
06f0: 6c 65 29 29 0a 20 20 28 67 65 6e 2d 65 72 72 6e  le)).  (gen-errn
0700: 6f 20 22 6c 69 6e 75 78 22 29 5d 0a 20 5b 65 6c  o "linux")]. [el
0710: 73 65 0a 20 20 28 65 72 72 6f 72 20 27 65 72 72  se.  (error 'err
0720: 6e 6f 2d 63 2d 65 76 61 6c 2e 73 73 20 22 75 6e  no-c-eval.ss "un
0730: 73 75 70 70 6f 72 74 65 64 20 6d 61 63 68 69 6e  supported machin
0740: 65 2d 74 79 70 65 20 7e 61 22 20 28 6d 61 63 68  e-type ~a" (mach
0750: 69 6e 65 2d 74 79 70 65 29 29 5d 29 0a           ine-type))]).