mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-10-29 16:26:39 +01:00
Global: SMBIOS related code cleanup
This commit is contained in:
@@ -328,6 +328,7 @@ set(LIBFASTFETCH_SRC
|
||||
src/util/FFstrbuf.c
|
||||
src/util/platform/FFPlatform.c
|
||||
src/util/stringUtils.c
|
||||
src/util/smbiosHelper.c
|
||||
)
|
||||
|
||||
if(LINUX)
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
#include "bios.h"
|
||||
|
||||
#include "common/settings.h"
|
||||
#include "util/smbiosHelper.h"
|
||||
|
||||
const char* ffDetectBios(FFBiosResult* bios)
|
||||
const char* ffDetectBios(FFBiosResult* result)
|
||||
{
|
||||
ffSettingsGetFreeBSDKenv("smbios.bios.reldate", &bios->biosDate);
|
||||
ffSettingsGetFreeBSDKenv("smbios.bios.revision", &bios->biosRelease);
|
||||
ffSettingsGetFreeBSDKenv("smbios.bios.vendor", &bios->biosVendor);
|
||||
ffSettingsGetFreeBSDKenv("smbios.bios.version", &bios->biosVersion);
|
||||
ffSettingsGetFreeBSDKenv("smbios.bios.reldate", &result->biosDate);
|
||||
ffCleanUpSmbiosValue(&result->biosDate);
|
||||
ffSettingsGetFreeBSDKenv("smbios.bios.revision", &result->biosRelease);
|
||||
ffCleanUpSmbiosValue(&result->biosRelease);
|
||||
ffSettingsGetFreeBSDKenv("smbios.bios.vendor", &result->biosVendor);
|
||||
ffCleanUpSmbiosValue(&result->biosVendor);
|
||||
ffSettingsGetFreeBSDKenv("smbios.bios.version", &result->biosVersion);
|
||||
ffCleanUpSmbiosValue(&result->biosVersion);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1,41 +1,17 @@
|
||||
#include "bios.h"
|
||||
#include "common/io/io.h"
|
||||
#include "util/smbiosHelper.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
static bool hostValueSet(FFstrbuf* value)
|
||||
{
|
||||
return
|
||||
value->length > 0 &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "To be filled") != true &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "To be set") != true &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "OEM") != true &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "O.E.M.") != true &&
|
||||
ffStrbufIgnCaseCompS(value, "None") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Product") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Product Name") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Product Version") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Name") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Version") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Default string") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Undefined") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Not Specified") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Not Applicable") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "INVALID") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Type1ProductConfigId") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "All Series") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "N/A") != 0
|
||||
;
|
||||
}
|
||||
|
||||
static void getHostValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer)
|
||||
static void getSmbiosValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer)
|
||||
{
|
||||
ffReadFileBuffer(devicesPath, buffer);
|
||||
if(hostValueSet(buffer))
|
||||
if(ffIsSmbiosValueSet(buffer))
|
||||
return;
|
||||
|
||||
ffReadFileBuffer(classPath, buffer);
|
||||
if(hostValueSet(buffer))
|
||||
if(ffIsSmbiosValueSet(buffer))
|
||||
return;
|
||||
|
||||
ffStrbufClear(buffer);
|
||||
@@ -43,9 +19,9 @@ static void getHostValue(const char* devicesPath, const char* classPath, FFstrbu
|
||||
|
||||
const char* ffDetectBios(FFBiosResult* bios)
|
||||
{
|
||||
getHostValue("/sys/devices/virtual/dmi/id/bios_date", "/sys/class/dmi/id/bios_date", &bios->biosDate);
|
||||
getHostValue("/sys/devices/virtual/dmi/id/bios_release", "/sys/class/dmi/id/bios_release", &bios->biosRelease);
|
||||
getHostValue("/sys/devices/virtual/dmi/id/bios_vendor", "/sys/class/dmi/id/bios_vendor", &bios->biosVendor);
|
||||
getHostValue("/sys/devices/virtual/dmi/id/bios_version", "/sys/class/dmi/id/bios_version", &bios->biosVersion);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/bios_date", "/sys/class/dmi/id/bios_date", &bios->biosDate);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/bios_release", "/sys/class/dmi/id/bios_release", &bios->biosRelease);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/bios_vendor", "/sys/class/dmi/id/bios_vendor", &bios->biosVendor);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/bios_version", "/sys/class/dmi/id/bios_version", &bios->biosVersion);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
#include "board.h"
|
||||
#include "common/settings.h"
|
||||
#include "util/smbiosHelper.h"
|
||||
|
||||
const char* ffDetectBoard(FFBoardResult* board)
|
||||
const char* ffDetectBoard(FFBoardResult* result)
|
||||
{
|
||||
ffSettingsGetFreeBSDKenv("smbios.planar.product", &board->boardName);
|
||||
ffSettingsGetFreeBSDKenv("smbios.planar.maker", &board->boardVendor);
|
||||
ffSettingsGetFreeBSDKenv("smbios.planar.version", &board->boardVersion);
|
||||
ffSettingsGetFreeBSDKenv("smbios.planar.product", &result->boardName);
|
||||
ffCleanUpSmbiosValue(&result->boardName);
|
||||
ffSettingsGetFreeBSDKenv("smbios.planar.maker", &result->boardVendor);
|
||||
ffCleanUpSmbiosValue(&result->boardVendor);
|
||||
ffSettingsGetFreeBSDKenv("smbios.planar.version", &result->boardVersion);
|
||||
ffCleanUpSmbiosValue(&result->boardVersion);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1,41 +1,17 @@
|
||||
#include "board.h"
|
||||
#include "common/io/io.h"
|
||||
#include "util/smbiosHelper.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
static bool hostValueSet(FFstrbuf* value)
|
||||
{
|
||||
return
|
||||
value->length > 0 &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "To be filled") != true &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "To be set") != true &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "OEM") != true &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "O.E.M.") != true &&
|
||||
ffStrbufIgnCaseCompS(value, "None") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Product") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Product Name") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Product Version") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Name") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Version") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Default string") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Undefined") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Not Specified") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Not Applicable") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "INVALID") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Type1ProductConfigId") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "All Series") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "N/A") != 0
|
||||
;
|
||||
}
|
||||
|
||||
static void getHostValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer)
|
||||
static void getSmbiosValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer)
|
||||
{
|
||||
ffReadFileBuffer(devicesPath, buffer);
|
||||
if(hostValueSet(buffer))
|
||||
if(ffIsSmbiosValueSet(buffer))
|
||||
return;
|
||||
|
||||
ffReadFileBuffer(classPath, buffer);
|
||||
if(hostValueSet(buffer))
|
||||
if(ffIsSmbiosValueSet(buffer))
|
||||
return;
|
||||
|
||||
ffStrbufClear(buffer);
|
||||
@@ -43,8 +19,8 @@ static void getHostValue(const char* devicesPath, const char* classPath, FFstrbu
|
||||
|
||||
const char* ffDetectBoard(FFBoardResult* board)
|
||||
{
|
||||
getHostValue("/sys/devices/virtual/dmi/id/board_name", "/sys/class/dmi/id/board_name", &board->boardName);
|
||||
getHostValue("/sys/devices/virtual/dmi/id/board_vendor", "/sys/class/dmi/id/board_vendor", &board->boardVendor);
|
||||
getHostValue("/sys/devices/virtual/dmi/id/board_version", "/sys/class/dmi/id/board_version", &board->boardVersion);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/board_name", "/sys/class/dmi/id/board_name", &board->boardName);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/board_vendor", "/sys/class/dmi/id/board_vendor", &board->boardVendor);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/board_version", "/sys/class/dmi/id/board_version", &board->boardVersion);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
#include "chassis.h"
|
||||
#include "common/settings.h"
|
||||
#include "util/smbiosHelper.h"
|
||||
|
||||
const char* ffDetectChassis(FFChassisResult* result)
|
||||
{
|
||||
// Unlike other platforms, `smbios.chassis.type` return display string directly on my machine
|
||||
ffSettingsGetFreeBSDKenv("smbios.chassis.type", &result->chassisType);
|
||||
ffCleanUpSmbiosValue(&result->chassisType);
|
||||
ffSettingsGetFreeBSDKenv("smbios.chassis.maker", &result->chassisVendor);
|
||||
ffCleanUpSmbiosValue(&result->chassisVendor);
|
||||
ffSettingsGetFreeBSDKenv("smbios.chassis.version", &result->chassisVersion);
|
||||
ffCleanUpSmbiosValue(&result->chassisVersion);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1,41 +1,17 @@
|
||||
#include "chassis.h"
|
||||
#include "common/io/io.h"
|
||||
#include "util/smbiosHelper.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
static bool hostValueSet(FFstrbuf* value)
|
||||
{
|
||||
return
|
||||
value->length > 0 &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "To be filled") != true &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "To be set") != true &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "OEM") != true &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "O.E.M.") != true &&
|
||||
ffStrbufIgnCaseCompS(value, "None") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Product") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Product Name") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Product Version") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Name") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Version") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Default string") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Undefined") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Not Specified") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Not Applicable") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "INVALID") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Type1ProductConfigId") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "All Series") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "N/A") != 0
|
||||
;
|
||||
}
|
||||
|
||||
static void getHostValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer)
|
||||
static void getSmbiosValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer)
|
||||
{
|
||||
ffReadFileBuffer(devicesPath, buffer);
|
||||
if(hostValueSet(buffer))
|
||||
if(ffIsSmbiosValueSet(buffer))
|
||||
return;
|
||||
|
||||
ffReadFileBuffer(classPath, buffer);
|
||||
if(hostValueSet(buffer))
|
||||
if(ffIsSmbiosValueSet(buffer))
|
||||
return;
|
||||
|
||||
ffStrbufClear(buffer);
|
||||
@@ -43,9 +19,9 @@ static void getHostValue(const char* devicesPath, const char* classPath, FFstrbu
|
||||
|
||||
const char* ffDetectChassis(FFChassisResult* result)
|
||||
{
|
||||
getHostValue("/sys/devices/virtual/dmi/id/chassis_type", "/sys/class/dmi/id/chassis_type", &result->chassisType);
|
||||
getHostValue("/sys/devices/virtual/dmi/id/chassis_vendor", "/sys/class/dmi/id/chassis_vendor", &result->chassisVendor);
|
||||
getHostValue("/sys/devices/virtual/dmi/id/chassis_version", "/sys/class/dmi/id/chassis_version", &result->chassisVersion);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/chassis_type", "/sys/class/dmi/id/chassis_type", &result->chassisType);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/chassis_vendor", "/sys/class/dmi/id/chassis_vendor", &result->chassisVendor);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/chassis_version", "/sys/class/dmi/id/chassis_version", &result->chassisVersion);
|
||||
|
||||
if(result->chassisType.length)
|
||||
{
|
||||
|
||||
@@ -4,15 +4,8 @@
|
||||
|
||||
const char* ffDetectHost(FFHostResult* host)
|
||||
{
|
||||
//Family
|
||||
|
||||
ffStrbufInit(&host->productFamily);
|
||||
ffSettingsGetAndroidProperty("ro.product.device", &host->productFamily);
|
||||
|
||||
//Name
|
||||
|
||||
ffStrbufInit(&host->productName);
|
||||
|
||||
ffSettingsGetAndroidProperty("ro.product.brand", &host->productName);
|
||||
if(host->productName.length > 0)
|
||||
{
|
||||
@@ -21,18 +14,9 @@ const char* ffDetectHost(FFHostResult* host)
|
||||
}
|
||||
|
||||
ffSettingsGetAndroidProperty("ro.product.model", &host->productName);
|
||||
|
||||
ffStrbufTrimRight(&host->productName, ' ');
|
||||
|
||||
//Sys vendor
|
||||
|
||||
ffStrbufInit(&host->sysVendor);
|
||||
ffSettingsGetAndroidProperty("ro.product.manufacturer", &host->sysVendor);
|
||||
|
||||
//Not implemented
|
||||
|
||||
ffStrbufInit(&host->productVersion);
|
||||
ffStrbufInit(&host->productSku);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -157,11 +157,7 @@ static const char* getProductName(const FFstrbuf* hwModel)
|
||||
|
||||
const char* ffDetectHost(FFHostResult* host)
|
||||
{
|
||||
ffStrbufInit(&host->productName);
|
||||
ffStrbufInit(&host->productFamily);
|
||||
ffStrbufInit(&host->productVersion);
|
||||
ffStrbufInit(&host->productSku);
|
||||
ffStrbufInitS(&host->sysVendor, "Apple");
|
||||
ffStrbufAppendS(&host->sysVendor, "Apple");
|
||||
|
||||
const char* error = ffSysctlGetString("hw.model", &host->productFamily);
|
||||
if (error) return error;
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
#include "host.h"
|
||||
#include "common/settings.h"
|
||||
#include "util/smbiosHelper.h"
|
||||
|
||||
const char* ffDetectHost(FFHostResult* host)
|
||||
{
|
||||
ffStrbufInit(&host->productName);
|
||||
ffStrbufInit(&host->productFamily);
|
||||
ffStrbufInit(&host->productVersion);
|
||||
ffStrbufInit(&host->productSku);
|
||||
ffStrbufInit(&host->sysVendor);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.product", &host->productName);
|
||||
ffCleanUpSmbiosValue(&host->productName);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.family", &host->productFamily);
|
||||
ffCleanUpSmbiosValue(&host->productFamily);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.version", &host->productVersion);
|
||||
ffCleanUpSmbiosValue(&host->productVersion);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.sku", &host->productSku);
|
||||
ffCleanUpSmbiosValue(&host->productSku);
|
||||
ffSettingsGetFreeBSDKenv("smbios.system.maker", &host->sysVendor);
|
||||
ffCleanUpSmbiosValue(&host->sysVendor);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -1,41 +1,18 @@
|
||||
#include "host.h"
|
||||
#include "common/io/io.h"
|
||||
#include "common/processing.h"
|
||||
#include "util/smbiosHelper.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
static bool hostValueSet(FFstrbuf* value)
|
||||
{
|
||||
return
|
||||
value->length > 0 &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "To be filled") != true &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "To be set") != true &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "OEM") != true &&
|
||||
ffStrbufStartsWithIgnCaseS(value, "O.E.M.") != true &&
|
||||
ffStrbufIgnCaseCompS(value, "None") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Product") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Product Name") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Product Version") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Name") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "System Version") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Default string") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Undefined") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Not Specified") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Not Applicable") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "INVALID") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "Type1ProductConfigId") != 0 &&
|
||||
ffStrbufIgnCaseCompS(value, "All Series") != 0
|
||||
;
|
||||
}
|
||||
|
||||
static void getHostValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer)
|
||||
static void getSmbiosValue(const char* devicesPath, const char* classPath, FFstrbuf* buffer)
|
||||
{
|
||||
ffReadFileBuffer(devicesPath, buffer);
|
||||
if(hostValueSet(buffer))
|
||||
if(ffIsSmbiosValueSet(buffer))
|
||||
return;
|
||||
|
||||
ffReadFileBuffer(classPath, buffer);
|
||||
if(hostValueSet(buffer))
|
||||
if(ffIsSmbiosValueSet(buffer))
|
||||
return;
|
||||
|
||||
ffStrbufClear(buffer);
|
||||
@@ -43,17 +20,17 @@ static void getHostValue(const char* devicesPath, const char* classPath, FFstrbu
|
||||
|
||||
static void getHostProductName(FFstrbuf* name)
|
||||
{
|
||||
getHostValue("/sys/devices/virtual/dmi/id/product_name", "/sys/class/dmi/id/product_name", name);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/product_name", "/sys/class/dmi/id/product_name", name);
|
||||
if(name->length > 0)
|
||||
return;
|
||||
|
||||
ffReadFileBuffer("/sys/firmware/devicetree/base/model", name);
|
||||
if(hostValueSet(name))
|
||||
if(ffIsSmbiosValueSet(name))
|
||||
return;
|
||||
|
||||
//does a clear before the read
|
||||
ffReadFileBuffer("/tmp/sysinfo/model", name);
|
||||
if(hostValueSet(name))
|
||||
if(ffIsSmbiosValueSet(name))
|
||||
return;
|
||||
|
||||
ffStrbufClear(name);
|
||||
@@ -61,20 +38,11 @@ static void getHostProductName(FFstrbuf* name)
|
||||
|
||||
const char* ffDetectHost(FFHostResult* host)
|
||||
{
|
||||
ffStrbufInit(&host->productFamily);
|
||||
getHostValue("/sys/devices/virtual/dmi/id/product_family", "/sys/class/dmi/id/product_family", &host->productFamily);
|
||||
|
||||
ffStrbufInit(&host->productName);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/product_family", "/sys/class/dmi/id/product_family", &host->productFamily);
|
||||
getHostProductName(&host->productName);
|
||||
|
||||
ffStrbufInit(&host->productVersion);
|
||||
getHostValue("/sys/devices/virtual/dmi/id/product_version", "/sys/class/dmi/id/product_version", &host->productVersion);
|
||||
|
||||
ffStrbufInit(&host->productSku);
|
||||
getHostValue("/sys/devices/virtual/dmi/id/product_sku", "/sys/class/dmi/id/product_sku", &host->productSku);
|
||||
|
||||
ffStrbufInit(&host->sysVendor);
|
||||
getHostValue("/sys/devices/virtual/dmi/id/sys_vendor", "/sys/class/dmi/id/sys_vendor", &host->sysVendor);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/product_version", "/sys/class/dmi/id/product_version", &host->productVersion);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/product_sku", "/sys/class/dmi/id/product_sku", &host->productSku);
|
||||
getSmbiosValue("/sys/devices/virtual/dmi/id/sys_vendor", "/sys/class/dmi/id/sys_vendor", &host->sysVendor);
|
||||
|
||||
//KVM/Qemu virtual machine
|
||||
if(ffStrbufStartsWithS(&host->productName, "Standard PC"))
|
||||
|
||||
@@ -3,12 +3,6 @@
|
||||
|
||||
const char* ffDetectHost(FFHostResult* host)
|
||||
{
|
||||
ffStrbufInit(&host->productName);
|
||||
ffStrbufInit(&host->productFamily);
|
||||
ffStrbufInit(&host->productVersion);
|
||||
ffStrbufInit(&host->productSku);
|
||||
ffStrbufInit(&host->sysVendor);
|
||||
|
||||
FF_HKEY_AUTO_DESTROY hKey = NULL;
|
||||
|
||||
if(!ffRegOpenKeyForRead(HKEY_LOCAL_MACHINE, L"HARDWARE\\DESCRIPTION\\System\\BIOS", &hKey, NULL))
|
||||
|
||||
@@ -9,6 +9,11 @@
|
||||
void ffPrintHost(FFinstance* instance, FFHostOptions* options)
|
||||
{
|
||||
FFHostResult host;
|
||||
ffStrbufInit(&host.productFamily);
|
||||
ffStrbufInit(&host.productName);
|
||||
ffStrbufInit(&host.productVersion);
|
||||
ffStrbufInit(&host.productSku);
|
||||
ffStrbufInit(&host.sysVendor);
|
||||
const char* error = ffDetectHost(&host);
|
||||
|
||||
if(error)
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
#include "smbiosHelper.h"
|
||||
|
||||
bool ffIsSmbiosValueSet(FFstrbuf* value)
|
||||
{
|
||||
return
|
||||
value->length > 0 &&
|
||||
!ffStrbufStartsWithIgnCaseS(value, "To be filled") &&
|
||||
!ffStrbufStartsWithIgnCaseS(value, "To be set") &&
|
||||
!ffStrbufStartsWithIgnCaseS(value, "OEM") &&
|
||||
!ffStrbufStartsWithIgnCaseS(value, "O.E.M.") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "None") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "System Product") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "System Product Name") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "System Product Version") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "System Name") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "System Version") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "Default string") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "Undefined") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "Not Specified") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "Not Applicable") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "INVALID") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "Type1ProductConfigId") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "All Series") &&
|
||||
!ffStrbufIgnCaseEqualS(value, "N/A")
|
||||
;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#ifndef FASTFETCH_INCLUDED_SMBIOSVALUEHELPER
|
||||
#define FASTFETCH_INCLUDED_SMBIOSVALUEHELPER
|
||||
|
||||
#include "util/FFstrbuf.h"
|
||||
|
||||
bool ffIsSmbiosValueSet(FFstrbuf* value);
|
||||
static inline void ffCleanUpSmbiosValue(FFstrbuf* value)
|
||||
{
|
||||
if (!ffIsSmbiosValueSet(value))
|
||||
ffStrbufClear(value);
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user