Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


minor cleanup to vmxassist context code
[palacios.git] / geekos / include / lwip / lwip / arch.h
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 #include "lwip/opt.h"
46
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50
51 #ifndef PACK_STRUCT_BEGIN
52 #define PACK_STRUCT_BEGIN
53 #endif /* PACK_STRUCT_BEGIN */
54
55 #ifndef PACK_STRUCT_END
56 #define PACK_STRUCT_END
57 #endif /* PACK_STRUCT_END */
58
59 #ifndef PACK_STRUCT_FIELD
60 #define PACK_STRUCT_FIELD(x) x
61 #endif /* PACK_STRUCT_FIELD */
62
63
64 #ifndef LWIP_UNUSED_ARG
65 #define LWIP_UNUSED_ARG(x) (void)x
66 #endif /* LWIP_UNUSED_ARG */ 
67
68 //weird thing, I already defined it in lwipopts.h, does not work? Lei
69 #define LWIP_PROVIDE_ERRNO 1
70
71 #ifdef LWIP_PROVIDE_ERRNO
72
73 #define  EPERM     1  /* Operation not permitted */
74 #define  ENOENT     2  /* No such file or directory */
75 #define  ESRCH     3  /* No such process */
76 #define  EINTR     4  /* Interrupted system call */
77 #define  EIO     5  /* I/O error */
78 #define  ENXIO     6  /* No such device or address */
79 #define  E2BIG     7  /* Arg list too long */
80 #define  ENOEXEC     8  /* Exec format error */
81 #define  EBADF     9  /* Bad file number */
82 #define  ECHILD    10  /* No child processes */
83 #define  EAGAIN    11  /* Try again */
84 #define  ENOMEM    12  /* Out of memory */
85 #define  EACCES    13  /* Permission denied */
86 #define  EFAULT    14  /* Bad address */
87 #define  ENOTBLK    15  /* Block device required */
88 #define  EBUSY    16  /* Device or resource busy */
89 #define  EEXIST    17  /* File exists */
90 #define  EXDEV    18  /* Cross-device link */
91 #define  ENODEV    19  /* No such device */
92 #define  ENOTDIR    20  /* Not a directory */
93 #define  EISDIR    21  /* Is a directory */
94 #define  EINVAL    22  /* Invalid argument */
95 #define  ENFILE    23  /* File table overflow */
96 #define  EMFILE    24  /* Too many open files */
97 #define  ENOTTY    25  /* Not a typewriter */
98 #define  ETXTBSY    26  /* Text file busy */
99 #define  EFBIG    27  /* File too large */
100 #define  ENOSPC    28  /* No space left on device */
101 #define  ESPIPE    29  /* Illegal seek */
102 #define  EROFS    30  /* Read-only file system */
103 #define  EMLINK    31  /* Too many links */
104 #define  EPIPE    32  /* Broken pipe */
105 #define  EDOM    33  /* Math argument out of domain of func */
106 #define  ERANGE    34  /* Math result not representable */
107 #define  EDEADLK    35  /* Resource deadlock would occur */
108 #define  ENAMETOOLONG  36  /* File name too long */
109 #define  ENOLCK    37  /* No record locks available */
110 #define  ENOSYS    38  /* Function not implemented */
111 #define  ENOTEMPTY  39  /* Directory not empty */
112 #define  ELOOP    40  /* Too many symbolic links encountered */
113 #define  EWOULDBLOCK  EAGAIN  /* Operation would block */
114 #define  ENOMSG    42  /* No message of desired type */
115 #define  EIDRM    43  /* Identifier removed */
116 #define  ECHRNG    44  /* Channel number out of range */
117 #define  EL2NSYNC  45  /* Level 2 not synchronized */
118 #define  EL3HLT    46  /* Level 3 halted */
119 #define  EL3RST    47  /* Level 3 reset */
120 #define  ELNRNG    48  /* Link number out of range */
121 #define  EUNATCH    49  /* Protocol driver not attached */
122 #define  ENOCSI    50  /* No CSI structure available */
123 #define  EL2HLT    51  /* Level 2 halted */
124 #define  EBADE    52  /* Invalid exchange */
125 #define  EBADR    53  /* Invalid request descriptor */
126 #define  EXFULL    54  /* Exchange full */
127 #define  ENOANO    55  /* No anode */
128 #define  EBADRQC    56  /* Invalid request code */
129 #define  EBADSLT    57  /* Invalid slot */
130
131 #define  EDEADLOCK  EDEADLK
132
133 #define  EBFONT    59  /* Bad font file format */
134 #define  ENOSTR    60  /* Device not a stream */
135 #define  ENODATA    61  /* No data available */
136 #define  ETIME    62  /* Timer expired */
137 #define  ENOSR    63  /* Out of streams resources */
138 #define  ENONET    64  /* Machine is not on the network */
139 #define  ENOPKG    65  /* Package not installed */
140 #define  EREMOTE    66  /* Object is remote */
141 #define  ENOLINK    67  /* Link has been severed */
142 #define  EADV    68  /* Advertise error */
143 #define  ESRMNT    69  /* Srmount error */
144 #define  ECOMM    70  /* Communication error on send */
145 #define  EPROTO    71  /* Protocol error */
146 #define  EMULTIHOP  72  /* Multihop attempted */
147 #define  EDOTDOT    73  /* RFS specific error */
148 #define  EBADMSG    74  /* Not a data message */
149 #define  EOVERFLOW  75  /* Value too large for defined data type */
150 #define  ENOTUNIQ  76  /* Name not unique on network */
151 #define  EBADFD    77  /* File descriptor in bad state */
152 #define  EREMCHG    78  /* Remote address changed */
153 #define  ELIBACC    79  /* Can not access a needed shared library */
154 #define  ELIBBAD    80  /* Accessing a corrupted shared library */
155 #define  ELIBSCN    81  /* .lib section in a.out corrupted */
156 #define  ELIBMAX    82  /* Attempting to link in too many shared libraries */
157 #define  ELIBEXEC  83  /* Cannot exec a shared library directly */
158 #define  EILSEQ    84  /* Illegal byte sequence */
159 #define  ERESTART  85  /* Interrupted system call should be restarted */
160 #define  ESTRPIPE  86  /* Streams pipe error */
161 #define  EUSERS    87  /* Too many users */
162 #define  ENOTSOCK  88  /* Socket operation on non-socket */
163 #define  EDESTADDRREQ  89  /* Destination address required */
164 #define  EMSGSIZE  90  /* Message too long */
165 #define  EPROTOTYPE  91  /* Protocol wrong type for socket */
166 #define  ENOPROTOOPT  92  /* Protocol not available */
167 #define  EPROTONOSUPPORT  93  /* Protocol not supported */
168 #define  ESOCKTNOSUPPORT  94  /* Socket type not supported */
169 #define  EOPNOTSUPP  95  /* Operation not supported on transport endpoint */
170 #define  EPFNOSUPPORT  96  /* Protocol family not supported */
171 #define  EAFNOSUPPORT  97  /* Address family not supported by protocol */
172 #define  EADDRINUSE  98  /* Address already in use */
173 #define  EADDRNOTAVAIL  99  /* Cannot assign requested address */
174 #define  ENETDOWN  100  /* Network is down */
175 #define  ENETUNREACH  101  /* Network is unreachable */
176 #define  ENETRESET  102  /* Network dropped connection because of reset */
177 #define  ECONNABORTED  103  /* Software caused connection abort */
178 #define  ECONNRESET  104  /* Connection reset by peer */
179 #define  ENOBUFS    105  /* No buffer space available */
180 #define  EISCONN    106  /* Transport endpoint is already connected */
181 #define  ENOTCONN  107  /* Transport endpoint is not connected */
182 #define  ESHUTDOWN  108  /* Cannot send after transport endpoint shutdown */
183 #define  ETOOMANYREFS  109  /* Too many references: cannot splice */
184 #define  ETIMEDOUT  110  /* Connection timed out */
185 #define  ECONNREFUSED  111  /* Connection refused */
186 #define  EHOSTDOWN  112  /* Host is down */
187 #define  EHOSTUNREACH  113  /* No route to host */
188 #define  EALREADY  114  /* Operation already in progress */
189 #define  EINPROGRESS  115  /* Operation now in progress */
190 #define  ESTALE    116  /* Stale NFS file handle */
191 #define  EUCLEAN    117  /* Structure needs cleaning */
192 #define  ENOTNAM    118  /* Not a XENIX named type file */
193 #define  ENAVAIL    119  /* No XENIX semaphores available */
194 #define  EISNAM    120  /* Is a named type file */
195 #define  EREMOTEIO  121  /* Remote I/O error */
196 #define  EDQUOT    122  /* Quota exceeded */
197
198 #define  ENOMEDIUM  123  /* No medium found */
199 #define  EMEDIUMTYPE  124  /* Wrong medium type */
200
201
202 #define ENSROK    0 /* DNS server returned answer with no data */
203 #define ENSRNODATA  160 /* DNS server returned answer with no data */
204 #define ENSRFORMERR 161 /* DNS server claims query was misformatted */
205 #define ENSRSERVFAIL 162  /* DNS server returned general failure */
206 #define ENSRNOTFOUND 163  /* Domain name not found */
207 #define ENSRNOTIMP  164 /* DNS server does not implement requested operation */
208 #define ENSRREFUSED 165 /* DNS server refused query */
209 #define ENSRBADQUERY 166  /* Misformatted DNS query */
210 #define ENSRBADNAME 167 /* Misformatted domain name */
211 #define ENSRBADFAMILY 168 /* Unsupported address family */
212 #define ENSRBADRESP 169 /* Misformatted DNS reply */
213 #define ENSRCONNREFUSED 170 /* Could not contact DNS servers */
214 #define ENSRTIMEOUT 171 /* Timeout while contacting DNS servers */
215 #define ENSROF    172 /* End of file */
216 #define ENSRFILE  173 /* Error reading file */
217 #define ENSRNOMEM 174 /* Out of memory */
218 #define ENSRDESTRUCTION 175 /* Application terminated lookup */
219 #define ENSRQUERYDOMAINTOOLONG  176 /* Domain name is too long */
220 #define ENSRCNAMELOOP 177 /* Domain name is too long */
221
222 #ifndef errno
223 extern int errno;
224 #endif
225
226 #endif /* LWIP_PROVIDE_ERRNO */
227
228 #ifdef __cplusplus
229 }
230 #endif
231
232 #endif /* __LWIP_ARCH_H__ */