/*␊ |
* Copyright 2008 mackerintel␊ |
*/␊ |
/*␊ |
* AsereBLN: cleanup␊ |
*/␊ |
␊ |
#ifndef __LIBSAIO_SMBIOS_PATCHER_H␊ |
#define __LIBSAIO_SMBIOS_PATCHER_H␊ |
␊ |
#include "libsaio.h"␊ |
#include "SMBIOS.h"␊ |
␊ |
extern char MacModel[8];␊ |
extern unsigned int ModelRev;␊ |
extern uint64_t smbios_p;␊ |
␊ |
␊ |
/* From Foundation/Efi/Guid/Smbios/SmBios.h */␊ |
/* Modified to wrap Data4 array init with {} */␊ |
#define EFI_SMBIOS_TABLE_GUID {0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, {0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d}}␊ |
␊ |
#define SMBIOS_RANGE_START 0x000F0000␊ |
#define SMBIOS_RANGE_END 0x000FFFFF␊ |
␊ |
#define SMBIOS_ORIGINAL␉␉0␊ |
#define SMBIOS_PATCHED␉␉1␊ |
␊ |
struct smbios_table_header ␊ |
{␊ |
␉uint8_t␉␉type;␊ |
␉uint8_t␉␉length;␊ |
␉uint16_t␉handle;␊ |
} __attribute__ ((packed));␊ |
␊ |
struct smbios_property␊ |
{␊ |
␉const char␉␉*name;␊ |
␉uint8_t␉␉table_type;␊ |
␉enum {SMSTRING, SMWORD, SMBYTE, SMOWORD} value_type;␊ |
␉int␉␉offset;␊ |
␉int␉␉(*auto_int) (const char *name, int table_num);␊ |
␉const char␉*(*auto_str) (const char *name, int table_num);␊ |
␉const char␉*(*auto_oword) (const char *name, int table_num);␊ |
};␊ |
␊ |
struct smbios_table_description␊ |
{␊ |
␉uint8_t␉␉type;␊ |
␉int␉␉len;␊ |
␉int␉␉(*numfunc)(int tablen);␊ |
};␊ |
␊ |
/** call with flag SMBIOS_ORIGINAL to get orig. entrypoint␊ |
or call with flag SMBIOS_PATCHED to get patched smbios entrypoint␊ |
*/␊ |
extern struct SMBEntryPoint␉*getSmbios(int);␊ |
extern struct DMIHeader* FindNextDmiTableOfType(int type, int minlen);␊ |
extern struct DMIHeader* FindFirstDmiTableOfType(int type, int minlen);␊ |
extern void getSmbiosProductName();␊ |
const char *smbiosStringAtIndex(DMIHeader*, int index, int *length );␊ |
extern bool scanDMI(void);␊ |
extern void scan_cpu_DMI(void); //PlatformInfo_t *); //Slice␊ |
␊ |
␊ |
#endif /* !__LIBSAIO_SMBIOS_PATCHER_H */␊ |