* [Qemu-devel] [PULL 0/4] QMP queue
@ 2013-03-26 12:38 Luiz Capitulino
2013-03-26 12:38 ` [Qemu-devel] [PULL 1/4] QMP: Remove duplicate TPM type from query-tpm Luiz Capitulino
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Luiz Capitulino @ 2013-03-26 12:38 UTC (permalink / raw)
To: qemu-devel; +Cc: aliguori
The changes (since dcadaa9b40d6019ac18d6fd7763d43048ef79218) are available
in the following repository:
git://repo.or.cz/qemu/qmp-unstable.git queue/qmp
Corey Bryant (2):
QMP: Remove duplicate TPM type from query-tpm
QMP: TPM QMP and man page documentation updates
Igor Mammedov (1):
qmp: fix handling of boolean values in qmp-shell
Michal Novotny (1):
New QMP command query-cpu-max and HMP command cpu_max
QMP/qmp-shell | 7 ++++-
hmp-commands.hx | 2 ++
hmp.c | 16 +++++++++---
hmp.h | 1 +
monitor.c | 7 +++++
qapi-schema.json | 23 ++++++++++------
qemu-options.hx | 3 ++-
qmp-commands.hx | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tpm/tpm.c | 9 +++----
vl.c | 5 ++++
10 files changed, 134 insertions(+), 19 deletions(-)
--
1.8.1.4
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PULL 1/4] QMP: Remove duplicate TPM type from query-tpm
2013-03-26 12:38 [Qemu-devel] [PULL 0/4] QMP queue Luiz Capitulino
@ 2013-03-26 12:38 ` Luiz Capitulino
2013-03-26 12:38 ` [Qemu-devel] [PULL 2/4] QMP: TPM QMP and man page documentation updates Luiz Capitulino
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Luiz Capitulino @ 2013-03-26 12:38 UTC (permalink / raw)
To: qemu-devel; +Cc: aliguori
From: Corey Bryant <coreyb@linux.vnet.ibm.com>
Signed-off-by: Corey Bryant <coreyb@linux.vnet.ibm.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
hmp.c | 8 ++++----
qapi-schema.json | 12 ++++--------
tpm/tpm.c | 9 ++++-----
3 files changed, 12 insertions(+), 17 deletions(-)
diff --git a/hmp.c b/hmp.c
index b0a861c..d319897 100644
--- a/hmp.c
+++ b/hmp.c
@@ -631,11 +631,11 @@ void hmp_info_tpm(Monitor *mon, const QDict *qdict)
c, TpmModel_lookup[ti->model]);
monitor_printf(mon, " \\ %s: type=%s",
- ti->id, TpmType_lookup[ti->type]);
+ ti->id, TpmTypeOptionsKind_lookup[ti->options->kind]);
- switch (ti->tpm_options->kind) {
- case TPM_TYPE_OPTIONS_KIND_TPM_PASSTHROUGH_OPTIONS:
- tpo = ti->tpm_options->tpm_passthrough_options;
+ switch (ti->options->kind) {
+ case TPM_TYPE_OPTIONS_KIND_PASSTHROUGH:
+ tpo = ti->options->passthrough;
monitor_printf(mon, "%s%s%s%s",
tpo->has_path ? ",path=" : "",
tpo->has_path ? tpo->path : "",
diff --git a/qapi-schema.json b/qapi-schema.json
index 088f4e1..0d16d14 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3403,13 +3403,12 @@
#
# A union referencing different TPM backend types' configuration options
#
-# @tpm-passthough-options: TPMPassthroughOptions describing the TPM
-# passthrough configuration options
+# @passthrough: The configuration options for the TPM passthrough type
#
# Since: 1.5
##
{ 'union': 'TpmTypeOptions',
- 'data': { 'tpm-passthrough-options' : 'TPMPassthroughOptions' } }
+ 'data': { 'passthrough' : 'TPMPassthroughOptions' } }
##
# @TpmInfo:
@@ -3420,17 +3419,14 @@
#
# @model: The TPM frontend model
#
-# @type: The TPM (backend) type being used
-#
-# @tpm-options: The TPM (backend) type configuration options
+# @options: The TPM (backend) type configuration options
#
# Since: 1.5
##
{ 'type': 'TPMInfo',
'data': {'id': 'str',
'model': 'TpmModel',
- 'type': 'TpmType',
- 'tpm-options': 'TpmTypeOptions' } }
+ 'options': 'TpmTypeOptions' } }
##
# @query-tpm:
diff --git a/tpm/tpm.c b/tpm/tpm.c
index ffd2495..ae00eae 100644
--- a/tpm/tpm.c
+++ b/tpm/tpm.c
@@ -257,14 +257,13 @@ static TPMInfo *qmp_query_tpm_inst(TPMBackend *drv)
res->id = g_strdup(drv->id);
res->model = drv->fe_model;
- res->type = drv->ops->type;
- res->tpm_options = g_new0(TpmTypeOptions, 1);
+ res->options = g_new0(TpmTypeOptions, 1);
- switch (res->type) {
+ switch (drv->ops->type) {
case TPM_TYPE_PASSTHROUGH:
- res->tpm_options->kind = TPM_TYPE_OPTIONS_KIND_TPM_PASSTHROUGH_OPTIONS;
+ res->options->kind = TPM_TYPE_OPTIONS_KIND_PASSTHROUGH;
tpo = g_new0(TPMPassthroughOptions, 1);
- res->tpm_options->tpm_passthrough_options = tpo;
+ res->options->passthrough = tpo;
if (drv->path) {
tpo->path = g_strdup(drv->path);
tpo->has_path = true;
--
1.8.1.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PULL 2/4] QMP: TPM QMP and man page documentation updates
2013-03-26 12:38 [Qemu-devel] [PULL 0/4] QMP queue Luiz Capitulino
2013-03-26 12:38 ` [Qemu-devel] [PULL 1/4] QMP: Remove duplicate TPM type from query-tpm Luiz Capitulino
@ 2013-03-26 12:38 ` Luiz Capitulino
2013-03-26 12:38 ` [Qemu-devel] [PULL 3/4] qmp: fix handling of boolean values in qmp-shell Luiz Capitulino
2013-03-26 12:38 ` [Qemu-devel] [PULL 4/4] New QMP command query-cpu-max and HMP command cpu_max Luiz Capitulino
3 siblings, 0 replies; 5+ messages in thread
From: Luiz Capitulino @ 2013-03-26 12:38 UTC (permalink / raw)
To: qemu-devel; +Cc: aliguori
From: Corey Bryant <coreyb@linux.vnet.ibm.com>
Signed-off-by: Corey Bryant <coreyb@linux.vnet.ibm.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
qemu-options.hx | 3 ++-
qmp-commands.hx | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 60 insertions(+), 1 deletion(-)
diff --git a/qemu-options.hx b/qemu-options.hx
index d7afeab..c40ba55 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -2241,7 +2241,8 @@ Backend type must be:
@option{passthrough}.
The specific backend type will determine the applicable options.
-The @code{-tpmdev} option requires a @code{-device} option.
+The @code{-tpmdev} option creates the TPM backend and requires a
+@code{-device} option that specifies the TPM frontend interface model.
Options to each backend are described below.
diff --git a/qmp-commands.hx b/qmp-commands.hx
index b370060..3aa6bd1 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -2721,18 +2721,76 @@ EQMP
.mhandler.cmd_new = qmp_marshal_input_query_tpm,
},
+SQMP
+query-tpm
+---------
+
+Return information about the TPM device.
+
+Arguments: None
+
+Example:
+
+-> { "execute": "query-tpm" }
+<- { "return":
+ [
+ { "model": "tpm-tis",
+ "options":
+ { "type": "passthrough",
+ "data":
+ { "cancel-path": "/sys/class/misc/tpm0/device/cancel",
+ "path": "/dev/tpm0"
+ }
+ },
+ "id": "tpm0"
+ }
+ ]
+ }
+
+EQMP
+
{
.name = "query-tpm-models",
.args_type = "",
.mhandler.cmd_new = qmp_marshal_input_query_tpm_models,
},
+SQMP
+query-tpm-models
+----------------
+
+Return a list of supported TPM models.
+
+Arguments: None
+
+Example:
+
+-> { "execute": "query-tpm-models" }
+<- { "return": [ "tpm-tis" ] }
+
+EQMP
+
{
.name = "query-tpm-types",
.args_type = "",
.mhandler.cmd_new = qmp_marshal_input_query_tpm_types,
},
+SQMP
+query-tpm-types
+---------------
+
+Return a list of supported TPM types.
+
+Arguments: None
+
+Example:
+
+-> { "execute": "query-tpm-types" }
+<- { "return": [ "passthrough" ] }
+
+EQMP
+
{
.name = "chardev-add",
.args_type = "id:s,backend:q",
--
1.8.1.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PULL 3/4] qmp: fix handling of boolean values in qmp-shell
2013-03-26 12:38 [Qemu-devel] [PULL 0/4] QMP queue Luiz Capitulino
2013-03-26 12:38 ` [Qemu-devel] [PULL 1/4] QMP: Remove duplicate TPM type from query-tpm Luiz Capitulino
2013-03-26 12:38 ` [Qemu-devel] [PULL 2/4] QMP: TPM QMP and man page documentation updates Luiz Capitulino
@ 2013-03-26 12:38 ` Luiz Capitulino
2013-03-26 12:38 ` [Qemu-devel] [PULL 4/4] New QMP command query-cpu-max and HMP command cpu_max Luiz Capitulino
3 siblings, 0 replies; 5+ messages in thread
From: Luiz Capitulino @ 2013-03-26 12:38 UTC (permalink / raw)
To: qemu-devel; +Cc: aliguori
From: Igor Mammedov <imammedo@redhat.com>
qmp-shell converts only integer arguments and the rest
is assumed to be strings which are faithfully sent as
quoted strings by json. But QEMU refuses to accept qmp
command with boolean argument whose value is escaped
as string.
Fix it by special-casing true/false keywords and store
value as corresponding boolean.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
QMP/qmp-shell | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/QMP/qmp-shell b/QMP/qmp-shell
index 24b665c..d126e63 100755
--- a/QMP/qmp-shell
+++ b/QMP/qmp-shell
@@ -101,7 +101,12 @@ class QMPShell(qmp.QEMUMonitorProtocol):
try:
value = int(opt[1])
except ValueError:
- value = opt[1]
+ if opt[1] == 'true':
+ value = True
+ elif opt[1] == 'false':
+ value = False
+ else:
+ value = opt[1]
qmpcmd['arguments'][opt[0]] = value
return qmpcmd
--
1.8.1.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PULL 4/4] New QMP command query-cpu-max and HMP command cpu_max
2013-03-26 12:38 [Qemu-devel] [PULL 0/4] QMP queue Luiz Capitulino
` (2 preceding siblings ...)
2013-03-26 12:38 ` [Qemu-devel] [PULL 3/4] qmp: fix handling of boolean values in qmp-shell Luiz Capitulino
@ 2013-03-26 12:38 ` Luiz Capitulino
3 siblings, 0 replies; 5+ messages in thread
From: Luiz Capitulino @ 2013-03-26 12:38 UTC (permalink / raw)
To: qemu-devel; +Cc: aliguori
From: Michal Novotny <minovotn@redhat.com>
These commands return the maximum number of CPUs supported by the
currently running emulator instance, as defined in its QEMUMachine
struct.
Signed-off-by: Michal Novotny <minovotn@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
hmp-commands.hx | 2 ++
hmp.c | 8 ++++++++
hmp.h | 1 +
monitor.c | 7 +++++++
qapi-schema.json | 11 +++++++++++
qmp-commands.hx | 22 ++++++++++++++++++++++
vl.c | 5 +++++
7 files changed, 56 insertions(+)
diff --git a/hmp-commands.hx b/hmp-commands.hx
index df44906..3d98604 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -1643,6 +1643,8 @@ show qdev device model list
show roms
@item info tpm
show the TPM device
+@item info cpu_max
+show the number of CPUs supported by the machine being emulated.
@end table
ETEXI
diff --git a/hmp.c b/hmp.c
index d319897..c12c495 100644
--- a/hmp.c
+++ b/hmp.c
@@ -748,6 +748,14 @@ void hmp_ringbuf_read(Monitor *mon, const QDict *qdict)
g_free(data);
}
+void hmp_query_cpu_max(Monitor *mon, const QDict *qdict)
+{
+ int cpu_max;
+
+ cpu_max = qmp_query_cpu_max(NULL);
+ monitor_printf(mon, "Maximum number of CPUs is %d\n", cpu_max);
+}
+
static void hmp_cont_cb(void *opaque, int err)
{
if (!err) {
diff --git a/hmp.h b/hmp.h
index 95fe76e..80e8b41 100644
--- a/hmp.h
+++ b/hmp.h
@@ -42,6 +42,7 @@ void hmp_stop(Monitor *mon, const QDict *qdict);
void hmp_system_reset(Monitor *mon, const QDict *qdict);
void hmp_system_powerdown(Monitor *mon, const QDict *qdict);
void hmp_cpu(Monitor *mon, const QDict *qdict);
+void hmp_query_cpu_max(Monitor *mon, const QDict *qdict);
void hmp_memsave(Monitor *mon, const QDict *qdict);
void hmp_pmemsave(Monitor *mon, const QDict *qdict);
void hmp_ringbuf_write(Monitor *mon, const QDict *qdict);
diff --git a/monitor.c b/monitor.c
index 2d9e887..e450919 100644
--- a/monitor.c
+++ b/monitor.c
@@ -2746,6 +2746,13 @@ static mon_cmd_t info_cmds[] = {
.mhandler.cmd = hmp_info_tpm,
},
{
+ .name = "cpu_max",
+ .args_type = "",
+ .params = "",
+ .help = "Get maximum number of VCPUs supported by machine",
+ .mhandler.cmd = hmp_query_cpu_max,
+ },
+ {
.name = NULL,
},
};
diff --git a/qapi-schema.json b/qapi-schema.json
index 0d16d14..af499bd 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -1832,6 +1832,17 @@
{ 'command': 'query-migrate-cache-size', 'returns': 'int' }
##
+## @query-cpu-max
+##
+## query maximum number of CPUs supported by machine
+##
+## Returns: number of CPUs
+##
+## Since: 1.5
+###
+{ 'command': 'query-cpu-max', 'returns': 'int' }
+
+##
# @ObjectPropertyInfo:
#
# @name: the name of the property
diff --git a/qmp-commands.hx b/qmp-commands.hx
index 3aa6bd1..2051fcb 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -385,6 +385,28 @@ Note: CPUs' indexes are obtained with the 'query-cpus' command.
EQMP
{
+ .name = "query-cpu-max",
+ .args_type = "",
+ .mhandler.cmd_new = qmp_marshal_input_query_cpu_max,
+ },
+
+SQMP
+query-cpu-max
+-------------
+
+Get the maximum CPUs supported by the machine being currently
+emulated.
+
+Returns json-int.
+
+Example:
+
+-> { "execute": "query-cpu-max" }
+<- { "return": 255 }
+
+EQMP
+
+ {
.name = "memsave",
.args_type = "val:l,size:i,filename:s,cpu:i?",
.mhandler.cmd_new = qmp_marshal_input_memsave,
diff --git a/vl.c b/vl.c
index aeed7f4..7643f16 100644
--- a/vl.c
+++ b/vl.c
@@ -662,6 +662,11 @@ StatusInfo *qmp_query_status(Error **errp)
return info;
}
+int64_t qmp_query_cpu_max(Error **errp)
+{
+ return current_machine->max_cpus;
+}
+
/***********************************************************/
/* real time host monotonic timer */
--
1.8.1.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-03-26 12:39 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-26 12:38 [Qemu-devel] [PULL 0/4] QMP queue Luiz Capitulino
2013-03-26 12:38 ` [Qemu-devel] [PULL 1/4] QMP: Remove duplicate TPM type from query-tpm Luiz Capitulino
2013-03-26 12:38 ` [Qemu-devel] [PULL 2/4] QMP: TPM QMP and man page documentation updates Luiz Capitulino
2013-03-26 12:38 ` [Qemu-devel] [PULL 3/4] qmp: fix handling of boolean values in qmp-shell Luiz Capitulino
2013-03-26 12:38 ` [Qemu-devel] [PULL 4/4] New QMP command query-cpu-max and HMP command cpu_max Luiz Capitulino
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).