#ifndef _ASM_X86_DMI_H #define _ASM_X86_DMI_H #include #ifdef CONFIG_X86_32 /* Use early IO mappings for DMI because it's initialized early */ #define dmi_ioremap bt_ioremap #define dmi_iounmap bt_iounmap #define dmi_alloc alloc_bootmem #else /* CONFIG_X86_32 */ #define DMI_MAX_DATA 2048 extern int dmi_alloc_index; extern char dmi_alloc_data[DMI_MAX_DATA]; /* This is so early that there is no good way to allocate dynamic memory. Allocate data in an BSS array. */ static inline void *dmi_alloc(unsigned len) { int idx = dmi_alloc_index; if ((dmi_alloc_index += len) > DMI_MAX_DATA) return NULL; return dmi_alloc_data + idx; } #define dmi_ioremap early_ioremap #define dmi_iounmap early_iounmap #endif #endif