summary refs log tree commit diff stats
path: root/scripts/qemugdb/mtree.py
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2018-03-09 16:59:53 +0800
committerEric Blake <eblake@redhat.com>2018-03-19 14:58:37 -0500
commit02130314d8c71743e6d1fefc2b08a608516bccc7 (patch)
tree8affa039a7e8eb8b2d04c16a41e1d732b6319a3a /scripts/qemugdb/mtree.py
parenta5ed352596a8b7eb2f9acce34371b944ac3056c4 (diff)
downloadfocaccia-qemu-02130314d8c71743e6d1fefc2b08a608516bccc7.tar.gz
focaccia-qemu-02130314d8c71743e6d1fefc2b08a608516bccc7.zip
qmp: introduce QMPCapability
There were no QMP capabilities defined.  Define the first capability,
"oob", to allow out-of-band messages.

After this patch, we will allow QMP clients to enable QMP capabilities
when sending the first "qmp_capabilities" command.  Originally we are
starting QMP session with no arguments like:

  { "execute": "qmp_capabilities" }

Now we can enable some QMP capabilities using (take OOB as example,
which is the only capability that we support):

  { "execute": "qmp_capabilities",
    "arguments": { "enable": [ "oob" ] } }

When the "arguments" key is not provided, no capability is enabled.

For capability "oob", the monitor needs to be run on a dedicated IO
thread, otherwise the command will fail.  For example, trying to enable
OOB on a MUXed typed QMP monitor will fail.

One thing to mention is that QMP capabilities are per-monitor, and also
when the connection is closed due to some reason, the capabilities will
be reset.

Also, touch up qmp-test.c to test the new bits.

Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20180309090006.10018-11-peterx@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
[eblake: touch up commit message]
Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'scripts/qemugdb/mtree.py')
0 files changed, 0 insertions, 0 deletions