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