]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | * Copyright (c) 2001-2004 Swedish Institute of Computer Science. | |
3 | * All rights reserved. | |
4 | * | |
5 | * Redistribution and use in source and binary forms, with or without modification, | |
6 | * are permitted provided that the following conditions are met: | |
7 | * | |
8 | * 1. Redistributions of source code must retain the above copyright notice, | |
9 | * this list of conditions and the following disclaimer. | |
10 | * 2. Redistributions in binary form must reproduce the above copyright notice, | |
11 | * this list of conditions and the following disclaimer in the documentation | |
12 | * and/or other materials provided with the distribution. | |
13 | * 3. The name of the author may not be used to endorse or promote products | |
14 | * derived from this software without specific prior written permission. | |
15 | * | |
16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED | |
17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT | |
19 | * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |
20 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT | |
21 | * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
22 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
23 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | |
24 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY | |
25 | * OF SUCH DAMAGE. | |
26 | * | |
27 | * This file is part of the lwIP TCP/IP stack. | |
28 | * | |
29 | * Author: Adam Dunkels <adam@sics.se> | |
30 | * | |
31 | */ | |
32 | #ifndef __LWIP_ARCH_H__ | |
33 | #define __LWIP_ARCH_H__ | |
34 | ||
35 | #ifndef LITTLE_ENDIAN | |
36 | #define LITTLE_ENDIAN 1234 | |
37 | #endif | |
38 | ||
39 | #ifndef BIG_ENDIAN | |
40 | #define BIG_ENDIAN 4321 | |
41 | #endif | |
42 | ||
43 | #include "arch/cc.h" | |
44 | ||
45 | #ifdef __cplusplus | |
46 | extern "C" { | |
47 | #endif | |
48 | ||
49 | #ifndef PACK_STRUCT_BEGIN | |
50 | #define PACK_STRUCT_BEGIN | |
51 | #endif /* PACK_STRUCT_BEGIN */ | |
52 | ||
53 | #ifndef PACK_STRUCT_END | |
54 | #define PACK_STRUCT_END | |
55 | #endif /* PACK_STRUCT_END */ | |
56 | ||
57 | #ifndef PACK_STRUCT_FIELD | |
58 | #define PACK_STRUCT_FIELD(x) x | |
59 | #endif /* PACK_STRUCT_FIELD */ | |
60 | ||
61 | ||
62 | #ifndef LWIP_UNUSED_ARG | |
63 | #define LWIP_UNUSED_ARG(x) (void)x | |
64 | #endif /* LWIP_UNUSED_ARG */ | |
65 | ||
66 | ||
67 | #ifdef LWIP_PROVIDE_ERRNO | |
68 | ||
69 | #define EPERM 1 /* Operation not permitted */ | |
70 | #define ENOENT 2 /* No such file or directory */ | |
71 | #define ESRCH 3 /* No such process */ | |
72 | #define EINTR 4 /* Interrupted system call */ | |
73 | #define EIO 5 /* I/O error */ | |
74 | #define ENXIO 6 /* No such device or address */ | |
75 | #define E2BIG 7 /* Arg list too long */ | |
76 | #define ENOEXEC 8 /* Exec format error */ | |
77 | #define EBADF 9 /* Bad file number */ | |
78 | #define ECHILD 10 /* No child processes */ | |
79 | #define EAGAIN 11 /* Try again */ | |
80 | #define ENOMEM 12 /* Out of memory */ | |
81 | #define EACCES 13 /* Permission denied */ | |
82 | #define EFAULT 14 /* Bad address */ | |
83 | #define ENOTBLK 15 /* Block device required */ | |
84 | #define EBUSY 16 /* Device or resource busy */ | |
85 | #define EEXIST 17 /* File exists */ | |
86 | #define EXDEV 18 /* Cross-device link */ | |
87 | #define ENODEV 19 /* No such device */ | |
88 | #define ENOTDIR 20 /* Not a directory */ | |
89 | #define EISDIR 21 /* Is a directory */ | |
90 | #define EINVAL 22 /* Invalid argument */ | |
91 | #define ENFILE 23 /* File table overflow */ | |
92 | #define EMFILE 24 /* Too many open files */ | |
93 | #define ENOTTY 25 /* Not a typewriter */ | |
94 | #define ETXTBSY 26 /* Text file busy */ | |
95 | #define EFBIG 27 /* File too large */ | |
96 | #define ENOSPC 28 /* No space left on device */ | |
97 | #define ESPIPE 29 /* Illegal seek */ | |
98 | #define EROFS 30 /* Read-only file system */ | |
99 | #define EMLINK 31 /* Too many links */ | |
100 | #define EPIPE 32 /* Broken pipe */ | |
101 | #define EDOM 33 /* Math argument out of domain of func */ | |
102 | #define ERANGE 34 /* Math result not representable */ | |
103 | #define EDEADLK 35 /* Resource deadlock would occur */ | |
104 | #define ENAMETOOLONG 36 /* File name too long */ | |
105 | #define ENOLCK 37 /* No record locks available */ | |
106 | #define ENOSYS 38 /* Function not implemented */ | |
107 | #define ENOTEMPTY 39 /* Directory not empty */ | |
108 | #define ELOOP 40 /* Too many symbolic links encountered */ | |
109 | #define EWOULDBLOCK EAGAIN /* Operation would block */ | |
110 | #define ENOMSG 42 /* No message of desired type */ | |
111 | #define EIDRM 43 /* Identifier removed */ | |
112 | #define ECHRNG 44 /* Channel number out of range */ | |
113 | #define EL2NSYNC 45 /* Level 2 not synchronized */ | |
114 | #define EL3HLT 46 /* Level 3 halted */ | |
115 | #define EL3RST 47 /* Level 3 reset */ | |
116 | #define ELNRNG 48 /* Link number out of range */ | |
117 | #define EUNATCH 49 /* Protocol driver not attached */ | |
118 | #define ENOCSI 50 /* No CSI structure available */ | |
119 | #define EL2HLT 51 /* Level 2 halted */ | |
120 | #define EBADE 52 /* Invalid exchange */ | |
121 | #define EBADR 53 /* Invalid request descriptor */ | |
122 | #define EXFULL 54 /* Exchange full */ | |
123 | #define ENOANO 55 /* No anode */ | |
124 | #define EBADRQC 56 /* Invalid request code */ | |
125 | #define EBADSLT 57 /* Invalid slot */ | |
126 | ||
127 | #define EDEADLOCK EDEADLK | |
128 | ||
129 | #define EBFONT 59 /* Bad font file format */ | |
130 | #define ENOSTR 60 /* Device not a stream */ | |
131 | #define ENODATA 61 /* No data available */ | |
132 | #define ETIME 62 /* Timer expired */ | |
133 | #define ENOSR 63 /* Out of streams resources */ | |
134 | #define ENONET 64 /* Machine is not on the network */ | |
135 | #define ENOPKG 65 /* Package not installed */ | |
136 | #define EREMOTE 66 /* Object is remote */ | |
137 | #define ENOLINK 67 /* Link has been severed */ | |
138 | #define EADV 68 /* Advertise error */ | |
139 | #define ESRMNT 69 /* Srmount error */ | |
140 | #define ECOMM 70 /* Communication error on send */ | |
141 | #define EPROTO 71 /* Protocol error */ | |
142 | #define EMULTIHOP 72 /* Multihop attempted */ | |
143 | #define EDOTDOT 73 /* RFS specific error */ | |
144 | #define EBADMSG 74 /* Not a data message */ | |
145 | #define EOVERFLOW 75 /* Value too large for defined data type */ | |
146 | #define ENOTUNIQ 76 /* Name not unique on network */ | |
147 | #define EBADFD 77 /* File descriptor in bad state */ | |
148 | #define EREMCHG 78 /* Remote address changed */ | |
149 | #define ELIBACC 79 /* Can not access a needed shared library */ | |
150 | #define ELIBBAD 80 /* Accessing a corrupted shared library */ | |
151 | #define ELIBSCN 81 /* .lib section in a.out corrupted */ | |
152 | #define ELIBMAX 82 /* Attempting to link in too many shared libraries */ | |
153 | #define ELIBEXEC 83 /* Cannot exec a shared library directly */ | |
154 | #define EILSEQ 84 /* Illegal byte sequence */ | |
155 | #define ERESTART 85 /* Interrupted system call should be restarted */ | |
156 | #define ESTRPIPE 86 /* Streams pipe error */ | |
157 | #define EUSERS 87 /* Too many users */ | |
158 | #define ENOTSOCK 88 /* Socket operation on non-socket */ | |
159 | #define EDESTADDRREQ 89 /* Destination address required */ | |
160 | #define EMSGSIZE 90 /* Message too long */ | |
161 | #define EPROTOTYPE 91 /* Protocol wrong type for socket */ | |
162 | #define ENOPROTOOPT 92 /* Protocol not available */ | |
163 | #define EPROTONOSUPPORT 93 /* Protocol not supported */ | |
164 | #define ESOCKTNOSUPPORT 94 /* Socket type not supported */ | |
165 | #define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ | |
166 | #define EPFNOSUPPORT 96 /* Protocol family not supported */ | |
167 | #define EAFNOSUPPORT 97 /* Address family not supported by protocol */ | |
168 | #define EADDRINUSE 98 /* Address already in use */ | |
169 | #define EADDRNOTAVAIL 99 /* Cannot assign requested address */ | |
170 | #define ENETDOWN 100 /* Network is down */ | |
171 | #define ENETUNREACH 101 /* Network is unreachable */ | |
172 | #define ENETRESET 102 /* Network dropped connection because of reset */ | |
173 | #define ECONNABORTED 103 /* Software caused connection abort */ | |
174 | #define ECONNRESET 104 /* Connection reset by peer */ | |
175 | #define ENOBUFS 105 /* No buffer space available */ | |
176 | #define EISCONN 106 /* Transport endpoint is already connected */ | |
177 | #define ENOTCONN 107 /* Transport endpoint is not connected */ | |
178 | #define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */ | |
179 | #define ETOOMANYREFS 109 /* Too many references: cannot splice */ | |
180 | #define ETIMEDOUT 110 /* Connection timed out */ | |
181 | #define ECONNREFUSED 111 /* Connection refused */ | |
182 | #define EHOSTDOWN 112 /* Host is down */ | |
183 | #define EHOSTUNREACH 113 /* No route to host */ | |
184 | #define EALREADY 114 /* Operation already in progress */ | |
185 | #define EINPROGRESS 115 /* Operation now in progress */ | |
186 | #define ESTALE 116 /* Stale NFS file handle */ | |
187 | #define EUCLEAN 117 /* Structure needs cleaning */ | |
188 | #define ENOTNAM 118 /* Not a XENIX named type file */ | |
189 | #define ENAVAIL 119 /* No XENIX semaphores available */ | |
190 | #define EISNAM 120 /* Is a named type file */ | |
191 | #define EREMOTEIO 121 /* Remote I/O error */ | |
192 | #define EDQUOT 122 /* Quota exceeded */ | |
193 | ||
194 | #define ENOMEDIUM 123 /* No medium found */ | |
195 | #define EMEDIUMTYPE 124 /* Wrong medium type */ | |
196 | ||
197 | ||
198 | #define ENSROK 0 /* DNS server returned answer with no data */ | |
199 | #define ENSRNODATA 160 /* DNS server returned answer with no data */ | |
200 | #define ENSRFORMERR 161 /* DNS server claims query was misformatted */ | |
201 | #define ENSRSERVFAIL 162 /* DNS server returned general failure */ | |
202 | #define ENSRNOTFOUND 163 /* Domain name not found */ | |
203 | #define ENSRNOTIMP 164 /* DNS server does not implement requested operation */ | |
204 | #define ENSRREFUSED 165 /* DNS server refused query */ | |
205 | #define ENSRBADQUERY 166 /* Misformatted DNS query */ | |
206 | #define ENSRBADNAME 167 /* Misformatted domain name */ | |
207 | #define ENSRBADFAMILY 168 /* Unsupported address family */ | |
208 | #define ENSRBADRESP 169 /* Misformatted DNS reply */ | |
209 | #define ENSRCONNREFUSED 170 /* Could not contact DNS servers */ | |
210 | #define ENSRTIMEOUT 171 /* Timeout while contacting DNS servers */ | |
211 | #define ENSROF 172 /* End of file */ | |
212 | #define ENSRFILE 173 /* Error reading file */ | |
213 | #define ENSRNOMEM 174 /* Out of memory */ | |
214 | #define ENSRDESTRUCTION 175 /* Application terminated lookup */ | |
215 | #define ENSRQUERYDOMAINTOOLONG 176 /* Domain name is too long */ | |
216 | #define ENSRCNAMELOOP 177 /* Domain name is too long */ | |
217 | ||
218 | #ifndef errno | |
219 | extern int errno; | |
220 | #endif | |
221 | ||
222 | #endif /* LWIP_PROVIDE_ERRNO */ | |
223 | ||
224 | #ifdef __cplusplus | |
225 | } | |
226 | #endif | |
227 | ||
228 | #endif /* __LWIP_ARCH_H__ */ |