]> git.sur5r.net Git - freertos/blob - FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP/include/FreeRTOSIPConfigDefaults.h
Update to MIT licensed FreeRTOS V10.0.0 - see https://www.freertos.org/History.txt
[freertos] / FreeRTOS-Plus / Source / FreeRTOS-Plus-TCP / include / FreeRTOSIPConfigDefaults.h
1 /*\r
2  * FreeRTOS+TCP V2.0.0\r
3  * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
4  *\r
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
6  * this software and associated documentation files (the "Software"), to deal in\r
7  * the Software without restriction, including without limitation the rights to\r
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
9  * the Software, and to permit persons to whom the Software is furnished to do so,\r
10  * subject to the following conditions:\r
11  *\r
12  * The above copyright notice and this permission notice shall be included in all\r
13  * copies or substantial portions of the Software. If you wish to use our Amazon\r
14  * FreeRTOS name, please do so in a fair use way that does not cause confusion.\r
15  *\r
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
18  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
19  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
20  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
21  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
22  *\r
23  * http://www.FreeRTOS.org\r
24  * http://aws.amazon.com/freertos\r
25  *\r
26  * 1 tab == 4 spaces!\r
27  */\r
28 \r
29 #ifndef FREERTOS_DEFAULT_IP_CONFIG_H\r
30 #define FREERTOS_DEFAULT_IP_CONFIG_H\r
31 \r
32 /* The error numbers defined in this file will be moved to the core FreeRTOS\r
33 code in future versions of FreeRTOS - at which time the following header file\r
34 will be removed. */\r
35 #include "FreeRTOS_errno_TCP.h"\r
36 \r
37 /* This file provides default values for configuration options that are missing\r
38 from the FreeRTOSIPConfig.h configuration header file. */\r
39 \r
40 \r
41 /* Ensure defined configuration constants are using the most up to date naming. */\r
42 #ifdef tcpconfigIP_TIME_TO_LIVE\r
43         #error now called: ipconfigTCP_TIME_TO_LIVE\r
44 #endif\r
45 \r
46 #ifdef updconfigIP_TIME_TO_LIVE\r
47         #error now called: ipconfigUDP_TIME_TO_LIVE\r
48 #endif\r
49 \r
50 #ifdef ipFILLER_SIZE\r
51         #error now called: ipconfigPACKET_FILLER_SIZE\r
52 #endif\r
53 \r
54 #ifdef dnsMAX_REQUEST_ATTEMPTS\r
55         #error now called: ipconfigDNS_REQUEST_ATTEMPTS\r
56 #endif\r
57 \r
58 #ifdef ipconfigUDP_TASK_PRIORITY\r
59         #error now called: ipconfigIP_TASK_PRIORITY\r
60 #endif\r
61 \r
62 #ifdef ipconfigUDP_TASK_STACK_SIZE_WORDS\r
63         #error now called: ipconfigIP_TASK_STACK_SIZE_WORDS\r
64 #endif\r
65 \r
66 #ifdef ipconfigDRIVER_INCLUDED_RX_IP_FILTERING\r
67         #error now called: ipconfigETHERNET_DRIVER_FILTERS_PACKETS\r
68 #endif\r
69 \r
70 #ifdef ipconfigMAX_SEND_BLOCK_TIME_TICKS\r
71         #error now called: ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS\r
72 #endif\r
73 \r
74 #ifdef ipconfigUSE_RECEIVE_CONNECT_CALLBACKS\r
75         #error now called: ipconfigUSE_CALLBACKS\r
76 #endif\r
77 \r
78 #ifdef ipconfigNUM_NETWORK_BUFFERS\r
79         #error now called: ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS\r
80 #endif\r
81 \r
82 #ifdef ipconfigTCP_HANG_PROT\r
83         #error now called: ipconfigTCP_HANG_PROTECTION\r
84 #endif\r
85 \r
86 #ifdef ipconfigTCP_HANG_PROT_TIME\r
87         #error now called: ipconfigTCP_HANG_PROTECTION_TIME\r
88 #endif\r
89 \r
90 #ifdef FreeRTOS_lprintf\r
91         #error now called: FreeRTOS_debug_printf\r
92 #endif\r
93 \r
94 #if ( ipconfigEVENT_QUEUE_LENGTH < ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 ) )\r
95         #error The ipconfigEVENT_QUEUE_LENGTH parameter must be at least ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5\r
96 #endif\r
97 \r
98 #if ( ipconfigNETWORK_MTU < 46 )\r
99         #error ipconfigNETWORK_MTU must be at least 46.\r
100 #endif\r
101 \r
102 #ifdef  ipconfigBUFFER_ALLOC_FIXED_SIZE\r
103         #error ipconfigBUFFER_ALLOC_FIXED_SIZE was dropped and replaced by a const value, declared in BufferAllocation[12].c\r
104 #endif\r
105 \r
106 #ifdef  ipconfigNIC_SEND_PASSES_DMA\r
107         #error now called: ipconfigZERO_COPY_TX_DRIVER\r
108 #endif\r
109 \r
110 #ifdef  HAS_TX_CRC_OFFLOADING\r
111         /* _HT_ As these macro names have changed, throw an error\r
112         if they're still defined. */\r
113         #error now called: ipconfigHAS_TX_CRC_OFFLOADING\r
114 #endif\r
115 \r
116 #ifdef  HAS_RX_CRC_OFFLOADING\r
117         #error now called: ipconfigHAS_RX_CRC_OFFLOADING\r
118 #endif\r
119 \r
120 #ifdef ipconfigTCP_RX_BUF_LEN\r
121         #error ipconfigTCP_RX_BUF_LEN is now called ipconfigTCP_RX_BUFFER_LENGTH\r
122 #endif\r
123 \r
124 #ifdef ipconfigTCP_TX_BUF_LEN\r
125         #error ipconfigTCP_TX_BUF_LEN is now called ipconfigTCP_TX_BUFFER_LENGTH\r
126 #endif\r
127 \r
128 #ifdef ipconfigDHCP_USES_USER_HOOK\r
129         #error ipconfigDHCP_USES_USER_HOOK and its associated callback have been superceeded - see http://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html#ipconfigUSE_DHCP_HOOK\r
130 #endif\r
131 \r
132 #ifndef ipconfigUSE_TCP\r
133         #define ipconfigUSE_TCP                                         ( 1 )\r
134 #endif\r
135 \r
136 #if     ipconfigUSE_TCP\r
137 \r
138         /* Include support for TCP scaling windows */\r
139         #ifndef ipconfigUSE_TCP_WIN\r
140                 #define ipconfigUSE_TCP_WIN                             ( 1 )\r
141         #endif\r
142 \r
143         #ifndef ipconfigTCP_WIN_SEG_COUNT\r
144                 #define ipconfigTCP_WIN_SEG_COUNT               ( 256 )\r
145         #endif\r
146 \r
147         #ifndef ipconfigIGNORE_UNKNOWN_PACKETS\r
148                 /* When non-zero, TCP will not send RST packets in reply to\r
149                 TCP packets which are unknown, or out-of-order. */\r
150                 #define ipconfigIGNORE_UNKNOWN_PACKETS  ( 0 )\r
151         #endif\r
152 #endif\r
153 \r
154 /*\r
155  * For debuging/logging: check if the port number is used for telnet\r
156  * Some events will not be logged for telnet connections\r
157  * because it would produce logging about the transmission of the logging...\r
158  * This macro will only be used if FreeRTOS_debug_printf() is defined for logging\r
159  */\r
160 #ifndef ipconfigTCP_MAY_LOG_PORT\r
161         #define ipconfigTCP_MAY_LOG_PORT(xPort)                 ( ( xPort ) != 23u )\r
162 #endif\r
163 \r
164 \r
165 #ifndef ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME\r
166         #define ipconfigSOCK_DEFAULT_RECEIVE_BLOCK_TIME portMAX_DELAY\r
167 #endif\r
168 \r
169 #ifndef ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME\r
170         #define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME    portMAX_DELAY\r
171 #endif\r
172 \r
173 /*\r
174  * FreeRTOS debug logging routine (proposal)\r
175  * The macro will be called in the printf() style. Users can define\r
176  * their own logging routine as:\r
177  *\r
178  *     #define FreeRTOS_debug_printf( MSG )                     my_printf MSG\r
179  *\r
180  * The FreeRTOS_debug_printf() must be thread-safe but does not have to be\r
181  * interrupt-safe.\r
182  */\r
183 #ifdef ipconfigHAS_DEBUG_PRINTF\r
184         #if( ipconfigHAS_DEBUG_PRINTF == 0 )\r
185                 #ifdef FreeRTOS_debug_printf\r
186                         #error Do not define FreeRTOS_debug_print if ipconfigHAS_DEBUG_PRINTF is set to 0\r
187                 #endif /* ifdef FreeRTOS_debug_printf */\r
188         #endif /* ( ipconfigHAS_DEBUG_PRINTF == 0 ) */\r
189 #endif /* ifdef ipconfigHAS_DEBUG_PRINTF */\r
190 \r
191 #ifndef FreeRTOS_debug_printf\r
192     #define FreeRTOS_debug_printf( MSG )                do{} while(0)\r
193         #define ipconfigHAS_DEBUG_PRINTF                        0\r
194 #endif\r
195 \r
196 /*\r
197  * FreeRTOS general logging routine (proposal)\r
198  * Used in some utility functions such as FreeRTOS_netstat() and FreeRTOS_PrintARPCache()\r
199  *\r
200  *     #define FreeRTOS_printf( MSG )                   my_printf MSG\r
201  *\r
202  * The FreeRTOS_printf() must be thread-safe but does not have to be interrupt-safe\r
203  */\r
204 #ifdef ipconfigHAS_PRINTF\r
205         #if( ipconfigHAS_PRINTF == 0 )\r
206                 #ifdef FreeRTOS_printf\r
207                         #error Do not define FreeRTOS_print if ipconfigHAS_PRINTF is set to 0\r
208                 #endif /* ifdef FreeRTOS_debug_printf */\r
209         #endif /* ( ipconfigHAS_PRINTF == 0 ) */\r
210 #endif /* ifdef ipconfigHAS_PRINTF */\r
211 \r
212 #ifndef FreeRTOS_printf\r
213     #define FreeRTOS_printf( MSG )                              do{} while(0)\r
214         #define ipconfigHAS_PRINTF                                      0\r
215 #endif\r
216 \r
217 /*\r
218  * In cases where a lot of logging is produced, FreeRTOS_flush_logging( )\r
219  * will be called to give the logging module a chance to flush the data\r
220  * An example of this is the netstat command, which produces many lines of logging\r
221  */\r
222 #ifndef FreeRTOS_flush_logging\r
223     #define FreeRTOS_flush_logging( )                   do{} while(0)\r
224 #endif\r
225 \r
226 /* Malloc functions. Within most applications of FreeRTOS, the couple\r
227  * pvPortMalloc()/vPortFree() will be used.\r
228  * If there is also SDRAM, the user may decide to use a different memory\r
229  * allocator:\r
230  * MallocLarge is used to allocate large TCP buffers (for Rx/Tx)\r
231  * MallocSocket is used to allocate the space for the sockets\r
232  */\r
233 #ifndef pvPortMallocLarge\r
234         #define pvPortMallocLarge( x )                          pvPortMalloc( x )\r
235 #endif\r
236 \r
237 #ifndef vPortFreeLarge\r
238         #define vPortFreeLarge(ptr)                                     vPortFree(ptr)\r
239 #endif\r
240 \r
241 #ifndef pvPortMallocSocket\r
242         #define pvPortMallocSocket( x )                         pvPortMalloc( x )\r
243 #endif\r
244 \r
245 #ifndef vPortFreeSocket\r
246         #define vPortFreeSocket(ptr)                            vPortFree(ptr)\r
247 #endif\r
248 \r
249 /*\r
250  * At several places within the library, random numbers are needed:\r
251  * - DHCP:    For creating a DHCP transaction number\r
252  * - TCP:     Set the Initial Sequence Number: this is the value of the first outgoing\r
253  *            sequence number being used when connecting to a peer.\r
254  *            Having a well randomised ISN is important to avoid spoofing\r
255  * - UDP/TCP: for setting the first port number to be used, in case a socket\r
256  *            uses a 'random' or anonymous port number\r
257  */\r
258 #ifndef ipconfigRAND32\r
259         #define ipconfigRAND32() rand()\r
260 #endif\r
261 /* --------------------------------------------------------\r
262  * End of: HT Added some macro defaults for the PLUS-UDP project\r
263  * -------------------------------------------------------- */\r
264 \r
265 #ifndef ipconfigUSE_NETWORK_EVENT_HOOK\r
266         #define ipconfigUSE_NETWORK_EVENT_HOOK 0\r
267 #endif\r
268 \r
269 #ifndef ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS\r
270         #define ipconfigUDP_MAX_SEND_BLOCK_TIME_TICKS ( pdMS_TO_TICKS( 20 ) )\r
271 #endif\r
272 \r
273 #ifndef ipconfigARP_CACHE_ENTRIES\r
274         #define ipconfigARP_CACHE_ENTRIES               10\r
275 #endif\r
276 \r
277 #ifndef ipconfigMAX_ARP_RETRANSMISSIONS\r
278         #define ipconfigMAX_ARP_RETRANSMISSIONS ( 5u )\r
279 #endif\r
280 \r
281 #ifndef ipconfigMAX_ARP_AGE\r
282         #define ipconfigMAX_ARP_AGE                     150u\r
283 #endif\r
284 \r
285 #ifndef ipconfigUSE_ARP_REVERSED_LOOKUP\r
286         #define ipconfigUSE_ARP_REVERSED_LOOKUP         0\r
287 #endif\r
288 \r
289 #ifndef ipconfigUSE_ARP_REMOVE_ENTRY\r
290         #define ipconfigUSE_ARP_REMOVE_ENTRY            0\r
291 #endif\r
292 \r
293 #ifndef ipconfigINCLUDE_FULL_INET_ADDR\r
294         #define ipconfigINCLUDE_FULL_INET_ADDR  1\r
295 #endif\r
296 \r
297 #ifndef ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS\r
298         #define ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS          45\r
299 #endif\r
300 \r
301 #ifndef ipconfigEVENT_QUEUE_LENGTH\r
302         #define ipconfigEVENT_QUEUE_LENGTH              ( ipconfigNUM_NETWORK_BUFFER_DESCRIPTORS + 5 )\r
303 #endif\r
304 \r
305 #ifndef ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND\r
306         #define ipconfigALLOW_SOCKET_SEND_WITHOUT_BIND 1\r
307 #endif\r
308 \r
309 #ifndef ipconfigUDP_TIME_TO_LIVE\r
310         #define ipconfigUDP_TIME_TO_LIVE                128\r
311 #endif\r
312 \r
313 #ifndef ipconfigTCP_TIME_TO_LIVE\r
314         #define ipconfigTCP_TIME_TO_LIVE                128\r
315 #endif\r
316 \r
317 #ifndef ipconfigUDP_MAX_RX_PACKETS\r
318         /* Make postive to define the maximum number of packets which will be buffered\r
319          * for each UDP socket.\r
320          * Can be overridden with the socket option FREERTOS_SO_UDP_MAX_RX_PACKETS\r
321          */\r
322         #define ipconfigUDP_MAX_RX_PACKETS              0u\r
323 #endif\r
324 \r
325 #ifndef ipconfigUSE_DHCP\r
326         #define ipconfigUSE_DHCP                                1\r
327 #endif\r
328 \r
329 #ifndef ipconfigUSE_DHCP_HOOK\r
330         #define ipconfigUSE_DHCP_HOOK           0\r
331 #endif\r
332 \r
333 #ifndef ipconfigDHCP_FALL_BACK_AUTO_IP\r
334         /*\r
335          * Only applicable when DHCP is in use:\r
336          * If no DHCP server responds, use "Auto-IP" : the\r
337          * device will allocate a random LinkLayer IP address.\r
338          */\r
339         #define ipconfigDHCP_FALL_BACK_AUTO_IP          ( 0 )\r
340 #endif\r
341 \r
342 #if( ipconfigDHCP_FALL_BACK_AUTO_IP != 0 )\r
343         #define ipconfigARP_USE_CLASH_DETECTION         1\r
344 #endif\r
345 \r
346 #ifndef ipconfigARP_USE_CLASH_DETECTION\r
347         #define ipconfigARP_USE_CLASH_DETECTION         0\r
348 #endif\r
349 \r
350 #ifndef ipconfigNETWORK_MTU\r
351         #define ipconfigNETWORK_MTU             1500\r
352 #endif\r
353 \r
354 #ifndef ipconfigTCP_MSS\r
355         #define ipconfigTCP_MSS         ( ipconfigNETWORK_MTU - ipSIZE_OF_IPv4_HEADER - ipSIZE_OF_TCP_HEADER )\r
356 #endif\r
357 \r
358 /* Each TCP socket has circular stream buffers for Rx and Tx, which\r
359  * have a fixed maximum size.\r
360  * The defaults for these size are defined here, although\r
361  * they can be overridden at runtime by using the setsockopt() call */\r
362 #ifndef ipconfigTCP_RX_BUFFER_LENGTH\r
363         #define ipconfigTCP_RX_BUFFER_LENGTH                    ( 4u * ipconfigTCP_MSS )        /* defaults to 5840 bytes */\r
364 #endif\r
365 \r
366 /* Define the size of Tx stream buffer for TCP sockets */\r
367 #ifndef ipconfigTCP_TX_BUFFER_LENGTH\r
368 #       define ipconfigTCP_TX_BUFFER_LENGTH                     ( 4u * ipconfigTCP_MSS )        /* defaults to 5840 bytes */\r
369 #endif\r
370 \r
371 #ifndef ipconfigMAXIMUM_DISCOVER_TX_PERIOD\r
372         #ifdef _WINDOWS_\r
373                 #define ipconfigMAXIMUM_DISCOVER_TX_PERIOD              ( pdMS_TO_TICKS( 999 ) )\r
374         #else\r
375                 #define ipconfigMAXIMUM_DISCOVER_TX_PERIOD              ( pdMS_TO_TICKS( 30000 ) )\r
376         #endif /* _WINDOWS_ */\r
377 #endif /* ipconfigMAXIMUM_DISCOVER_TX_PERIOD */\r
378 \r
379 #ifndef ipconfigUSE_DNS\r
380         #define ipconfigUSE_DNS                                         1\r
381 #endif\r
382 \r
383 #ifndef ipconfigDNS_REQUEST_ATTEMPTS\r
384         #define ipconfigDNS_REQUEST_ATTEMPTS            5\r
385 #endif\r
386 \r
387 #ifndef ipconfigUSE_DNS_CACHE\r
388         #define ipconfigUSE_DNS_CACHE                           0\r
389 #endif\r
390 \r
391 #if( ipconfigUSE_DNS_CACHE != 0 )\r
392         #ifndef ipconfigDNS_CACHE_NAME_LENGTH\r
393                 #define ipconfigDNS_CACHE_NAME_LENGTH           ( 16 )\r
394         #endif\r
395 \r
396         #ifndef ipconfigDNS_CACHE_ENTRIES\r
397                 #define ipconfigDNS_CACHE_ENTRIES                       0\r
398         #endif\r
399 #endif /* ipconfigUSE_DNS_CACHE != 0 */\r
400 \r
401 #ifndef ipconfigCHECK_IP_QUEUE_SPACE\r
402         #define ipconfigCHECK_IP_QUEUE_SPACE                    0\r
403 #endif\r
404 \r
405 #ifndef ipconfigUSE_LLMNR\r
406         /* Include support for LLMNR: Link-local Multicast Name Resolution (non-Microsoft) */\r
407         #define ipconfigUSE_LLMNR                                       ( 0 )\r
408 #endif\r
409 \r
410 #if( !defined( ipconfigUSE_DNS ) )\r
411         #if( ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) )\r
412                 /* LLMNR and NBNS depend on DNS because those protocols share a lot of code. */\r
413                 #error When either LLMNR or NBNS is used, ipconfigUSE_DNS must be defined\r
414         #endif\r
415 #endif\r
416 \r
417 #ifndef ipconfigREPLY_TO_INCOMING_PINGS\r
418         #define ipconfigREPLY_TO_INCOMING_PINGS         1\r
419 #endif\r
420 \r
421 #ifndef ipconfigSUPPORT_OUTGOING_PINGS\r
422         #define ipconfigSUPPORT_OUTGOING_PINGS          0\r
423 #endif\r
424 \r
425 #ifndef ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES\r
426         #define ipconfigFILTER_OUT_NON_ETHERNET_II_FRAMES 1\r
427 #endif\r
428 \r
429 #ifndef ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES\r
430         #define ipconfigETHERNET_DRIVER_FILTERS_FRAME_TYPES     1\r
431 #endif\r
432 \r
433 #ifndef configINCLUDE_TRACE_RELATED_CLI_COMMANDS\r
434         #define ipconfigINCLUDE_EXAMPLE_FREERTOS_PLUS_TRACE_CALLS 0\r
435 #else\r
436         #define ipconfigINCLUDE_EXAMPLE_FREERTOS_PLUS_TRACE_CALLS configINCLUDE_TRACE_RELATED_CLI_COMMANDS\r
437 #endif\r
438 \r
439 #ifndef ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM\r
440         #define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM  ( 0 )\r
441 #endif\r
442 \r
443 #ifndef ipconfigETHERNET_DRIVER_FILTERS_PACKETS\r
444         #define ipconfigETHERNET_DRIVER_FILTERS_PACKETS ( 0 )\r
445 #endif\r
446 \r
447 #ifndef ipconfigWATCHDOG_TIMER\r
448         /* This macro will be called in every loop the IP-task makes.  It may be\r
449         replaced by user-code that triggers a watchdog */\r
450         #define ipconfigWATCHDOG_TIMER()\r
451 #endif\r
452 \r
453 #ifndef ipconfigUSE_CALLBACKS\r
454         #define ipconfigUSE_CALLBACKS                   ( 0 )\r
455 #endif\r
456 \r
457 #if( ipconfigUSE_CALLBACKS != 0 )\r
458         #ifndef ipconfigIS_VALID_PROG_ADDRESS\r
459                 /* Replace this macro with a test returning non-zero if the memory pointer to by x\r
460                  * is valid memory which can contain executable code\r
461                  * In fact this is an extra safety measure: if a handler points to invalid memory,\r
462                  * it will not be called\r
463                  */\r
464                 #define ipconfigIS_VALID_PROG_ADDRESS(x)                ( ( x ) != NULL )\r
465         #endif\r
466 #endif\r
467 \r
468 #ifndef ipconfigHAS_INLINE_FUNCTIONS\r
469         #define ipconfigHAS_INLINE_FUNCTIONS    ( 1 )\r
470 #endif\r
471 \r
472 #ifndef portINLINE\r
473         #define portINLINE inline\r
474 #endif\r
475 \r
476 #ifndef ipconfigZERO_COPY_TX_DRIVER\r
477         /* When non-zero, the buffers passed to the SEND routine may be passed\r
478         to DMA. As soon as sending is ready, the buffers must be released by\r
479         calling vReleaseNetworkBufferAndDescriptor(), */\r
480         #define ipconfigZERO_COPY_TX_DRIVER             ( 0 )\r
481 #endif\r
482 \r
483 #ifndef ipconfigZERO_COPY_RX_DRIVER\r
484         /* This define doesn't mean much to the driver, except that it makes\r
485         sure that pxPacketBuffer_to_NetworkBuffer() will be included. */\r
486         #define ipconfigZERO_COPY_RX_DRIVER             ( 0 )\r
487 #endif\r
488 \r
489 #ifndef ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM\r
490         #define ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM 0\r
491 #endif\r
492 \r
493 #ifndef ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM\r
494         #define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM 0\r
495 #endif\r
496 \r
497 #ifndef ipconfigDHCP_REGISTER_HOSTNAME\r
498         #define ipconfigDHCP_REGISTER_HOSTNAME 0\r
499 #endif\r
500 \r
501 #ifndef ipconfigSOCKET_HAS_USER_SEMAPHORE\r
502         #define ipconfigSOCKET_HAS_USER_SEMAPHORE 0\r
503 #endif\r
504 \r
505 #ifndef ipconfigSUPPORT_SELECT_FUNCTION\r
506         #define ipconfigSUPPORT_SELECT_FUNCTION 0\r
507 #endif\r
508 \r
509 #ifndef ipconfigTCP_KEEP_ALIVE\r
510         #define ipconfigTCP_KEEP_ALIVE 0\r
511 #endif\r
512 \r
513 #ifndef ipconfigDNS_USE_CALLBACKS\r
514         #define ipconfigDNS_USE_CALLBACKS 0\r
515 #endif\r
516 \r
517 #ifndef ipconfigSUPPORT_SIGNALS\r
518         #define ipconfigSUPPORT_SIGNALS                         0\r
519 #endif\r
520 \r
521 #ifndef ipconfigUSE_NBNS\r
522         #define ipconfigUSE_NBNS 0\r
523 #endif\r
524 \r
525 #ifndef ipconfigTCP_HANG_PROTECTION\r
526         #define ipconfigTCP_HANG_PROTECTION  0\r
527 #endif\r
528 \r
529 #ifndef ipconfigTCP_IP_SANITY\r
530         #define ipconfigTCP_IP_SANITY 0\r
531 #endif\r
532 \r
533 #ifndef ipconfigARP_STORES_REMOTE_ADDRESSES\r
534         #define ipconfigARP_STORES_REMOTE_ADDRESSES 0\r
535 #endif\r
536 \r
537 #ifndef ipconfigBUFFER_PADDING\r
538         /* Expert option: define a value for 'ipBUFFER_PADDING'.\r
539         When 'ipconfigBUFFER_PADDING' equals 0,\r
540         'ipBUFFER_PADDING' will get a default value of 8 + 2 bytes. */\r
541         #define ipconfigBUFFER_PADDING 0\r
542 #endif\r
543 \r
544 #ifndef ipconfigPACKET_FILLER_SIZE\r
545         #define ipconfigPACKET_FILLER_SIZE 2\r
546 #endif\r
547 \r
548 #endif /* FREERTOS_DEFAULT_IP_CONFIG_H */\r