mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-10-31 10:40:34 +00:00 
			
		
		
		
	 24e58768a0
			
		
	
	
		24e58768a0
		
	
	
	
	
		
			
			Fix filename case(sensitivity) issues. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4827 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			134 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
| 
 | |
| Copyright (c) 2006 - 2007, 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.
 | |
| 
 | |
| Module Name:
 | |
| 
 | |
|   Ip4Config.h
 | |
| 
 | |
| Abstract:
 | |
| 
 | |
|   Header file for IP4Config driver.
 | |
| 
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef __EFI_IP4CONFIG_H__
 | |
| #define __EFI_IP4CONFIG_H__
 | |
| 
 | |
| #include <PiDxe.h>
 | |
| 
 | |
| #include <Protocol/Dhcp4.h>
 | |
| #include <Protocol/Ip4Config.h>
 | |
| #include <Protocol/ManagedNetwork.h>
 | |
| 
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/UefiRuntimeServicesTableLib.h>
 | |
| #include <Library/UefiDriverEntryPoint.h>
 | |
| #include <Library/UefiBootServicesTableLib.h>
 | |
| #include <Library/UefiLib.h>
 | |
| #include <Library/NetLib.h>
 | |
| #include <Library/BaseMemoryLib.h>
 | |
| #include <Library/MemoryAllocationLib.h>
 | |
| 
 | |
| #include "NicIp4Variable.h"
 | |
| 
 | |
| typedef struct _IP4_CONFIG_INSTANCE IP4_CONFIG_INSTANCE;
 | |
| 
 | |
| enum {
 | |
|   IP4_CONFIG_STATE_IDLE         = 0,
 | |
|   IP4_CONFIG_STATE_STARTED,
 | |
|   IP4_CONFIG_STATE_CONFIGURED,
 | |
| 
 | |
|   IP4_PROTO_ICMP                = 0x01,
 | |
|   IP4_CONFIG_INSTANCE_SIGNATURE = EFI_SIGNATURE_32 ('I', 'P', '4', 'C'),
 | |
| 
 | |
|   DHCP_TAG_PARA_LIST            = 55,
 | |
|   DHCP_TAG_NETMASK              = 1,
 | |
|   DHCP_TAG_ROUTER               = 3
 | |
| };
 | |
| 
 | |
| //
 | |
| // Configure the DHCP to request the routers and netmask
 | |
| // from server. The DHCP_TAG_NETMASK is included in Head.
 | |
| //
 | |
| #pragma pack(1)
 | |
| typedef struct {
 | |
|   EFI_DHCP4_PACKET_OPTION Head;
 | |
|   UINT8                   Route;
 | |
| } IP4_CONFIG_DHCP4_OPTION;
 | |
| #pragma pack()
 | |
| 
 | |
| struct _IP4_CONFIG_INSTANCE {
 | |
|   UINT32                        Signature;
 | |
|   EFI_HANDLE                    Controller;
 | |
|   EFI_HANDLE                    Image;
 | |
| 
 | |
|   EFI_IP4_CONFIG_PROTOCOL       Ip4ConfigProtocol;
 | |
|   EFI_NIC_IP4_CONFIG_PROTOCOL   NicIp4Protocol;
 | |
| 
 | |
|   //
 | |
|   // NicConfig's state, such as IP4_CONFIG_STATE_IDLE
 | |
|   //
 | |
|   INTN                          State;
 | |
| 
 | |
|   //
 | |
|   // Mnp child to keep the connection with MNP.
 | |
|   //
 | |
|   EFI_MANAGED_NETWORK_PROTOCOL  *Mnp;
 | |
|   EFI_HANDLE                    MnpHandle;
 | |
| 
 | |
|   //
 | |
|   // User's requests data
 | |
|   //
 | |
|   EFI_EVENT                     DoneEvent;
 | |
|   EFI_EVENT                     ReconfigEvent;
 | |
|   EFI_STATUS                    Result;
 | |
| 
 | |
|   //
 | |
|   // Identity of this interface and some configuration info.
 | |
|   //
 | |
|   NIC_ADDR                      NicAddr;
 | |
|   UINT16                        NicName[IP4_NIC_NAME_LENGTH];
 | |
|   UINT32                        NicIndex;
 | |
|   NIC_IP4_CONFIG_INFO           *NicConfig;
 | |
| 
 | |
|   //
 | |
|   // DHCP handles to access DHCP
 | |
|   //
 | |
|   EFI_DHCP4_PROTOCOL            *Dhcp4;
 | |
|   EFI_HANDLE                    Dhcp4Handle;
 | |
|   EFI_EVENT                     Dhcp4Event;
 | |
| };
 | |
| 
 | |
| #define IP4_CONFIG_INSTANCE_FROM_IP4CONFIG(this) \
 | |
|   CR (this, IP4_CONFIG_INSTANCE, Ip4ConfigProtocol, IP4_CONFIG_INSTANCE_SIGNATURE)
 | |
| 
 | |
| #define IP4_CONFIG_INSTANCE_FROM_NIC_IP4CONFIG(this) \
 | |
|   CR (this, IP4_CONFIG_INSTANCE, NicIp4Protocol, IP4_CONFIG_INSTANCE_SIGNATURE)
 | |
| 
 | |
| extern EFI_DRIVER_BINDING_PROTOCOL   gIp4ConfigDriverBinding;
 | |
| extern EFI_COMPONENT_NAME_PROTOCOL   gIp4ConfigComponentName;
 | |
| extern EFI_COMPONENT_NAME2_PROTOCOL  gIp4ConfigComponentName2;
 | |
| extern IP4_CONFIG_INSTANCE           *mIp4ConfigNicList[MAX_IP4_CONFIG_IN_VARIABLE];
 | |
| extern EFI_IP4_CONFIG_PROTOCOL       mIp4ConfigProtocolTemplate;
 | |
| extern EFI_NIC_IP4_CONFIG_PROTOCOL   mNicIp4ConfigProtocolTemplate;
 | |
| 
 | |
| VOID
 | |
| Ip4ConfigCleanDhcp4 (
 | |
|   IN IP4_CONFIG_INSTANCE        *This
 | |
|   );
 | |
| 
 | |
| VOID
 | |
| Ip4ConfigCleanConfig (
 | |
|   IN IP4_CONFIG_INSTANCE        *Instance
 | |
|   );
 | |
| #endif
 |