mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-20 12:14:27 +02:00
installing HII config access protocol on child handle instead of installing on NIC physical handle, to avoid conflict with the HII config access protocol installed on NIC physical handle.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9665 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
8fdcc4123b
commit
d80ea7394c
@ -1,7 +1,7 @@
|
|||||||
/** @file
|
/** @file
|
||||||
This code implements the IP4Config and NicIp4Config protocols.
|
This code implements the IP4Config and NicIp4Config protocols.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation.<BR>
|
Copyright (c) 2006 - 2009, Intel Corporation.<BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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<BR>
|
which accompanies this distribution. The full text of the license may be found at<BR>
|
||||||
@ -82,12 +82,12 @@ Ip4ConfigGetNicInfo (
|
|||||||
@param NicConfig The buffer to receive the NIC's configure
|
@param NicConfig The buffer to receive the NIC's configure
|
||||||
parameter.
|
parameter.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The configure parameter for this NIC was
|
@retval EFI_SUCCESS The configure parameter for this NIC was
|
||||||
obtained successfully .
|
obtained successfully .
|
||||||
@retval EFI_INVALID_PARAMETER This or ConfigLen is NULL.
|
@retval EFI_INVALID_PARAMETER This or ConfigLen is NULL.
|
||||||
@retval EFI_NOT_FOUND There is no configure parameter for the NIC in
|
@retval EFI_NOT_FOUND There is no configure parameter for the NIC in
|
||||||
NVRam.
|
NVRam.
|
||||||
@retval EFI_BUFFER_TOO_SMALL The ConfigLen is too small or the NicConfig is
|
@retval EFI_BUFFER_TOO_SMALL The ConfigLen is too small or the NicConfig is
|
||||||
NULL.
|
NULL.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
@ -137,26 +137,26 @@ EfiNicIp4ConfigGetInfo (
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Set the IP configure parameters for this NIC.
|
Set the IP configure parameters for this NIC.
|
||||||
|
|
||||||
If Reconfig is TRUE, the IP driver will be informed to discard current
|
If Reconfig is TRUE, the IP driver will be informed to discard current
|
||||||
auto configure parameter and restart the auto configuration process.
|
auto configure parameter and restart the auto configuration process.
|
||||||
If current there is a pending auto configuration, EFI_ALREADY_STARTED is
|
If current there is a pending auto configuration, EFI_ALREADY_STARTED is
|
||||||
returned. You can only change the configure setting when either
|
returned. You can only change the configure setting when either
|
||||||
the configure has finished or not started yet. If NicConfig, the
|
the configure has finished or not started yet. If NicConfig, the
|
||||||
NIC's configure parameter is removed from the variable.
|
NIC's configure parameter is removed from the variable.
|
||||||
|
|
||||||
@param Instance The IP4 CONFIG instance.
|
@param Instance The IP4 CONFIG instance.
|
||||||
@param NicConfig The new NIC IP4 configure parameter
|
@param NicConfig The new NIC IP4 configure parameter.
|
||||||
@param Reconfig Inform the IP4 driver to restart the auto
|
@param Reconfig Inform the IP4 driver to restart the auto
|
||||||
configuration
|
configuration.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The configure parameter for this NIC was
|
@retval EFI_SUCCESS The configure parameter for this NIC was
|
||||||
set successfully .
|
set successfully.
|
||||||
@retval EFI_INVALID_PARAMETER This is NULL or the configure parameter is
|
@retval EFI_INVALID_PARAMETER This is NULL or the configure parameter is
|
||||||
invalid.
|
invalid.
|
||||||
@retval EFI_ALREADY_STARTED There is a pending auto configuration.
|
@retval EFI_ALREADY_STARTED There is a pending auto configuration.
|
||||||
@retval EFI_NOT_FOUND No auto configure parameter is found
|
@retval EFI_NOT_FOUND No auto configure parameter is found.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -342,47 +342,47 @@ ON_EXIT:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
Starts running the configuration policy for the EFI IPv4 Protocol driver.
|
Starts running the configuration policy for the EFI IPv4 Protocol driver.
|
||||||
|
|
||||||
The Start() function is called to determine and to begin the platform
|
The Start() function is called to determine and to begin the platform
|
||||||
configuration policy by the EFI IPv4 Protocol driver. This determination may
|
configuration policy by the EFI IPv4 Protocol driver. This determination may
|
||||||
be as simple as returning EFI_UNSUPPORTED if there is no EFI IPv4 Protocol
|
be as simple as returning EFI_UNSUPPORTED if there is no EFI IPv4 Protocol
|
||||||
driver configuration policy. It may be as involved as loading some defaults
|
driver configuration policy. It may be as involved as loading some defaults
|
||||||
from nonvolatile storage, downloading dynamic data from a DHCP server, and
|
from nonvolatile storage, downloading dynamic data from a DHCP server, and
|
||||||
checking permissions with a site policy server.
|
checking permissions with a site policy server.
|
||||||
Starting the configuration policy is just the beginning. It may finish almost
|
Starting the configuration policy is just the beginning. It may finish almost
|
||||||
instantly or it may take several minutes before it fails to retrieve configuration
|
instantly or it may take several minutes before it fails to retrieve configuration
|
||||||
information from one or more servers. Once the policy is started, drivers
|
information from one or more servers. Once the policy is started, drivers
|
||||||
should use the DoneEvent parameter to determine when the configuration policy
|
should use the DoneEvent parameter to determine when the configuration policy
|
||||||
has completed. EFI_IP4_CONFIG_PROTOCOL.GetData() must then be called to
|
has completed. EFI_IP4_CONFIG_PROTOCOL.GetData() must then be called to
|
||||||
determine if the configuration succeeded or failed.
|
determine if the configuration succeeded or failed.
|
||||||
Until the configuration completes successfully, EFI IPv4 Protocol driver instances
|
Until the configuration completes successfully, EFI IPv4 Protocol driver instances
|
||||||
that are attempting to use default configurations must return EFI_NO_MAPPING.
|
that are attempting to use default configurations must return EFI_NO_MAPPING.
|
||||||
Once the configuration is complete, the EFI IPv4 Configuration Protocol driver
|
Once the configuration is complete, the EFI IPv4 Configuration Protocol driver
|
||||||
signals DoneEvent. The configuration may need to be updated in the future,
|
signals DoneEvent. The configuration may need to be updated in the future,
|
||||||
however; in this case, the EFI IPv4 Configuration Protocol driver must signal
|
however; in this case, the EFI IPv4 Configuration Protocol driver must signal
|
||||||
ReconfigEvent, and all EFI IPv4 Protocol driver instances that are using default
|
ReconfigEvent, and all EFI IPv4 Protocol driver instances that are using default
|
||||||
configurations must return EFI_NO_MAPPING until the configuration policy has
|
configurations must return EFI_NO_MAPPING until the configuration policy has
|
||||||
been rerun.
|
been rerun.
|
||||||
|
|
||||||
@param This Pointer to the EFI_IP4_CONFIG_PROTOCOL instance.
|
@param This Pointer to the EFI_IP4_CONFIG_PROTOCOL instance.
|
||||||
@param DoneEvent Event that will be signaled when the EFI IPv4
|
@param DoneEvent Event that will be signaled when the EFI IPv4
|
||||||
Protocol driver configuration policy completes
|
Protocol driver configuration policy completes
|
||||||
execution. This event must be of type EVT_NOTIFY_SIGNAL.
|
execution. This event must be of type EVT_NOTIFY_SIGNAL.
|
||||||
@param ReconfigEvent Event that will be signaled when the EFI IPv4
|
@param ReconfigEvent Event that will be signaled when the EFI IPv4
|
||||||
Protocol driver configuration needs to be updated.
|
Protocol driver configuration needs to be updated.
|
||||||
This event must be of type EVT_NOTIFY_SIGNAL.
|
This event must be of type EVT_NOTIFY_SIGNAL.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The configuration policy for the EFI IPv4 Protocol
|
@retval EFI_SUCCESS The configuration policy for the EFI IPv4 Protocol
|
||||||
driver is now running.
|
driver is now running.
|
||||||
@retval EFI_INVALID_PARAMETER One or more of the following parameters is NULL:
|
@retval EFI_INVALID_PARAMETER One or more of the following parameters is NULL:
|
||||||
This
|
This
|
||||||
DoneEvent
|
DoneEvent
|
||||||
ReconfigEvent
|
ReconfigEvent
|
||||||
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
|
@retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
|
||||||
@retval EFI_ALREADY_STARTED The configuration policy for the EFI IPv4 Protocol
|
@retval EFI_ALREADY_STARTED The configuration policy for the EFI IPv4 Protocol
|
||||||
driver was already started.
|
driver was already started.
|
||||||
@retval EFI_DEVICE_ERROR An unexpected system error or network error occurred.
|
@retval EFI_DEVICE_ERROR An unexpected system error or network error occurred.
|
||||||
@retval EFI_UNSUPPORTED This interface does not support the EFI IPv4 Protocol
|
@retval EFI_UNSUPPORTED This interface does not support the EFI IPv4 Protocol
|
||||||
driver configuration.
|
driver configuration.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
@ -546,18 +546,18 @@ ON_EXIT:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
Stops running the configuration policy for the EFI IPv4 Protocol driver.
|
Stops running the configuration policy for the EFI IPv4 Protocol driver.
|
||||||
|
|
||||||
The Stop() function stops the configuration policy for the EFI IPv4 Protocol driver.
|
The Stop() function stops the configuration policy for the EFI IPv4 Protocol driver.
|
||||||
All configuration data will be lost after calling Stop().
|
All configuration data will be lost after calling Stop().
|
||||||
|
|
||||||
@param This Pointer to the EFI_IP4_CONFIG_PROTOCOL instance.
|
@param This Pointer to the EFI_IP4_CONFIG_PROTOCOL instance.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The configuration policy for the EFI IPv4 Protocol
|
@retval EFI_SUCCESS The configuration policy for the EFI IPv4 Protocol
|
||||||
driver has been stopped.
|
driver has been stopped.
|
||||||
@retval EFI_INVALID_PARAMETER This is NULL.
|
@retval EFI_INVALID_PARAMETER This is NULL.
|
||||||
@retval EFI_NOT_STARTED The configuration policy for the EFI IPv4 Protocol
|
@retval EFI_NOT_STARTED The configuration policy for the EFI IPv4 Protocol
|
||||||
driver was not started.
|
driver was not started.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
@ -600,26 +600,26 @@ ON_EXIT:
|
|||||||
/**
|
/**
|
||||||
Returns the default configuration data (if any) for the EFI IPv4 Protocol driver.
|
Returns the default configuration data (if any) for the EFI IPv4 Protocol driver.
|
||||||
|
|
||||||
The GetData() function returns the current configuration data for the EFI IPv4
|
The GetData() function returns the current configuration data for the EFI IPv4
|
||||||
Protocol driver after the configuration policy has completed.
|
Protocol driver after the configuration policy has completed.
|
||||||
|
|
||||||
@param This Pointer to the EFI_IP4_CONFIG_PROTOCOL instance.
|
@param This Pointer to the EFI_IP4_CONFIG_PROTOCOL instance.
|
||||||
@param ConfigDataSize On input, the size of the ConfigData buffer.
|
@param ConfigDataSize On input, the size of the ConfigData buffer.
|
||||||
On output, the count of bytes that were written
|
On output, the count of bytes that were written
|
||||||
into the ConfigData buffer.
|
into the ConfigData buffer.
|
||||||
@param ConfigData Pointer to the EFI IPv4 Configuration Protocol
|
@param ConfigData Pointer to the EFI IPv4 Configuration Protocol
|
||||||
driver configuration data structure.
|
driver configuration data structure.
|
||||||
Type EFI_IP4_IPCONFIG_DATA is defined in
|
Type EFI_IP4_IPCONFIG_DATA is defined in
|
||||||
"Related Definitions" below.
|
"Related Definitions" below.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The EFI IPv4 Protocol driver configuration has been returned.
|
@retval EFI_SUCCESS The EFI IPv4 Protocol driver configuration has been returned.
|
||||||
@retval EFI_INVALID_PARAMETER This is NULL.
|
@retval EFI_INVALID_PARAMETER This is NULL.
|
||||||
@retval EFI_NOT_STARTED The configuration policy for the EFI IPv4 Protocol
|
@retval EFI_NOT_STARTED The configuration policy for the EFI IPv4 Protocol
|
||||||
driver is not running.
|
driver is not running.
|
||||||
@retval EFI_NOT_READY EFI IPv4 Protocol driver configuration is still running.
|
@retval EFI_NOT_READY EFI IPv4 Protocol driver configuration is still running.
|
||||||
@retval EFI_ABORTED EFI IPv4 Protocol driver configuration could not complete.
|
@retval EFI_ABORTED EFI IPv4 Protocol driver configuration could not complete.
|
||||||
Currently not implemented.
|
Currently not implemented.
|
||||||
@retval EFI_BUFFER_TOO_SMALL *ConfigDataSize is smaller than the configuration
|
@retval EFI_BUFFER_TOO_SMALL *ConfigDataSize is smaller than the configuration
|
||||||
data buffer or ConfigData is NULL.
|
data buffer or ConfigData is NULL.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
@ -23,6 +23,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#include <Protocol/HiiConfigAccess.h>
|
#include <Protocol/HiiConfigAccess.h>
|
||||||
#include <Protocol/HiiDatabase.h>
|
#include <Protocol/HiiDatabase.h>
|
||||||
#include <Protocol/HiiConfigRouting.h>
|
#include <Protocol/HiiConfigRouting.h>
|
||||||
|
#include <Protocol/ServiceBinding.h>
|
||||||
|
|
||||||
#include <Guid/MdeModuleHii.h>
|
#include <Guid/MdeModuleHii.h>
|
||||||
|
|
||||||
@ -38,6 +39,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#include <Library/HiiLib.h>
|
#include <Library/HiiLib.h>
|
||||||
#include <Library/PrintLib.h>
|
#include <Library/PrintLib.h>
|
||||||
#include <Library/DpcLib.h>
|
#include <Library/DpcLib.h>
|
||||||
|
#include <Library/UefiHiiServicesLib.h>
|
||||||
|
|
||||||
#include "NicIp4Variable.h"
|
#include "NicIp4Variable.h"
|
||||||
|
|
||||||
@ -49,7 +51,7 @@ typedef struct _IP4_CONFIG_INSTANCE IP4_CONFIG_INSTANCE;
|
|||||||
extern EFI_DRIVER_BINDING_PROTOCOL gIp4ConfigDriverBinding;
|
extern EFI_DRIVER_BINDING_PROTOCOL gIp4ConfigDriverBinding;
|
||||||
extern EFI_COMPONENT_NAME_PROTOCOL gIp4ConfigComponentName;
|
extern EFI_COMPONENT_NAME_PROTOCOL gIp4ConfigComponentName;
|
||||||
extern EFI_COMPONENT_NAME2_PROTOCOL gIp4ConfigComponentName2;
|
extern EFI_COMPONENT_NAME2_PROTOCOL gIp4ConfigComponentName2;
|
||||||
|
|
||||||
extern IP4_CONFIG_INSTANCE *mIp4ConfigNicList[MAX_IP4_CONFIG_IN_VARIABLE];
|
extern IP4_CONFIG_INSTANCE *mIp4ConfigNicList[MAX_IP4_CONFIG_IN_VARIABLE];
|
||||||
extern EFI_IP4_CONFIG_PROTOCOL mIp4ConfigProtocolTemplate;
|
extern EFI_IP4_CONFIG_PROTOCOL mIp4ConfigProtocolTemplate;
|
||||||
|
|
||||||
@ -76,116 +78,89 @@ typedef struct {
|
|||||||
} IP4_CONFIG_DHCP4_OPTION;
|
} IP4_CONFIG_DHCP4_OPTION;
|
||||||
#pragma pack()
|
#pragma pack()
|
||||||
|
|
||||||
|
typedef struct _IP4CONFIG_CALLBACK_INFO {
|
||||||
typedef struct {
|
BOOLEAN Enabled;
|
||||||
UINTN DeviceNum;
|
EFI_IPv4_ADDRESS LocalIp;
|
||||||
BOOLEAN Enabled;
|
EFI_IPv4_ADDRESS SubnetMask;
|
||||||
EFI_IPv4_ADDRESS LocalIp;
|
EFI_IPv4_ADDRESS Gateway;
|
||||||
EFI_IPv4_ADDRESS SubnetMask;
|
} IP4_SETTING_INFO;
|
||||||
EFI_IPv4_ADDRESS Gateway;
|
|
||||||
} IP4_CONFIG_SESSION_DATA;
|
|
||||||
|
|
||||||
typedef struct _IP4_CONFIG_FORM_ENTRY {
|
|
||||||
LIST_ENTRY Link;
|
|
||||||
IP4_CONFIG_INSTANCE *Ip4ConfigInstance;
|
|
||||||
EFI_HANDLE Controller;
|
|
||||||
CHAR16 *MacString;
|
|
||||||
EFI_STRING_ID PortTitleToken;
|
|
||||||
EFI_STRING_ID PortTitleHelpToken;
|
|
||||||
IP4_CONFIG_SESSION_DATA SessionConfigData;
|
|
||||||
} IP4CONFIG_FORM_ENTRY;
|
|
||||||
|
|
||||||
#define IP4CONFIG_FORM_CALLBACK_INFO_SIGNATURE SIGNATURE_32 ('I', 'P', '4', 'C')
|
|
||||||
|
|
||||||
typedef struct _IP4_FORM_CALLBACK_INFO_INSTANCE {
|
|
||||||
UINTN Signature;
|
|
||||||
EFI_HANDLE DriverHandle;
|
|
||||||
EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess;
|
|
||||||
EFI_HII_DATABASE_PROTOCOL *HiiDatabase;
|
|
||||||
EFI_HII_CONFIG_ROUTING_PROTOCOL *ConfigRouting;
|
|
||||||
EFI_HII_HANDLE RegisteredHandle;
|
|
||||||
IP4CONFIG_FORM_ENTRY *Current;
|
|
||||||
} IP4_FORM_CALLBACK_INFO;
|
|
||||||
|
|
||||||
#define IP4CONFIG_FORM_CALLBACK_INFO_FROM_FORM_CALLBACK(Callback) \
|
|
||||||
CR ( \
|
|
||||||
Callback, \
|
|
||||||
IP4_FORM_CALLBACK_INFO, \
|
|
||||||
ConfigAccess, \
|
|
||||||
IP4CONFIG_FORM_CALLBACK_INFO_SIGNATURE \
|
|
||||||
)
|
|
||||||
|
|
||||||
struct _IP4_CONFIG_INSTANCE {
|
struct _IP4_CONFIG_INSTANCE {
|
||||||
UINT32 Signature;
|
UINT32 Signature;
|
||||||
EFI_HANDLE Controller;
|
EFI_HANDLE Controller;
|
||||||
EFI_HANDLE Image;
|
EFI_HANDLE Image;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
|
||||||
|
|
||||||
EFI_IP4_CONFIG_PROTOCOL Ip4ConfigProtocol;
|
EFI_IP4_CONFIG_PROTOCOL Ip4ConfigProtocol;
|
||||||
|
|
||||||
IP4_FORM_CALLBACK_INFO Ip4FormCallbackInfo;
|
EFI_HII_CONFIG_ACCESS_PROTOCOL HiiConfigAccessProtocol;
|
||||||
|
EFI_HANDLE ChildHandle;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *HiiVendorDevicePath;
|
||||||
|
EFI_HII_HANDLE RegisteredHandle;
|
||||||
|
IP4_SETTING_INFO Ip4ConfigCallbackInfo;
|
||||||
|
|
||||||
//
|
//
|
||||||
// NicConfig's state, such as IP4_CONFIG_STATE_IDLE
|
// NicConfig's state, such as IP4_CONFIG_STATE_IDLE
|
||||||
//
|
//
|
||||||
INTN State;
|
INTN State;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Mnp child to keep the connection with MNP.
|
// Mnp child to keep the connection with MNP.
|
||||||
//
|
//
|
||||||
EFI_MANAGED_NETWORK_PROTOCOL *Mnp;
|
EFI_MANAGED_NETWORK_PROTOCOL *Mnp;
|
||||||
EFI_HANDLE MnpHandle;
|
EFI_HANDLE MnpHandle;
|
||||||
|
|
||||||
//
|
//
|
||||||
// User's requests data
|
// User's requests data
|
||||||
//
|
//
|
||||||
EFI_EVENT DoneEvent;
|
EFI_EVENT DoneEvent;
|
||||||
EFI_EVENT ReconfigEvent;
|
EFI_EVENT ReconfigEvent;
|
||||||
EFI_STATUS Result;
|
EFI_STATUS Result;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Identity of this interface and some configuration info.
|
// Identity of this interface and some configuration info.
|
||||||
//
|
//
|
||||||
NIC_ADDR NicAddr;
|
NIC_ADDR NicAddr;
|
||||||
UINT16 NicName[IP4_NIC_NAME_LENGTH];
|
UINT16 NicName[IP4_NIC_NAME_LENGTH];
|
||||||
UINT32 NicIndex;
|
UINT32 NicIndex;
|
||||||
NIC_IP4_CONFIG_INFO *NicConfig;
|
NIC_IP4_CONFIG_INFO *NicConfig;
|
||||||
|
|
||||||
//
|
//
|
||||||
// DHCP handles to access DHCP
|
// DHCP handles to access DHCP
|
||||||
//
|
//
|
||||||
EFI_DHCP4_PROTOCOL *Dhcp4;
|
EFI_DHCP4_PROTOCOL *Dhcp4;
|
||||||
EFI_HANDLE Dhcp4Handle;
|
EFI_HANDLE Dhcp4Handle;
|
||||||
EFI_EVENT Dhcp4Event;
|
EFI_EVENT Dhcp4Event;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define IP4_CONFIG_INSTANCE_FROM_IP4CONFIG(this) \
|
#define IP4_CONFIG_INSTANCE_FROM_IP4CONFIG(this) \
|
||||||
CR (this, IP4_CONFIG_INSTANCE, Ip4ConfigProtocol, IP4_CONFIG_INSTANCE_SIGNATURE)
|
CR (this, IP4_CONFIG_INSTANCE, Ip4ConfigProtocol, IP4_CONFIG_INSTANCE_SIGNATURE)
|
||||||
|
|
||||||
#define IP4_CONFIG_INSTANCE_FROM_IP4FORM_CALLBACK_INFO(this) \
|
#define IP4_CONFIG_INSTANCE_FROM_CONFIG_ACCESS(this) \
|
||||||
CR (this, IP4_CONFIG_INSTANCE, Ip4FormCallbackInfo, IP4_CONFIG_INSTANCE_SIGNATURE)
|
CR (this, IP4_CONFIG_INSTANCE, HiiConfigAccessProtocol, IP4_CONFIG_INSTANCE_SIGNATURE)
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Set the IP configure parameters for this NIC.
|
Set the IP configure parameters for this NIC.
|
||||||
|
|
||||||
If Reconfig is TRUE, the IP driver will be informed to discard current
|
If Reconfig is TRUE, the IP driver will be informed to discard current
|
||||||
auto configure parameter and restart the auto configuration process.
|
auto configure parameter and restart the auto configuration process.
|
||||||
If current there is a pending auto configuration, EFI_ALREADY_STARTED is
|
If current there is a pending auto configuration, EFI_ALREADY_STARTED is
|
||||||
returned. You can only change the configure setting when either
|
returned. You can only change the configure setting when either
|
||||||
the configure has finished or not started yet. If NicConfig, the
|
the configure has finished or not started yet. If NicConfig, the
|
||||||
NIC's configure parameter is removed from the variable.
|
NIC's configure parameter is removed from the variable.
|
||||||
|
|
||||||
@param Instance The IP4 CONFIG instance.
|
@param Instance The IP4 CONFIG instance.
|
||||||
@param NicConfig The new NIC IP4 configure parameter
|
@param NicConfig The new NIC IP4 configure parameter.
|
||||||
@param Reconfig Inform the IP4 driver to restart the auto
|
@param Reconfig Inform the IP4 driver to restart the auto
|
||||||
configuration
|
configuration.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The configure parameter for this NIC was
|
@retval EFI_SUCCESS The configure parameter for this NIC was
|
||||||
set successfully .
|
set successfully.
|
||||||
@retval EFI_INVALID_PARAMETER This is NULL or the configure parameter is
|
@retval EFI_INVALID_PARAMETER This is NULL or the configure parameter is
|
||||||
invalid.
|
invalid.
|
||||||
@retval EFI_ALREADY_STARTED There is a pending auto configuration.
|
@retval EFI_ALREADY_STARTED There is a pending auto configuration.
|
||||||
@retval EFI_NOT_FOUND No auto configure parameter is found
|
@retval EFI_NOT_FOUND No auto configure parameter is found.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
@ -204,12 +179,12 @@ EfiNicIp4ConfigSetInfo (
|
|||||||
@param NicConfig The buffer to receive the NIC's configure
|
@param NicConfig The buffer to receive the NIC's configure
|
||||||
parameter.
|
parameter.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The configure parameter for this NIC was
|
@retval EFI_SUCCESS The configure parameter for this NIC was
|
||||||
obtained successfully .
|
obtained successfully .
|
||||||
@retval EFI_INVALID_PARAMETER This or ConfigLen is NULL.
|
@retval EFI_INVALID_PARAMETER This or ConfigLen is NULL.
|
||||||
@retval EFI_NOT_FOUND There is no configure parameter for the NIC in
|
@retval EFI_NOT_FOUND There is no configure parameter for the NIC in
|
||||||
NVRam.
|
NVRam.
|
||||||
@retval EFI_BUFFER_TOO_SMALL The ConfigLen is too small or the NicConfig is
|
@retval EFI_BUFFER_TOO_SMALL The ConfigLen is too small or the NicConfig is
|
||||||
NULL.
|
NULL.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
@ -42,8 +42,6 @@ EfiIp4ConfigUnload (
|
|||||||
{
|
{
|
||||||
UINT32 Index;
|
UINT32 Index;
|
||||||
|
|
||||||
Ip4ConfigFormUnload ();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Stop all the IP4_CONFIG instances
|
// Stop all the IP4_CONFIG instances
|
||||||
//
|
//
|
||||||
@ -81,8 +79,6 @@ Ip4ConfigDriverEntryPoint (
|
|||||||
IN EFI_SYSTEM_TABLE *SystemTable
|
IN EFI_SYSTEM_TABLE *SystemTable
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
Ip4ConfigFormInit ();
|
|
||||||
|
|
||||||
return EfiLibInstallDriverBindingComponentName2 (
|
return EfiLibInstallDriverBindingComponentName2 (
|
||||||
ImageHandle,
|
ImageHandle,
|
||||||
SystemTable,
|
SystemTable,
|
||||||
@ -161,6 +157,16 @@ Ip4ConfigDriverBindingStart (
|
|||||||
IP4_CONFIG_VARIABLE *NewVariable;
|
IP4_CONFIG_VARIABLE *NewVariable;
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
UINT32 Index;
|
UINT32 Index;
|
||||||
|
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
|
||||||
|
|
||||||
|
Status = gBS->HandleProtocol (
|
||||||
|
ControllerHandle,
|
||||||
|
&gEfiDevicePathProtocolGuid,
|
||||||
|
(VOID **) &ParentDevicePath
|
||||||
|
);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check for multiple start.
|
// Check for multiple start.
|
||||||
@ -222,6 +228,7 @@ Ip4ConfigDriverBindingStart (
|
|||||||
Instance->Signature = IP4_CONFIG_INSTANCE_SIGNATURE;
|
Instance->Signature = IP4_CONFIG_INSTANCE_SIGNATURE;
|
||||||
Instance->Controller = ControllerHandle;
|
Instance->Controller = ControllerHandle;
|
||||||
Instance->Image = This->DriverBindingHandle;
|
Instance->Image = This->DriverBindingHandle;
|
||||||
|
Instance->ParentDevicePath = ParentDevicePath;
|
||||||
|
|
||||||
CopyMem (&Instance->Ip4ConfigProtocol, &mIp4ConfigProtocolTemplate, sizeof (mIp4ConfigProtocolTemplate));
|
CopyMem (&Instance->Ip4ConfigProtocol, &mIp4ConfigProtocolTemplate, sizeof (mIp4ConfigProtocolTemplate));
|
||||||
|
|
||||||
@ -272,12 +279,6 @@ Ip4ConfigDriverBindingStart (
|
|||||||
}
|
}
|
||||||
|
|
||||||
Status = Ip4ConfigDeviceInit (Instance);
|
Status = Ip4ConfigDeviceInit (Instance);
|
||||||
if (!EFI_ERROR (Status)) {
|
|
||||||
//
|
|
||||||
// Try to add a port configuration page for this controller.
|
|
||||||
//
|
|
||||||
Ip4ConfigUpdateForm (Instance, TRUE);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Install the IP4_CONFIG and NIC_IP4CONFIG protocols
|
// Install the IP4_CONFIG and NIC_IP4CONFIG protocols
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#/** @file
|
#/** @file
|
||||||
# Component name for module Ip4Config
|
# Component name for module Ip4Config
|
||||||
#
|
#
|
||||||
# FIX ME!
|
|
||||||
# Copyright (c) 2006 - 2009, Intel Corporation
|
# Copyright (c) 2006 - 2009, Intel Corporation
|
||||||
#
|
#
|
||||||
# All rights reserved. This program and the accompanying materials
|
# All rights reserved. This program and the accompanying materials
|
||||||
@ -28,10 +27,6 @@
|
|||||||
#
|
#
|
||||||
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
|
# VALID_ARCHITECTURES = IA32 X64 IPF EBC
|
||||||
#
|
#
|
||||||
# DRIVER_BINDING = gIp4ConfigDriverBinding
|
|
||||||
# COMPONENT_NAME = gIp4ConfigComponentName
|
|
||||||
# COMPONENT_NAME2 = gIp4ConfigComponentName2
|
|
||||||
#
|
|
||||||
|
|
||||||
[Sources.common]
|
[Sources.common]
|
||||||
ComponentName.c
|
ComponentName.c
|
||||||
@ -68,9 +63,8 @@
|
|||||||
gEfiIp4ConfigProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
gEfiIp4ConfigProtocolGuid # PROTOCOL ALWAYS_PRODUCED
|
||||||
gEfiManagedNetworkProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiManagedNetworkProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiDhcp4ProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiDhcp4ProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
gEfiHiiDatabaseProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
|
||||||
gEfiHiiConfigAccessProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
gEfiHiiConfigAccessProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||||
|
|
||||||
[Guids]
|
[Guids]
|
||||||
gEfiIfrTianoGuid ## CONSUMES ## Guid
|
|
||||||
gEfiNicIp4ConfigVariableGuid ## CONSUMES ## Guid
|
gEfiNicIp4ConfigVariableGuid ## CONSUMES ## Guid
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#define EFI_NETWORK_DEVICE_CLASS 0x04
|
#define EFI_NETWORK_DEVICE_CLASS 0x04
|
||||||
|
|
||||||
formset
|
formset
|
||||||
guid = EFI_NIC_IP4_CONFIG_VARIABLE_GUID,
|
guid = EFI_NIC_IP4_CONFIG_NVDATA_GUID,
|
||||||
title = STRING_TOKEN(STR_IP4_CONFIG_FORM_TITLE),
|
title = STRING_TOKEN(STR_IP4_CONFIG_FORM_TITLE),
|
||||||
help = STRING_TOKEN(STR_IP4_CONFIG_FORM_HELP),
|
help = STRING_TOKEN(STR_IP4_CONFIG_FORM_HELP),
|
||||||
class = EFI_NETWORK_DEVICE_CLASS,
|
class = EFI_NETWORK_DEVICE_CLASS,
|
||||||
@ -24,17 +24,9 @@ formset
|
|||||||
|
|
||||||
varstore IP4_CONFIG_IFR_NVDATA,
|
varstore IP4_CONFIG_IFR_NVDATA,
|
||||||
name = EfiNicIp4ConfigVariable,
|
name = EfiNicIp4ConfigVariable,
|
||||||
guid = EFI_NIC_IP4_CONFIG_VARIABLE_GUID;
|
guid = EFI_NIC_IP4_CONFIG_NVDATA_GUID;
|
||||||
|
|
||||||
form formid = FORMID_MAIN_FORM,
|
form formid = FORMID_MAIN_FORM,
|
||||||
title = STRING_TOKEN(STR_IP4_MAIN_FORM_TITLE);
|
|
||||||
|
|
||||||
label DEVICE_ENTRY_LABEL;
|
|
||||||
label LABEL_END;
|
|
||||||
|
|
||||||
endform;
|
|
||||||
|
|
||||||
form formid = FORMID_DEVICE_FORM,
|
|
||||||
title = STRING_TOKEN(STR_IP4_DEVICE_FORM_TITLE);
|
title = STRING_TOKEN(STR_IP4_DEVICE_FORM_TITLE);
|
||||||
|
|
||||||
checkbox varid = EfiNicIp4ConfigVariable.DhcpEnable,
|
checkbox varid = EfiNicIp4ConfigVariable.DhcpEnable,
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -24,31 +24,6 @@ extern UINT8 Ip4ConfigDxeStrings[];
|
|||||||
#define NIC_ITEM_CONFIG_SIZE sizeof (NIC_IP4_CONFIG_INFO) + sizeof (EFI_IP4_ROUTE_TABLE) * MAX_IP4_CONFIG_IN_VARIABLE
|
#define NIC_ITEM_CONFIG_SIZE sizeof (NIC_IP4_CONFIG_INFO) + sizeof (EFI_IP4_ROUTE_TABLE) * MAX_IP4_CONFIG_IN_VARIABLE
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// HII specific Vendor Device Path definition.
|
|
||||||
///
|
|
||||||
typedef struct {
|
|
||||||
VENDOR_DEVICE_PATH VendorDevicePath;
|
|
||||||
EFI_DEVICE_PATH_PROTOCOL End;
|
|
||||||
} HII_VENDOR_DEVICE_PATH;
|
|
||||||
|
|
||||||
/**
|
|
||||||
Updates the network configuration form to add/delete an entry for the network
|
|
||||||
device specified by the Instance.
|
|
||||||
|
|
||||||
@param[in] Instance The IP4 Config instance.
|
|
||||||
@param[in] AddForm Whether to add or delete a form entry.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The network configuration form is updated.
|
|
||||||
@retval EFI_OUT_OF_RESOURCES Failed to allocate memory.
|
|
||||||
@retval Others Other errors as indicated.
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
Ip4ConfigUpdateForm (
|
|
||||||
IN IP4_CONFIG_INSTANCE *Instance,
|
|
||||||
IN BOOLEAN AddForm
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Install HII Config Access protocol for network device and allocate resource.
|
Install HII Config Access protocol for network device and allocate resource.
|
||||||
|
|
||||||
@ -76,29 +51,4 @@ Ip4ConfigDeviceUnload (
|
|||||||
IN IP4_CONFIG_INSTANCE *Instance
|
IN IP4_CONFIG_INSTANCE *Instance
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
|
||||||
Initialize the network configuration form, this includes: delete all the network
|
|
||||||
device configuration entries, install the form callback protocol and
|
|
||||||
allocate the resources used.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The network configuration form is unloaded.
|
|
||||||
@retval EFI_OUT_OF_RESOURCES Failed to allocate memory.
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
Ip4ConfigFormInit (
|
|
||||||
VOID
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
Unload the network configuration form, this includes: delete all the network
|
|
||||||
device configuration entries, uninstall the form callback protocol and
|
|
||||||
free the resources used.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The network configuration form is unloaded.
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
Ip4ConfigFormUnload (
|
|
||||||
VOID
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -15,13 +15,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#ifndef _NIC_IP4_NV_DATA_H_
|
#ifndef _NIC_IP4_NV_DATA_H_
|
||||||
#define _NIC_IP4_NV_DATA_H_
|
#define _NIC_IP4_NV_DATA_H_
|
||||||
|
|
||||||
|
#define EFI_NIC_IP4_CONFIG_NVDATA_GUID \
|
||||||
//
|
|
||||||
// one copy from NicIp4ConfigNvData.h
|
|
||||||
//
|
|
||||||
#define EFI_NIC_IP4_CONFIG_VARIABLE_GUID \
|
|
||||||
{ \
|
{ \
|
||||||
0xd8944553, 0xc4dd, 0x41f4, { 0x9b, 0x30, 0xe1, 0x39, 0x7c, 0xfb, 0x26, 0x7b } \
|
0x9d5b53f, 0xf4b0, 0x4f59, { 0xa0, 0xb1, 0x7b, 0x57, 0xd3, 0x5c, 0xe, 0x5 } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define FORMID_MAIN_FORM 1
|
#define FORMID_MAIN_FORM 1
|
||||||
@ -33,11 +29,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#define KEY_GATE_WAY 0x104
|
#define KEY_GATE_WAY 0x104
|
||||||
#define KEY_SAVE_CHANGES 0x105
|
#define KEY_SAVE_CHANGES 0x105
|
||||||
|
|
||||||
#define DEVICE_ENTRY_LABEL 0x1234
|
|
||||||
#define LABEL_END 0xffff
|
|
||||||
|
|
||||||
#define KEY_DEVICE_ENTRY_BASE 0x1000
|
|
||||||
|
|
||||||
#define IP_MIN_SIZE 7
|
#define IP_MIN_SIZE 7
|
||||||
#define IP_MAX_SIZE 15
|
#define IP_MAX_SIZE 15
|
||||||
#define IP4_STR_MAX_SIZE 16
|
#define IP4_STR_MAX_SIZE 16
|
||||||
@ -48,12 +39,13 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
/// of variable length.
|
/// of variable length.
|
||||||
///
|
///
|
||||||
typedef struct {
|
typedef struct {
|
||||||
UINT16 NicAddr[3]; ///< NIC MAC address
|
UINT16 NicAddr[3]; ///< NIC MAC address
|
||||||
UINT8 Reserved; ///< Reserved bits
|
UINT8 Reserved; ///< Reserved bits
|
||||||
UINT8 DhcpEnable; ///< Static or DHCP
|
UINT8 DhcpEnable; ///< Static or DHCP
|
||||||
CHAR16 StationAddress[IP4_STR_MAX_SIZE]; ///< IP addresses
|
CHAR16 StationAddress[IP4_STR_MAX_SIZE]; ///< IP addresses
|
||||||
CHAR16 SubnetMask[IP4_STR_MAX_SIZE]; ///< Subnet address
|
CHAR16 SubnetMask[IP4_STR_MAX_SIZE]; ///< Subnet address
|
||||||
CHAR16 GatewayAddress[IP4_STR_MAX_SIZE]; ///< Gateway address
|
CHAR16 GatewayAddress[IP4_STR_MAX_SIZE]; ///< Gateway address
|
||||||
} IP4_CONFIG_IFR_NVDATA;
|
} IP4_CONFIG_IFR_NVDATA;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user