@@ -19,6 +19,10 @@
#ifndef EXEC_TLB_COMMON_H
#define EXEC_TLB_COMMON_H 1
+#ifndef CONFIG_TCG
+#error Can only include this header with TCG
+#endif
+
#define CPU_TLB_ENTRY_BITS 5
/* Minimalized TLB entry for use by TCG fast path. */
@@ -27,7 +27,6 @@
#include "exec/vaddr.h"
#include "exec/memattrs.h"
#include "exec/mmu-access-type.h"
-#include "exec/tlb-common.h"
#include "qapi/qapi-types-run-state.h"
#include "qemu/bitmap.h"
#include "qemu/rcu_queue.h"
@@ -256,6 +255,9 @@ typedef struct CPUTLBEntryFull {
} extra;
} CPUTLBEntryFull;
+#ifdef CONFIG_TCG
+#include "exec/tlb-common.h"
+
/*
* Data elements that are per MMU mode, minus the bits accessed by
* the TCG fast path.
@@ -311,11 +313,9 @@ typedef struct CPUTLBCommon {
* negative offsets are at the end of the struct.
*/
typedef struct CPUTLB {
-#ifdef CONFIG_TCG
CPUTLBCommon c;
CPUTLBDesc d[NB_MMU_MODES];
CPUTLBDescFast f[NB_MMU_MODES];
-#endif
} CPUTLB;
/*
@@ -337,6 +337,7 @@ typedef union IcountDecr {
#endif
} u16;
} IcountDecr;
+#endif
/**
* CPUNegativeOffsetState: Elements of CPUState most efficiently accessed
@@ -345,6 +346,7 @@ typedef union IcountDecr {
* @plugin_mem_cbs: active plugin memory callbacks
*/
typedef struct CPUNegativeOffsetState {
+#ifdef CONFIG_TCG
CPUTLB tlb;
#ifdef CONFIG_PLUGIN
/*
@@ -354,6 +356,7 @@ typedef struct CPUNegativeOffsetState {
#endif
IcountDecr icount_decr;
bool can_do_io;
+#endif
} CPUNegativeOffsetState;
struct KVMState;