/** @file\r
- EFI PXE Base Code CallBack Protocol\r
+ It is invoked when the PXE Base Code Protocol is about to transmit, has received, \r
+ or is waiting to receive a packet.\r
\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
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under \r
+the terms and conditions of the BSD License that accompanies this distribution. \r
+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
- 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: PxeBaseCodeCallBack.h\r
+ @par Revision Reference: \r
+ This Protocol is introduced in EFI Specification 1.10\r
\r
**/\r
\r
#ifndef _PXE_BASE_CODE_CALLBACK_H_\r
#define _PXE_BASE_CODE_CALLBACK_H_\r
\r
-//\r
-// Call Back Definitions\r
-//\r
+///\r
+/// Call Back Definitions.\r
+///\r
#define EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL_GUID \\r
{ \\r
0x245dca21, 0xfb7b, 0x11d3, {0x8f, 0x01, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \\r
}\r
\r
-//\r
-// Revision Number\r
-//\r
-#define EFI_PXE_BASE_CODE_CALLBACK_INTERFACE_REVISION 0x00010000\r
-#define EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL_REVISION \\r
- EFI_PXE_BASE_CODE_CALLBACK_INTERFACE_REVISION\r
+///\r
+/// UEFI Revision Number Definition.\r
+///\r
+#define EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL_REVISION 0x00010000\r
+\r
+///\r
+/// EFI 1.1 Revision Number defintion.\r
+///\r
+#define EFI_PXE_BASE_CODE_CALLBACK_INTERFACE_REVISION \\r
+ EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL_REVISION\r
\r
-//\r
-// Protocol definition\r
-//\r
+///\r
+/// UEFI Protocol name.\r
+///\r
typedef struct _EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL;\r
\r
+///\r
+/// EFI1.1 Protocol name.\r
+/// \r
+typedef EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL EFI_PXE_BASE_CODE_CALLBACK;\r
+\r
+///\r
+/// Event type list for PXE Base Code Protocol function.\r
+///\r
typedef enum {\r
EFI_PXE_BASE_CODE_FUNCTION_FIRST,\r
EFI_PXE_BASE_CODE_FUNCTION_DHCP,\r
EFI_PXE_BASE_CODE_PXE_FUNCTION_LAST\r
} EFI_PXE_BASE_CODE_FUNCTION;\r
\r
+///\r
+/// Callback status type.\r
+///\r
typedef enum {\r
EFI_PXE_BASE_CODE_CALLBACK_STATUS_FIRST,\r
EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE,\r
Callback function that is invoked when the PXE Base Code Protocol is about to transmit, has\r
received, or is waiting to receive a packet. \r
\r
- @param This Pointer to the EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL instance.\r
+ This function is invoked when the PXE Base Code Protocol is about to transmit, has received,\r
+ or is waiting to receive a packet. Parameters Function and Received specify the type of event.\r
+ Parameters PacketLen and Packet specify the packet that generated the event. If these fields\r
+ are zero and NULL respectively, then this is a status update callback. If the operation specified\r
+ by Function is to continue, then CALLBACK_STATUS_CONTINUE should be returned. If the operation\r
+ specified by Function should be aborted, then CALLBACK_STATUS_ABORT should be returned. Due to\r
+ the polling nature of UEFI device drivers, a callback function should not execute for more than 5 ms.\r
+ The SetParameters() function must be called after a Callback Protocol is installed to enable the\r
+ use of callbacks.\r
+ \r
+ @param This The pointer to the EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL instance.\r
@param Function The PXE Base Code Protocol function that is waiting for an event. \r
@param Received TRUE if the callback is being invoked due to a receive event. FALSE if\r
the callback is being invoked due to a transmit event. \r
IN EFI_PXE_BASE_CODE_PACKET *Packet OPTIONAL\r
);\r
\r
+///\r
+/// Protocol that is invoked when the PXE Base Code Protocol is about \r
+/// to transmit, has received, or is waiting to receive a packet.\r
+///\r
struct _EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL {\r
+ ///\r
+ /// The revision of the EFI_PXE_BASE_CODE_PROTOCOL. All future revisions must \r
+ /// be backwards compatible. If a future version is not backwards compatible \r
+ /// it is not the same GUID.\r
+ ///\r
UINT64 Revision;\r
EFI_PXE_CALLBACK Callback;\r
};\r