This table lists the unique error code lists from the files SCO identified in its supplemental response to interrogatory 12, along with the corresponding error code lists from various AT&T Unix releases.
v6 v7 sysIII src5r4 alpha i386 mips parisc ppc sparc EFAULT 106 14 14 14 14 14 14 14 14 14 EPERM 1 1 1 1 1 1 1 1 1 1 ENOENT 2 2 2 2 2 2 2 2 2 2 ESRCH 3 3 3 3 3 3 3 3 3 3 EINTR 4 4 4 4 4 4 4 4 4 4 EIO 5 5 5 5 5 5 5 5 5 5 ENXIO 6 6 6 6 6 6 6 6 6 6 E2BIG 7 7 7 7 7 7 7 7 7 7 ENOEXEC 8 8 8 8 8 8 8 8 8 8 EBADF 9 9 9 9 9 9 9 9 9 9 ECHILD 10 10 10 10 10 10 10 10 10 10 EAGAIN 11 11 11 11 35 11 11 11 11 11 ENOMEM 12 12 12 12 12 12 12 12 12 12 EACCES 13 13 13 13 13 13 13 13 13 13 ENOTBLK 15 15 15 15 15 15 15 15 15 15 EBUSY 16 16 16 16 16 16 16 16 16 16 EEXIST 17 17 17 17 17 17 17 17 17 17 EXDEV 18 18 18 18 18 18 18 18 18 18 ENODEV 19 19 19 19 19 19 19 19 19 19 ENOTDIR 20 20 20 20 20 20 20 20 20 20 EISDIR 21 21 21 21 21 21 21 21 21 21 EINVAL 22 22 22 22 22 22 22 22 22 22 ENFILE 23 23 23 23 23 23 23 23 23 23 EMFILE 24 24 24 24 24 24 24 24 24 24 ENOTTY 25 25 25 25 25 25 25 25 25 25 ETXTBSY 26 26 26 26 26 26 26 26 26 26 EFBIG 27 27 27 27 27 27 27 27 27 27 ENOSPC 28 28 28 28 28 28 28 28 28 28 ESPIPE 29 29 29 29 29 29 29 29 29 29 EROFS 30 30 30 30 30 30 30 30 30 30 EMLINK 31 31 31 31 31 31 31 31 31 31 EPIPE 32 32 32 32 32 32 32 32 32 32 EXCLOSE 01 EDOM 33 33 33 33 33 33 33 33 33 ERANGE 34 34 34 34 34 34 34 34 34 ENOMSG 35 80 42 35 35 42 75 EIDRM 36 81 43 36 36 43 77 ECHRNG 37 88 44 37 37 44 94 EL2NSYNC 38 89 45 38 38 45 95 EL3HLT 39 90 46 39 39 46 96 EL3RST 40 91 47 40 40 47 97 ELNRNG 41 93 48 41 41 48 98 EUNATCH 42 94 49 42 42 49 99 ENOCSI 43 95 50 43 43 50 100 EL2HLT 44 96 51 44 44 51 101 EDEADLK 45 11 35 45 45 35 78 ENOLCK 46 77 37 46 46 37 79 EBADE 50 97 52 50 160 52 102 EBADR 51 98 53 51 161 53 103 EXFULL 52 99 54 52 162 54 104 ENOANO 53 100 55 53 163 55 105 EBADRQC 54 101 56 54 164 56 106 EBADSLT 55 102 57 55 165 57 107 EDEADLOCK 56 EDEADLK EDEADLK 56 EDEADLK 58 108 EBFONT 57 104 59 59 166 59 109 ENOSTR 60 87 60 60 54 60 72 ENODATA 61 86 61 61 51 61 111 ETIME 62 83 62 62 52 62 73 ENOSR 63 82 63 63 53 63 74 ENONET 64 105 64 64 50 64 80 ENOPKG 65 92 65 65 55 65 113 EREMOTE 66 71 66 66 71 66 71 ENOLINK 67 106 67 67 57 67 82 EADV 68 107 68 68 58 68 83 ESRMNT 69 108 69 69 59 69 84 ECOMM 70 109 70 70 60 70 85 EPROTO 71 85 71 71 61 71 86 EMULTIHOP 74 110 72 74 64 72 87 EBADMSG 77 84 74 77 67 74 76 ENAMETOOLONG 78 63 36 78 248 36 63 EOVERFLOW 79 112 75 79 72 75 92 ENOTUNIQ 80 113 76 80 167 76 115 EBADFD 81 114 77 81 168 77 93 EREMCHG 82 115 78 82 169 78 89 ELIBACC 83 122 79 83 170 79 114 ELIBBAD 84 123 80 84 171 80 112 ELIBSCN 85 124 81 85 172 81 124 ELIBMAX 86 125 82 86 173 82 123 ELIBEXEC 87 126 83 87 174 83 110 EILSEQ 88 116 84 88 47 84 122 ENOSYS 89 78 38 89 251 38 90 ELOOP 90 62 40 90 249 40 62 ERESTART 91 127 85 91 175 85 116 ESTRPIPE 92 128 86 92 176 86 91 ENOTEMPTY 93 66 39 93 247 39 66 EUSERS 94 68 87 94 68 87 68 ENOTSOCK 95 38 88 95 216 88 38 EDESTADDRREQ 96 39 89 96 217 89 39 EMSGSIZE 97 40 90 97 218 90 40 EPROTOTYPE 98 41 91 98 219 91 41 ENOPROTOOPT 99 42 92 99 220 92 42 EPROTONOSUPPORT 120 43 93 120 221 93 43 ESOCKTNOSUPPORT 121 44 94 121 222 94 44 EOPNOTSUPP 122 45 95 122 223 95 45 EPFNOSUPPORT 123 46 96 123 224 96 46 EAFNOSUPPORT 124 47 97 124 225 97 47 EADDRINUSE 125 48 98 125 226 98 48 EADDRNOTAVAIL 126 49 99 126 227 99 49 ENETDOWN 127 50 100 127 228 100 50 ENETUNREACH 128 51 101 128 229 101 51 ENETRESET 129 52 102 129 230 102 52 ECONNABORTED 130 53 103 130 231 103 53 ECONNRESET 131 54 104 131 232 104 54 ENOBUFS 132 55 105 132 233 105 55 EISCONN 133 56 106 133 234 106 56 ENOTCONN 134 57 107 134 235 107 57 ESHUTDOWN 143 58 108 143 236 108 58 ETOOMANYREFS 144 59 109 144 237 109 59 ETIMEDOUT 145 60 110 145 238 110 60 ECONNREFUSED 146 61 111 146 239 111 61 EHOSTDOWN 147 64 112 147 241 112 64 EHOSTUNREACH 148 65 113 148 242 113 65 EWOULDBLOCK EAGAIN EAGAIN EAGAIN EAGAIN 246 EAGAIN EAGAIN EALREADY 149 37 114 149 244 114 37 EINPROGRESS 150 36 115 150 245 115 36 ESTALE 151 70 116 151 70 116 70 EIORESID 500 EUCLEAN 135 117 117 135 177 117 117 ENOTNAM 137 118 118 137 178 118 118 ENAVAIL 138 119 119 138 179 119 119 EISNAM 139 120 120 139 180 120 120 EREMOTEIO 140 121 121 140 181 121 121 EINIT 141 141 EREMDEV 142 142 EDQUOT 69 122 1133 69 122 69 EDOTDOT 111 73 73 66 73 88 ENOMEDIUM 129 123 159 182 123 125 EMEDIUMTYPE 130 124 160 183 124 126 ECANCELED 158 EMAXERRNO 1133 ENOSYM 215 EREFUSED ECONNREFUSED EREMOTERELEASE 240 ENOTSUP 252 ECANCELLED 253 ERESTARTSYS 512 ERESTARTNOINTR 513 ERESTARTNOHAND 514 ENOIOCTLCMD 515 EPROCLIM 67 ERREMOTE 81
In the table, "i386" includes i386, x86_64, arm, cris, ia64, s390, s390x, and sh, and m68k. These architectures are functionally identical: the files differ only in comments, whitespace, and version-identifying preprocessor macros. The other 64-bit platforms (mips64, sparc64, and ppc64) are also functionally identical to their respective 32 bit platforms.
The largest functionally identical group includes the i386 architecture. In several cases, the differing comments explicitly say (as in s390): 'Derived from "include/asm-i386/errno.h"'
(Note that in 2.6, this duplication has been cleaned up, and the common portions placed into a single file that is included by the various archiectures. For example, the whole of the 2.6.2 asm-386/errno.h file is:
#ifndef _I386_ERRNO_H #define _I386_ERRNO_H #include)#endif
The ppc and ppc64 architectures are very similar to the i386 group. The only functional differences are that EDEADLOCK is defined as 58 (the i386 group makes EDEADLOCK an alias for EDEADLK), and ppc defines four extra signals at 512-515, under the comment that these new signals "Should never be seen by user programs".
The sparc and sparc64 architectures are functionally identical to each other, The sparc errno.h starts with the comment, "These match the SunOS error numbering scheme." Sparc group matches the i386 group for entries 1-34, and for entries 117-121. The first range is the set of error numbers defined by Unix Version 7, and the comments on the second range would appear to indicate some kind of Xenix standard shared by platforms as diverse as Sparc and Tru64. The remaining entries often define different symbols, and what shared names are there seem to occur in different order with different numbers.
The closest platform to sparc is Alpha, which mostly matches (with the occasional differing comment) up through 71. (This is possibly due to the OSF/1 standard that Tru64 was based on.) The exceptions in this range are Alpha's unique placement of EDEADLK at 11 (bumping Alpha's EAGAIN to 35; Sparc's EAGAIN matches i386 but Sparc uniquely places EDEADLK at 78), and Sparc's insertion of a unique entry EPROCLIM at 67 (Alpha has a hole at 67, and neither i386 nor Alpha define EPROCLIM).
Above 71 (with the exception of the 117-121 range both Alpha and Sparc share with the i386 group, to the extent that even the comments are identical), the Alpha and Sparc signals use some of the same names, but the positions and ordering differ from each other and from i386.
Of the remaining architectures, mips and mips64 are functionally identical to each other. The i386 group matches mips in 1-34 and 59-71. Some of the other entries occur in the same order, but use different numbers.
The other architecture, parisc, is more similar to the mips group than to any of the other architectures. They match in the range 1-46, but not above that.