CloverBootloader/Protocols/DumpUefiCalls/DumpUefiCalls.inf
2019-09-03 12:58:42 +03:00

140 lines
4.0 KiB
INI

## @file
#
# Driver for dumping boot loader UEFI calls.
#
# By dmazar, 26/09/2012
#
# Feel free to use it, debug it, extend it, but please report back changes/additions to
# http://www.projectosx.com/
#
# How to use:
#
# Users of Clover boot manager can just place the driver to appropriate drivers folder
# (for example /EFI/CLOVER/drivers64). Other users will probably know how to load it.
#
# How it works:
#
# Driver overrides gBS->StartImage() in order to be able to detect boot loader starting (DumpUefiCalls.c).
#
# When boot loader is about te be started, driver overrides all boot (gBS) and runtime (gRT) services
# with small wrappers that will call original plartform services and log each call (BootServices.c, RuntimeServices.c).
#
# When ExitBootServices() is called driver will also print UEFI system table (with configuration tables)
# and UEFI variables (RT vars).
#
# Logging is done through PRINT definition (Common.h) which gets replaced by LogPrint() (Log.c).
# Logs can be directed to screen, serial and disk file (LOG_TO_SCREEN, LOG_TO_SERIAL, LOG_TO_FILE in Common.h).
#
# Logs to serial are interesting when used in VBox (VMWare?, QEmu?) because driver can continue to dump UEFI
# calls even during runtime phase, after ExitBootServices() and when OS is running.
# This requires WORK_DURING_RUNTIME to be enabled in Common.h. That is also a reason why is driver made as runtime driver.
#
# Logs to screen and file work only up to ExitBootServices() because they depend on boot services to be running.
#
# PRINT_SHELL_VARS in Common.h is set to 0 to avoid dumping of uninteresting shell vars data. Can be set to 1.
#
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = DumpUefiCalls
FILE_GUID = B7F22AE1-9D87-4CD6-8EB1-171573908835
# MODULE_TYPE = UEFI_DRIVER
MODULE_TYPE = DXE_RUNTIME_DRIVER
VERSION_STRING = 1.0
ENTRY_POINT = DumpUefiCallsEntrypoint
#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = X64|IA32
#
[Packages]
MdePkg/MdePkg.dec
IntelFrameworkPkg/IntelFrameworkPkg.dec
Clover/CloverPkg.dec
[LibraryClasses]
UefiLib
UefiBootServicesTableLib
UefiRuntimeServicesTableLib
BaseMemoryLib
MemoryAllocationLib
UefiDriverEntryPoint
BaseLib
DevicePathLib
DebugLib
[Sources]
DumpUefiCalls.c
Lib.h
Lib.c
BootServices.h
BootServices.c
RuntimeServices.h
RuntimeServices.c
Log.h
Log.c
MemLog.h
MemLog.c
FileLib.h
FileLib.c
DataHub.h
DataHub.c
Fs.h
Fs.c
AppleProtocols.c
AppleProtocols.h
Common.h
[Guids]
gEfiFileInfoGuid
gEfiFileSystemInfoGuid
gEfiFileSystemVolumeLabelInfoIdGuid
gEfiEventVirtualAddressChangeGuid
gEfiAcpi10TableGuid
gEfiAcpi20TableGuid
gEfiDebugImageInfoTableGuid
gEfiDxeServicesTableGuid
gEfiHobListGuid
gEfiMpsTableGuid
gEfiSmbiosTableGuid
gEfiSmbios3TableGuid
gEfiPartTypeSystemPartGuid
[Protocols]
gEfiLoadedImageProtocolGuid
gEfiDevicePathProtocolGuid
gEfiSimpleFileSystemProtocolGuid
gEfiBlockIoProtocolGuid
gEfiBlockIo2ProtocolGuid
gEfiDiskIoProtocolGuid
gEfiDiskIo2ProtocolGuid
gEfiGraphicsOutputProtocolGuid
gEfiDataHubProtocolGuid
gEfiFirmwareVolumeProtocolGuid
gAppleSMCProtocolGuid
gAppleImageCodecProtocolGuid
gAppleKeyStateProtocolGuid
gEfiOSInfoProtocolGuid
gAppleGraphConfigProtocolGuid
gEfiKeyboardInfoProtocolGuid
gAppleKeyMapDatabaseProtocolGuid
gEfiSimplePointerProtocolGuid
[Depex]
TRUE
[BuildOptions]
# MSFT:*_*_*_ASM_FLAGS = /Fl
INTEL:DEBUG_*_*_CC_FLAGS =
INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG
GCC:DEBUG_*_*_CC_FLAGS =
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
MSFT:DEBUG_*_*_CC_FLAGS =
MSFT:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG
XCODE:DEBUG_*_*_CC_FLAGS =
XCODE:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG