On 13/10/23 06:06, Richard Henderson wrote:
On 10/10/23 02:28, Philippe Mathieu-Daudé wrote:
"target/foo/cpu.h" contains the target specific declarations.
A heterogeneous setup need to access target agnostic declarations
(at least the QOM ones, to instantiate the objects).
Our convention is to add such target agnostic QOM declarations in
the "target/foo/cpu-qom.h" header.
Extract QOM definitions from "cpu.h" to "cpu-qom.h".
Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org>
---
target/hexagon/cpu-qom.h | 35 +++++++++++++++++++++++++++++++++++
target/hexagon/cpu.h | 23 +----------------------
2 files changed, 36 insertions(+), 22 deletions(-)
create mode 100644 target/hexagon/cpu-qom.h
+OBJECT_DECLARE_CPU_TYPE(HexagonCPU, HexagonCPUClass, HEXAGON_CPU)
+
+typedef struct HexagonCPUClass {
+ CPUClass parent_class;
+
+ DeviceRealize parent_realize;
+ ResettablePhases parent_phases;
+} HexagonCPUClass;
I can't imagine the class structure being any more useful generically
than the object structure. All we need at this point is the typedef,
provided by OBJECT_DECLARE_TYPE.
Right.
I know this makes hexagon match others, but I think its the wrong
direction of cleanup.
I agree.