Implement Cyrix SMM mode.
This commit is contained in:
parent
8a5a0fc48c
commit
c0bc163eaf
9 changed files with 690 additions and 109 deletions
18
src/x86.h
18
src/x86.h
|
|
@ -39,7 +39,7 @@ typedef union
|
|||
typedef struct
|
||||
{
|
||||
uint32_t base;
|
||||
uint32_t limit;
|
||||
uint32_t limit, limit_raw;
|
||||
uint8_t access, access2;
|
||||
uint16_t seg;
|
||||
uint32_t limit_low, limit_high;
|
||||
|
|
@ -325,4 +325,20 @@ void x86_smi_trigger(void);
|
|||
void x86_smi_enter(void);
|
||||
void x86_smi_leave(void);
|
||||
|
||||
void cyrix_load_seg_descriptor(uint32_t addr, x86seg *seg);
|
||||
void cyrix_write_seg_descriptor(uint32_t addr, x86seg *seg);
|
||||
|
||||
#define SMHR_VALID (1 << 0)
|
||||
#define SMHR_ADDR_MASK (0xfffffffc)
|
||||
|
||||
struct
|
||||
{
|
||||
struct
|
||||
{
|
||||
uint32_t base;
|
||||
uint64_t size;
|
||||
} arr[8];
|
||||
uint32_t smhr;
|
||||
} cyrix;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue