mirror of
https://git.proxmox.com/git/fwupd
synced 2025-06-05 10:40:20 +00:00

This refactors the code as it was getting very confusing; before FuSmbios was reading both SMBIOS and the kernel-provided DT -- and various things were injecting overrides in three different place. To properly support FDT remove one layer of indirection. This also lets us use the compatible strings to enable plugins specifying the flag _REQUIRE_HWID -- which means we only load the plugin if it's got a chance of working. e.g. [aspeed,ast2500]
140 lines
3.0 KiB
C
140 lines
3.0 KiB
C
/*
|
|
* Copyright (C) 2017 Richard Hughes <richard@hughsie.com>
|
|
*
|
|
* SPDX-License-Identifier: LGPL-2.1+
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "fu-smbios.h"
|
|
|
|
#define FU_TYPE_HWIDS (fu_hwids_get_type())
|
|
|
|
G_DECLARE_FINAL_TYPE(FuHwids, fu_hwids, FU, HWIDS, GObject)
|
|
|
|
/**
|
|
* FU_HWIDS_KEY_BASEBOARD_MANUFACTURER:
|
|
*
|
|
* The HwID key for the baseboard (motherboard) vendor.
|
|
*
|
|
* Since: 1.3.7
|
|
**/
|
|
#define FU_HWIDS_KEY_BASEBOARD_MANUFACTURER "BaseboardManufacturer"
|
|
/**
|
|
* FU_HWIDS_KEY_BASEBOARD_PRODUCT:
|
|
*
|
|
* The HwID key for baseboard (motherboard) product.
|
|
*
|
|
* Since: 1.3.7
|
|
**/
|
|
#define FU_HWIDS_KEY_BASEBOARD_PRODUCT "BaseboardProduct"
|
|
/**
|
|
* FU_HWIDS_KEY_BIOS_MAJOR_RELEASE:
|
|
*
|
|
* The HwID key for the BIOS major version.
|
|
*
|
|
* Since: 1.3.7
|
|
**/
|
|
#define FU_HWIDS_KEY_BIOS_MAJOR_RELEASE "BiosMajorRelease"
|
|
/**
|
|
* FU_HWIDS_KEY_BIOS_MINOR_RELEASE:
|
|
*
|
|
* The HwID key for the BIOS minor version.
|
|
*
|
|
* Since: 1.3.7
|
|
**/
|
|
#define FU_HWIDS_KEY_BIOS_MINOR_RELEASE "BiosMinorRelease"
|
|
/**
|
|
* FU_HWIDS_KEY_BIOS_VENDOR:
|
|
*
|
|
* The HwID key for the BIOS vendor.
|
|
*
|
|
* Since: 1.3.7
|
|
**/
|
|
#define FU_HWIDS_KEY_BIOS_VENDOR "BiosVendor"
|
|
/**
|
|
* FU_HWIDS_KEY_BIOS_VERSION:
|
|
*
|
|
* The HwID key for the BIOS version.
|
|
*
|
|
* Since: 1.3.7
|
|
**/
|
|
#define FU_HWIDS_KEY_BIOS_VERSION "BiosVersion"
|
|
/**
|
|
* FU_HWIDS_KEY_FIRMWARE_MAJOR_RELEASE:
|
|
*
|
|
* The HwID key for the firmware major version.
|
|
*
|
|
* Since: 1.6.1
|
|
**/
|
|
#define FU_HWIDS_KEY_FIRMWARE_MAJOR_RELEASE "FirmwareMajorRelease"
|
|
/**
|
|
* FU_HWIDS_KEY_FIRMWARE_MINOR_RELEASE:
|
|
*
|
|
* The HwID key for the firmware minor version.
|
|
*
|
|
* Since: 1.6.1
|
|
**/
|
|
#define FU_HWIDS_KEY_FIRMWARE_MINOR_RELEASE "FirmwareMinorRelease"
|
|
/**
|
|
* FU_HWIDS_KEY_ENCLOSURE_KIND:
|
|
*
|
|
* The HwID key for the enclosure kind.
|
|
*
|
|
* Since: 1.3.7
|
|
**/
|
|
#define FU_HWIDS_KEY_ENCLOSURE_KIND "EnclosureKind"
|
|
/**
|
|
* FU_HWIDS_KEY_FAMILY:
|
|
*
|
|
* The HwID key for the deice family.
|
|
*
|
|
* Since: 1.3.7
|
|
**/
|
|
#define FU_HWIDS_KEY_FAMILY "Family"
|
|
/**
|
|
* FU_HWIDS_KEY_MANUFACTURER:
|
|
*
|
|
* The HwID key for the top-level product vendor.
|
|
*
|
|
* Since: 1.3.7
|
|
**/
|
|
#define FU_HWIDS_KEY_MANUFACTURER "Manufacturer"
|
|
/**
|
|
* FU_HWIDS_KEY_PRODUCT_NAME:
|
|
*
|
|
* The HwID key for the top-level product name.
|
|
*
|
|
* Since: 1.3.7
|
|
**/
|
|
#define FU_HWIDS_KEY_PRODUCT_NAME "ProductName"
|
|
/**
|
|
* FU_HWIDS_KEY_PRODUCT_SKU:
|
|
*
|
|
* The HwID key for the top-level product SKU.
|
|
*
|
|
* Since: 1.3.7
|
|
**/
|
|
#define FU_HWIDS_KEY_PRODUCT_SKU "ProductSku"
|
|
|
|
GPtrArray *
|
|
fu_hwids_get_keys(FuHwids *self);
|
|
const gchar *
|
|
fu_hwids_get_value(FuHwids *self, const gchar *key);
|
|
void
|
|
fu_hwids_add_value(FuHwids *self, const gchar *key, const gchar *value);
|
|
const gchar *
|
|
fu_hwids_get_replace_keys(FuHwids *self, const gchar *key);
|
|
gchar *
|
|
fu_hwids_get_replace_values(FuHwids *self,
|
|
const gchar *keys,
|
|
GError **error) G_GNUC_WARN_UNUSED_RESULT;
|
|
gchar *
|
|
fu_hwids_get_guid(FuHwids *self, const gchar *keys, GError **error) G_GNUC_WARN_UNUSED_RESULT;
|
|
GPtrArray *
|
|
fu_hwids_get_guids(FuHwids *self);
|
|
void
|
|
fu_hwids_add_guid(FuHwids *self, const gchar *guid);
|
|
gboolean
|
|
fu_hwids_has_guid(FuHwids *self, const gchar *guid);
|