Peter Maydell <peter.maydell@linaro.org> writes:
On Thu, 9 Oct 2025 at 15:56, Markus Armbruster <armbru@redhat.com> wrote:
qdev introspection (device-list-properties) is like QOM type introspection. I'm not sure why it exists.
It exists because it is the older of the two interfaces: device-list-properties was added in 2012, whereas qom-list-properties was only added in 2018.
I suspected it was, but didn't want to make unchecked claims. Thanks for checking!
device-list-properties also does some device-specific sanitization that may or may not be helpful: it won't let you try it on an abstract base class, for instance,
Introspecting abstract bases is probably not useful. But what harm could it do? Can't see why preventing it is worth the bother. Of course, changing it now is not worth the bother, either :)
and it won't list "legacy-" properties.
I remember these exist, but not what they're good for :) Should we deprecate device-list-properties in favour of qom-list-properties?
One problem you don't mention with QOM introspection is that we have no marking for whether properties are intended to be user-facing knobs, configurable things to be set by other parts of QEMU, or purely details of the implementation.
Yes. This is what I had in mind when I pointed out "accidental external interfaces".