[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 08/16] monitor: split off monitor_data_init()
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PULL 08/16] monitor: split off monitor_data_init() |
Date: |
Fri, 30 Aug 2013 08:22:29 -0400 |
From: Wenchao Xia <address@hidden>
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>
Signed-off-by: Luiz Capitulino <address@hidden>
---
monitor.c | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/monitor.c b/monitor.c
index 457948d..1f645e1 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;
}
@@ -4767,8 +4777,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.8.1.4
- [Qemu-devel] [PULL 00/16] QMP queue, Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 01/16] monitor: Add missing attributes to local function, Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 02/16] monitor: avoid use of global *cur_mon in cmd_completion(), Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 04/16] monitor: avoid use of global *cur_mon in block_completion_it(), Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 03/16] monitor: avoid use of global *cur_mon in file_completion(), Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 05/16] monitor: avoid use of global *cur_mon in monitor_find_completion(), Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 06/16] monitor: avoid use of global *cur_mon in readline_completion(), Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 07/16] monitor: call sortcmdlist() only one time, Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 08/16] monitor: split off monitor_data_init(),
Luiz Capitulino <=
- [Qemu-devel] [PULL 09/16] monitor: avoid direct use of global variable *mon_cmds, Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 10/16] monitor: code move for parse_cmdline(), Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 11/16] monitor: refine parse_cmdline(), Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 12/16] monitor: support sub command in help, Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 13/16] monitor: refine monitor_find_completion(), Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 14/16] monitor: support sub command in auto completion, Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 15/16] monitor: allow "help" show message for single command in sub group, Luiz Capitulino, 2013/08/30
- [Qemu-devel] [PULL 16/16] monitor: improve auto complete of "help" for single command in sub group, Luiz Capitulino, 2013/08/30