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.