12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /** @file
- Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- Module Name:
- Dpc.h
- Abstract:
- **/
- #ifndef _DPC_H_
- #define _DPC_H_
- #include <Uefi.h>
- #include <Library/BaseLib.h>
- #include <Library/DebugLib.h>
- #include <Library/UefiDriverEntryPoint.h>
- #include <Library/UefiBootServicesTableLib.h>
- #include <Library/MemoryAllocationLib.h>
- #include <Protocol/Dpc.h>
- //
- // Internal data structure for managing DPCs. A DPC entry is either on the free
- // list or on a DPC queue at a specific EFI_TPL.
- //
- typedef struct {
- LIST_ENTRY ListEntry;
- EFI_DPC_PROCEDURE DpcProcedure;
- VOID *DpcContext;
- } DPC_ENTRY;
- /**
- Add a Deferred Procedure Call to the end of the DPC queue.
- @param This Protocol instance pointer.
- @param DpcTpl The EFI_TPL that the DPC should be invoked.
- @param DpcProcedure Pointer to the DPC's function.
- @param DpcContext Pointer to the DPC's context. Passed to DpcProcedure
- when DpcProcedure is invoked.
- @retval EFI_SUCCESS The DPC was queued.
- @retval EFI_INVALID_PARAMETER DpcTpl is not a valid EFI_TPL.
- @retval EFI_INVALID_PARAMETER DpcProcedure is NULL.
- @retval EFI_OUT_OF_RESOURCES There are not enough resources available to
- add the DPC to the queue.
- **/
- EFI_STATUS
- EFIAPI
- DpcQueueDpc (
- IN EFI_DPC_PROTOCOL *This,
- IN EFI_TPL DpcTpl,
- IN EFI_DPC_PROCEDURE DpcProcedure,
- IN VOID *DpcContext OPTIONAL
- );
- /**
- Dispatch the queue of DPCs. ALL DPCs that have been queued with a DpcTpl
- value greater than or equal to the current TPL are invoked in the order that
- they were queued. DPCs with higher DpcTpl values are invoked before DPCs with
- lower DpcTpl values.
- @param This Protocol instance pointer.
- @retval EFI_SUCCESS One or more DPCs were invoked.
- @retval EFI_NOT_FOUND No DPCs were invoked.
- **/
- EFI_STATUS
- EFIAPI
- DpcDispatchDpc (
- IN EFI_DPC_PROTOCOL *This
- );
- #endif
|