文档库 最新最全的文档下载
当前位置:文档库 › ACPITABLE

ACPITABLE

ACPITABLE
ACPITABLE

C文件

#include

#include

#include

#include

#include

#include

#include

BOOLEAN EFIAPI GuidCmp(IN EFI_GUID Guid1, IN EFI_GUID Guid2);

INTN EFIAPI ShellAppMain (IN UINTN Argc, IN CHAR16 **Argv)

{

EFI_STATUS Status = 0;

EFI_GUID ACPITableGuid = EFI_ACPI_TABLE_GUID;

UINTN SearchCount;

UINTN TableNumber = gST->NumberOfTableEntries;

UINT8 *ACPITable = NULL;

//UINTN OutPutOffset;

for(SearchCount = 0; SearchCount < TableNumber; SearchCount++)

{

// if table guid == ACPI table Guid

if(GuidCmp(gST->ConfigurationTable[SearchCount].VendorGuid, ACPITableGuid) == TRUE) {

//get table address

ACPITable = gST->ConfigurationTable[SearchCount].VendorTable;

break;

}

}

Print(L"%x\n", ACPITable);

return Status;

}

/*

Compare two EFI_GUID

If NOT equal, return FALSE.

If equal, return TRUE.

*/

BOOLEAN EFIAPI GuidCmp(IN EFI_GUID Guid1, IN EFI_GUID Guid2)

{

BOOLEAN EqualFlg = TRUE;

if(Guid1.Data1 != Guid2.Data1||

Guid1.Data2 != Guid2.Data2||

Guid1.Data3 != Guid2.Data3||

Guid1.Data4[0] != Guid2.Data4[0]||

Guid1.Data4[1] != Guid2.Data4[1]||

Guid1.Data4[2] != Guid2.Data4[2]||

Guid1.Data4[3] != Guid2.Data4[3]||

Guid1.Data4[4] != Guid2.Data4[4]||

Guid1.Data4[5] != Guid2.Data4[5]||

Guid1.Data4[6] != Guid2.Data4[6]||

Guid1.Data4[7] != Guid2.Data4[7])

{

EqualFlg = FALSE;

}

return EqualFlg;

}

Inf文件

[Defines]

INF_VERSION = 0x00010005

BASE_NAME = ACPITable

FILE_GUID = E336FA97-CF21-442D-B206-34B7DA0D1366 MODULE_TYPE = UEFI_APPLICATION

VERSION_STRING = 0.9

ENTRY_POINT = ShellCEntryLib

[Sources]

ACPITable.c

[Packages]

MdePkg/MdePkg.dec

ShellPkg/ShellPkg.dec

MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]

ShellCEntryLib

UefiLib

BaseLib

IoLib

[Protocols]

[Guids] gEfiVirtualDiskGuid gEfiVirtualCdGuid gEfiVirtualCdGuid gEfiPersistentVirtualDiskGuid gEfiPersistentVirtualDiskGuid gEfiPersistentVirtualCdGuid

相关文档