]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Include/Protocol/IP4.h
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / OldMdePkg / Include / Protocol / IP4.h
diff --git a/OldMdePkg/Include/Protocol/IP4.h b/OldMdePkg/Include/Protocol/IP4.h
deleted file mode 100644 (file)
index 571c534..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-/** @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
-\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
-  Module Name:  IP4.h\r
-\r
-**/\r
-\r
-#ifndef __EFI_IP4_PROTOCOL_H__\r
-#define __EFI_IP4_PROTOCOL_H__\r
-\r
-#define EFI_IP4_SERVICE_BINDING_PROTOCOL_GUID \\r
-  { \\r
-    0xc51711e7, 0xb4bf, 0x404a, {0xbf, 0xb8, 0x0a, 0x04, 0x8e, 0xf1, 0xff, 0xe4 } \\r
-  }\r
-\r
-#define EFI_IP4_PROTOCOL_GUID \\r
-  { \\r
-    0x41d94cd2, 0x35b6, 0x455a, {0x82, 0x58, 0xd4, 0xe5, 0x13, 0x34, 0xaa, 0xdd } \\r
-  }\r
-\r
-typedef struct _EFI_IP4_PROTOCOL EFI_IP4_PROTOCOL;\r
-  \r
-typedef struct {\r
-  EFI_HANDLE              InstanceHandle;\r
-  EFI_IPv4_ADDRESS        Ip4Address;\r
-  EFI_IPv4_ADDRESS        SubnetMask;\r
-} EFI_IP4_ADDRESS_PAIR; \r
-\r
-typedef struct {\r
-  EFI_HANDLE              DriverHandle;\r
-  UINT32                  AddressCount;\r
-  EFI_IP4_ADDRESS_PAIR    AddressPairs[1];\r
-} EFI_IP4_VARIABLE_DATA;\r
-\r
-typedef struct {\r
-  UINT8                   DefaultProtocol;\r
-  BOOLEAN                 AcceptAnyProtocol;\r
-  BOOLEAN                 AcceptIcmpErrors;\r
-  BOOLEAN                 AcceptBroadcast;\r
-  BOOLEAN                 AcceptPromiscuous;\r
-  BOOLEAN                 UseDefaultAddress;\r
-  EFI_IPv4_ADDRESS        StationAddress;\r
-  EFI_IPv4_ADDRESS        SubnetMask;\r
-  UINT8                   TypeOfService;\r
-  UINT8                   TimeToLive;\r
-  BOOLEAN                 DoNotFragment;\r
-  BOOLEAN                 RawData;\r
-  UINT32                  ReceiveTimeout;\r
-  UINT32                  TransmitTimeout;\r
-} EFI_IP4_CONFIG_DATA;\r
-\r
-\r
-typedef struct {\r
-  EFI_IPv4_ADDRESS        SubnetAddress;\r
-  EFI_IPv4_ADDRESS        SubnetMask;\r
-  EFI_IPv4_ADDRESS        GatewayAddress;\r
-} EFI_IP4_ROUTE_TABLE;\r
-\r
-typedef struct {\r
-  UINT8                   Type;\r
-  UINT8                   Code;\r
-} EFI_IP4_ICMP_TYPE;\r
-\r
-typedef struct {\r
-  BOOLEAN                 IsStarted;\r
-  EFI_IP4_CONFIG_DATA     ConfigData;\r
-  BOOLEAN                 IsConfigured;\r
-  UINT32                  GroupCount;\r
-  EFI_IPv4_ADDRESS        *GroupTable;\r
-  UINT32                  RouteCount;\r
-  EFI_IP4_ROUTE_TABLE     *RouteTable;\r
-  UINT32                  IcmpTypeCount;\r
-  EFI_IP4_ICMP_TYPE       *IcmpTypeList;\r
-} EFI_IP4_MODE_DATA;\r
-\r
-#pragma pack(1)\r
-\r
-typedef struct {\r
-  UINT8                   HeaderLength:4;\r
-  UINT8                   Version:4;\r
-  UINT8                   TypeOfService;\r
-  UINT16                  TotalLength;\r
-  UINT16                  Identification;\r
-  UINT16                  Fragmentation;\r
-  UINT8                   TimeToLive;\r
-  UINT8                   Protocol;\r
-  UINT16                  Checksum;\r
-  EFI_IPv4_ADDRESS        SourceAddress;\r
-  EFI_IPv4_ADDRESS        DestinationAddress;\r
-} EFI_IP4_HEADER;\r
-#pragma pack()\r
-\r
-\r
-typedef struct {\r
-  UINT32                  FragmentLength;\r
-  VOID                    *FragmentBuffer;\r
-} EFI_IP4_FRAGMENT_DATA;\r
-\r
-\r
-typedef struct {\r
-  EFI_TIME               TimeStamp;\r
-  EFI_EVENT              RecycleSignal;\r
-  UINT32                 HeaderLength;\r
-  EFI_IP4_HEADER         *Header;\r
-  UINT32                 OptionsLength;\r
-  VOID                   *Options;\r
-  UINT32                 DataLength;\r
-  UINT32                 FragmentCount;\r
-  EFI_IP4_FRAGMENT_DATA  FragmentTable[1];\r
-} EFI_IP4_RECEIVE_DATA;\r
-\r
-\r
-typedef struct {\r
-  EFI_IPv4_ADDRESS       SourceAddress;\r
-  EFI_IPv4_ADDRESS       GatewayAddress;\r
-  UINT8                  Protocol;\r
-  UINT8                  TypeOfService;\r
-  UINT8                  TimeToLive;\r
-  BOOLEAN                DoNotFragment;\r
-} EFI_IP4_OVERRIDE_DATA;\r
-\r
-typedef struct {\r
-  EFI_IPv4_ADDRESS       DestinationAddress;\r
-  EFI_IP4_OVERRIDE_DATA  *OverrideData;      //OPTIONAL\r
-  UINT32                 OptionsLength;      //OPTIONAL\r
-  VOID                   *OptionsBuffer;     //OPTIONAL\r
-  UINT32                 TotalDataLength;\r
-  UINT32                 FragmentCount;\r
-  EFI_IP4_FRAGMENT_DATA  FragmentTable[1];\r
-} EFI_IP4_TRANSMIT_DATA;\r
-\r
-typedef struct {\r
-  EFI_EVENT                Event;\r
-  EFI_STATUS               Status;\r
-  union {\r
-    EFI_IP4_RECEIVE_DATA   *RxData;\r
-    EFI_IP4_TRANSMIT_DATA  *TxData;\r
-  } Packet;\r
-} EFI_IP4_COMPLETION_TOKEN;\r
-\r
-/**\r
-  Gets the current operational settings for this instance of the EFI IPv4 Protocol driver.\r
-\r
-  @param  This          Pointer to the EFI_IP4_PROTOCOL instance.\r
-  @param  Ip4ModeData   Pointer to the EFI IPv4 Protocol mode data structure.\r
-  @param  MnpConfigData Pointer to the managed network configuration data structure.\r
-  @param  SnpData       Pointer to the simple network mode data structure.\r
-\r
-  @retval EFI_SUCCESS           The operation completed successfully.\r
-  @retval EFI_INVALID_PARAMETER This is NULL.\r
-  @retval EFI_OUT_OF_RESOURCES  The required mode data could not be allocated.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_IP4_GET_MODE_DATA) (\r
-  IN  EFI_IP4_PROTOCOL                *This,\r
-  OUT EFI_IP4_MODE_DATA               *Ip4ModeData     OPTIONAL,\r
-  OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData   OPTIONAL,\r
-  OUT EFI_SIMPLE_NETWORK_MODE         *SnpModeData     OPTIONAL\r
-  )\r
-;  \r
-\r
-/**\r
-  Assigns an IPv4 address and subnet mask to this EFI IPv4 Protocol driver instance.\r
-\r
-  @param  This         Pointer to the EFI_IP4_PROTOCOL instance.\r
-  @param  IpConfigData Pointer to the EFI IPv4 Protocol configuration data structure.\r
-\r
-  @retval EFI_SUCCESS           The driver instance was successfully opened.\r
-  @retval EFI_NO_MAPPING        When using the default address, configuration (DHCP, BOOTP,\r
-                                RARP, etc.) is not finished yet.\r
-  @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:\r
-  @retval EFI_UNSUPPORTED       One or more of the following conditions is TRUE:\r
-                                A configuration protocol (DHCP, BOOTP, RARP, etc.) could\r
-                                not be located when clients choose to use the default IPv4\r
-                                address. This EFI IPv4 Protocol implementation does not\r
-                                support this requested filter or timeout setting.\r
-  @retval EFI_OUT_OF_RESOURCES  The EFI IPv4 Protocol driver instance data could not be allocated.\r
-  @retval EFI_ALREADY_STARTED   The interface is already open and must be stopped before the\r
-                                IPv4 address or subnet mask can be changed. The interface must\r
-                                also be stopped when switching to/from raw packet mode.\r
-  @retval EFI_DEVICE_ERROR      An unexpected system or network error occurred. The EFI IPv4\r
-                                 Protocol driver instance is not opened.\r
-\r
-**/\r
-typedef \r
-EFI_STATUS\r
-(EFIAPI *EFI_IP4_CONFIGURE) (\r
-  IN EFI_IP4_PROTOCOL    *This,\r
-  IN EFI_IP4_CONFIG_DATA *IpConfigData     OPTIONAL\r
-  )\r
-;  \r
-\r
-/**\r
-  Joins and leaves multicast groups.\r
-\r
-  @param  This                  Pointer to the EFI_IP4_PROTOCOL instance.\r
-  @param  JoinFlag              Set to TRUE to join the multicast group session and FALSE to leave.\r
-  @param  GroupAddress          Pointer to the IPv4 multicast address.\r
-\r
-  @retval EFI_SUCCESS           The operation completed successfully.\r
-  @retval EFI_INVALID_PARAMETER One or more of the following is TRUE:\r
-                                - This is NULL.\r
-                                - JoinFlag is TRUE and GroupAddress is NULL.\r
-                                - GroupAddress is not NULL and *GroupAddress is\r
-                                not a multicast IPv4 address.\r
-  @retval EFI_NOT_STARTED       This instance has not been started.\r
-  @retval EFI_NO_MAPPING        When using the default address, configuration (DHCP, BOOTP,\r
-                                RARP, etc.) is not finished yet.\r
-  @retval EFI_OUT_OF_RESOURCES  System resources could not be allocated.\r
-  @retval EFI_UNSUPPORTED       This EFI IPv4 Protocol implementation does not support multicast groups.\r
-  @retval EFI_ALREADY_STARTED   The group address is already in the group table (when\r
-                                JoinFlag is TRUE).\r
-  @retval EFI_NOT_FOUND         The group address is not in the group table (when JoinFlag is FALSE).\r
-  @retval EFI_DEVICE_ERROR      An unexpected system or network error occurred.\r
-\r
-**/\r
-typedef \r
-EFI_STATUS\r
-(EFIAPI *EFI_IP4_GROUPS) (\r
-  IN EFI_IP4_PROTOCOL    *This,\r
-  IN BOOLEAN             JoinFlag,\r
-  IN EFI_IPv4_ADDRESS    *GroupAddress  OPTIONAL\r
-  )\r
-;    \r
-\r
-/**\r
-  Adds and deletes routing table entries.\r
-\r
-  @param  This                   Pointer to the EFI_IP4_PROTOCOL instance.\r
-  @param  DeleteRoute            Set to TRUE to delete this route from the routing table. Set to\r
-                                 FALSE to add this route to the routing table. SubnetAddress\r
-                                 and SubnetMask are used as the key to each route entry.\r
-  @param  SubnetAddress          The address of the subnet that needs to be routed.\r
-  @param  SubnetMask             The subnet mask of SubnetAddress.\r
-  @param  GatewayAddress         The unicast gateway IPv4 address for this route.\r
-\r
-  @retval EFI_SUCCESS            The operation completed successfully.\r
-  @retval EFI_NOT_STARTED        The driver instance has not been started.\r
-  @retval EFI_NO_MAPPING         When using the default address, configuration (DHCP, BOOTP,\r
-                                 RARP, etc.) is not finished yet.\r
-  @retval EFI_INVALID_PARAMETER  One or more of the following conditions is TRUE:\r
-                                 - This is NULL.\r
-                                 - SubnetAddress is NULL.\r
-                                 - SubnetMask is NULL.\r
-                                 - GatewayAddress is NULL.\r
-                                 - *SubnetAddress is not a valid subnet address.\r
-                                 - *SubnetMask is not a valid subnet mask.\r
-                                 - *GatewayAddress is not a valid unicast IPv4 address.\r
-  @retval EFI_OUT_OF_RESOURCES   Could not add the entry to the routing table.\r
-  @retval EFI_NOT_FOUND          This route is not in the routing table (when DeleteRoute is TRUE).\r
-  @retval EFI_ACCESS_DENIED      The route is already defined in the routing table (when\r
-                                  DeleteRoute is FALSE).\r
-                                 \r
-**/\r
-typedef \r
-EFI_STATUS\r
-(EFIAPI *EFI_IP4_ROUTES) (\r
-  IN EFI_IP4_PROTOCOL    *This,\r
-  IN BOOLEAN             DeleteRoute,\r
-  IN EFI_IPv4_ADDRESS    *SubnetAddress,\r
-  IN EFI_IPv4_ADDRESS    *SubnetMask,\r
-  IN EFI_IPv4_ADDRESS    *GatewayAddress  \r
-  )\r
-;  \r
-\r
-/**\r
-  Places outgoing data packets into the transmit queue.\r
-\r
-  @param  This  Pointer to the EFI_IP4_PROTOCOL instance.\r
-  @param  Token Pointer to the transmit token.\r
-\r
-  @retval  EFI_SUCCESS           The data has been queued for transmission.\r
-  @retval  EFI_NOT_STARTED       This instance has not been started.\r
-  @retval  EFI_NO_MAPPING        When using the default address, configuration (DHCP, BOOTP,\r
-                                 RARP, etc.) is not finished yet.\r
-  @retval  EFI_INVALID_PARAMETER One or more pameters are invalid.\r
-  @retval  EFI_ACCESS_DENIED     The transmit completion token with the same Token.Event\r
-                                 was already in the transmit queue.\r
-  @retval  EFI_NOT_READY         The completion token could not be queued because the transmit\r
-                                 queue is full. \r
-  @retval  EFI_NOT_FOUND         Not route is found to destination address.\r
-  @retval  EFI_OUT_OF_RESOURCES  Could not queue the transmit data.\r
-  @retval  EFI_BUFFER_TOO_SMALL  Token.Packet.TxData.TotalDataLength is too\r
-                                 short to transmit.\r
-  @retval  EFI_BAD_BUFFER_SIZE   The length of the IPv4 header + option length + total data length is\r
-                                 greater than MTU (or greater than the maximum packet size if\r
-                                 Token.Packet.TxData.OverrideData.\r
-                                 DoNotFragment is TRUE.)\r
-\r
-**/\r
-typedef \r
-EFI_STATUS\r
-(EFIAPI *EFI_IP4_TRANSMIT) (\r
-  IN EFI_IP4_PROTOCOL          *This,\r
-  IN EFI_IP4_COMPLETION_TOKEN  *Token\r
-  )\r
-;    \r
-\r
-/**\r
-  Places a receiving request into the receiving queue.\r
-\r
-  @param  This  Pointer to the EFI_IP4_PROTOCOL instance.\r
-  @param  Token Pointer to a token that is associated with the receive data descriptor.\r
-\r
-  @retval EFI_SUCCESS           The receive completion token was cached.\r
-  @retval EFI_NOT_STARTED       This EFI IPv4 Protocol instance has not been started.\r
-  @retval EFI_NO_MAPPING        When using the default address, configuration (DHCP, BOOTP, RARP, etc.)\r
-                                is not finished yet.\r
-  @retval EFI_INVALID_PARAMETER One or more of the following conditions is TRUE:\r
-                                - This is NULL.\r
-                                - Token is NULL.\r
-                                - Token.Event is NULL.\r
-  @retval EFI_OUT_OF_RESOURCES  The receive completion token could not be queued due to a lack of system\r
-                                resources (usually memory).\r
-  @retval EFI_DEVICE_ERROR      An unexpected system or network error occurred.\r
-                                The EFI IPv4 Protocol instance has been reset to startup defaults.\r
-                                EFI_ACCESS_DENIED The receive completion token with the same Token.Event was already\r
-                                in the receive queue.\r
-  @retval EFI_NOT_READY         The receive request could not be queued because the receive queue is full.\r
-  @retval EFI_ICMP_ERROR        An ICMP error packet was received.\r
-\r
-**/\r
-typedef \r
-EFI_STATUS\r
-(EFIAPI *EFI_IP4_RECEIVE) (\r
-  IN EFI_IP4_PROTOCOL          *This,\r
-  IN EFI_IP4_COMPLETION_TOKEN  *Token\r
-  )\r
-;      \r
-\r
-/**\r
-  Abort an asynchronous transmit or receive request.\r
-\r
-  @param  This  Pointer to the EFI_IP4_PROTOCOL instance.\r
-  @param  Token Pointer to a token that has been issued by\r
-                EFI_IP4_PROTOCOL.Transmit() or\r
-                EFI_IP4_PROTOCOL.Receive(). If NULL, all pending\r
-                tokens are aborted. Type EFI_IP4_COMPLETION_TOKEN is\r
-                defined in EFI_IP4_PROTOCOL.Transmit().\r
-\r
-  @retval EFI_SUCCESS           The asynchronous I/O request was aborted and\r
-                                Token.->Event was signaled. When Token is NULL, all\r
-                                pending requests were aborted and their events were signaled.\r
-  @retval EFI_INVALID_PARAMETER This is NULL.\r
-  @retval EFI_NOT_STARTED       This instance has not been started.\r
-  @retval EFI_NO_MAPPING        When using the default address, configuration (DHCP, BOOTP,\r
-                                RARP, etc.) is not finished yet.\r
-  @retval EFI_NOT_FOUND         When Token is not NULL, the asynchronous I/O request was\r
-                                not found in the transmit or receive queue. It has either completed\r
-                                or was not issued by Transmit() and Receive().\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_IP4_CANCEL) (\r
-  IN EFI_IP4_PROTOCOL          *This,\r
-  IN EFI_IP4_COMPLETION_TOKEN  *Token OPTIONAL\r
-  )\r
-;      \r
-  \r
-/**\r
-  Polls for incoming data packets and processes outgoing data packets.\r
-\r
-  @param  This Pointer to the EFI_IP4_PROTOCOL instance.\r
-\r
-  @retval  EFI_SUCCESS           Incoming or outgoing data was processed.\r
-  @retval  EFI_NOT_STARTED       This EFI IPv4 Protocol instance has not been started.\r
-  @retval  EFI_NO_MAPPING        When using the default address, configuration (DHCP, BOOTP,\r
-                                 RARP, etc.) is not finished yet.\r
-  @retval  EFI_INVALID_PARAMETER This is NULL.\r
-  @retval  EFI_DEVICE_ERROR      An unexpected system or network error occurred.\r
-  @retval  EFI_NOT_READY         No incoming or outgoing data is processed.\r
-  @retval  EFI_TIMEOUT           Data was dropped out of the transmit and/or receive queue.\r
-                                 Consider increasing the polling rate.\r
-\r
-**/\r
-typedef \r
-EFI_STATUS\r
-(EFIAPI *EFI_IP4_POLL) (\r
-  IN EFI_IP4_PROTOCOL          *This\r
-  )\r
-;  \r
-\r
-struct _EFI_IP4_PROTOCOL {\r
-  EFI_IP4_GET_MODE_DATA        GetModeData;\r
-  EFI_IP4_CONFIGURE            Configure;\r
-  EFI_IP4_GROUPS               Groups;\r
-  EFI_IP4_ROUTES               Routes;\r
-  EFI_IP4_TRANSMIT             Transmit;\r
-  EFI_IP4_RECEIVE              Receive;\r
-  EFI_IP4_CANCEL               Cancel;\r
-  EFI_IP4_POLL                 Poll;\r
-};\r
-\r
-extern EFI_GUID gEfiIp4ServiceBindingProtocolGuid;\r
-extern EFI_GUID gEfiIp4ProtocolGuid;\r
-\r
-#endif\r