Merger network tackers 9307, 9338, 9339, 9397
authorvanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 16 Oct 2007 09:23:09 +0000 (09:23 +0000)
committervanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 16 Oct 2007 09:23:09 +0000 (09:23 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4130 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4Config.c
MdePkg/Include/Protocol/Dhcp4.h
MdePkg/Include/Protocol/IP4Config.h

index 31d9e8b..bec1a4f 100644 (file)
@@ -622,14 +622,15 @@ Ip4ConfigOnDhcp4Complete (
       NetFreePool (Instance->NicConfig);\r
     }\r
 \r
-    Instance->NicConfig = NetAllocatePool (sizeof (NIC_IP4_CONFIG_INFO) +\r
-                                           sizeof (EFI_IP4_ROUTE_TABLE));\r
+    Instance->NicConfig = NetAllocatePool (sizeof (NIC_IP4_CONFIG_INFO) + 2* sizeof (EFI_IP4_ROUTE_TABLE));\r
 \r
     if (Instance->NicConfig == NULL) {\r
       Instance->Result = EFI_OUT_OF_RESOURCES;\r
       goto ON_EXIT;\r
     }\r
 \r
+    Instance->NicConfig->Ip4Info.RouteTable = (EFI_IP4_ROUTE_TABLE *) (Instance->NicConfig + 1);\r
+\r
     CopyMem (&Instance->NicConfig->NicAddr, &Instance->NicAddr, sizeof (Instance->NicConfig->NicAddr));\r
     Instance->NicConfig->Source  = IP4_CONFIG_SOURCE_DHCP;\r
     Instance->NicConfig->Perment = Perment;\r
@@ -645,7 +646,7 @@ Ip4ConfigOnDhcp4Complete (
 \r
     NetCopyMem (&Ip1, &Dhcp4Mode.ClientAddress, sizeof (IP4_ADDR));\r
     NetCopyMem (&Ip2, &Dhcp4Mode.SubnetMask, sizeof (IP4_ADDR));\r
-    \r
+\r
     Subnet = Ip1 & Ip2;\r
 \r
     NetCopyMem (&Ip4Config->RouteTable[0].SubnetAddress, &Subnet, sizeof (EFI_IPv4_ADDRESS));\r
index 7879b51..03885eb 100644 (file)
@@ -1,17 +1,17 @@
 /** @file\r
   EFI_DHCP4_PROTOCOL as defined in UEFI 2.0.\r
   EFI_DHCP4_SERVICE_BINDING_PROTOCOL as defined in UEFI 2.0.\r
-  These protocols are used to collect configuration information for the EFI IPv4 Protocol \r
+  These protocols are used to collect configuration information for the EFI IPv4 Protocol\r
   drivers and to provide DHCPv4 server and PXE boot server discovery services.\r
 \r
-  Copyright (c) 2006, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
+  Copyright (c) 2006, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
 \r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
 **/\r
 \r
@@ -27,7 +27,7 @@
   { \\r
     0x9d9a39d8, 0xbd42, 0x4a73, {0xa4, 0xd5, 0x8e, 0xe9, 0x4b, 0xe1, 0x13, 0x80 } \\r
   }\r
-  \r
+\r
 typedef struct _EFI_DHCP4_PROTOCOL EFI_DHCP4_PROTOCOL;\r
 \r
 \r
@@ -51,10 +51,10 @@ typedef struct {
     UINT16            Reserved;\r
     EFI_IPv4_ADDRESS  ClientAddr;       //Client IP address from client\r
     EFI_IPv4_ADDRESS  YourAddr;         //Client IP address from server\r
-    EFI_IPv4_ADDRESS  ServerAddr;       //IP address of next server in bootstrap \r
+    EFI_IPv4_ADDRESS  ServerAddr;       //IP address of next server in bootstrap\r
     EFI_IPv4_ADDRESS  GatewayAddr;      //Relay agent IP address\r
     UINT8             ClientHwAddr[16]; //Client hardware address\r
-    CHAR8             ServerName[64];   \r
+    CHAR8             ServerName[64];\r
     CHAR8             BootFileName[128];\r
 }EFI_DHCP4_HEADER;\r
 #pragma pack()\r
@@ -102,42 +102,42 @@ typedef enum{
   Dhcp4Fail           = 0x0c\r
 } EFI_DHCP4_EVENT;\r
 \r
-/**                                                                 \r
-  Callback routine \r
-    \r
+/**\r
+  Callback routine\r
+\r
   @param  This                  Pointer to the EFI DHCPv4 Protocol instance that is used to\r
-                                configure this callback function.                          \r
+                                configure this callback function.\r
   @param  Context               Pointer to the context that is initialized by\r
-                                EFI_DHCP4_PROTOCOL.Configure().                                              \r
+                                EFI_DHCP4_PROTOCOL.Configure().\r
   @param  CurrentState          The current operational state of the EFI DHCPv4 Protocol\r
-                                driver.                                                 \r
+                                driver.\r
   @param  Dhcp4Event            The event that occurs in the current state, which usually means a\r
-                                state transition.                                                \r
-  @param  Packet                The DHCP packet that is going to be sent or already received.                \r
+                                state transition.\r
+  @param  Packet                The DHCP packet that is going to be sent or already received.\r
   @param  NewPacket             The packet that is used to replace the above Packet.\r
-                                \r
+\r
   @retval EFI_SUCCESS           Tells the EFI DHCPv4 Protocol driver to continue the DHCP process.\r
-  @retval EFI_NOT_READY         Only used in the Dhcp4Selecting state. The EFI DHCPv4 Protocol         \r
+  @retval EFI_NOT_READY         Only used in the Dhcp4Selecting state. The EFI DHCPv4 Protocol\r
                                 driver will continue to wait for more DHCPOFFER packets until the retry\r
-                                timeout expires.                                                       \r
+                                timeout expires.\r
   @retval EFI_ABORTED           Tells the EFI DHCPv4 Protocol driver to abort the current process and\r
-                                return to the Dhcp4Init or Dhcp4InitReboot state.                    \r
-                                   \r
+                                return to the Dhcp4Init or Dhcp4InitReboot state.\r
+\r
 **/\r
-typedef \r
-EFI_STATUS \r
+typedef\r
+EFI_STATUS\r
 (EFIAPI *EFI_DHCP4_CALLBACK) (\r
   IN  EFI_DHCP4_PROTOCOL         *This,\r
   IN  VOID                       *Context,\r
   IN  EFI_DHCP4_STATE            CurrentState,\r
   IN  EFI_DHCP4_EVENT            Dhcp4Event,\r
-  IN  EFI_DHCP4_PACKET           *Packet     OPTIONAL, \r
+  IN  EFI_DHCP4_PACKET           *Packet     OPTIONAL,\r
   OUT EFI_DHCP4_PACKET           **NewPacket OPTIONAL\r
   );\r
 \r
 \r
 typedef struct {\r
-  UINT32                      DiscoverTryCount;      \r
+  UINT32                      DiscoverTryCount;\r
   UINT32                      *DiscoverTimeout;\r
   UINT32                      RequestTryCount;\r
   UINT32                      *RequestTimeout;\r
@@ -170,17 +170,17 @@ typedef struct {
 \r
 \r
 typedef struct {\r
-  OUT EFI_STATUS              Status;\r
-  IN  EFI_EVENT               CompletionEvent;\r
-  IN  EFI_IPv4_ADDRESS        RemoteAddress;\r
-  IN  UINT16                  RemotePort;\r
-  IN  EFI_IPv4_ADDRESS        GatewayAddress;\r
-  IN  UINT32                  ListenPointCount;\r
-  IN  EFI_DHCP4_LISTEN_POINT  *ListenPoints;\r
-  IN  UINT32                  TimeoutValue;\r
-  IN  EFI_DHCP4_PACKET        *Packet;\r
-  OUT UINT32                  ResponseCount;\r
-  OUT EFI_DHCP4_PACKET        *ResponseList;\r
+  EFI_STATUS              Status;\r
+  EFI_EVENT               CompletionEvent;\r
+  EFI_IPv4_ADDRESS        RemoteAddress;\r
+  UINT16                  RemotePort;\r
+  EFI_IPv4_ADDRESS        GatewayAddress;\r
+  UINT32                  ListenPointCount;\r
+  EFI_DHCP4_LISTEN_POINT  *ListenPoints;\r
+  UINT32                  TimeoutValue;\r
+  EFI_DHCP4_PACKET        *Packet;\r
+  UINT32                  ResponseCount;\r
+  EFI_DHCP4_PACKET        *ResponseList;\r
 } EFI_DHCP4_TRANSMIT_RECEIVE_TOKEN;\r
 \r
 \r
@@ -194,9 +194,9 @@ typedef struct {
   @retval EFI_INVALID_PARAMETER This is NULL.\r
 \r
 **/\r
-typedef \r
-EFI_STATUS \r
-(EFIAPI *EFI_DHCP4_GET_MODE_DATA)(\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_DHCP4_GET_MODE_DATA) (\r
   IN  EFI_DHCP4_PROTOCOL      *This,\r
   OUT EFI_DHCP4_MODE_DATA     *Dhcp4ModeData\r
   )\r
@@ -221,7 +221,7 @@ EFI_STATUS
   @retval EFI_DEVICE_ERROR      An unexpected system or network error occurred.\r
 \r
 **/\r
-typedef \r
+typedef\r
 EFI_STATUS\r
 (EFIAPI *EFI_DHCP4_CONFIGURE) (\r
   IN EFI_DHCP4_PROTOCOL       *This,\r
@@ -256,7 +256,7 @@ EFI_STATUS
   @retval EFI_DEVICE_ERROR      An unexpected system or network error occurred.\r
 \r
 **/\r
-typedef \r
+typedef\r
 EFI_STATUS\r
 (EFIAPI *EFI_DHCP4_START) (\r
   IN EFI_DHCP4_PROTOCOL       *This,\r
@@ -297,7 +297,7 @@ EFI_STATUS
   IN BOOLEAN                  RebindRequest,\r
   IN EFI_EVENT                CompletionEvent  OPTIONAL\r
   )\r
-;  \r
+;\r
 \r
 /**\r
   Releases the current address configuration.\r
@@ -310,34 +310,34 @@ EFI_STATUS
   @retval EFI_DEVICE_ERROR      An unexpected system or network error occurred.\r
 \r
 **/\r
-typedef \r
+typedef\r
 EFI_STATUS\r
 (EFIAPI *EFI_DHCP4_RELEASE) (\r
   IN EFI_DHCP4_PROTOCOL       *This\r
   )\r
-;  \r
+;\r
 \r
 /**\r
   Stops the current address configuration.\r
 \r
   @param  This                  Pointer to the EFI_DHCP4_PROTOCOL instance.\r
-                                 \r
+\r
   @retval EFI_SUCCESS           The EFI DHCPv4 Protocol driver is now in the Dhcp4Stopped phase.\r
   @retval EFI_INVALID_PARAMETER This is NULL.\r
 \r
 **/\r
-typedef \r
+typedef\r
 EFI_STATUS\r
 (EFIAPI *EFI_DHCP4_STOP) (\r
   IN EFI_DHCP4_PROTOCOL       *This\r
   )\r
-; \r
+;\r
 \r
 /**\r
   Builds a DHCP packet, given the options to be appended or deleted or replaced.\r
 \r
   @param  This        Pointer to the EFI_DHCP4_PROTOCOL instance.\r
 @param  SeedPacket  Initial packet to be used as a base for building new packet.\r
+ @param  SeedPacket  Initial packet to be used as a base for building new packet.\r
   @param  DeleteCount Number of opcodes in the DeleteList.\r
   @param  DeleteList  List of opcodes to be deleted from the seed packet.\r
                       Ignored if DeleteCount is zero.\r
@@ -366,7 +366,7 @@ EFI_STATUS
   IN  EFI_DHCP4_PACKET_OPTION *AppendList[]       OPTIONAL,\r
   OUT EFI_DHCP4_PACKET        **NewPacket\r
   );\r
-;   \r
+;\r
 \r
 /**\r
   Transmits a DHCP formatted packet and optionally waits for responses.\r
@@ -383,7 +383,7 @@ EFI_STATUS
   @retval Others                Some other unexpected error occurred.\r
 \r
 **/\r
-typedef \r
+typedef\r
 EFI_STATUS\r
 (EFIAPI *EFI_DHCP4_TRANSMIT_RECEIVE) (\r
   IN EFI_DHCP4_PROTOCOL                *This,\r
index 66578eb..e744ce4 100644 (file)
@@ -1,12 +1,12 @@
 /** @file\r
-  Copyright (c) 2006, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
+  Copyright (c) 2006, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
 \r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
 **/\r
 \r
@@ -24,7 +24,7 @@ typedef struct _EFI_IP4_CONFIG_PROTOCOL EFI_IP4_CONFIG_PROTOCOL;
 \r
 #define IP4_CONFIG_VARIABLE_ATTRIBUTES \\r
         (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | \\r
-         EFI_VARIABLE_RUNTIME_ACCESS )\r
+         EFI_VARIABLE_RUNTIME_ACCESS)\r
 \r
 typedef struct {\r
   EFI_IPv4_ADDRESS             StationAddress;\r
@@ -61,9 +61,9 @@ EFI_STATUS
 (EFIAPI *EFI_IP4_CONFIG_START) (\r
   IN EFI_IP4_CONFIG_PROTOCOL   *This,\r
   IN EFI_EVENT                 DoneEvent,\r
-  IN EFI_EVENT                 ReconfigEvent \r
+  IN EFI_EVENT                 ReconfigEvent\r
   )\r
-;    \r
+;\r
 \r
 /**\r
   Stops running the configuration policy for the EFI IPv4 Protocol driver.\r
@@ -78,9 +78,9 @@ EFI_STATUS
 typedef\r
 EFI_STATUS\r
 (EFIAPI *EFI_IP4_CONFIG_STOP) (\r
-  IN EFI_IP4_CONFIG_PROTOCOL   *This \r
+  IN EFI_IP4_CONFIG_PROTOCOL   *This\r
   )\r
-;   \r
+;\r
 \r
 /**\r
   Returns the default configuration data (if any) for the EFI IPv4 Protocol driver.\r
@@ -106,9 +106,9 @@ EFI_STATUS
 (EFIAPI *EFI_IP4_CONFIG_GET_DATA) (\r
   IN EFI_IP4_CONFIG_PROTOCOL   *This,\r
   IN OUT UINTN                 *IpConfigDataSize,\r
-  OUT EFI_IP4_IPCONFIG_DATA    *IpConfigData    OPTIONAL \r
+  OUT EFI_IP4_IPCONFIG_DATA    *IpConfigData    OPTIONAL\r
   )\r
-;    \r
+;\r
 \r
 struct _EFI_IP4_CONFIG_PROTOCOL {\r
   EFI_IP4_CONFIG_START         Start;\r