MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RegisterFilterLib.h File Reference

Enumerations

enum  FILTER_IO_WIDTH { FilterWidth8, FilterWidth16, FilterWidth32, FilterWidth64 }
 

Functions

BOOLEAN EFIAPI FilterBeforeIoRead (IN FILTER_IO_WIDTH Width, IN UINTN Address, IN OUT VOID *Buffer)
 
VOID EFIAPI FilterAfterIoRead (IN FILTER_IO_WIDTH Width, IN UINTN Address, IN VOID *Buffer)
 
BOOLEAN EFIAPI FilterBeforeIoWrite (IN FILTER_IO_WIDTH Width, IN UINTN Address, IN VOID *Buffer)
 
VOID EFIAPI FilterAfterIoWrite (IN FILTER_IO_WIDTH Width, IN UINTN Address, IN VOID *Buffer)
 
BOOLEAN EFIAPI FilterBeforeMmIoRead (IN FILTER_IO_WIDTH Width, IN UINTN Address, IN OUT VOID *Buffer)
 
VOID EFIAPI FilterAfterMmIoRead (IN FILTER_IO_WIDTH Width, IN UINTN Address, IN VOID *Buffer)
 
BOOLEAN EFIAPI FilterBeforeMmIoWrite (IN FILTER_IO_WIDTH Width, IN UINTN Address, IN VOID *Buffer)
 
VOID EFIAPI FilterAfterMmIoWrite (IN FILTER_IO_WIDTH Width, IN UINTN Address, IN VOID *Buffer)
 
BOOLEAN EFIAPI FilterBeforeMsrRead (IN UINT32 Index, IN OUT UINT64 *Value)
 
VOID EFIAPI FilterAfterMsrRead (IN UINT32 Index, IN UINT64 *Value)
 
BOOLEAN EFIAPI FilterBeforeMsrWrite (IN UINT32 Index, IN UINT64 *Value)
 
VOID EFIAPI FilterAfterMsrWrite (IN UINT32 Index, IN UINT64 *Value)
 

Detailed Description

Public include file for the Port IO/MMIO/MSR RegisterFilterLib.

Copyright (c) 2021, Intel Corporation. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Enumeration Type Documentation

Enumerator
FilterWidth8 
FilterWidth16 
FilterWidth32 
FilterWidth64 

Function Documentation

VOID EFIAPI FilterAfterIoRead ( IN FILTER_IO_WIDTH  Width,
IN UINTN  Address,
IN VOID Buffer 
)

Trace IO read operation after read IO port. It is used to trace IO operation.

Parameters
[in]WidthSignifies the width of the I/O operation.
[in]AddressThe base address of the I/O operation.
[in]BufferThe destination buffer to store the results.
VOID EFIAPI FilterAfterIoWrite ( IN FILTER_IO_WIDTH  Width,
IN UINTN  Address,
IN VOID Buffer 
)

Trace IO Write operation after wirte IO port. It is used to trace IO operation.

Parameters
[in]WidthSignifies the width of the I/O operation.
[in]AddressThe base address of the I/O operation.
[in]BufferThe source buffer from which to BeforeWrite data.
VOID EFIAPI FilterAfterMmIoRead ( IN FILTER_IO_WIDTH  Width,
IN UINTN  Address,
IN VOID Buffer 
)

Tracer memory IO after read operation

Parameters
[in]WidthSignifies the width of the memory I/O operation.
[in]AddressThe base address of the memory I/O operation.
[in]BufferThe destination buffer to store the results.
VOID EFIAPI FilterAfterMmIoWrite ( IN FILTER_IO_WIDTH  Width,
IN UINTN  Address,
IN VOID Buffer 
)

Tracer memory IO after write operation

Parameters
[in]WidthSignifies the width of the memory I/O operation.
[in]AddressThe base address of the memory I/O operation.
[in]BufferThe source buffer from which to BeforeWrite data.
VOID EFIAPI FilterAfterMsrRead ( IN UINT32  Index,
IN UINT64 Value 
)

