On Tue, Feb 10, 2026 at 09:56:08AM +0000, Daniel P. Berrangé wrote:
> Date: Tue, 10 Feb 2026 09:56:08 +0000
> From: "Daniel P. Berrangé" <[email protected]>
> Subject: Re: [PATCH v2 14/21] hw/core/qdev-properties: allow qdev
>  properties accept flags
> 
> On Tue, Feb 10, 2026 at 11:23:41AM +0800, Zhao Liu wrote:
> > Update qdev property interfaces (qdev_property_add_static() and
> > qdev_class_add_property()) to accept and pass 'ObjectPropertyFlags'.
> > This enables marking qdev properties with flags such as DEPRECATED or
> > INTERNAL.
> > 
> > To facilitate this at the definition level, extend the boolean and
> > uint8_t property macros (as the examples) to accept variable arguments
> > (VA_ARGS). This allows callers to optionally specify flags in the
> > property definition.
> > 
> > Example:
> > 
> > DEFINE_PROP_UINT8("version", IOAPICCommonState, version, IOAPIC_VER_DEF,
> >                   .flags = OBJECT_PROPERTY_DEPRECATED),
> 
> In other places where we track deprecation in QEMU, we have not used
> a boolean flag. Instead we have used a "const char *deprecation_note"
> internally, which lets us provide a user facing message, to be printed
> out in the warn_report, informing them what to do instead (either the
> feature is entirely removed, or there is a better alternative). IMHO
> we should be following the same pattern for properties, as it is much
> more user friendly than just printing a totally generic message
> "XXXX is deprecated, stop using it" 

Yes, rich deprecation hint is better. I think this still depends on
USER_SET - distinguish internal/external or not :-(.

Since when we mark a property as deprecated, its code remains in the
code tree, and internal calls should not trigger warnings. Deprecation
hints are intended to reminder external users.

Thanks,
Zhao


Reply via email to