Commit | Line | Data |
---|---|---|
77ef50a5 VN |
1 | #ifndef ASM_X86__DMI_H |
2 | #define ASM_X86__DMI_H | |
327c21bc TG |
3 | |
4 | #include <asm/io.h> | |
5 | ||
327c21bc TG |
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; | |
bca25baf | 16 | if ((dmi_alloc_index + len) > DMI_MAX_DATA) |
327c21bc | 17 | return NULL; |
bca25baf | 18 | dmi_alloc_index += len; |
327c21bc TG |
19 | return dmi_alloc_data + idx; |
20 | } | |
21 | ||
ef3fb66c | 22 | /* Use early IO mappings for DMI because it's initialized early */ |
327c21bc TG |
23 | #define dmi_ioremap early_ioremap |
24 | #define dmi_iounmap early_iounmap | |
25 | ||
77ef50a5 | 26 | #endif /* ASM_X86__DMI_H */ |