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