> -----Original Message-----
> From: Richard Henderson <[email protected]>
> Sent: Wednesday, February 9, 2022 4:48 PM
> To: Philippe Mathieu-Daudé <[email protected]>; [email protected]
> Cc: Paolo Bonzini <[email protected]>; Thomas Huth
> <[email protected]>; Taylor Simpson <[email protected]>
> Subject: Re: [PATCH 11/15] target: Use ArchCPU as interface to target CPU
>
> On 2/10/22 08:54, Philippe Mathieu-Daudé wrote:
> > diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h index
> > 25c67e43a2..4dce40a360 100644
> > --- a/target/hexagon/cpu.h
> > +++ b/target/hexagon/cpu.h
> > @@ -143,7 +143,7 @@ typedef struct HexagonCPUClass {
> > DeviceReset parent_reset;
> > } HexagonCPUClass;
> >
> > -typedef struct HexagonCPU {
> > +typedef struct ArchCPU {
> > /*< private >*/
> > CPUState parent_obj;
> > /*< public >*/
>
> There's still the typedef of ArchCPU below, which ought to be redundant
> now.
> It may or may not be less confusing to separate out the typedef for
> HexagonCPU.
> It definitely would be worthwhile to convert hexagon to
> OBJECT_DECLARE_TYPE (cc Taylor).
IIUC, the change to convert to OBJECT_DECLARE_TYPE would be
diff --git a/target/hexagon/cpu.h b/target/hexagon/cpu.h
index c068e219f1..3b636595a3 100644
--- a/target/hexagon/cpu.h
+++ b/target/hexagon/cpu.h
@@ -131,12 +131,7 @@ struct CPUHexagonState {
VTCMStoreLog vtcm_log;
};
-#define HEXAGON_CPU_CLASS(klass) \
- OBJECT_CLASS_CHECK(HexagonCPUClass, (klass), TYPE_HEXAGON_CPU)
-#define HEXAGON_CPU(obj) \
- OBJECT_CHECK(HexagonCPU, (obj), TYPE_HEXAGON_CPU)
-#define HEXAGON_CPU_GET_CLASS(obj) \
- OBJECT_GET_CLASS(HexagonCPUClass, (obj), TYPE_HEXAGON_CPU)
+OBJECT_DECLARE_TYPE(HexagonCPU, HexagonCPUClass, HEXAGON_CPU)
typedef struct HexagonCPUClass {
/*< private >*/
If that's correct, the typedef struct HexagonCPUClass should NOT change to
typedef struct ArchCPU, and the typdef of ArchCPU below would stay.
So, If I submit the above as a standalone patch, then Philippe wouldn't need to
modify target/hexagon/cpu.h. Correct?
Thanks,
Taylor