On Fri, Jul 03, 2026 at 01:38:31PM +0200, Markus Armbruster wrote:
Daniel P. Berrangé <berrange@redhat.com> writes:
This introduces a Monitor QOM object, with MonitorHMP and MonitorQMP subclasses. This is the bare minimum conversion of just the type declarations and replacing g_new/g_free with object_new/object_unref. The Monitor base class is abstract since only the HMP/QMP variants should ever be created.
When created through the existing QemuOpts interfaces, the new internal QOM object will get assigned a dynamic ID with the format "compat_monitorNNN" which is the historical QemuOpts ID naming pattern.
Uh, sometimes the name isn't "compat_monitorNNN".
I'm not sure whether talking about QemuOpts helps or hurts here. Let me try not to talk about it:
This introduces abstract QOM type "monitor", with concrete subtypes "monitor-hmp" and "monitor-qmp". This is the bare minimum conversion of just the type declarations and replacing g_new/g_free with object_new/object_unref.
Command line option -monitor now creates a monitor-hmp object /objects/compat_monitorNNN in addition to the character device /chardevs/compat_monitorNNN. NNN counts up from zero.
Exception: -monitor chardev:ID creates a monitor-hmp object /objects/ID, and does not create a character device.
-qmp and -qmp-pretty work the same, except they create a monitor-qmp object.
-mon now creates a monitor-hmp or monitor-qmp object /objects/ID if the option argument provides an ID, else /objects/compat_monitorNNN.
If you want to make the connection to QemuOpts ID, add
Note that the object's name in /objects/ matches the QemuOpts ID when it exists. The only case where it doesn't exist is -mon without ID.
Finally, point to what's coming:
A future patch will make "monitor-hmp" and "monitor-qmp" work with -object and object-add.
Ok, that's all fine with me.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|