]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4Config.h
Clean up to update the reference of the these macros:
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Ip4ConfigDxe / Ip4Config.h
CommitLineData
83cbd279 1/** @file\r
2\r
7bce0c5a 3Copyright (c) 2006 - 2008, Intel Corporation\r
83cbd279 4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12Module Name:\r
13\r
14 Ip4Config.h\r
15\r
16Abstract:\r
17\r
18 Header file for IP4Config driver.\r
19\r
20\r
21**/\r
22\r
23#ifndef __EFI_IP4CONFIG_H__\r
24#define __EFI_IP4CONFIG_H__\r
25\r
b2570da8 26#include <PiDxe.h>\r
27\r
28#include <Protocol/Dhcp4.h>\r
24e58768 29#include <Protocol/Ip4Config.h>\r
b2570da8 30#include <Protocol/ManagedNetwork.h>\r
31\r
32#include <Library/DebugLib.h>\r
33#include <Library/UefiRuntimeServicesTableLib.h>\r
34#include <Library/UefiDriverEntryPoint.h>\r
35#include <Library/UefiBootServicesTableLib.h>\r
36#include <Library/UefiLib.h>\r
37#include <Library/NetLib.h>\r
38#include <Library/BaseMemoryLib.h>\r
83cbd279 39#include <Library/MemoryAllocationLib.h>\r
40\r
41#include "NicIp4Variable.h"\r
42\r
43typedef struct _IP4_CONFIG_INSTANCE IP4_CONFIG_INSTANCE;\r
44\r
7bce0c5a 45typedef enum {\r
83cbd279 46 IP4_CONFIG_STATE_IDLE = 0,\r
47 IP4_CONFIG_STATE_STARTED,\r
7bce0c5a 48 IP4_CONFIG_STATE_CONFIGURED\r
49} IP4_CONFIG_STATE;\r
83cbd279 50\r
7bce0c5a 51#define IP4_PROTO_ICMP 0x01\r
f3f2e05d 52#define IP4_CONFIG_INSTANCE_SIGNATURE SIGNATURE_32 ('I', 'P', '4', 'C')\r
83cbd279 53\r
7bce0c5a 54typedef enum {\r
83cbd279 55 DHCP_TAG_PARA_LIST = 55,\r
56 DHCP_TAG_NETMASK = 1,\r
57 DHCP_TAG_ROUTER = 3\r
7bce0c5a 58} DHCP_TAGS;\r
83cbd279 59\r
60//\r
61// Configure the DHCP to request the routers and netmask\r
62// from server. The DHCP_TAG_NETMASK is included in Head.\r
63//\r
64#pragma pack(1)\r
65typedef struct {\r
66 EFI_DHCP4_PACKET_OPTION Head;\r
67 UINT8 Route;\r
68} IP4_CONFIG_DHCP4_OPTION;\r
69#pragma pack()\r
70\r
71struct _IP4_CONFIG_INSTANCE {\r
72 UINT32 Signature;\r
73 EFI_HANDLE Controller;\r
74 EFI_HANDLE Image;\r
75\r
76 EFI_IP4_CONFIG_PROTOCOL Ip4ConfigProtocol;\r
77 EFI_NIC_IP4_CONFIG_PROTOCOL NicIp4Protocol;\r
78\r
79 //\r
80 // NicConfig's state, such as IP4_CONFIG_STATE_IDLE\r
81 //\r
82 INTN State;\r
83\r
84 //\r
85 // Mnp child to keep the connection with MNP.\r
86 //\r
87 EFI_MANAGED_NETWORK_PROTOCOL *Mnp;\r
88 EFI_HANDLE MnpHandle;\r
89\r
90 //\r
91 // User's requests data\r
92 //\r
93 EFI_EVENT DoneEvent;\r
94 EFI_EVENT ReconfigEvent;\r
95 EFI_STATUS Result;\r
96\r
97 //\r
98 // Identity of this interface and some configuration info.\r
99 //\r
100 NIC_ADDR NicAddr;\r
101 UINT16 NicName[IP4_NIC_NAME_LENGTH];\r
102 UINT32 NicIndex;\r
103 NIC_IP4_CONFIG_INFO *NicConfig;\r
104\r
105 //\r
106 // DHCP handles to access DHCP\r
107 //\r
108 EFI_DHCP4_PROTOCOL *Dhcp4;\r
109 EFI_HANDLE Dhcp4Handle;\r
110 EFI_EVENT Dhcp4Event;\r
111};\r
112\r
113#define IP4_CONFIG_INSTANCE_FROM_IP4CONFIG(this) \\r
114 CR (this, IP4_CONFIG_INSTANCE, Ip4ConfigProtocol, IP4_CONFIG_INSTANCE_SIGNATURE)\r
115\r
116#define IP4_CONFIG_INSTANCE_FROM_NIC_IP4CONFIG(this) \\r
117 CR (this, IP4_CONFIG_INSTANCE, NicIp4Protocol, IP4_CONFIG_INSTANCE_SIGNATURE)\r
118\r
119extern EFI_DRIVER_BINDING_PROTOCOL gIp4ConfigDriverBinding;\r
120extern EFI_COMPONENT_NAME_PROTOCOL gIp4ConfigComponentName;\r
121extern EFI_COMPONENT_NAME2_PROTOCOL gIp4ConfigComponentName2;\r
122extern IP4_CONFIG_INSTANCE *mIp4ConfigNicList[MAX_IP4_CONFIG_IN_VARIABLE];\r
123extern EFI_IP4_CONFIG_PROTOCOL mIp4ConfigProtocolTemplate;\r
124extern EFI_NIC_IP4_CONFIG_PROTOCOL mNicIp4ConfigProtocolTemplate;\r
125\r
7bce0c5a 126/**\r
127 Release all the DHCP related resources.\r
128\r
129 @param This The IP4 configure instance\r
130\r
131 @return None\r
132\r
133**/\r
83cbd279 134VOID\r
135Ip4ConfigCleanDhcp4 (\r
136 IN IP4_CONFIG_INSTANCE *This\r
137 );\r
138\r
7bce0c5a 139/**\r
140 Clean up all the configuration parameters.\r
141\r
142 @param Instance The IP4 configure instance\r
143\r
144 @return None\r
145\r
146**/\r
83cbd279 147VOID\r
148Ip4ConfigCleanConfig (\r
149 IN IP4_CONFIG_INSTANCE *Instance\r
150 );\r
151#endif\r