#include "smbios_test.h"
boolean_t
smbios_test_badvers_mktable(smbios_test_table_t *table)
{
smbios_test_table_append_eot(table);
return (B_TRUE);
}
typedef int (*smbios_lookup_f)(smbios_hdl_t *, id_t, void *);
typedef struct {
smbios_lookup_f sif_func;
const char *sif_name;
} smbios_info_func_t;
static smbios_info_func_t smbios_lookup_funcs[] = {
{ (smbios_lookup_f)smbios_info_bboard, "bboard" },
{ (smbios_lookup_f)smbios_info_chassis, "chassis" },
{ (smbios_lookup_f)smbios_info_processor, "processor" },
{ (smbios_lookup_f)smbios_info_extprocessor, "extprocessor" },
{ (smbios_lookup_f)smbios_info_cache, "cache" },
{ (smbios_lookup_f)smbios_info_pointdev, "pointdev" },
{ (smbios_lookup_f)smbios_info_battery, "battery" },
{ (smbios_lookup_f)smbios_info_port, "port" },
{ (smbios_lookup_f)smbios_info_extport, "extport" },
{ (smbios_lookup_f)smbios_info_slot, "slot" },
{ (smbios_lookup_f)smbios_info_obdevs_ext, "obdevs_ext" },
{ (smbios_lookup_f)smbios_info_memarray, "memarray" },
{ (smbios_lookup_f)smbios_info_extmemarray, "extmemarray" },
{ (smbios_lookup_f)smbios_info_memarrmap, "memarrmap" },
{ (smbios_lookup_f)smbios_info_memdevice, "memdevice" },
{ (smbios_lookup_f)smbios_info_memdevmap, "memdevmap" },
{ (smbios_lookup_f)smbios_info_vprobe, "vprobe" },
{ (smbios_lookup_f)smbios_info_cooldev, "cooldev" },
{ (smbios_lookup_f)smbios_info_tprobe, "tprobe" },
{ (smbios_lookup_f)smbios_info_iprobe, "iprobe" },
{ (smbios_lookup_f)smbios_info_powersup, "powersup" },
{ (smbios_lookup_f)smbios_info_addinfo_nents, "addinfo" },
{ (smbios_lookup_f)smbios_info_pciexrc, "pciexrc" },
{ (smbios_lookup_f)smbios_info_processor_info, "processor_info" },
{ (smbios_lookup_f)smbios_info_processor_riscv, "processor_riscv" },
{ (smbios_lookup_f)smbios_info_strprop, "strprop" },
{ (smbios_lookup_f)smbios_info_fwinfo, "fwinfo" }
};
boolean_t
smbios_test_verify_badids(smbios_hdl_t *hdl)
{
boolean_t ret = B_TRUE;
for (size_t i = 0; i < ARRAY_SIZE(smbios_lookup_funcs); i++) {
if (smbios_lookup_funcs[i].sif_func(hdl, SMB_ID_NOTSUP, NULL) !=
-1) {
warnx("smbios_info_%s somehow didn't fail?!",
smbios_lookup_funcs[i].sif_name);
ret = B_FALSE;
}
}
return (ret);
}