/** @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 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\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
EFI_PXE_BASE_CODE_CALLBACK_STATUS_LAST\r
} EFI_PXE_BASE_CODE_CALLBACK_STATUS;\r
\r
-/** \r
+/**\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
- @param Function The PXE Base Code Protocol function that is waiting for an event. \r
+ received, or is waiting to receive a packet.\r
+\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
+ the callback is being invoked due to a transmit event.\r
@param PacketLen The length, in bytes, of Packet. This field will have a value of zero if\r
- this is a wait for receive event. \r
+ this is a wait for receive event.\r
@param Packet If Received is TRUE, a pointer to the packet that was just received;\r
- otherwise a pointer to the packet that is about to be transmitted. \r
- \r
- @retval EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE if Function specifies a continue operation \r
+ otherwise a pointer to the packet that is about to be transmitted.\r
+\r
+ @retval EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE if Function specifies a continue operation\r
@retval EFI_PXE_BASE_CODE_CALLBACK_STATUS_ABORT if Function specifies an abort operation\r
- \r
+\r
**/\r
-typedef \r
-EFI_PXE_BASE_CODE_CALLBACK_STATUS \r
+typedef\r
+EFI_PXE_BASE_CODE_CALLBACK_STATUS\r
(EFIAPI *EFI_PXE_CALLBACK)(\r
IN EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL *This,\r
IN EFI_PXE_BASE_CODE_FUNCTION Function,\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
\r
extern EFI_GUID gEfiPxeBaseCodeCallbackProtocolGuid;\r
\r
-#endif \r
+#endif\r
\r