Mercurial > hg > Members > taiki > EFITest
comparison registers.h @ 1:259b5f0e03ba
add registers.h
author | taiki |
---|---|
date | Tue, 26 Mar 2013 17:51:58 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:8d0e5be5d742 | 1:259b5f0e03ba |
---|---|
1 #ifndef REGISTERS | |
2 #define REGISTERS | |
3 | |
4 typedef struct _cr3_t { | |
5 UINT64 ignored1:3; | |
6 UINT64 pwt:1; /* page-level write through */ | |
7 UINT64 pcd:1; /* page-level cache disable */ | |
8 UINT64 ignored2:7; | |
9 UINT64 pdb:40; /* page directory base */ | |
10 UINT64 reserved :12; | |
11 } cr3_t; | |
12 #define PHYADDR_WIDTH 127 | |
13 | |
14 typedef struct _cr4_t { | |
15 UINT64 vme:1; | |
16 UINT64 pvi:1; | |
17 UINT64 tsd:1; | |
18 UINT64 de:1; | |
19 UINT64 pse:1; // page size extensions | |
20 UINT64 pae:1; // physical address extension | |
21 UINT64 mce:1; | |
22 UINT64 pge:1; | |
23 UINT64 pce:1; | |
24 UINT64 osfxsr:1; | |
25 UINT64 osxmmexcept:1; | |
26 UINT64 ignored2 :2; | |
27 UINT64 vmxe: 1; | |
28 UINT64 smxe: 1; | |
29 UINT64 ignored3: 1; | |
30 UINT64 fsgsbase: 1; | |
31 UINT64 pcide: 1; | |
32 UINT64 osxsave: 1; | |
33 UINT64 ignored4: 1; | |
34 UINT64 smep: 1; | |
35 UINT64 reserved:43; | |
36 } cr4_t; | |
37 | |
38 typedef struct _cr0_t { | |
39 UINT64 pe :1; | |
40 UINT64 mp :1; | |
41 UINT64 em :1; | |
42 UINT64 ts :1; | |
43 UINT64 et :1; | |
44 UINT64 ne :1; | |
45 UINT64 ignored1 :10; | |
46 UINT64 wp :1; | |
47 UINT64 ignored2 :1; | |
48 UINT64 am :1; | |
49 UINT64 ignored3 :10; | |
50 UINT64 nw :1; | |
51 UINT64 cd :1; | |
52 UINT64 pg :1; /* pageing */ | |
53 } cr0_t; | |
54 | |
55 typedef struct _efer_t { | |
56 UINT64 syscall_enable :1; | |
57 UINT64 reserved1:7; | |
58 UINT64 ia32e_enable :1; | |
59 UINT64 reserved2 :1; | |
60 UINT64 ia32e_active :1; | |
61 UINT64 edb_enable :1; | |
62 UINT64 reserved3 :52; | |
63 } efer_t; | |
64 | |
65 | |
66 #endif /* REGISTERS */ |