xref: /openbmc/linux/arch/x86/include/asm/dmi.h (revision 8fa5723aa7e053d498336b48448b292fc2e0458b)
1 #ifndef _ASM_X86_DMI_H
2 #define _ASM_X86_DMI_H
3 
4 #include <asm/io.h>
5 
6 #define DMI_MAX_DATA 2048
7 
8 extern int dmi_alloc_index;
9 extern char dmi_alloc_data[DMI_MAX_DATA];
10 
11 /* This is so early that there is no good way to allocate dynamic memory.
12    Allocate data in an BSS array. */
13 static inline void *dmi_alloc(unsigned len)
14 {
15 	int idx = dmi_alloc_index;
16 	if ((dmi_alloc_index + len) > DMI_MAX_DATA)
17 		return NULL;
18 	dmi_alloc_index += len;
19 	return dmi_alloc_data + idx;
20 }
21 
22 /* Use early IO mappings for DMI because it's initialized early */
23 #define dmi_ioremap early_ioremap
24 #define dmi_iounmap early_iounmap
25 
26 #endif /* _ASM_X86_DMI_H */
27