123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- /** @file
- SMM profile header file.
- Copyright (c) 2012 - 2019, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef _SMM_PROFILE_H_
- #define _SMM_PROFILE_H_
- #include "SmmProfileInternal.h"
- //
- // External functions
- //
- /**
- Initialize processor environment for SMM profile.
- @param CpuIndex The index of the processor.
- **/
- VOID
- ActivateSmmProfile (
- IN UINTN CpuIndex
- );
- /**
- Initialize SMM profile in SMM CPU entry point.
- @param[in] Cr3 The base address of the page tables to use in SMM.
- **/
- VOID
- InitSmmProfile (
- UINT32 Cr3
- );
- /**
- Increase SMI number in each SMI entry.
- **/
- VOID
- SmmProfileRecordSmiNum (
- VOID
- );
- /**
- The Page fault handler to save SMM profile data.
- @param Rip The RIP when exception happens.
- @param ErrorCode The Error code of exception.
- **/
- VOID
- SmmProfilePFHandler (
- UINTN Rip,
- UINTN ErrorCode
- );
- /**
- Updates page table to make some memory ranges (like system memory) absent
- and make some memory ranges (like MMIO) present and execute disable. It also
- update 2MB-page to 4KB-page for some memory ranges.
- **/
- VOID
- SmmProfileStart (
- VOID
- );
- /**
- Page fault IDT handler for SMM Profile.
- **/
- VOID
- EFIAPI
- PageFaultIdtHandlerSmmProfile (
- VOID
- );
- /**
- Check if feature is supported by a processor.
- **/
- VOID
- CheckFeatureSupported (
- VOID
- );
- /**
- Update page table according to protected memory ranges and the 4KB-page mapped memory ranges.
- **/
- VOID
- InitPaging (
- VOID
- );
- /**
- Get CPU Index from APIC ID.
- **/
- UINTN
- GetCpuIndex (
- VOID
- );
- /**
- Handler for Page Fault triggered by Guard page.
- @param ErrorCode The Error code of exception.
- **/
- VOID
- GuardPagePFHandler (
- UINTN ErrorCode
- );
- //
- // The flag indicates if execute-disable is supported by processor.
- //
- extern BOOLEAN mXdSupported;
- //
- // The flag indicates if execute-disable is enabled on processor.
- //
- extern BOOLEAN mXdEnabled;
- //
- // The flag indicates if #DB will be setup in #PF handler.
- //
- extern BOOLEAN mSetupDebugTrap;
- #endif // _SMM_PROFILE_H_
|