blob: c671626f2f9aa3be8be8c7b92c70244e1dcc4844 [file] [log] [blame]
/** @file
Capsule Runtime Driver produces two UEFI capsule runtime services.
(UpdateCapsule, QueryCapsuleCapabilities)
It installs the Capsule Architectural Protocol defined in PI1.0a to signify
the capsule runtime services are ready.
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2018, Linaro, Ltd. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _CAPSULE_SERVICE_H_
#define _CAPSULE_SERVICE_H_
#include <Uefi.h>
#include <Protocol/Capsule.h>
#include <Guid/CapsuleVendor.h>
#include <Guid/FmpCapsule.h>
#include <Library/DebugLib.h>
#include <Library/PcdLib.h>
#include <Library/CapsuleLib.h>
#include <Library/UefiDriverEntryPoint.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/UefiRuntimeLib.h>
#include <Library/BaseLib.h>
#include <Library/PrintLib.h>
#include <Library/BaseMemoryLib.h>
/**
Create the variable to save the base address of page table and stack
for transferring into long mode in IA32 PEI.
**/
VOID
SaveLongModeContext (
VOID
);
/**
Whether the platform supports capsules that persist across reset. Note that
some platforms only support such capsules at boot time.
@return TRUE if a PersistAcrossReset capsule may be passed to UpdateCapsule()
at this time
FALSE otherwise
**/
BOOLEAN
IsPersistAcrossResetCapsuleSupported (
VOID
);
/**
Writes Back a range of data cache lines covering a set of capsules in memory.
Writes Back the data cache lines specified by ScatterGatherList.
@param ScatterGatherList Physical address of the data structure that
describes a set of capsules in memory
**/
VOID
CapsuleCacheWriteBack (
IN EFI_PHYSICAL_ADDRESS ScatterGatherList
);
#endif