]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/Ip6.h
Add some comments.
[mirror_edk2.git] / MdePkg / Include / Protocol / Ip6.h
index 0857fca1112272a43abdee9395949afc2372de89..590c9818013c98ac723242cbf485d7d73f4611e6 100644 (file)
@@ -1,5 +1,4 @@
 /** @file\r
-  \r
   This file defines the EFI IPv6 (Internet Protocol version 6)\r
   Protocol interface. It is split into the following three main\r
   sections:\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
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.    \r
+\r
+  @par Revision Reference:          \r
+  This Protocol is introduced in UEFI Specification 2.2       \r
 \r
 **/\r
 \r
 \r
 typedef struct _EFI_IP6_PROTOCOL EFI_IP6_PROTOCOL;\r
 \r
+///\r
+/// EFI_IP6_ADDRESS_PAIR \r
+/// which is not defined in the UEFI 2.3 Specification.\r
+///\r
+typedef struct{ \r
+  ///\r
+  /// The EFI IPv6 Protocol instance handle that is using this address/prefix pair.\r
+  ///\r
+  EFI_HANDLE          InstanceHandle;\r
+  ///\r
+  /// IPv6 address in network byte order.\r
+  ///\r
+  EFI_IPv6_ADDRESS    Ip6Address;\r
+  ///\r
+  /// The length of the prefix associated with the Ip6Address.\r
+  ///\r
+  UINT8               PrefixLength;\r
+} EFI_IP6_ADDRESS_PAIR; \r
+\r
+///\r
+/// EFI_IP6_VARIABLE_DATA\r
+/// which is not defined in the UEFI 2.3 Specification.\r
+///\r
+typedef struct {\r
+  ///\r
+  /// The handle of the driver that creates this entry.\r
+  ///\r
+  EFI_HANDLE              DriverHandle;\r
+  ///\r
+  /// The number of IPv6 address pairs that follow this data structure.\r
+  ///\r
+  UINT32                  AddressCount;\r
+  ///\r
+  /// List of IPv6 address pairs that are currently in use.\r
+  ///\r
+  EFI_IP6_ADDRESS_PAIR    AddressPairs[1];\r
+} EFI_IP6_VARIABLE_DATA;\r
+\r
 ///\r
 /// ICMPv6 type definitions for error messages\r
 ///\r
@@ -371,7 +411,7 @@ typedef struct _EFI_IP6_HEADER {
   EFI_IPv6_ADDRESS        SourceAddress;\r
   EFI_IPv6_ADDRESS        DestinationAddress;\r
 } EFI_IP6_HEADER;\r
-#pragma pack\r
+#pragma pack()\r
 \r
 ///\r
 /// EFI_IP6_FRAGMENT_DATA\r
@@ -531,7 +571,7 @@ typedef struct {
 **/\r
 typedef \r
 EFI_STATUS\r
-(EFIAPI *EFI_IP6_GET_MODE_DATA) (\r
+(EFIAPI *EFI_IP6_GET_MODE_DATA)(\r
   IN EFI_IP6_PROTOCOL                 *This,\r
   OUT EFI_IP6_MODE_DATA               *Ip6ModeData     OPTIONAL,\r
   OUT EFI_MANAGED_NETWORK_CONFIG_DATA *MnpConfigData   OPTIONAL,\r
@@ -586,7 +626,7 @@ EFI_STATUS
 **/\r
 typedef \r
 EFI_STATUS\r
-(EFIAPI *EFI_IP6_CONFIGURE) (\r
+(EFIAPI *EFI_IP6_CONFIGURE)(\r
   IN EFI_IP6_PROTOCOL            *This,\r
   IN EFI_IP6_CONFIG_DATA         *Ip6ConfigData OPTIONAL\r
   );\r
@@ -623,7 +663,7 @@ EFI_STATUS
 **/\r
 typedef \r
 EFI_STATUS\r
-(EFIAPI *EFI_IP6_GROUPS) (\r
+(EFIAPI *EFI_IP6_GROUPS)(\r
   IN EFI_IP6_PROTOCOL            *This,\r
   IN BOOLEAN                     JoinFlag,\r
   IN EFI_IPv6_ADDRESS            *GroupAddress  OPTIONAL\r
@@ -672,10 +712,10 @@ EFI_STATUS
 **/\r
 typedef \r
 EFI_STATUS\r
-(EFIAPI *EFI_IP6_ROUTES) (\r
+(EFIAPI *EFI_IP6_ROUTES)(\r
   IN EFI_IP6_PROTOCOL            *This,\r
   IN BOOLEAN                     DeleteRoute,\r
-  IN EFI_IPv6_ADDRESS            *Destination, OPTIONAL\r
+  IN EFI_IPv6_ADDRESS            *Destination OPTIONAL,\r
   IN UINT8                       PrefixLength,\r
   IN EFI_IPv6_ADDRESS            *GatewayAddress OPTIONAL \r
   );\r
@@ -728,7 +768,7 @@ EFI_STATUS
 **/\r
 typedef \r
 EFI_STATUS\r
-(EFIAPI *EFI_IP6_NEIGHBORS) (\r
+(EFIAPI *EFI_IP6_NEIGHBORS)(\r
   IN EFI_IP6_PROTOCOL            *This,\r
   IN BOOLEAN                     DeleteFlag,\r
   IN EFI_IPv6_ADDRESS            *TargetIp6Address,\r
@@ -781,7 +821,7 @@ EFI_STATUS
 **/\r
 typedef \r
 EFI_STATUS\r
-(EFIAPI *EFI_IP6_TRANSMIT) (\r
+(EFIAPI *EFI_IP6_TRANSMIT)(\r
   IN EFI_IP6_PROTOCOL            *This,\r
   IN EFI_IP6_COMPLETION_TOKEN    *Token\r
   );\r
@@ -819,7 +859,7 @@ EFI_STATUS
 **/                              \r
 typedef                          \r
 EFI_STATUS                       \r
-(EFIAPI *EFI_IP6_RECEIVE) (      \r
+(EFIAPI *EFI_IP6_RECEIVE)(      \r
   IN EFI_IP6_PROTOCOL            *This,\r
   IN EFI_IP6_COMPLETION_TOKEN    *Token\r
   );\r
@@ -886,7 +926,7 @@ EFI_STATUS
 **/\r
 typedef \r
 EFI_STATUS\r
-(EFIAPI *EFI_IP6_POLL) (\r
+(EFIAPI *EFI_IP6_POLL)(\r
   IN EFI_IP6_PROTOCOL            *This\r
   );\r
 \r
@@ -894,7 +934,7 @@ EFI_STATUS
 /// The EFI IPv6 Protocol implements a simple packet-oriented interface that can be\r
 /// used by drivers, daemons, and applications to transmit and receive network packets.\r
 ///\r
-typedef struct _EFI_IP6_PROTOCOL {\r
+struct _EFI_IP6_PROTOCOL {\r
   EFI_IP6_GET_MODE_DATA   GetModeData;\r
   EFI_IP6_CONFIGURE       Configure;\r
   EFI_IP6_GROUPS          Groups;\r
@@ -904,7 +944,7 @@ typedef struct _EFI_IP6_PROTOCOL {
   EFI_IP6_RECEIVE         Receive;\r
   EFI_IP6_CANCEL          Cancel;\r
   EFI_IP6_POLL            Poll;\r
-} EFI_IP6_PROTOCOL;\r
+};\r
 \r
 extern EFI_GUID gEfiIp6ServiceBindingProtocolGuid;\r
 extern EFI_GUID gEfiIp6ProtocolGuid;\r