From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:55068) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Seu0j-0001Hw-U3 for qemu-devel@nongnu.org; Wed, 13 Jun 2012 16:17:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Seu0h-00041i-LF for qemu-devel@nongnu.org; Wed, 13 Jun 2012 16:17:49 -0400 Received: from e39.co.us.ibm.com ([32.97.110.160]:46351) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Seu0h-000405-CB for qemu-devel@nongnu.org; Wed, 13 Jun 2012 16:17:47 -0400 Received: from /spool/local by e39.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 13 Jun 2012 14:17:43 -0600 Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by d03dlp01.boulder.ibm.com (Postfix) with ESMTP id 085E81FF002B for ; Wed, 13 Jun 2012 20:17:40 +0000 (WET) Received: from d03av05.boulder.ibm.com (d03av05.boulder.ibm.com [9.17.195.85]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q5DKHZw1144492 for ; Wed, 13 Jun 2012 14:17:39 -0600 Received: from d03av05.boulder.ibm.com (loopback [127.0.0.1]) by d03av05.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q5DKHZcj020222 for ; Wed, 13 Jun 2012 14:17:35 -0600 Message-ID: <4FD8F55A.2030804@linux.vnet.ibm.com> Date: Wed, 13 Jun 2012 16:17:30 -0400 From: Corey Bryant MIME-Version: 1.0 References: <1339170179-2554-1-git-send-email-coreyb@linux.vnet.ibm.com> <1339170179-2554-2-git-send-email-coreyb@linux.vnet.ibm.com> <20120613164258.6213776a@doriath.home> In-Reply-To: <20120613164258.6213776a@doriath.home> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 1/4] qapi: Convert getfd and closefd List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Luiz Capitulino Cc: kwolf@redhat.com, aliguori@us.ibm.com, stefanha@linux.vnet.ibm.com, libvir-list@redhat.com, qemu-devel@nongnu.org, eblake@redhat.com On 06/13/2012 03:42 PM, Luiz Capitulino wrote: > On Fri, 8 Jun 2012 11:42:56 -0400 > Corey Bryant wrote: > >> v2: >> - Convert getfd and closefd to QAPI (lcapitulino@redhat.com) >> - Remove changes that returned fd from getfd (lcapitulino@redhat.com) >> - Wrap hmp_* functions around qmp_* functions (kwolf@redhat.com) >> - Move hmp_* functions to hmp.c (lcapitulino@redhat.com) >> - Drop .user_print lines (lcapitulino@redhat.com) >> - Use 'cmd' instead of 'cmd_new' for HMP (lcapitulino@redhat.com) >> - Change QMP command existance back to 0.14 (lcapitulino@redhat.com) > > Btw, having the changelog like this is not nice because it becomes part > of the history. It's better to move it after the '---' line, so that > git ignores it. > I see your point and I can do this in v3. But can I add text after the '---' line in the commit message via 'git commit' or do I have to manually edit the patches? >> >> Signed-off-by: Corey Bryant >> --- >> hmp-commands.hx | 6 ++---- >> hmp.c | 18 ++++++++++++++++++ >> hmp.h | 2 ++ >> monitor.c | 34 ++++++++++++++++------------------ >> qapi-schema.json | 29 +++++++++++++++++++++++++++++ >> qmp-commands.hx | 6 ++---- >> 6 files changed, 69 insertions(+), 26 deletions(-) >> >> diff --git a/hmp-commands.hx b/hmp-commands.hx >> index f5d9d91..eea8b32 100644 >> --- a/hmp-commands.hx >> +++ b/hmp-commands.hx >> @@ -1236,8 +1236,7 @@ ETEXI >> .args_type = "fdname:s", >> .params = "getfd name", >> .help = "receive a file descriptor via SCM rights and assign it a name", >> - .user_print = monitor_user_noop, >> - .mhandler.cmd_new = do_getfd, >> + .mhandler.cmd = hmp_getfd, >> }, >> >> STEXI >> @@ -1253,8 +1252,7 @@ ETEXI >> .args_type = "fdname:s", >> .params = "closefd name", >> .help = "close a file descriptor previously passed via SCM rights", >> - .user_print = monitor_user_noop, >> - .mhandler.cmd_new = do_closefd, >> + .mhandler.cmd = hmp_closefd, >> }, >> >> STEXI >> diff --git a/hmp.c b/hmp.c >> index 2ce8cb9..6241856 100644 >> --- a/hmp.c >> +++ b/hmp.c >> @@ -999,3 +999,21 @@ void hmp_netdev_del(Monitor *mon, const QDict *qdict) >> qmp_netdev_del(id, &err); >> hmp_handle_error(mon, &err); >> } >> + >> +void hmp_getfd(Monitor *mon, const QDict *qdict) >> +{ >> + const char *fdname = qdict_get_str(qdict, "fdname"); >> + Error *errp = NULL; >> + >> + qmp_getfd(fdname, &errp); >> + hmp_handle_error(mon, &errp); >> +} >> + >> +void hmp_closefd(Monitor *mon, const QDict *qdict) >> +{ >> + const char *fdname = qdict_get_str(qdict, "fdname"); >> + Error *errp = NULL; >> + >> + qmp_closefd(fdname, &errp); >> + hmp_handle_error(mon, &errp); >> +} >> diff --git a/hmp.h b/hmp.h >> index 79d138d..8d2b0d7 100644 >> --- a/hmp.h >> +++ b/hmp.h >> @@ -64,5 +64,7 @@ void hmp_device_del(Monitor *mon, const QDict *qdict); >> void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict); >> void hmp_netdev_add(Monitor *mon, const QDict *qdict); >> void hmp_netdev_del(Monitor *mon, const QDict *qdict); >> +void hmp_getfd(Monitor *mon, const QDict *qdict); >> +void hmp_closefd(Monitor *mon, const QDict *qdict); >> >> #endif >> diff --git a/monitor.c b/monitor.c >> index a3bc2c7..4c53cb6 100644 >> --- a/monitor.c >> +++ b/monitor.c >> @@ -2182,48 +2182,46 @@ static void do_inject_mce(Monitor *mon, const QDict *qdict) >> } >> #endif >> >> -static int do_getfd(Monitor *mon, const QDict *qdict, QObject **ret_data) >> +void qmp_getfd(const char *fdname, Error **errp) >> { >> - const char *fdname = qdict_get_str(qdict, "fdname"); >> mon_fd_t *monfd; >> int fd; >> >> - fd = qemu_chr_fe_get_msgfd(mon->chr); >> + fd = qemu_chr_fe_get_msgfd(cur_mon->chr); >> if (fd == -1) { >> - qerror_report(QERR_FD_NOT_SUPPLIED); >> - return -1; >> + error_set(errp, QERR_FD_NOT_SUPPLIED); >> + return; >> } >> >> if (qemu_isdigit(fdname[0])) { >> - qerror_report(QERR_INVALID_PARAMETER_VALUE, "fdname", >> - "a name not starting with a digit"); >> - return -1; >> + error_set(errp, QERR_INVALID_PARAMETER_VALUE, "fdname", >> + "a name not starting with a digit"); >> + return; >> } >> >> - QLIST_FOREACH(monfd, &mon->fds, next) { >> + QLIST_FOREACH(monfd, &cur_mon->fds, next) { >> if (strcmp(monfd->name, fdname) != 0) { >> continue; >> } >> >> close(monfd->fd); >> monfd->fd = fd; >> - return 0; >> + return; >> } >> >> monfd = g_malloc0(sizeof(mon_fd_t)); >> monfd->name = g_strdup(fdname); >> monfd->fd = fd; >> >> - QLIST_INSERT_HEAD(&mon->fds, monfd, next); >> - return 0; >> + QLIST_INSERT_HEAD(&cur_mon->fds, monfd, next); >> + return; >> } >> >> -static int do_closefd(Monitor *mon, const QDict *qdict, QObject **ret_data) >> +void qmp_closefd(const char *fdname, Error **errp) >> { >> - const char *fdname = qdict_get_str(qdict, "fdname"); >> mon_fd_t *monfd; >> >> - QLIST_FOREACH(monfd, &mon->fds, next) { >> + QLIST_FOREACH(monfd, &cur_mon->fds, next) { >> if (strcmp(monfd->name, fdname) != 0) { >> continue; >> } >> @@ -2232,11 +2230,11 @@ static int do_closefd(Monitor *mon, const QDict *qdict, QObject **ret_data) >> close(monfd->fd); >> g_free(monfd->name); >> g_free(monfd); >> - return 0; >> + return; >> } >> >> - qerror_report(QERR_FD_NOT_FOUND, fdname); >> - return -1; >> + error_set(errp, QERR_FD_NOT_FOUND, fdname); >> + return; >> } >> >> static void do_loadvm(Monitor *mon, const QDict *qdict) >> diff --git a/qapi-schema.json b/qapi-schema.json >> index 3b6e346..6be1d90 100644 >> --- a/qapi-schema.json >> +++ b/qapi-schema.json >> @@ -1862,3 +1862,32 @@ >> # Since: 0.14.0 >> ## >> { 'command': 'netdev_del', 'data': {'id': 'str'} } >> + >> +## >> +# @getfd: >> +# >> +# Receive a file descriptor via SCM rights and assign it a name >> +# >> +# @fdname: file descriptor name >> +# >> +# Returns: Nothing on success >> +# If file descriptor was not received, FdNotSupplied >> +# If @fdname is not valid, InvalidParameterType >> +# >> +# Since: 0.14.0 >> +## >> +{ 'command': 'getfd', 'data': {'fdname': 'str'} } >> + >> +## >> +# @closefd: >> +# >> +# Close a file descriptor previously passed via SCM rights >> +# >> +# @fdname: file descriptor name >> +# >> +# Returns: Nothing on success >> +# If @fdname is not found, FdNotFound >> +# >> +# Since: 0.14.0 >> +## >> +{ 'command': 'closefd', 'data': {'fdname': 'str'} } >> diff --git a/qmp-commands.hx b/qmp-commands.hx >> index 2e1a38e..f8c0f68 100644 >> --- a/qmp-commands.hx >> +++ b/qmp-commands.hx >> @@ -873,8 +873,7 @@ EQMP >> .args_type = "fdname:s", >> .params = "getfd name", >> .help = "receive a file descriptor via SCM rights and assign it a name", >> - .user_print = monitor_user_noop, >> - .mhandler.cmd_new = do_getfd, >> + .mhandler.cmd_new = qmp_marshal_input_getfd, >> }, >> >> SQMP >> @@ -899,8 +898,7 @@ EQMP >> .args_type = "fdname:s", >> .params = "closefd name", >> .help = "close a file descriptor previously passed via SCM rights", >> - .user_print = monitor_user_noop, >> - .mhandler.cmd_new = do_closefd, >> + .mhandler.cmd_new = qmp_marshal_input_closefd, >> }, >> >> SQMP > > -- Regards, Corey