p2m->change_entry_type_global = ept_change_entry_type_global;
p2m->change_entry_type_range = ept_change_entry_type_range;
p2m->memory_type_changed = ept_memory_type_changed;
+#if P2M_AUDIT
p2m->audit_p2m = NULL;
+#endif
p2m->tlb_flush = ept_tlb_flush;
/* Set the memory type used when accessing EPT paging structures. */
return err;
}
-#if P2M_AUDIT && defined(CONFIG_HVM)
-long p2m_pt_audit_p2m(struct p2m_domain *p2m)
+#if P2M_AUDIT
+static long p2m_pt_audit_p2m(struct p2m_domain *p2m)
{
unsigned long entry_count = 0, pmbad = 0;
unsigned long mfn, gfn, m2pfn;
return pmbad;
}
-#else
-# define p2m_pt_audit_p2m NULL
#endif /* P2M_AUDIT */
/* Set up the p2m function pointers for pagetable format */
#if P2M_AUDIT
p2m->audit_p2m = p2m_pt_audit_p2m;
-#else
- p2m->audit_p2m = NULL;
#endif
}
#include <asm/mem_sharing.h>
#include <asm/page.h> /* for pagetable_t */
+/* Debugging and auditing of the P2M code? */
+#if !defined(NDEBUG) && defined(CONFIG_HVM)
+#define P2M_AUDIT 1
+#else
+#define P2M_AUDIT 0
+#endif
+#define P2M_DEBUGGING 0
+
extern bool_t opt_hap_1gb, opt_hap_2mb;
/*
int (*write_p2m_entry)(struct p2m_domain *p2m,
unsigned long gfn, l1_pgentry_t *p,
l1_pgentry_t new, unsigned int level);
+#if P2M_AUDIT
long (*audit_p2m)(struct p2m_domain *p2m);
+#endif
/*
* P2M updates may require TLBs to be flushed (invalidated).
void *map_domain_gfn(struct p2m_domain *p2m, gfn_t gfn, mfn_t *mfn,
p2m_query_t q, uint32_t *pfec);
-/* Debugging and auditing of the P2M code? */
-#ifndef NDEBUG
-#define P2M_AUDIT 1
-#else
-#define P2M_AUDIT 0
-#endif
-#define P2M_DEBUGGING 0
-
#if P2M_AUDIT
extern void audit_p2m(struct domain *d,
uint64_t *orphans,