+++ /dev/null
-/** @file\r
-\r
- EFI Deferred Procedure Call Protocol.\r
-\r
-Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-\r
-#ifndef __DPC_H__\r
-#define __DPC_H__\r
-\r
-//\r
-// DPC Protocol GUID value\r
-//\r
-#define EFI_DPC_PROTOCOL_GUID \\r
- { \\r
- 0x480f8ae9, 0xc46, 0x4aa9, { 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x6 } \\r
- }\r
-\r
-//\r
-// Forward reference for pure ANSI compatability\r
-//\r
-typedef struct _EFI_DPC_PROTOCOL EFI_DPC_PROTOCOL;\r
-\r
-\r
-/**\r
- Invoke a Deferred Procedure Call.\r
-\r
- @param DpcContext The pointer to the Deferred Procedure Call's context,\r
- which is implementation dependent.\r
-\r
-**/\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_DPC_PROCEDURE)(\r
- IN VOID *DpcContext\r
- );\r
-\r
-/**\r
- Add a Deferred Procedure Call to the end of the DPC queue.\r
-\r
- @param This The protocol instance pointer.\r
- @param DpcTpl The EFI_TPL that the DPC should invoke.\r
- @param DpcProcedure The pointer to the DPC's function.\r
- @param DpcContext The pointer to the DPC's context. Passed to DpcProcedure\r
- when DpcProcedure is invoked.\r
-\r
- @retval EFI_SUCCESS The DPC was queued.\r
- @retval EFI_INVALID_PARAMETER DpcTpl is not a valid EFI_TPL.\r
- @retval EFI_INVALID_PARAMETER DpcProcedure is NULL.\r
- @retval EFI_OUT_OF_RESOURCES There are not enough resources available to\r
- add the DPC to the queue.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_DPC_QUEUE_DPC)(\r
- IN EFI_DPC_PROTOCOL *This,\r
- IN EFI_TPL DpcTpl,\r
- IN EFI_DPC_PROCEDURE DpcProcedure,\r
- IN VOID *DpcContext OPTIONAL\r
- );\r
-\r
-/**\r
- Dispatch the queue of DPCs.\r
-\r
- DPCs with DpcTpl value greater than the current TPL value are queued, and then DPCs\r
- with DpcTpl value lower than the current TPL value are queued. All DPCs in the first\r
- group (higher DpcTpl values) are invoked before DPCs in the second group (lower DpcTpl values).\r
-\r
- @param This Protocol instance pointer.\r
-\r
- @retval EFI_SUCCESS One or more DPCs were invoked.\r
- @retval EFI_NOT_FOUND No DPCs were invoked.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_DPC_DISPATCH_DPC)(\r
- IN EFI_DPC_PROTOCOL *This\r
- );\r
-\r
-///\r
-/// DPC Protocol structure.\r
-///\r
-struct _EFI_DPC_PROTOCOL {\r
- EFI_DPC_QUEUE_DPC QueueDpc;\r
- EFI_DPC_DISPATCH_DPC DispatchDpc;\r
-};\r
-\r
-///\r
-/// DPC Protocol GUID variable.\r
-///\r
-extern EFI_GUID gEfiDpcProtocolGuid;\r
-\r
-#endif\r