1 #ifndef __DMI_H__ 2 #define __DMI_H__ 3 4 enum dmi_field { 5 DMI_NONE, 6 DMI_BIOS_VENDOR, 7 DMI_BIOS_VERSION, 8 DMI_BIOS_DATE, 9 DMI_SYS_VENDOR, 10 DMI_PRODUCT_NAME, 11 DMI_PRODUCT_VERSION, 12 DMI_BOARD_VENDOR, 13 DMI_BOARD_NAME, 14 DMI_BOARD_VERSION, 15 DMI_STRING_MAX, 16 }; 17 18 /* 19 * DMI callbacks for problem boards 20 */ 21 struct dmi_strmatch { 22 u8 slot; 23 char *substr; 24 }; 25 26 struct dmi_system_id { 27 int (*callback)(struct dmi_system_id *); 28 char *ident; 29 struct dmi_strmatch matches[4]; 30 void *driver_data; 31 }; 32 33 #define DMI_MATCH(a,b) { a, b } 34 35 extern int dmi_check_system(struct dmi_system_id *list); 36 extern void dmi_scan_machine(void); 37 extern const char *dmi_get_table(paddr_t *base, u32 *len); 38 extern void dmi_efi_get_table(const void *smbios, const void *smbios3); 39 bool dmi_get_date(int field, int *yearp, int *monthp, int *dayp); 40 extern void dmi_end_boot(void); 41 42 #endif /* __DMI_H__ */ 43