]> git.sur5r.net Git - freertos/blob - FreeRTOS-Labs/Source/FreeRTOS-Plus-TCP/include/FreeRTOS_DHCP.h
Update TCP to last release versions in preparation for kernel V10.3.0 release.
[freertos] / FreeRTOS-Labs / Source / FreeRTOS-Plus-TCP / include / FreeRTOS_DHCP.h
1 /*\r
2  * FreeRTOS+TCP 2.2.x Labs copy\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.\r
14  *\r
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
21  *\r
22  * http://aws.amazon.com/freertos\r
23  * http://www.FreeRTOS.org\r
24  */\r
25 \r
26 #ifndef FREERTOS_DHCP_H\r
27 #define FREERTOS_DHCP_H\r
28 \r
29 #ifdef __cplusplus\r
30 extern "C" {\r
31 #endif\r
32 \r
33 /* Application level configuration options. */\r
34 #include "FreeRTOSIPConfig.h"\r
35 #include "IPTraceMacroDefaults.h"\r
36 \r
37 /* Used in the DHCP callback if ipconfigUSE_DHCP_HOOK is set to 1. */\r
38 typedef enum eDHCP_PHASE\r
39 {\r
40         eDHCPPhasePreDiscover,  /* Driver is about to send a DHCP discovery. */\r
41         eDHCPPhasePreRequest,   /* Driver is about to request DHCP an IP address. */\r
42 #if( ipconfigDHCP_SEND_DISCOVER_AFTER_AUTO_IP != 0 )\r
43         eDHCPPhasePreLLA,               /* Driver is about to try get an LLA address */\r
44 #endif /* ipconfigDHCP_SEND_DISCOVER_AFTER_AUTO_IP */\r
45 } eDHCPCallbackPhase_t;\r
46 \r
47 /* Used in the DHCP callback if ipconfigUSE_DHCP_HOOK is set to 1. */\r
48 typedef enum eDHCP_ANSWERS\r
49 {\r
50         eDHCPContinue,                  /* Continue the DHCP process */\r
51         eDHCPUseDefaults,               /* Stop DHCP and use the static defaults. */\r
52         eDHCPStopNoChanges,             /* Stop DHCP and continue with current settings. */\r
53 } eDHCPCallbackAnswer_t;\r
54 \r
55 /*\r
56  * NOT A PUBLIC API FUNCTION.\r
57  */\r
58 void vDHCPProcess( BaseType_t xReset );\r
59 \r
60 /* Internal call: returns true if socket is the current DHCP socket */\r
61 BaseType_t xIsDHCPSocket( Socket_t xSocket );\r
62 \r
63 /* Prototype of the hook (or callback) function that must be provided by the\r
64 application if ipconfigUSE_DHCP_HOOK is set to 1.  See the following URL for\r
65 usage information:\r
66 http://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_IP_Configuration.html#ipconfigUSE_DHCP_HOOK\r
67 */\r
68 eDHCPCallbackAnswer_t xApplicationDHCPHook( eDHCPCallbackPhase_t eDHCPPhase, uint32_t ulIPAddress );\r
69 \r
70 #ifdef __cplusplus\r
71 }       /* extern "C" */\r
72 #endif\r
73 \r
74 #endif /* FREERTOS_DHCP_H */\r
75 \r
76 \r
77 \r
78 \r
79 \r
80 \r
81 \r
82 \r
83 \r
84 \r
85 \r
86 \r
87 \r