Trace MSR after read operation

Parameters
IndexThe 8-bit Machine Specific Register index to BeforeWrite.
ValueThe 64-bit value to BeforeRead from the Machine Specific Register.
VOID EFIAPI FilterAfterMsrWrite ( IN UINT32  Index,
IN UINT64 Value 
)

Trace MSR after write operation

Parameters
IndexThe 8-bit Machine Specific Register index to BeforeWrite.
ValueThe 64-bit value to BeforeWrite to the Machine Specific Register.
BOOLEAN EFIAPI FilterBeforeIoRead ( IN FILTER_IO_WIDTH  Width,
IN UINTN  Address,
IN OUT VOID Buffer 
)

Filter IO read operation before read IO port. It is used to filter IO read operation.

It will return the flag to decide whether require read real IO port. It can be used for emulation environment.

Parameters
[in]WidthSignifies the width of the I/O operation.
[in]AddressThe base address of the I/O operation.
[in]BufferThe destination buffer to store the results.
Return values
TRUENeed to excute the IO read.
FALSESkip the IO read.
BOOLEAN EFIAPI FilterBeforeIoWrite ( IN FILTER_IO_WIDTH  Width,
IN UINTN  Address,
IN VOID Buffer 
)

Filter IO Write operation before wirte IO port. It is used to filter IO operation.

It will return the flag to decide whether require read write IO port. It can be used for emulation environment.

Parameters
[in]WidthSignifies the width of the I/O operation.
[in]AddressThe base address of the I/O operation.
[in]BufferThe source buffer from which to BeforeWrite data.
Return values
TRUENeed to excute the IO write.
FALSESkip the IO write.
BOOLEAN EFIAPI FilterBeforeMmIoRead ( IN FILTER_IO_WIDTH  Width,
IN UINTN  Address,
IN OUT VOID Buffer 
)

Filter memory IO before Read operation.

It will return the flag to decide whether require read real MMIO. It can be used for emulation environment.

Parameters
[in]WidthSignifies the width of the memory I/O operation.
[in]AddressThe base address of the memory I/O operation.
[in]BufferThe destination buffer to store the results.
Return values
TRUENeed to excute the MMIO read.
FALSESkip the MMIO read.
BOOLEAN EFIAPI FilterBeforeMmIoWrite ( IN FILTER_IO_WIDTH  Width,
IN UINTN  Address,
IN VOID Buffer 
)

Filter memory IO before write operation

It will return the flag to decide whether require wirte real MMIO. It can be used for emulation environment.

Parameters
[in]WidthSignifies the width of the memory I/O operation.
[in]AddressThe base address of the memory I/O operation.
[in]BufferThe source buffer from which to BeforeWrite data.
Return values
TRUENeed to excute the MMIO write.
FALSESkip the MMIO write.
BOOLEAN EFIAPI FilterBeforeMsrRead ( IN UINT32  Index,
IN OUT UINT64 Value 
)

Filter MSR before read operation.

It will return the flag to decide whether require read real MSR. It can be used for emulation environment.

Parameters
IndexThe 8-bit Machine Specific Register index to BeforeWrite.
ValueThe 64-bit value to BeforeRead from the Machine Specific Register.
Return values
TRUENeed to excute the MSR read.
FALSESkip the MSR read.
BOOLEAN EFIAPI FilterBeforeMsrWrite ( IN UINT32  Index,
IN UINT64 Value 
)

Filter MSR before write operation

It will return the flag to decide whether require write real MSR. It can be used for emulation environment.

Parameters
IndexThe 8-bit Machine Specific Register index to BeforeWrite.
ValueThe 64-bit value to BeforeWrite to the Machine Specific Register.
Return values
TRUENeed to excute the MSR write.
FALSESkip the MSR write.