diff options
Diffstat (limited to 'Lesson_27/UefiLessonsPkg')
-rw-r--r-- | Lesson_27/UefiLessonsPkg/SmbiosInfo/SmbiosInfo.c | 88 | ||||
-rw-r--r-- | Lesson_27/UefiLessonsPkg/SmbiosInfo/SmbiosInfo.inf | 24 |
2 files changed, 0 insertions, 112 deletions
diff --git a/Lesson_27/UefiLessonsPkg/SmbiosInfo/SmbiosInfo.c b/Lesson_27/UefiLessonsPkg/SmbiosInfo/SmbiosInfo.c deleted file mode 100644 index b75026d..0000000 --- a/Lesson_27/UefiLessonsPkg/SmbiosInfo/SmbiosInfo.c +++ /dev/null @@ -1,88 +0,0 @@ -#include <Library/UefiBootServicesTableLib.h> -#include <Library/UefiLib.h> - -#include <Library/BaseMemoryLib.h> -#include <Protocol/Smbios.h> - -CHAR8* GetRecordString(EFI_SMBIOS_TABLE_HEADER* Record, UINTN number) -{ - if (!number) - return ""; - - CHAR8* String = (CHAR8*)Record + Record->Length; - UINTN i=1; - while (i < number) { - String = String + AsciiStrSize(String); - i++; - } - return String; -} - -EFI_STATUS -EFIAPI -UefiMain ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable - ) -{ - for (UINTN i=0; i<SystemTable->NumberOfTableEntries; i++) { - if (CompareGuid(&(SystemTable->ConfigurationTable[i].VendorGuid), &gEfiSmbiosTableGuid)) { - Print(L"SMBIOS table is placed at %p\n\n", SystemTable->ConfigurationTable[i].VendorTable); - } - } - - EFI_SMBIOS_PROTOCOL* SmbiosProtocol; - EFI_STATUS Status = gBS->LocateProtocol ( - &gEfiSmbiosProtocolGuid, - NULL, - (VOID**)&SmbiosProtocol - ); - if (EFI_ERROR (Status)) { - return Status; - } - - EFI_SMBIOS_HANDLE SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED; - EFI_SMBIOS_TABLE_HEADER* Record; - Status = SmbiosProtocol->GetNext(SmbiosProtocol, - &SmbiosHandle, - NULL, - &Record, - NULL); - while (!EFI_ERROR(Status)) { - Print (L"SMBIOS Type %d \n", Record->Type); - switch (Record->Type) { - case EFI_SMBIOS_TYPE_BIOS_INFORMATION: { - SMBIOS_TABLE_TYPE0* Type0Record = (SMBIOS_TABLE_TYPE0*) Record; - Print(L"\tVendor=%a\n", GetRecordString(Record, Type0Record->Vendor)); - Print(L"\tBiosVersion=%a\n", GetRecordString(Record, Type0Record->BiosVersion)); - Print(L"\tBiosReleaseDate=%a\n", GetRecordString(Record, Type0Record->BiosReleaseDate)); - Print(L"\tBiosSegment=0x%x\n", Type0Record->BiosSegment); - Print(L"\tSystemBiosMajorRelease=0x%x\n", Type0Record->SystemBiosMajorRelease); - Print(L"\tSystemBiosMinorRelease=0x%x\n", Type0Record->SystemBiosMinorRelease); - break; - } - case EFI_SMBIOS_TYPE_SYSTEM_INFORMATION: { - SMBIOS_TABLE_TYPE1* Type1Record = (SMBIOS_TABLE_TYPE1*) Record; - Print(L"\tManufacturer=%a\n", GetRecordString(Record, Type1Record->Manufacturer)); - Print(L"\tProductName=%a\n", GetRecordString(Record, Type1Record->ProductName)); - Print(L"\tVersion=%a\n", GetRecordString(Record, Type1Record->Version)); - Print(L"\tSerialNumber=%a\n", GetRecordString(Record, Type1Record->SerialNumber)); - Print(L"\tUUID=%g\n", Type1Record->Uuid); - Print(L"\tWakeUpType=%d\n", Type1Record->WakeUpType); - Print(L"\tSKUNumber=%a\n", GetRecordString(Record, Type1Record->SKUNumber)); - Print(L"\tFamily=%a\n", GetRecordString(Record, Type1Record->Family)); - break; - } - default: - Print(L"\tTODO: Parsing for this table is not ready yet\n"); - break; - } - Status = SmbiosProtocol->GetNext(SmbiosProtocol, - &SmbiosHandle, - NULL, - &Record, - NULL); - } - - return EFI_SUCCESS; -} diff --git a/Lesson_27/UefiLessonsPkg/SmbiosInfo/SmbiosInfo.inf b/Lesson_27/UefiLessonsPkg/SmbiosInfo/SmbiosInfo.inf deleted file mode 100644 index ab6013a..0000000 --- a/Lesson_27/UefiLessonsPkg/SmbiosInfo/SmbiosInfo.inf +++ /dev/null @@ -1,24 +0,0 @@ -[Defines] - INF_VERSION = 1.25 - BASE_NAME = SmbiosInfo - FILE_GUID = 4a8836db-9e1d-4b7d-a785-f552340fba59 - MODULE_TYPE = UEFI_APPLICATION - VERSION_STRING = 1.0 - ENTRY_POINT = UefiMain - -[Sources] - SmbiosInfo.c - -[Packages] - MdePkg/MdePkg.dec - -[LibraryClasses] - UefiApplicationEntryPoint - UefiLib - -[Guids] - gEfiSmbiosTableGuid - -[Protocols] - gEfiSmbiosProtocolGuid - |