summary refs log tree commit diff stats
path: root/include/hw/core
diff options
context:
space:
mode:
authorAlex Bennée <alex.bennee@linaro.org>2024-05-30 20:42:46 +0100
committerPhilippe Mathieu-Daudé <philmd@linaro.org>2024-06-04 10:02:39 +0200
commitb8a208ccf51013a88eb410a7820a4951834a913f (patch)
tree8bccf1322cf541c25154cdff73a52178ad5b7f83 /include/hw/core
parenta128c309c914ccc2e742fb015320a554c9faf8b9 (diff)
downloadfocaccia-qemu-b8a208ccf51013a88eb410a7820a4951834a913f.tar.gz
focaccia-qemu-b8a208ccf51013a88eb410a7820a4951834a913f.zip
hw/core: expand on the alignment of CPUState
Make the relationship between CPUState, ArchCPU and cpu_env a bit
clearer in the kdoc comments.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-ID: <20240530194250.1801701-2-alex.bennee@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Diffstat (limited to 'include/hw/core')
-rw-r--r--include/hw/core/cpu.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index bb398e8237..be44746d24 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -391,7 +391,8 @@ struct qemu_work_item;
 #define CPU_UNSET_NUMA_NODE_ID -1
 
 /**
- * CPUState:
+ * struct CPUState - common state of one CPU core or thread.
+ *
  * @cpu_index: CPU index (informative).
  * @cluster_index: Identifies which cluster this CPU is in.
  *   For boards which don't define clusters or for "loose" CPUs not assigned
@@ -439,10 +440,15 @@ struct qemu_work_item;
  * @kvm_fetch_index: Keeps the index that we last fetched from the per-vCPU
  *    dirty ring structure.
  *
- * State of one CPU core or thread.
+ * @neg_align: The CPUState is the common part of a concrete ArchCPU
+ * which is allocated when an individual CPU instance is created. As
+ * such care is taken is ensure there is no gap between between
+ * CPUState and CPUArchState within ArchCPU.
  *
- * Align, in order to match possible alignment required by CPUArchState,
- * and eliminate a hole between CPUState and CPUArchState within ArchCPU.
+ * @neg: The architectural register state ("cpu_env") immediately follows
+ * CPUState in ArchCPU and is passed to TCG code. The @neg structure holds
+ * some common TCG CPU variables which are accessed with a negative offset
+ * from cpu_env.
  */
 struct CPUState {
     /*< private >*/