master ohmu/fastfetch-openbsd / src / detection / bios / bios_linux.c
ohmu  ·  2026-10-15
 1#include "bios.h"
 2#include "common/io.h"
 3#include "common/smbios.h"
 4
 5const char* ffDetectBios(FFBiosResult* bios) {
 6    if (ffGetSmbiosValue("/sys/devices/virtual/dmi/id/bios_date", "/sys/class/dmi/id/bios_date", &bios->date)) {
 7        ffGetSmbiosValue("/sys/devices/virtual/dmi/id/bios_release", "/sys/class/dmi/id/bios_release", &bios->release);
 8        ffGetSmbiosValue("/sys/devices/virtual/dmi/id/bios_vendor", "/sys/class/dmi/id/bios_vendor", &bios->vendor);
 9        ffGetSmbiosValue("/sys/devices/virtual/dmi/id/bios_version", "/sys/class/dmi/id/bios_version", &bios->version);
10    } else if (ffReadFileBuffer("/proc/device-tree/chosen/u-boot,version", &bios->version)) {
11        ffStrbufTrimRight(&bios->version, '\0');
12        ffStrbufSetStatic(&bios->vendor, "U-Boot");
13    }
14
15    if (ffPathExists("/sys/firmware/efi/", FF_PATHTYPE_DIRECTORY) || ffPathExists("/sys/firmware/acpi/tables/UEFI", FF_PATHTYPE_FILE)) {
16        ffStrbufSetStatic(&bios->type, "UEFI");
17    } else {
18        ffStrbufSetStatic(&bios->type, "BIOS");
19    }
20    return nullptr;
21}