summaryrefslogtreecommitdiff
path: root/MdePkg/Include/Protocol/Ip4Config2.h
diff options
context:
space:
mode:
Diffstat (limited to 'MdePkg/Include/Protocol/Ip4Config2.h')
-rw-r--r--MdePkg/Include/Protocol/Ip4Config2.h313
1 files changed, 0 insertions, 313 deletions
diff --git a/MdePkg/Include/Protocol/Ip4Config2.h b/MdePkg/Include/Protocol/Ip4Config2.h
deleted file mode 100644
index 383da8a4e0..0000000000
--- a/MdePkg/Include/Protocol/Ip4Config2.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/** @file
- This file provides a definition of the EFI IPv4 Configuration II
- Protocol.
-
-Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
-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<BR>
-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.
-
-@par Revision Reference:
-This Protocol is introduced in UEFI Specification 2.5
-
-**/
-#ifndef __EFI_IP4CONFIG2_PROTOCOL_H__
-#define __EFI_IP4CONFIG2_PROTOCOL_H__
-
-#include <Protocol/Ip4.h>
-
-#define EFI_IP4_CONFIG2_PROTOCOL_GUID \
- { \
- 0x5b446ed1, 0xe30b, 0x4faa, {0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 } \
- }
-
-typedef struct _EFI_IP4_CONFIG2_PROTOCOL EFI_IP4_CONFIG2_PROTOCOL;
-
-
-///
-/// EFI_IP4_CONFIG2_DATA_TYPE
-///
-typedef enum {
- ///
- /// The interface information of the communication device this EFI
- /// IPv4 Configuration II Protocol instance manages. This type of
- /// data is read only. The corresponding Data is of type
- /// EFI_IP4_CONFIG2_INTERFACE_INFO.
- ///
- Ip4Config2DataTypeInterfaceInfo,
- ///
- /// The general configuration policy for the EFI IPv4 network stack
- /// running on the communication device this EFI IPv4
- /// Configuration II Protocol instance manages. The policy will
- /// affect other configuration settings. The corresponding Data is of
- /// type EFI_IP4_CONFIG2_POLICY.
- ///
- Ip4Config2DataTypePolicy,
- ///
- /// The station addresses set manually for the EFI IPv4 network
- /// stack. It is only configurable when the policy is
- /// Ip4Config2PolicyStatic. The corresponding Data is of
- /// type EFI_IP4_CONFIG2_MANUAL_ADDRESS.
- ///
- Ip4Config2DataTypeManualAddress,
- ///
- /// The gateway addresses set manually for the EFI IPv4 network
- /// stack running on the communication device this EFI IPv4
- /// Configuration II Protocol manages. It is not configurable when
- /// the policy is Ip4Config2PolicyDhcp. The gateway
- /// addresses must be unicast IPv4 addresses. The corresponding
- /// Data is a pointer to an array of EFI_IPv4_ADDRESS instances.
- ///
- Ip4Config2DataTypeGateway,
- ///
- /// The DNS server list for the EFI IPv4 network stack running on
- /// the communication device this EFI IPv4 Configuration II
- /// Protocol manages. It is not configurable when the policy is
- /// Ip4Config2PolicyDhcp. The DNS server addresses must be
- /// unicast IPv4 addresses. The corresponding Data is a pointer to
- /// an array of EFI_IPv4_ADDRESS instances.
- ///
- Ip4Config2DataTypeDnsServer,
- Ip4Config2DataTypeMaximum
-} EFI_IP4_CONFIG2_DATA_TYPE;
-
-///
-/// EFI_IP4_CONFIG2_INTERFACE_INFO
-///
-typedef struct {
- ///
- /// The name of the interface. It is a NULL-terminated Unicode string.
- ///
- CHAR16 Name[32];
- ///
- /// The interface type of the network interface. See RFC 1700,
- /// section "Number Hardware Type".
- ///
- UINT8 IfType;
- ///
- /// The size, in bytes, of the network interface's hardware address.
- ///
- UINT32 HwAddressSize;
- ///
- /// The hardware address for the network interface.
- ///
- EFI_MAC_ADDRESS HwAddress;
- ///
- /// The station IPv4 address of this EFI IPv4 network stack.
- ///
- EFI_IPv4_ADDRESS StationAddress;
- ///
- /// The subnet address mask that is associated with the station address.
- ///
- EFI_IPv4_ADDRESS SubnetMask;
- ///
- /// Size of the following RouteTable, in bytes. May be zero.
- ///
- UINT32 RouteTableSize;
- ///
- /// The route table of the IPv4 network stack runs on this interface.
- /// Set to NULL if RouteTableSize is zero. Type EFI_IP4_ROUTE_TABLE is defined in
- /// EFI_IP4_PROTOCOL.GetModeData().
- ///
- EFI_IP4_ROUTE_TABLE *RouteTable OPTIONAL;
-} EFI_IP4_CONFIG2_INTERFACE_INFO;
-
-///
-/// EFI_IP4_CONFIG2_POLICY
-///
-typedef enum {
- ///
- /// Under this policy, the Ip4Config2DataTypeManualAddress,
- /// Ip4Config2DataTypeGateway and Ip4Config2DataTypeDnsServer configuration
- /// data are required to be set manually. The EFI IPv4 Protocol will get all
- /// required configuration such as IPv4 address, subnet mask and
- /// gateway settings from the EFI IPv4 Configuration II protocol.
- ///
- Ip4Config2PolicyStatic,
- ///
- /// Under this policy, the Ip4Config2DataTypeManualAddress,
- /// Ip4Config2DataTypeGateway and Ip4Config2DataTypeDnsServer configuration data are
- /// not allowed to set via SetData(). All of these configurations are retrieved from DHCP
- /// server or other auto-configuration mechanism.
- ///
- Ip4Config2PolicyDhcp,
- Ip4Config2PolicyMax
-} EFI_IP4_CONFIG2_POLICY;
-
-///
-/// EFI_IP4_CONFIG2_MANUAL_ADDRESS
-///
-typedef struct {
- ///
- /// The IPv4 unicast address.
- ///
- EFI_IPv4_ADDRESS Address;
- ///
- /// The subnet mask.
- ///
- EFI_IPv4_ADDRESS SubnetMask;
-} EFI_IP4_CONFIG2_MANUAL_ADDRESS;
-
-/**
- Set the configuration for the EFI IPv4 network stack running on the communication device this EFI
- IPv4 Configuration II Protocol instance manages.
-
- This function is used to set the configuration data of type DataType for the EFI IPv4 network stack
- running on the communication device this EFI IPv4 Configuration II Protocol instance manages.
- The successfully configured data is valid after system reset or power-off.
- The DataSize is used to calculate the count of structure instances in the Data for some
- DataType that multiple structure instances are allowed.
- This function is always non-blocking. When setting some typeof configuration data, an
- asynchronous process is invoked to check the correctness of the data, such as doing address conflict
- detection on the manually set local IPv4 address. EFI_NOT_READY is returned immediately to
- indicate that such an asynchronous process is invoked and the process is not finished yet. The caller
- willing to get the result of the asynchronous process is required to call RegisterDataNotify()
- to register an event on the specified configuration data. Once the event is signaled, the caller can call
- GetData()to get back the configuration data in order to know the result. For other types of
- configuration data that do not require an asynchronous configuration process, the result of the
- operation is immediately returned.
-
- @param[in] This Pointer to the EFI_IP4_CONFIG2_PROTOCOL instance.
- @param[in] DataType The type of data to set.
- @param[in] DataSize Size of the buffer pointed to by Data in bytes.
- @param[in] Data The data buffer to set. The type ofthe data buffer is associated
- with the DataType.
-
- @retval EFI_SUCCESS The specified configuration data for the EFI IPv4 network stack is set
- successfully.
- @retval EFI_INVALID_PARAMETER One or more of the following are TRUE:
- This is NULL.
- Data is NULL.
- One or more fields in Data do not match the requirement of the data type
- indicated by DataType.
- @retval EFI_WRITE_PROTECTED The specified configuration data is read-only or the specified configuration
- data can not be set under the current policy.
- @retval EFI_ACCESS_DENIED Another set operation on the specified configuration data is already in process.
- @retval EFI_NOT_READY An asynchronous process is invoked to set the specified configuration data and
- the process is not finished yet.
- @retval EFI_BAD_BUFFER_SIZE The DataSize does not match the size of the type indicated by DataType.
- @retval EFI_UNSUPPORTED This DataType is not supported.
- @retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
- @retval EFI_DEVICE_ERROR An unexpected system error or network error occurred.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_IP4_CONFIG2_SET_DATA) (
- IN EFI_IP4_CONFIG2_PROTOCOL *This,
- IN EFI_IP4_CONFIG2_DATA_TYPE DataType,
- IN UINTN DataSize,
- IN VOID *Data
- );
-
-/**
- Get the configuration data for the EFI IPv4 network stack running on the communication device this
- EFI IPv4 Configuration II Protocol instance manages.
-
- This function returns the configuration data of type DataType for the EFI IPv4 network stack
- running on the communication device this EFI IPv4 Configuration II Protocol instance manages.
- The caller is responsible for allocating the buffer usedto return the specified configuration data and
- the required size will be returned to the caller if the size of the buffer is too small.
- EFI_NOT_READY is returned if the specified configuration data is not ready due to an already in
- progress asynchronous configuration process. The caller can call RegisterDataNotify() to
- register an event on the specified configuration data. Once the asynchronous configuration process is
- finished, the event will be signaled and a subsequent GetData() call will return the specified
- configuration data.
-
- @param[in] This Pointer to the EFI_IP4_CONFIG2_PROTOCOL instance.
- @param[in] DataType The type of data to get.
- @param[out] DataSize On input, in bytes, the size of Data. On output, in bytes, the size
- of buffer required to store the specified configuration data.
- @param[in] Data The data buffer in which the configuration data is returned. The
- type of the data buffer is associated with the DataType. Ignored
- if DataSize is 0.
-
- @retval EFI_SUCCESS The specified configuration data is got successfully.
- @retval EFI_INVALID_PARAMETER One or more of the followings are TRUE:
- This is NULL.
- DataSize is NULL.
- Data is NULL if *DataSizeis not zero.
- @retval EFI_BUFFER_TOO_SMALL The size of Data is too small for the specified configuration data
- and the required size is returned in DataSize.
- @retval EFI_NOT_READY The specified configuration data is not ready due to an already in
- progress asynchronous configuration process.
- @retval EFI_NOT_FOUND The specified configuration data is not found.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_IP4_CONFIG2_GET_DATA) (
- IN EFI_IP4_CONFIG2_PROTOCOL *This,
- IN EFI_IP4_CONFIG2_DATA_TYPE DataType,
- IN OUT UINTN *DataSize,
- IN VOID *Data OPTIONAL
- );
-
-/**
- Register an event that is to be signaled whenever a configuration process on the specified
- configuration data is done.
-
- This function registers an event that is to be signaled whenever a configuration process on the
- specified configuration data is done. An event can be registered for different DataType
- simultaneously and the caller is responsible for determining which type of configuration data causes
- the signaling of the event in such case.
-
- @param[in] This Pointer to the EFI_IP4_CONFIG2_PROTOCOL instance.
- @param[in] DataType The type of data to unregister the event for.
- @param[in] Event The event to register.
-
- @retval EFI_SUCCESS The notification event for the specified configuration data is
- registered.
- @retval EFI_INVALID_PARAMETER This is NULL or Event is NULL.
- @retval EFI_UNSUPPORTED The configuration data type specified by DataType is not supported.
- @retval EFI_OUT_OF_RESOURCES Required system resources could not be allocated.
- @retval EFI_ACCESS_DENIED The Event is already registered for the DataType.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_IP4_CONFIG2_REGISTER_NOTIFY) (
- IN EFI_IP4_CONFIG2_PROTOCOL *This,
- IN EFI_IP4_CONFIG2_DATA_TYPE DataType,
- IN EFI_EVENT Event
- );
-
-/**
- Remove a previously registered event for the specified configuration data.
-
- This function removes a previously registeredevent for the specified configuration data.
-
- @param[in] This Pointer to the EFI_IP4_CONFIG2_PROTOCOL instance.
- @param[in] DataType The type of data to remove the previously registered event for.
- @param[in] Event The event to unregister.
-
- @retval EFI_SUCCESS The event registered for the specified configuration data is removed.
- @retval EFI_INVALID_PARAMETER This is NULL or Event is NULL.
- @retval EFI_NOT_FOUND The Eventhas not been registered for the specified DataType.
-**/
-typedef
-EFI_STATUS
-(EFIAPI *EFI_IP4_CONFIG2_UNREGISTER_NOTIFY) (
- IN EFI_IP4_CONFIG2_PROTOCOL *This,
- IN EFI_IP4_CONFIG2_DATA_TYPE DataType,
- IN EFI_EVENT Event
- );
-
-///
-/// The EFI_IP4_CONFIG2_PROTOCOL is designed to be the central repository for the common
-/// configurations and the administrator configurable settings for the EFI IPv4 network stack.
-/// An EFI IPv4 Configuration II Protocol instance will be installed on each communication device that
-/// the EFI IPv4 network stack runs on.
-///
-struct _EFI_IP4_CONFIG2_PROTOCOL {
- EFI_IP4_CONFIG2_SET_DATA SetData;
- EFI_IP4_CONFIG2_GET_DATA GetData;
- EFI_IP4_CONFIG2_REGISTER_NOTIFY RegisterDataNotify;
- EFI_IP4_CONFIG2_UNREGISTER_NOTIFY UnregisterDataNotify;
-};
-
-extern EFI_GUID gEfiIp4Config2ProtocolGuid;
-
-#endif
-