Lines Matching refs:dm
47 static const char * __init dmi_string_nosave(const struct dmi_header *dm, u8 s)
49 const u8 *bp = ((u8 *) dm) + dm->length;
67 static const char * __init dmi_string(const struct dmi_header *dm, u8 s)
69 const char *bp = dmi_string_nosave(dm, s);
103 const struct dmi_header *dm = (const struct dmi_header *)data;
109 if (dm->length < sizeof(struct dmi_header)) {
121 data += dm->length;
125 decode(dm, private_data);
138 if (!dmi_num && dm->type == DMI_ENTRY_END_OF_TABLE)
186 static void __init dmi_save_ident(const struct dmi_header *dm, int slot,
189 const char *d = (const char *) dm;
192 if (dmi_ident[slot] || dm->length <= string)
195 p = dmi_string(dm, d[string]);
202 static void __init dmi_save_release(const struct dmi_header *dm, int slot,
209 if (dmi_ident[slot] || dm->length < index)
212 minor = (u8 *) dm + index;
213 major = (u8 *) dm + index - 1;
230 static void __init dmi_save_uuid(const struct dmi_header *dm, int slot,
237 if (dmi_ident[slot] || dm->length < index + 16)
240 d = (u8 *) dm + index;
268 static void __init dmi_save_type(const struct dmi_header *dm, int slot,
274 if (dmi_ident[slot] || dm->length <= index)
281 d = (u8 *) dm + index;
305 static void __init dmi_save_devices(const struct dmi_header *dm)
307 int i, count = (dm->length - sizeof(struct dmi_header)) / 2;
310 const char *d = (char *)(dm + 1) + (i * 2);
316 dmi_save_one_device(*d & 0x7f, dmi_string_nosave(dm, *(d + 1)));
320 static void __init dmi_save_oem_strings_devices(const struct dmi_header *dm)
325 if (dm->length < 0x05)
328 count = *(u8 *)(dm + 1);
330 const char *devname = dmi_string(dm, i);
347 static void __init dmi_save_ipmi_device(const struct dmi_header *dm)
352 data = dmi_alloc(dm->length);
356 memcpy(data, dm, dm->length);
396 static void __init dmi_save_extended_devices(const struct dmi_header *dm)
399 const u8 *d = (u8 *)dm;
401 if (dm->length < 0x0B)
408 name = dmi_string_nosave(dm, d[0x4]);
414 static void __init dmi_save_system_slot(const struct dmi_header *dm)
416 const u8 *d = (u8 *)dm;
419 if (dm->length < 0x11)
422 d[0x10], dmi_string_nosave(dm, d[0x4]),
426 static void __init count_mem_devices(const struct dmi_header *dm, void *v)
428 if (dm->type != DMI_ENTRY_MEM_DEVICE)
433 static void __init save_mem_devices(const struct dmi_header *dm, void *v)
435 const char *d = (const char *)dm;
440 if (dm->type != DMI_ENTRY_MEM_DEVICE || dm->length < 0x13)
446 dmi_memdev[nr].handle = get_unaligned(&dm->handle);
447 dmi_memdev[nr].device = dmi_string(dm, d[0x10]);
448 dmi_memdev[nr].bank = dmi_string(dm, d[0x11]);
458 else if (size != 0x7fff || dm->length < 0x20)
484 static void __init dmi_decode(const struct dmi_header *dm, void *dummy)
486 switch (dm->type) {
488 dmi_save_ident(dm, DMI_BIOS_VENDOR, 4);
489 dmi_save_ident(dm, DMI_BIOS_VERSION, 5);
490 dmi_save_ident(dm, DMI_BIOS_DATE, 8);
491 dmi_save_release(dm, DMI_BIOS_RELEASE, 21);
492 dmi_save_release(dm, DMI_EC_FIRMWARE_RELEASE, 23);
495 dmi_save_ident(dm, DMI_SYS_VENDOR, 4);
496 dmi_save_ident(dm, DMI_PRODUCT_NAME, 5);
497 dmi_save_ident(dm, DMI_PRODUCT_VERSION, 6);
498 dmi_save_ident(dm, DMI_PRODUCT_SERIAL, 7);
499 dmi_save_uuid(dm, DMI_PRODUCT_UUID, 8);
500 dmi_save_ident(dm, DMI_PRODUCT_SKU, 25);
501 dmi_save_ident(dm, DMI_PRODUCT_FAMILY, 26);
504 dmi_save_ident(dm, DMI_BOARD_VENDOR, 4);
505 dmi_save_ident(dm, DMI_BOARD_NAME, 5);
506 dmi_save_ident(dm, DMI_BOARD_VERSION, 6);
507 dmi_save_ident(dm, DMI_BOARD_SERIAL, 7);
508 dmi_save_ident(dm, DMI_BOARD_ASSET_TAG, 8);
511 dmi_save_ident(dm, DMI_CHASSIS_VENDOR, 4);
512 dmi_save_type(dm, DMI_CHASSIS_TYPE, 5);
513 dmi_save_ident(dm, DMI_CHASSIS_VERSION, 6);
514 dmi_save_ident(dm, DMI_CHASSIS_SERIAL, 7);
515 dmi_save_ident(dm, DMI_CHASSIS_ASSET_TAG, 8);
518 dmi_save_system_slot(dm);
521 dmi_save_devices(dm);
524 dmi_save_oem_strings_devices(dm);
527 dmi_save_ipmi_device(dm);
530 dmi_save_extended_devices(dm);