aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/mtrr.h
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-02-20 11:11:40 +0000
committerKeir Fraser <keir.fraser@citrix.com>2009-02-20 11:11:40 +0000
commit3a3034d1015f9360068d8719e22afbe06a2bedbb (patch)
tree6d1bb015512d44a7af9df8145cba41c2f9410989 /xen/include/asm-x86/mtrr.h
parentd3d0b89247f091dd6961c739c91a8a613cdffe65 (diff)
downloadxen-3a3034d1015f9360068d8719e22afbe06a2bedbb.tar.gz
xen-3a3034d1015f9360068d8719e22afbe06a2bedbb.tar.bz2
xen-3a3034d1015f9360068d8719e22afbe06a2bedbb.zip
[VTD] Utilise the snoop control capability in shadow with VT-d code
We compute the shadow PAT index in leaf page entries now as: 1) No VT-d assigned: let shadow PAT index as WB, handled already in shadow code before. 2) direct assigned MMIO area: let shadow code compute the shadow PAT with gMTRR=UC and gPAT value. 3) Snoop control enable: let shadow PAT index as WB. 4) Snoop control disable: let shadow code compute the shadow PAT with gMTRR and gPAT, handled already in shadow code before Signed-off-by: Xin, Xiaohui <xiaohui.xin@intel.com>
Diffstat (limited to 'xen/include/asm-x86/mtrr.h')
-rw-r--r--xen/include/asm-x86/mtrr.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/xen/include/asm-x86/mtrr.h b/xen/include/asm-x86/mtrr.h
index 65d56f7d8e..03285db5bd 100644
--- a/xen/include/asm-x86/mtrr.h
+++ b/xen/include/asm-x86/mtrr.h
@@ -11,6 +11,7 @@
#define MTRR_TYPE_WRBACK 6
#define MTRR_NUM_TYPES 7
#define MEMORY_NUM_TYPES MTRR_NUM_TYPES
+#define NO_HARDCODE_MEM_TYPE MTRR_NUM_TYPES
#define NORMAL_CACHE_MODE 0
#define NO_FILL_CACHE_MODE 2
@@ -63,7 +64,7 @@ extern int mtrr_del(int reg, unsigned long base, unsigned long size);
extern int mtrr_del_page(int reg, unsigned long base, unsigned long size);
extern void mtrr_centaur_report_mcr(int mcr, u32 lo, u32 hi);
extern u32 get_pat_flags(struct vcpu *v, u32 gl1e_flags, paddr_t gpaddr,
- paddr_t spaddr);
+ paddr_t spaddr, uint8_t gmtrr_mtype);
extern uint8_t epte_get_entry_emt(
struct domain *d, unsigned long gfn, unsigned long mfn,
uint8_t *igmt, int direct_mmio);