2008-06-18 15:08:48 +00:00
|
|
|
#ifndef ASM_X86__DMI_H
|
|
|
|
#define ASM_X86__DMI_H
|
2007-10-15 21:28:20 +00:00
|
|
|
|
|
|
|
#include <asm/io.h>
|
|
|
|
|
|
|
|
#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;
|
2008-01-30 12:31:59 +00:00
|
|
|
if ((dmi_alloc_index + len) > DMI_MAX_DATA)
|
2007-10-15 21:28:20 +00:00
|
|
|
return NULL;
|
2008-01-30 12:31:59 +00:00
|
|
|
dmi_alloc_index += len;
|
2007-10-15 21:28:20 +00:00
|
|
|
return dmi_alloc_data + idx;
|
|
|
|
}
|
|
|
|
|
2008-05-01 11:35:01 +00:00
|
|
|
/* Use early IO mappings for DMI because it's initialized early */
|
2007-10-15 21:28:20 +00:00
|
|
|
#define dmi_ioremap early_ioremap
|
|
|
|
#define dmi_iounmap early_iounmap
|
|
|
|
|
2008-06-18 15:08:48 +00:00
|
|
|
#endif /* ASM_X86__DMI_H */
|