/** @file
|
Null instance of RegisterFilterLib.
|
|
Copyright (c) 2021 Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
**/
|
|
#include <Library/RegisterFilterLib.h>
|
|
/**
|
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.
|
|
@param[in] Width Signifies the width of the I/O operation.
|
@param[in] Address The base address of the I/O operation.
|
@param[in,out] Buffer The destination buffer to store the results.
|
|
@retval TRUE Need to excute the IO read.
|
@retval FALSE Skip the IO read.
|
|
**/
|
BOOLEAN
|
EFIAPI
|
FilterBeforeIoRead (
|
IN FILTER_IO_WIDTH Width,
|
IN UINTN Address,
|
IN OUT VOID *Buffer
|
)
|
{
|
return TRUE;
|
}
|
|
/**
|
Trace IO read operation after read IO port.
|
It is used to trace IO operation.
|
|
@param[in] Width Signifies the width of the I/O operation.
|
@param[in] Address The base address of the I/O operation.
|
@param[in] Buffer The destination buffer to store the results.
|
|
**/
|
VOID
|
EFIAPI
|
FilterAfterIoRead (
|
IN FILTER_IO_WIDTH Width,
|
IN UINTN Address,
|
IN VOID *Buffer
|
)
|
{
|
return;
|
}
|
|
/**
|
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.
|
|
@param[in] Width Signifies the width of the I/O operation.
|
@param[in] Address The base address of the I/O operation.
|
@param[in] Buffer The source buffer from which to write data.
|
|
@retval TRUE Need to excute the IO write.
|
@retval FALSE Skip the IO write.
|
|
**/
|
BOOLEAN
|
EFIAPI
|
FilterBeforeIoWrite (
|
IN FILTER_IO_WIDTH Width,
|
IN UINTN Address,
|
IN VOID *Buffer
|
)
|
{
|
return TRUE;
|
}
|
|
/**
|
Trace IO Write operation after wirte IO port.
|
It is used to trace IO operation.
|
|
@param[in] Width Signifies the width of the I/O operation.
|
@param[in] Address The base address of the I/O operation.
|
@param[in] Buffer The source buffer from which to Write data.
|
|
**/
|
VOID
|
EFIAPI
|
FilterAfterIoWrite (
|
IN FILTER_IO_WIDTH Width,
|
IN UINTN Address,
|
IN VOID *Buffer
|
)
|
{
|
return;
|
}
|
|
/**
|
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.
|
|
@param[in] Width Signifies the width of the memory I/O operation.
|
@param[in] Address The base address of the memory I/O operation.
|
@param[in,out] Buffer The destination buffer to store the results.
|
|
@retval TRUE Need to excute the MMIO read.
|
@retval FALSE Skip the MMIO read.
|
|
**/
|
BOOLEAN
|
EFIAPI
|
FilterBeforeMmIoRead (
|
IN FILTER_IO_WIDTH Width,
|
IN UINTN Address,
|
IN OUT VOID *Buffer
|
)
|
{
|
return TRUE;
|
}
|
|
/**
|
Tracer memory IO after read operation.
|
|
@param[in] Width Signifies the width of the memory I/O operation.
|
@param[in] Address The base address of the memory I/O operation.
|
@param[in] Buffer The destination buffer to store the results.
|
|
**/
|
VOID
|
EFIAPI
|
FilterAfterMmIoRead (
|
IN FILTER_IO_WIDTH Width,
|
IN UINTN Address,
|
IN VOID *Buffer
|
)
|
{
|
return;
|
}
|
|
/**
|
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.
|
|
@param[in] Width Signifies the width of the memory I/O operation.
|
@param[in] Address The base address of the memory I/O operation.
|
@param[in] Buffer The source buffer from which to write data.
|
|
@retval TRUE Need to excute the MMIO write.
|
@retval FALSE Skip the MMIO write.
|
|
**/
|
BOOLEAN
|
EFIAPI
|
FilterBeforeMmIoWrite (
|
IN FILTER_IO_WIDTH Width,
|
IN UINTN Address,
|
IN VOID *Buffer
|
)
|
{
|
return TRUE;
|
}
|
|
/**
|
Tracer memory IO after write operation.
|
|
@param[in] Width Signifies the width of the memory I/O operation.
|
@param[in] Address The base address of the memory I/O operation.
|
@param[in] Buffer The source buffer from which to write data.
|
|
**/
|
VOID
|
EFIAPI
|
FilterAfterMmIoWrite (
|
IN FILTER_IO_WIDTH Width,
|
IN UINTN Address,
|
IN VOID *Buffer
|
)
|
{
|
return;
|
}
|
|
/**
|
Filter MSR before read operation.
|
|
It will return the flag to decide whether require read real MSR.
|
It can be used for emulation environment.
|
|
@param Index The Register index of the MSR.
|
@param Value Point to the data will be read from the MSR.
|
|
@retval TRUE Need to excute the MSR read.
|
@retval FALSE Skip the MSR read.
|
|
**/
|
BOOLEAN
|
EFIAPI
|
FilterBeforeMsrRead (
|
IN UINT32 Index,
|
IN OUT UINT64 *Value
|
)
|
{
|
return TRUE;
|
}
|
|
/**
|
Trace MSR after read operation.
|
|
@param Index The Register index of the MSR.
|
@param Value Point to the data has been be read from the MSR.
|
|
**/
|
VOID
|
EFIAPI
|
FilterAfterMsrRead (
|
IN UINT32 Index,
|
IN UINT64 *Value
|
)
|
{
|
return;
|
}
|
|
/**
|
Filter MSR before write operation.
|
|
It will return the flag to decide whether require write real MSR.
|
It can be used for emulation environment.
|
|
@param Index The Register index of the MSR.
|
@param Value Point to the data want to be written to the MSR.
|
|
@retval TRUE Need to excute the MSR write.
|
@retval FALSE Skip the MSR write.
|
|
**/
|
BOOLEAN
|
EFIAPI
|
FilterBeforeMsrWrite (
|
IN UINT32 Index,
|
IN UINT64 *Value
|
)
|
{
|
return TRUE;
|
}
|
|
/**
|
Trace MSR after write operation.
|
|
@param Index The Register index of the MSR.
|
@param Value Point to the data has been be written to the MSR.
|
|
**/
|
VOID
|
EFIAPI
|
FilterAfterMsrWrite (
|
IN UINT32 Index,
|
IN UINT64 *Value
|
)
|
{
|
return;
|
}
|
|