3328 |
povik |
1 |
/** |
|
|
2 |
* \defgroup uipopt Configuration options for uIP |
|
|
3 |
* @{ |
|
|
4 |
* |
|
|
5 |
* uIP is configured using the per-project configuration file |
|
|
6 |
* "uipopt.h". This file contains all compile-time options for uIP and |
|
|
7 |
* should be tweaked to match each specific project. The uIP |
|
|
8 |
* distribution contains a documented example "uipopt.h" that can be |
|
|
9 |
* copied and modified for each project. |
|
|
10 |
*/ |
|
|
11 |
|
|
|
12 |
/** |
|
|
13 |
* \file |
|
|
14 |
* Configuration options for uIP. |
|
|
15 |
* \author Adam Dunkels <adam@dunkels.com> |
|
|
16 |
* |
|
|
17 |
* This file is used for tweaking various configuration options for |
|
|
18 |
* uIP. You should make a copy of this file into one of your project's |
|
|
19 |
* directories instead of editing this example "uipopt.h" file that |
|
|
20 |
* comes with the uIP distribution. |
|
|
21 |
*/ |
|
|
22 |
|
|
|
23 |
/* |
|
|
24 |
* Copyright (c) 2001-2003, Adam Dunkels. |
|
|
25 |
* All rights reserved. |
|
|
26 |
* |
|
|
27 |
* Redistribution and use in source and binary forms, with or without |
|
|
28 |
* modification, are permitted provided that the following conditions |
|
|
29 |
* are met: |
|
|
30 |
* 1. Redistributions of source code must retain the above copyright |
|
|
31 |
* notice, this list of conditions and the following disclaimer. |
|
|
32 |
* 2. Redistributions in binary form must reproduce the above copyright |
|
|
33 |
* notice, this list of conditions and the following disclaimer in the |
|
|
34 |
* documentation and/or other materials provided with the distribution. |
|
|
35 |
* 3. The name of the author may not be used to endorse or promote |
|
|
36 |
* products derived from this software without specific prior |
|
|
37 |
* written permission. |
|
|
38 |
* |
|
|
39 |
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS |
|
|
40 |
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
|
41 |
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|
|
42 |
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY |
|
|
43 |
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|
|
44 |
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
|
|
45 |
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
|
|
46 |
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
|
|
47 |
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
|
|
48 |
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
|
|
49 |
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
|
50 |
* |
|
|
51 |
* This file is part of the uIP TCP/IP stack. |
|
|
52 |
* |
|
|
53 |
* $Id: uipopt.h,v 1.16.2.5 2003/10/07 13:22:51 adam Exp $ |
|
|
54 |
* |
|
|
55 |
*/ |
|
|
56 |
|
|
|
57 |
#ifndef __UIPOPT_H__ |
|
|
58 |
#define __UIPOPT_H__ |
|
|
59 |
|
|
|
60 |
/*------------------------------------------------------------------------------*/ |
|
|
61 |
/** |
|
|
62 |
* \defgroup uipopttypedef uIP type definitions |
|
|
63 |
* @{ |
|
|
64 |
*/ |
|
|
65 |
|
|
|
66 |
/** |
|
|
67 |
* The 8-bit unsigned data type. |
|
|
68 |
* |
|
|
69 |
* This may have to be tweaked for your particular compiler. "unsigned |
|
|
70 |
* char" works for most compilers. |
|
|
71 |
*/ |
|
|
72 |
typedef unsigned char u8_t; |
|
|
73 |
|
|
|
74 |
/** |
|
|
75 |
* The 16-bit unsigned data type. |
|
|
76 |
* |
|
|
77 |
* This may have to be tweaked for your particular compiler. "unsigned |
|
|
78 |
* short" works for most compilers. |
|
|
79 |
*/ |
|
|
80 |
typedef unsigned short u16_t; |
|
|
81 |
|
|
|
82 |
/** |
|
|
83 |
* The statistics data type. |
|
|
84 |
* |
|
|
85 |
* This datatype determines how high the statistics counters are able |
|
|
86 |
* to count. |
|
|
87 |
*/ |
|
|
88 |
typedef unsigned short uip_stats_t; |
|
|
89 |
|
|
|
90 |
/** @} */ |
|
|
91 |
|
|
|
92 |
/*------------------------------------------------------------------------------*/ |
|
|
93 |
|
|
|
94 |
/** |
|
|
95 |
* \defgroup uipoptstaticconf Static configuration options |
|
|
96 |
* @{ |
|
|
97 |
* |
|
|
98 |
* These configuration options can be used for setting the IP address |
|
|
99 |
* settings statically, but only if UIP_FIXEDADDR is set to 1. The |
|
|
100 |
* configuration options for a specific node includes IP address, |
|
|
101 |
* netmask and default router as well as the Ethernet address. The |
|
|
102 |
* netmask, default router and Ethernet address are appliciable only |
|
|
103 |
* if uIP should be run over Ethernet. |
|
|
104 |
* |
|
|
105 |
* All of these should be changed to suit your project. |
|
|
106 |
*/ |
|
|
107 |
|
|
|
108 |
/** |
|
|
109 |
* Determines if uIP should use a fixed IP address or not. |
|
|
110 |
* |
|
|
111 |
* If uIP should use a fixed IP address, the settings are set in the |
|
|
112 |
* uipopt.h file. If not, the macros uip_sethostaddr(), |
|
|
113 |
* uip_setdraddr() and uip_setnetmask() should be used instead. |
|
|
114 |
* |
|
|
115 |
* \hideinitializer |
|
|
116 |
*/ |
|
|
117 |
#define UIP_FIXEDADDR 1 |
|
|
118 |
|
|
|
119 |
/** |
|
|
120 |
* Ping IP address asignment. |
|
|
121 |
* |
|
|
122 |
* uIP uses a "ping" packets for setting its own IP address if this |
|
|
123 |
* option is set. If so, uIP will start with an empty IP address and |
|
|
124 |
* the destination IP address of the first incoming "ping" (ICMP echo) |
|
|
125 |
* packet will be used for setting the hosts IP address. |
|
|
126 |
* |
|
|
127 |
* \note This works only if UIP_FIXEDADDR is 0. |
|
|
128 |
* |
|
|
129 |
* \hideinitializer |
|
|
130 |
*/ |
|
|
131 |
#define UIP_PINGADDRCONF 0 |
|
|
132 |
|
|
|
133 |
|
|
|
134 |
#define UIP_IPADDR0 192U /**< The first octet of the IP address of |
|
|
135 |
this uIP node, if UIP_FIXEDADDR is |
|
|
136 |
1. \hideinitializer */ |
|
|
137 |
#define UIP_IPADDR1 168U /**< The second octet of the IP address of |
|
|
138 |
this uIP node, if UIP_FIXEDADDR is |
|
|
139 |
1. \hideinitializer */ |
|
|
140 |
#define UIP_IPADDR2 0U /**< The third octet of the IP address of |
|
|
141 |
this uIP node, if UIP_FIXEDADDR is |
|
|
142 |
1. \hideinitializer */ |
|
|
143 |
#define UIP_IPADDR3 8U /**< The fourth octet of the IP address of |
|
|
144 |
this uIP node, if UIP_FIXEDADDR is |
|
|
145 |
1. \hideinitializer */ |
|
|
146 |
|
|
|
147 |
#define UIP_NETMASK0 255 /**< The first octet of the netmask of |
|
|
148 |
this uIP node, if UIP_FIXEDADDR is |
|
|
149 |
1. \hideinitializer */ |
|
|
150 |
#define UIP_NETMASK1 255 /**< The second octet of the netmask of |
|
|
151 |
this uIP node, if UIP_FIXEDADDR is |
|
|
152 |
1. \hideinitializer */ |
|
|
153 |
#define UIP_NETMASK2 255 /**< The third octet of the netmask of |
|
|
154 |
this uIP node, if UIP_FIXEDADDR is |
|
|
155 |
1. \hideinitializer */ |
|
|
156 |
#define UIP_NETMASK3 0 /**< The fourth octet of the netmask of |
|
|
157 |
this uIP node, if UIP_FIXEDADDR is |
|
|
158 |
1. \hideinitializer */ |
|
|
159 |
|
|
|
160 |
#define UIP_DRIPADDR0 192 /**< The first octet of the IP address of |
|
|
161 |
the default router, if UIP_FIXEDADDR is |
|
|
162 |
1. \hideinitializer */ |
|
|
163 |
#define UIP_DRIPADDR1 168 /**< The second octet of the IP address of |
|
|
164 |
the default router, if UIP_FIXEDADDR is |
|
|
165 |
1. \hideinitializer */ |
|
|
166 |
#define UIP_DRIPADDR2 0 /**< The third octet of the IP address of |
|
|
167 |
the default router, if UIP_FIXEDADDR is |
|
|
168 |
1. \hideinitializer */ |
|
|
169 |
#define UIP_DRIPADDR3 1 /**< The fourth octet of the IP address of |
|
|
170 |
the default router, if UIP_FIXEDADDR is |
|
|
171 |
1. \hideinitializer */ |
|
|
172 |
|
|
|
173 |
|
|
|
174 |
|
|
|
175 |
/** |
|
|
176 |
* Specifies if the uIP ARP module should be compiled with a fixed |
|
|
177 |
* Ethernet MAC address or not. |
|
|
178 |
* |
|
|
179 |
* If this configuration option is 0, the macro uip_setethaddr() can |
|
|
180 |
* be used to specify the Ethernet address at run-time. |
|
|
181 |
* |
|
|
182 |
* \hideinitializer |
|
|
183 |
*/ |
|
|
184 |
#define UIP_FIXEDETHADDR 1 |
|
|
185 |
|
|
|
186 |
#define UIP_ETHADDR0 0x00 /**< The first octet of the Ethernet |
|
|
187 |
address if UIP_FIXEDETHADDR is |
|
|
188 |
1. \hideinitializer */ |
|
|
189 |
#define UIP_ETHADDR1 0x02 /**< The second octet of the Ethernet |
|
|
190 |
address if UIP_FIXEDETHADDR is |
|
|
191 |
1. \hideinitializer */ |
|
|
192 |
#define UIP_ETHADDR2 0x04 /**< The third octet of the Ethernet |
|
|
193 |
address if UIP_FIXEDETHADDR is |
|
|
194 |
1. \hideinitializer */ |
|
|
195 |
#define UIP_ETHADDR3 0x08 /**< The fourth octet of the Ethernet |
|
|
196 |
address if UIP_FIXEDETHADDR is |
|
|
197 |
1. \hideinitializer */ |
|
|
198 |
#define UIP_ETHADDR4 0x0A /**< The fifth octet of the Ethernet |
|
|
199 |
address if UIP_FIXEDETHADDR is |
|
|
200 |
1. \hideinitializer */ |
|
|
201 |
#define UIP_ETHADDR5 0x0D /**< The sixth octet of the Ethernet |
|
|
202 |
address if UIP_FIXEDETHADDR is |
|
|
203 |
1. \hideinitializer */ |
|
|
204 |
|
|
|
205 |
/** @} */ |
|
|
206 |
/*------------------------------------------------------------------------------*/ |
|
|
207 |
/** |
|
|
208 |
* \defgroup uipoptip IP configuration options |
|
|
209 |
* @{ |
|
|
210 |
* |
|
|
211 |
*/ |
|
|
212 |
/** |
|
|
213 |
* The IP TTL (time to live) of IP packets sent by uIP. |
|
|
214 |
* |
|
|
215 |
* This should normally not be changed. |
|
|
216 |
*/ |
|
|
217 |
#define UIP_TTL 255 |
|
|
218 |
|
|
|
219 |
/** |
|
|
220 |
* Turn on support for IP packet reassembly. |
|
|
221 |
* |
|
|
222 |
* uIP supports reassembly of fragmented IP packets. This features |
|
|
223 |
* requires an additonal amount of RAM to hold the reassembly buffer |
|
|
224 |
* and the reassembly code size is approximately 700 bytes. The |
|
|
225 |
* reassembly buffer is of the same size as the uip_buf buffer |
|
|
226 |
* (configured by UIP_BUFSIZE). |
|
|
227 |
* |
|
|
228 |
* \note IP packet reassembly is not heavily tested. |
|
|
229 |
* |
|
|
230 |
* \hideinitializer |
|
|
231 |
*/ |
|
|
232 |
#define UIP_REASSEMBLY 1 |
|
|
233 |
|
|
|
234 |
/** |
|
|
235 |
* The maximum time an IP fragment should wait in the reassembly |
|
|
236 |
* buffer before it is dropped. |
|
|
237 |
* |
|
|
238 |
*/ |
|
|
239 |
#define UIP_REASS_MAXAGE 40 |
|
|
240 |
|
|
|
241 |
/** @} */ |
|
|
242 |
|
|
|
243 |
/*------------------------------------------------------------------------------*/ |
|
|
244 |
/** |
|
|
245 |
* \defgroup uipoptudp UDP configuration options |
|
|
246 |
* @{ |
|
|
247 |
* |
|
|
248 |
* \note The UDP support in uIP is still not entirely complete; there |
|
|
249 |
* is no support for sending or receiving broadcast or multicast |
|
|
250 |
* packets, but it works well enough to support a number of vital |
|
|
251 |
* applications such as DNS queries, though |
|
|
252 |
*/ |
|
|
253 |
|
|
|
254 |
/** |
|
|
255 |
* Toggles wether UDP support should be compiled in or not. |
|
|
256 |
* |
|
|
257 |
* \hideinitializer |
|
|
258 |
*/ |
|
|
259 |
#define UIP_UDP 1 |
|
|
260 |
|
|
|
261 |
/** |
|
|
262 |
* Toggles if UDP checksums should be used or not. |
|
|
263 |
* |
|
|
264 |
* \note Support for UDP checksums is currently not included in uIP, |
|
|
265 |
* so this option has no function. |
|
|
266 |
* |
|
|
267 |
* \hideinitializer |
|
|
268 |
*/ |
|
|
269 |
#define UIP_UDP_CHECKSUMS 0 |
|
|
270 |
|
|
|
271 |
/** |
|
|
272 |
* The maximum amount of concurrent UDP connections. |
|
|
273 |
* |
|
|
274 |
* \hideinitializer |
|
|
275 |
*/ |
|
|
276 |
#define UIP_UDP_CONNS 2 |
|
|
277 |
|
|
|
278 |
/** |
|
|
279 |
* The name of the function that should be called when UDP datagrams arrive. |
|
|
280 |
* |
|
|
281 |
* \hideinitializer |
|
|
282 |
*/ |
|
|
283 |
#define UIP_UDP_APPCALL udp_appcall |
|
|
284 |
|
|
|
285 |
/** @} */ |
|
|
286 |
/*------------------------------------------------------------------------------*/ |
|
|
287 |
/** |
|
|
288 |
* \defgroup uipopttcp TCP configuration options |
|
|
289 |
* @{ |
|
|
290 |
*/ |
|
|
291 |
|
|
|
292 |
/** |
|
|
293 |
* Determines if support for opening connections from uIP should be |
|
|
294 |
* compiled in. |
|
|
295 |
* |
|
|
296 |
* If the applications that are running on top of uIP for this project |
|
|
297 |
* do not need to open outgoing TCP connections, this configration |
|
|
298 |
* option can be turned off to reduce the code size of uIP. |
|
|
299 |
* |
|
|
300 |
* \hideinitializer |
|
|
301 |
*/ |
|
|
302 |
#define UIP_ACTIVE_OPEN 1 |
|
|
303 |
|
|
|
304 |
/** |
|
|
305 |
* The maximum number of simultaneously open TCP connections. |
|
|
306 |
* |
|
|
307 |
* Since the TCP connections are statically allocated, turning this |
|
|
308 |
* configuration knob down results in less RAM used. Each TCP |
|
|
309 |
* connection requires approximatly 30 bytes of memory. |
|
|
310 |
* |
|
|
311 |
* \hideinitializer |
|
|
312 |
*/ |
|
|
313 |
#define UIP_CONNS 25 |
|
|
314 |
|
|
|
315 |
/** |
|
|
316 |
* The maximum number of simultaneously listening TCP ports. |
|
|
317 |
* |
|
|
318 |
* Each listening TCP port requires 2 bytes of memory. |
|
|
319 |
* |
|
|
320 |
* \hideinitializer |
|
|
321 |
*/ |
|
|
322 |
#define UIP_LISTENPORTS 10 |
|
|
323 |
|
|
|
324 |
/** |
|
|
325 |
* The size of the advertised receiver's window. |
|
|
326 |
* |
|
|
327 |
* Should be set low (i.e., to the size of the uip_buf buffer) is the |
|
|
328 |
* application is slow to process incoming data, or high (32768 bytes) |
|
|
329 |
* if the application processes data quickly. |
|
|
330 |
* |
|
|
331 |
* \hideinitializer |
|
|
332 |
*/ |
|
|
333 |
#define UIP_RECEIVE_WINDOW 32768 |
|
|
334 |
|
|
|
335 |
/** |
|
|
336 |
* Determines if support for TCP urgent data notification should be |
|
|
337 |
* compiled in. |
|
|
338 |
* |
|
|
339 |
* Urgent data (out-of-band data) is a rarely used TCP feature that |
|
|
340 |
* very seldom would be required. |
|
|
341 |
* |
|
|
342 |
* \hideinitializer |
|
|
343 |
*/ |
|
|
344 |
#define UIP_URGDATA 1 |
|
|
345 |
|
|
|
346 |
/** |
|
|
347 |
* The initial retransmission timeout counted in timer pulses. |
|
|
348 |
* |
|
|
349 |
* This should not be changed. |
|
|
350 |
*/ |
|
|
351 |
#define UIP_RTO 3 |
|
|
352 |
|
|
|
353 |
/** |
|
|
354 |
* The maximum number of times a segment should be retransmitted |
|
|
355 |
* before the connection should be aborted. |
|
|
356 |
* |
|
|
357 |
* This should not be changed. |
|
|
358 |
*/ |
|
|
359 |
#define UIP_MAXRTX 8 |
|
|
360 |
|
|
|
361 |
/** |
|
|
362 |
* The maximum number of times a SYN segment should be retransmitted |
|
|
363 |
* before a connection request should be deemed to have been |
|
|
364 |
* unsuccessful. |
|
|
365 |
* |
|
|
366 |
* This should not need to be changed. |
|
|
367 |
*/ |
|
|
368 |
#define UIP_MAXSYNRTX 3 |
|
|
369 |
|
|
|
370 |
/** |
|
|
371 |
* The TCP maximum segment size. |
|
|
372 |
* |
|
|
373 |
* This is should not be to set to more than UIP_BUFSIZE - UIP_LLH_LEN - 40. |
|
|
374 |
*/ |
|
|
375 |
#define UIP_TCP_MSS (UIP_BUFSIZE - UIP_LLH_LEN - 40) |
|
|
376 |
|
|
|
377 |
/** |
|
|
378 |
* How long a connection should stay in the TIME_WAIT state. |
|
|
379 |
* |
|
|
380 |
* This configiration option has no real implication, and it should be |
|
|
381 |
* left untouched. |
|
|
382 |
*/ |
|
|
383 |
#define UIP_TIME_WAIT_TIMEOUT 120 |
|
|
384 |
|
|
|
385 |
|
|
|
386 |
/** @} */ |
|
|
387 |
/*------------------------------------------------------------------------------*/ |
|
|
388 |
/** |
|
|
389 |
* \defgroup uipoptarp ARP configuration options |
|
|
390 |
* @{ |
|
|
391 |
*/ |
|
|
392 |
|
|
|
393 |
/** |
|
|
394 |
* The size of the ARP table. |
|
|
395 |
* |
|
|
396 |
* This option should be set to a larger value if this uIP node will |
|
|
397 |
* have many connections from the local network. |
|
|
398 |
* |
|
|
399 |
* \hideinitializer |
|
|
400 |
*/ |
|
|
401 |
#define UIP_ARPTAB_SIZE 8 |
|
|
402 |
|
|
|
403 |
/** |
|
|
404 |
* The maxium age of ARP table entries measured in 10ths of seconds. |
|
|
405 |
* |
|
|
406 |
* An UIP_ARP_MAXAGE of 120 corresponds to 20 minutes (BSD |
|
|
407 |
* default). |
|
|
408 |
*/ |
|
|
409 |
#define UIP_ARP_MAXAGE 120 |
|
|
410 |
|
|
|
411 |
/** @} */ |
|
|
412 |
|
|
|
413 |
/*------------------------------------------------------------------------------*/ |
|
|
414 |
|
|
|
415 |
/** |
|
|
416 |
* \defgroup uipoptgeneral General configuration options |
|
|
417 |
* @{ |
|
|
418 |
*/ |
|
|
419 |
|
|
|
420 |
/** |
|
|
421 |
* The size of the uIP packet buffer. |
|
|
422 |
* |
|
|
423 |
* The uIP packet buffer should not be smaller than 60 bytes, and does |
|
|
424 |
* not need to be larger than 1500 bytes. Lower size results in lower |
|
|
425 |
* TCP throughput, larger size results in higher TCP throughput. |
|
|
426 |
* |
|
|
427 |
* \hideinitializer |
|
|
428 |
*/ |
|
|
429 |
#define UIP_BUFSIZE 1500 |
|
|
430 |
|
|
|
431 |
|
|
|
432 |
/** |
|
|
433 |
* Determines if statistics support should be compiled in. |
|
|
434 |
* |
|
|
435 |
* The statistics is useful for debugging and to show the user. |
|
|
436 |
* |
|
|
437 |
* \hideinitializer |
|
|
438 |
*/ |
|
|
439 |
#define UIP_STATISTICS 1 |
|
|
440 |
|
|
|
441 |
/** |
|
|
442 |
* Determines if logging of certain events should be compiled in. |
|
|
443 |
* |
|
|
444 |
* This is useful mostly for debugging. The function uip_log() |
|
|
445 |
* must be implemented to suit the architecture of the project, if |
|
|
446 |
* logging is turned on. |
|
|
447 |
* |
|
|
448 |
* \hideinitializer |
|
|
449 |
*/ |
|
|
450 |
#define UIP_LOGGING 0 |
|
|
451 |
|
|
|
452 |
/** |
|
|
453 |
* Print out a uIP log message. |
|
|
454 |
* |
|
|
455 |
* This function must be implemented by the module that uses uIP, and |
|
|
456 |
* is called by uIP whenever a log message is generated. |
|
|
457 |
*/ |
|
|
458 |
void uip_log(char *msg); |
|
|
459 |
|
|
|
460 |
/** |
|
|
461 |
* The link level header length. |
|
|
462 |
* |
|
|
463 |
* This is the offset into the uip_buf where the IP header can be |
|
|
464 |
* found. For Ethernet, this should be set to 14. For SLIP, this |
|
|
465 |
* should be set to 0. |
|
|
466 |
* |
|
|
467 |
* \hideinitializer |
|
|
468 |
*/ |
|
|
469 |
#define UIP_LLH_LEN 14 |
|
|
470 |
|
|
|
471 |
|
|
|
472 |
/** @} */ |
|
|
473 |
/*------------------------------------------------------------------------------*/ |
|
|
474 |
/** |
|
|
475 |
* \defgroup uipoptcpu CPU architecture configuration |
|
|
476 |
* @{ |
|
|
477 |
* |
|
|
478 |
* The CPU architecture configuration is where the endianess of the |
|
|
479 |
* CPU on which uIP is to be run is specified. Most CPUs today are |
|
|
480 |
* little endian, and the most notable exception are the Motorolas |
|
|
481 |
* which are big endian. The BYTE_ORDER macro should be changed to |
|
|
482 |
* reflect the CPU architecture on which uIP is to be run. |
|
|
483 |
*/ |
|
|
484 |
#ifndef LITTLE_ENDIAN |
|
|
485 |
#define LITTLE_ENDIAN 3412 |
|
|
486 |
#endif /* LITTLE_ENDIAN */ |
|
|
487 |
#ifndef BIG_ENDIAN |
|
|
488 |
#define BIG_ENDIAN 1234 |
|
|
489 |
#endif /* BIGE_ENDIAN */ |
|
|
490 |
|
|
|
491 |
/** |
|
|
492 |
* The byte order of the CPU architecture on which uIP is to be run. |
|
|
493 |
* |
|
|
494 |
* This option can be either BIG_ENDIAN (Motorola byte order) or |
|
|
495 |
* LITTLE_ENDIAN (Intel byte order). |
|
|
496 |
* |
|
|
497 |
* \hideinitializer |
|
|
498 |
*/ |
|
|
499 |
#ifndef BYTE_ORDER |
|
|
500 |
#define BYTE_ORDER LITTLE_ENDIAN |
|
|
501 |
#endif /* BYTE_ORDER */ |
|
|
502 |
|
|
|
503 |
/** @} */ |
|
|
504 |
/*------------------------------------------------------------------------------*/ |
|
|
505 |
|
|
|
506 |
/** |
|
|
507 |
* \defgroup uipoptapp Appication specific configurations |
|
|
508 |
* @{ |
|
|
509 |
* |
|
|
510 |
* An uIP application is implemented using a single application |
|
|
511 |
* function that is called by uIP whenever a TCP/IP event occurs. The |
|
|
512 |
* name of this function must be registered with uIP at compile time |
|
|
513 |
* using the UIP_APPCALL definition. |
|
|
514 |
* |
|
|
515 |
* uIP applications can store the application state within the |
|
|
516 |
* uip_conn structure by specifying the size of the application |
|
|
517 |
* structure with the UIP_APPSTATE_SIZE macro. |
|
|
518 |
* |
|
|
519 |
* The file containing the definitions must be included in the |
|
|
520 |
* uipopt.h file. |
|
|
521 |
* |
|
|
522 |
* The following example illustrates how this can look. |
|
|
523 |
\code |
|
|
524 |
|
|
|
525 |
void httpd_appcall(void); |
|
|
526 |
#define UIP_APPCALL httpd_appcall |
|
|
527 |
|
|
|
528 |
struct httpd_state { |
|
|
529 |
u8_t state; |
|
|
530 |
u16_t count; |
|
|
531 |
char *dataptr; |
|
|
532 |
char *script; |
|
|
533 |
}; |
|
|
534 |
#define UIP_APPSTATE_SIZE (sizeof(struct httpd_state)) |
|
|
535 |
\endcode |
|
|
536 |
*/ |
|
|
537 |
|
|
|
538 |
/** |
|
|
539 |
* \var #define UIP_APPCALL |
|
|
540 |
* |
|
|
541 |
* The name of the application function that uIP should call in |
|
|
542 |
* response to TCP/IP events. |
|
|
543 |
* |
|
|
544 |
*/ |
|
|
545 |
|
|
|
546 |
/** |
|
|
547 |
* \var #define UIP_APPSTATE_SIZE |
|
|
548 |
* |
|
|
549 |
* The size of the application state that is to be stored in the |
|
|
550 |
* uip_conn structure. |
|
|
551 |
*/ |
|
|
552 |
/** @} */ |
|
|
553 |
|
|
|
554 |
/* Include the header file for the application program that should be |
|
|
555 |
used. If you don't use the example web server, you should change |
|
|
556 |
this. */ |
|
|
557 |
#include "httpd.h" |
|
|
558 |
|
|
|
559 |
|
|
|
560 |
#endif /* __UIPOPT_H__ */ |