diff options
author | Eduardo Habkost <ehabkost@redhat.com> | 2015-05-08 16:04:22 -0300 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2015-05-14 17:25:46 +0200 |
commit | 58f88d4b7e9e5578b8dd2c5acfe555b85b35af88 (patch) | |
tree | 80626062506fc7d5b9dba8516f545f18489643bf | |
parent | 1eeace9c237a729d11c7acd7c0338ab4562af637 (diff) | |
download | qemu-58f88d4b7e9e5578b8dd2c5acfe555b85b35af88.zip qemu-58f88d4b7e9e5578b8dd2c5acfe555b85b35af88.tar.gz qemu-58f88d4b7e9e5578b8dd2c5acfe555b85b35af88.tar.bz2 |
qmp: Add qom_path field to query-cpus command
This will allow clients to query additional information directly using
qom-get on the CPU objects.
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
-rw-r--r-- | cpus.c | 1 | ||||
-rw-r--r-- | qapi-schema.json | 8 | ||||
-rw-r--r-- | qmp-commands.hx | 7 |
3 files changed, 12 insertions, 4 deletions
@@ -1435,6 +1435,7 @@ CpuInfoList *qmp_query_cpus(Error **errp) info->value->CPU = cpu->cpu_index; info->value->current = (cpu == first_cpu); info->value->halted = cpu->halted; + info->value->qom_path = object_get_canonical_path(OBJECT(cpu)); info->value->thread_id = cpu->thread_id; #if defined(TARGET_I386) info->value->has_pc = true; diff --git a/qapi-schema.json b/qapi-schema.json index 9c92482..f97ffa1 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -679,6 +679,8 @@ # @halted: true if the virtual CPU is in the halt state. Halt usually refers # to a processor specific low power mode. # +# @qom_path: path to the CPU object in the QOM tree (since 2.4) +# # @pc: #optional If the target is i386 or x86_64, this is the 64-bit instruction # pointer. # If the target is Sparc, this is the PC component of the @@ -699,8 +701,10 @@ # data is sent to the client, the guest may no longer be halted. ## { 'struct': 'CpuInfo', - 'data': {'CPU': 'int', 'current': 'bool', 'halted': 'bool', '*pc': 'int', - '*nip': 'int', '*npc': 'int', '*PC': 'int', 'thread_id': 'int'} } + 'data': {'CPU': 'int', 'current': 'bool', 'halted': 'bool', + 'qom_path': 'str', + '*pc': 'int', '*nip': 'int', '*npc': 'int', '*PC': 'int', + 'thread_id': 'int'} } ## # @query-cpus: diff --git a/qmp-commands.hx b/qmp-commands.hx index 7506774..14e109e 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -2569,6 +2569,7 @@ Return a json-array. Each CPU is represented by a json-object, which contains: - "CPU": CPU index (json-int) - "current": true if this is the current CPU, false otherwise (json-bool) - "halted": true if the cpu is halted, false otherwise (json-bool) +- "qom_path": path to the CPU object in the QOM tree (json-str) - Current program counter. The key's name depends on the architecture: "pc": i386/x86_64 (json-int) "nip": PPC (json-int) @@ -2585,14 +2586,16 @@ Example: "CPU":0, "current":true, "halted":false, - "pc":3227107138 + "qom_path":"/machine/unattached/device[0]", + "pc":3227107138, "thread_id":3134 }, { "CPU":1, "current":false, "halted":true, - "pc":7108165 + "qom_path":"/machine/unattached/device[2]", + "pc":7108165, "thread_id":3135 } ] |