[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 02/11] include: Introduce tlb_ptr field to CPUState
From: |
Anton Johansson |
Subject: |
[PATCH 02/11] include: Introduce tlb_ptr field to CPUState |
Date: |
Tue, 12 Sep 2023 17:34:19 +0200 |
Adds a CPUTLB * field to CPUState in order to access the TLB without
knowledge of the ArchCPU struct layout. A cpu_tlb(CPUState *) function
is added for ease of access.
Signed-off-by: Anton Johansson <anjo@rev.ng>
---
include/exec/cpu-all.h | 12 ++++++++++++
include/hw/core/cpu.h | 6 ++++++
2 files changed, 18 insertions(+)
diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
index c2c62160c6..b03218d7d3 100644
--- a/include/exec/cpu-all.h
+++ b/include/exec/cpu-all.h
@@ -435,6 +435,7 @@ static inline void cpu_set_cpustate_pointers(ArchCPU *cpu)
{
cpu->parent_obj.env_ptr = &cpu->env;
cpu->parent_obj.icount_decr_ptr = &cpu->neg.icount_decr;
+ cpu->parent_obj.tlb_ptr = &cpu->neg.tlb;
}
/**
@@ -494,4 +495,15 @@ static inline CPUTLB *env_tlb(CPUArchState *env)
return &env_neg(env)->tlb;
}
+/**
+ * cpu_tlb(cpu)
+ * @cpu: The generic CPUState
+ *
+ * Return the CPUTLB state associated with the cpu.
+ */
+static inline CPUTLB *cpu_tlb(CPUState *cpu)
+{
+ return cpu->tlb_ptr;
+}
+
#endif /* CPU_ALL_H */
diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index 92a4234439..dd31303480 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -238,7 +238,12 @@ typedef struct SavedIOTLB {
} SavedIOTLB;
#endif
+/* see include/exec/cpu-defs.h */
+struct CPUTLB;
+
+/* see include/sysemu/kvm_int.h */
struct KVMState;
+/* see linux-headers/linux/kvm.h */
struct kvm_run;
/* work queue */
@@ -372,6 +377,7 @@ struct CPUState {
CPUArchState *env_ptr;
IcountDecr *icount_decr_ptr;
+ struct CPUTLB *tlb_ptr;
CPUJumpCache *tb_jmp_cache;
--
2.41.0
- [PATCH 00/11] Reduce usage of CPUArchState in cputlb.c, Anton Johansson, 2023/09/12
- [PATCH 01/11] target/arm: Replace TARGET_PAGE_ENTRY_EXTRA, Anton Johansson, 2023/09/12
- [PATCH 02/11] include: Introduce tlb_ptr field to CPUState,
Anton Johansson <=
- [PATCH 08/11] include/exec: Remove env_tlb(), Anton Johansson, 2023/09/12
- [PATCH 10/11] accel/tcg: Unify user and softmmu do_[st|ld]*_mmu(), Anton Johansson, 2023/09/12
- [PATCH 11/11] accel/tcg: move ld/st helpers to ldst_common.c.inc, Anton Johansson, 2023/09/12
- [PATCH 05/11] accel/tcg: Modifies memory access functions to use CPUState, Anton Johansson, 2023/09/12
- [PATCH 06/11] accel/tcg: Modify atomic_mmu_lookup() to use CPUState, Anton Johansson, 2023/09/12
- [PATCH 09/11] tcg: Update env_tlb() comments, Anton Johansson, 2023/09/12