[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V10 07/15] monitor: split off monitor_data_init()
From: |
Wenchao Xia |
Subject: |
[Qemu-devel] [PATCH V10 07/15] monitor: split off monitor_data_init() |
Date: |
Tue, 27 Aug 2013 20:38:19 +0800 |
In qmp_human_monitor_command(), the monitor need to initialized for
basic functionalities, and later more init code will be added, so
split off this function. Note that it is different with QMP mode
monitor which accept json string from monitor's input,
qmp_human_monitor_command() retrieve the human style command from
QMP input, then send the command to a normal mode monitor.
Signed-off-by: Wenchao Xia <address@hidden>
---
monitor.c | 20 +++++++++++++++-----
1 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/monitor.c b/monitor.c
index db4d441..bd02112 100644
--- a/monitor.c
+++ b/monitor.c
@@ -683,14 +683,24 @@ static int do_qmp_capabilities(Monitor *mon, const QDict
*params,
static void handle_user_command(Monitor *mon, const char *cmdline);
+static void monitor_data_init(Monitor *mon)
+{
+ memset(mon, 0, sizeof(Monitor));
+ mon->outbuf = qstring_new();
+}
+
+static void monitor_data_destroy(Monitor *mon)
+{
+ QDECREF(mon->outbuf);
+}
+
char *qmp_human_monitor_command(const char *command_line, bool has_cpu_index,
int64_t cpu_index, Error **errp)
{
char *output = NULL;
Monitor *old_mon, hmp;
- memset(&hmp, 0, sizeof(hmp));
- hmp.outbuf = qstring_new();
+ monitor_data_init(&hmp);
hmp.skip_flush = true;
old_mon = cur_mon;
@@ -716,7 +726,7 @@ char *qmp_human_monitor_command(const char *command_line,
bool has_cpu_index,
}
out:
- QDECREF(hmp.outbuf);
+ monitor_data_destroy(&hmp);
return output;
}
@@ -4766,8 +4776,8 @@ void monitor_init(CharDriverState *chr, int flags)
is_first_init = 0;
}
- mon = g_malloc0(sizeof(*mon));
- mon->outbuf = qstring_new();
+ mon = g_malloc(sizeof(*mon));
+ monitor_data_init(mon);
mon->chr = chr;
mon->flags = flags;
--
1.7.1
- [Qemu-devel] [PATCH V10 00/15] monitor: support sub command group in auto completion and help, Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 01/15] monitor: avoid use of global *cur_mon in cmd_completion(), Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 02/15] monitor: avoid use of global *cur_mon in file_completion(), Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 03/15] monitor: avoid use of global *cur_mon in block_completion_it(), Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 05/15] monitor: avoid use of global *cur_mon in readline_completion(), Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 06/15] monitor: call sortcmdlist() only one time, Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 07/15] monitor: split off monitor_data_init(),
Wenchao Xia <=
- [Qemu-devel] [PATCH V10 08/15] monitor: avoid direct use of global variable *mon_cmds, Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 09/15] monitor: code move for parse_cmdline(), Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 10/15] monitor: refine parse_cmdline(), Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 04/15] monitor: avoid use of global *cur_mon in monitor_find_completion(), Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 11/15] monitor: support sub command in help, Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 12/15] monitor: refine monitor_find_completion(), Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 13/15] monitor: support sub command in auto completion, Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 14/15] monitor: allow "help" show message for single command in sub group, Wenchao Xia, 2013/08/27
- [Qemu-devel] [PATCH V10 15/15] monitor: improve auto complete of "help" for single command in sub group, Wenchao Xia, 2013/08/27
- Re: [Qemu-devel] [PATCH V10 00/15] monitor: support sub command group in auto completion and help, Luiz Capitulino, 2013/08/29