diff options
author | aiju <devnull@localhost> | 2017-06-21 22:18:26 +0000 |
---|---|---|
committer | aiju <devnull@localhost> | 2017-06-21 22:18:26 +0000 |
commit | 5c0bff4ba204cfad7aedb8c1c20f1c29265dcb01 (patch) | |
tree | 055fa5e6319b94d0f2992480a0e6ed0271179fb6 /sys/src/cmd/vmx/x86.h | |
parent | 37b9ab5a043e45a68979632c177e11af7a439027 (diff) |
vmx(1): add support for (so far) crude 9p debugging fs; add gdb stub; clean up linux gdt code
Diffstat (limited to 'sys/src/cmd/vmx/x86.h')
-rw-r--r-- | sys/src/cmd/vmx/x86.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/sys/src/cmd/vmx/x86.h b/sys/src/cmd/vmx/x86.h new file mode 100644 index 000000000..df19a35b4 --- /dev/null +++ b/sys/src/cmd/vmx/x86.h @@ -0,0 +1,29 @@ +#define GDTTYPE(x) ((uvlong)(x)<<40) +enum { + GDTR = GDTTYPE(0x10), /* read-only */ + GDTRW = GDTTYPE(0x12), /* read-write * + GDTX = GDTTYPE(0x18), /* execute-only */ + GDTRX = GDTTYPE(0x1A), /* read-execute */ + + GDTTSS = GDTTYPE(0x09), + + GDTA = 1ULL<<40, /* accessed */ + GDTE = 1ULL<<42, /* expand down (data only) */ + GDTC = GDTE, /* conforming (code only) */ + GDTP = 1ULL<<47, /* present */ + GDT64 = 1ULL<<53, /* 64-bit code segment */ + GDT32 = 1ULL<<54, /* 32-bit segment */ + GDTG = 1ULL<<55, /* granularity */ +}; +#define GDTLIM(l) ((l) & 0xffff | (uvlong)((l) & 0xf0000)<<32) +#define GDTBASE(l) (((uvlong)(l) & 0xffffff)<<16 | (uvlong)((l) & 0xff000000)<<32) +#define GDTDPL(l) ((uvlong)(l)<<45) + +enum { + Cr0Pg = 1<<31, + + Cr4Pse = 1<<4, + Cr4Pae = 1<<5, + + EferLme = 1<<8, +}; |