aboutsummaryrefslogtreecommitdiffstats
path: root/Lesson_27/UefiLessonsPkg/SmbiosInfo
diff options
context:
space:
mode:
authorKonstantin Aladyshev <aladyshev22@gmail.com>2021-07-10 00:04:40 +0300
committerKonstantin Aladyshev <aladyshev22@gmail.com>2021-07-10 00:04:40 +0300
commit6064c1e48b622f53538f4df9bdd402c607a87d51 (patch)
tree93d3c937b9568568307fd2ff7053a30c538ad72a /Lesson_27/UefiLessonsPkg/SmbiosInfo
parenta9c375c80c3505be794ec2b5d5bb90de27ef0d42 (diff)
downloadUEFI-Lessons-6064c1e48b622f53538f4df9bdd402c607a87d51.tar.gz
UEFI-Lessons-6064c1e48b622f53538f4df9bdd402c607a87d51.tar.bz2
UEFI-Lessons-6064c1e48b622f53538f4df9bdd402c607a87d51.zip
Move lessons to separate folder
Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com>
Diffstat (limited to 'Lesson_27/UefiLessonsPkg/SmbiosInfo')
-rw-r--r--Lesson_27/UefiLessonsPkg/SmbiosInfo/SmbiosInfo.c88
-rw-r--r--Lesson_27/UefiLessonsPkg/SmbiosInfo/SmbiosInfo.inf24
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
-