Files
fastfetch/src/detection/bios/bios_linux.c
T

32 lines
1.1 KiB
C
Raw Normal View History

#include "bios.h"
#include "common/io/io.h"
2023-06-22 10:45:43 +00:00
#include "util/smbiosHelper.h"
#include <stdlib.h>
2023-06-22 10:45:43 +00:00
static void getSmbiosValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer)
{
ffReadFileBuffer(devicesPath, buffer);
2023-06-22 10:45:43 +00:00
if(ffIsSmbiosValueSet(buffer))
return;
ffReadFileBuffer(classPath, buffer);
2023-06-22 10:45:43 +00:00
if(ffIsSmbiosValueSet(buffer))
return;
ffStrbufClear(buffer);
}
2023-06-16 16:40:43 +08:00
const char* ffDetectBios(FFBiosResult* bios)
{
2023-06-22 22:35:09 +08:00
getSmbiosValue("/sys/devices/virtual/dmi/id/bios_date", "/sys/class/dmi/id/bios_date", &bios->date);
2023-06-29 10:46:41 +08:00
getSmbiosValue("/sys/devices/virtual/dmi/id/bios_release", "/sys/class/dmi/id/bios_release", &bios->release);
2023-06-22 22:35:09 +08:00
getSmbiosValue("/sys/devices/virtual/dmi/id/bios_vendor", "/sys/class/dmi/id/bios_vendor", &bios->vendor);
getSmbiosValue("/sys/devices/virtual/dmi/id/bios_version", "/sys/class/dmi/id/bios_version", &bios->version);
2023-11-06 11:10:26 +08:00
if (ffPathExists("/sys/firmware/efi", FF_PATHTYPE_DIRECTORY) || ffPathExists("/sys/firmware/acpi/tables/UEFI", FF_PATHTYPE_FILE))
ffStrbufSetStatic(&bios->type, "UEFI");
else
ffStrbufSetStatic(&bios->type, "BIOS");
2023-06-16 16:40:43 +08:00
return NULL;
}