]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Include/Library/DpcLib.h
MdeModulePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdeModulePkg / Include / Library / DpcLib.h
CommitLineData
36ee91ca 1/** @file\r
64a80549 2 DpcLib.h.\r
d1102dba
LG
3\r
4Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>\r
9d510e61 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
36ee91ca 6\r
36ee91ca 7**/\r
8\r
9#ifndef _DPC_LIB_H_\r
10#define _DPC_LIB_H_\r
11\r
36ee91ca 12#include <Protocol/Dpc.h>\r
13\r
14/**\r
15 Add a Deferred Procedure Call to the end of the DPC queue.\r
16\r
e9b67286 17 @param[in] DpcTpl The EFI_TPL that the DPC should invoke.\r
64a80549 18 @param[in] DpcProcedure The pointer to the DPC's function.\r
19 @param[in] DpcContext The pointer to the DPC's context. Passed to DpcProcedure\r
3a1ab4bc 20 when DpcProcedure is invoked.\r
36ee91ca 21\r
22 @retval EFI_SUCCESS The DPC was queued.\r
23 @retval EFI_INVALID_PARAMETER DpcTpl is not a valid EFI_TPL.\r
24 @retval EFI_INVALID_PARAMETER DpcProcedure is NULL.\r
25 @retval EFI_OUT_OF_RESOURCES There are not enough resources available to\r
26 add the DPC to the queue.\r
27\r
28**/\r
29EFI_STATUS\r
7b414b4e 30EFIAPI\r
36ee91ca 31QueueDpc (\r
32 IN EFI_TPL DpcTpl,\r
33 IN EFI_DPC_PROCEDURE DpcProcedure,\r
34 IN VOID *DpcContext OPTIONAL\r
35 );\r
36\r
37/**\r
e9b67286 38 Dispatch the queue of DPCs. All DPCs that have been queued with a DpcTpl\r
36ee91ca 39 value greater than or equal to the current TPL are invoked in the order that\r
40 they were queued. DPCs with higher DpcTpl values are invoked before DPCs with\r
41 lower DpcTpl values.\r
42\r
43 @retval EFI_SUCCESS One or more DPCs were invoked.\r
44 @retval EFI_NOT_FOUND No DPCs were invoked.\r
45\r
46**/\r
47EFI_STATUS\r
7b414b4e 48EFIAPI\r
36ee91ca 49DispatchDpc (\r
50 VOID\r
51 );\r
52\r
53#endif\r