Re: [PATCH 01/27] include/qemu/target-info-qom.h: declare TYPE_TARGET_SPECIFIC interface
Pierrick Bouvier <[email protected]> Wed, 5 Aug 2026 09:16:20 -0700
| Newsgroups | gmane.comp.emulators.qemu |
|---|---|
| Message-ID | <[email protected]> |
On 8/5/2026 7:05 AM, Daniel P. Berrangé wrote: > On Fri, Jul 24, 2026 at 12:09:21AM +0000, Pierrick Bouvier wrote: >> In the next commits, We'll replace the logic to filter QOM types per >> target from a static one (based on INTERFACES) to a runtime one, based >> on is_available() function, that can be overriden per class. >> >> Introduce the new interface we'll use for that. >> >> Signed-off-by: Pierrick Bouvier <[email protected]> >> --- >> include/qemu/target-info-qom.h | 15 +++++++++++++++ >> target-info-qom.c | 5 +++++ >> 2 files changed, 20 insertions(+) >> >> diff --git a/include/qemu/target-info-qom.h b/include/qemu/target-info-qom.h >> index 91be415ed33..83eb537333b 100644 >> --- a/include/qemu/target-info-qom.h >> +++ b/include/qemu/target-info-qom.h >> @@ -14,6 +14,21 @@ >> >> #define TYPE_TARGET_INFO "target-info" >> >> +#define TYPE_TARGET_SPECIFIC "target-specific" >> + >> +typedef struct TargetSpecific TargetSpecific; >> + >> +typedef struct TargetSpecificClass { >> + InterfaceClass parent_class; >> + >> + bool (*is_available)(void); >> +} TargetSpecificClass; >> + >> +#define TARGET_SPECIFIC(obj) \ >> + INTERFACE_CHECK(TargetSpecific, (obj), TYPE_TARGET_SPECIFIC) >> +DECLARE_CLASS_CHECKERS(TargetSpecificClass, TARGET_SPECIFIC, >> + TYPE_TARGET_SPECIFIC) > > Looking through the series,I don't really see the point > in this interface. Why is this not possible to do by > adding 'is_available' to MachineClass. It would make > the rest of the series simpler and especially avoid the > need to introduced yet more series of macros for defining > machine classes. > We'll need the exact same interface for cpus, and devices also. IMHO, it makes sense to have this in an external interface, instead of forcing it to be present in all cpus/devices/machines. I also considered adding it directly in Object class directly (would be the simplest), but I felt it would be hard to motivate it. What do you think? > With regards, > Daniel