From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MfcuP-0004A4-Qf for qemu-devel@nongnu.org; Mon, 24 Aug 2009 13:00:41 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MfcuL-00044n-1W for qemu-devel@nongnu.org; Mon, 24 Aug 2009 13:00:41 -0400 Received: from [199.232.76.173] (port=45834 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MfcuK-00044Z-PA for qemu-devel@nongnu.org; Mon, 24 Aug 2009 13:00:36 -0400 Received: from mx1.redhat.com ([209.132.183.28]:24931) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MfcuK-000605-6h for qemu-devel@nongnu.org; Mon, 24 Aug 2009 13:00:36 -0400 Date: Mon, 24 Aug 2009 14:00:26 -0300 From: Luiz Capitulino Subject: Re: [Qemu-devel] [PATCH 06/29] monitor: New format for handlers argument types Message-ID: <20090824140026.4636828e@doriath> In-Reply-To: <87skfhi3nm.fsf@pike.pond.sub.org> References: <1250723280-3509-1-git-send-email-lcapitulino@redhat.com> <1250723280-3509-7-git-send-email-lcapitulino@redhat.com> <87skfhi3nm.fsf@pike.pond.sub.org> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org, avi@redhat.com On Mon, 24 Aug 2009 18:21:17 +0200 Markus Armbruster wrote: > Luiz Capitulino writes: > > > Current handlers argument types, as defined in qemu-monitor.hx file, > > are a sequence of chars where each one represents one argument type > > of the command handler. The number of chars is also used to know how > > many arguments a given handler accepts. > > > > This commit defines a new format, which makes mandatory the use of > > a name for each argument. > > > > For example, do_eject() command handler is currently defined as: > > > > { "eject", "-fB", do_eject, ... } > > > > With the new format it becomes: > > > > { "eject", "force:-f,filename:B", do_eject, ... } > > > > This way the Monitor will be capable of setting up a dictionary, using > > each argument's name as the key and the argument itself as the value. > > > > This commit also adds two new functions: key_get_info() and > > next_arg_type(), both are used to parse the new format. > > > > Currently key_get_info() consumes the 'key' part of the new format and > > discards it, this way the current parsing code is not affected by this > > change. > > > > Signed-off-by: Luiz Capitulino > > Encoding the parameter list in a single args_type made perfect sense > when a parameter was encoded in one or two characters. But having > syntax and a parser... I don't know. Switch to an array of parameter > descriptions that don't need to be parsed? I don't see how to do this w/o parsing, but anyway I think we should be practical here and use what already exists. > There's some overlap between args_type (machine-readable description) > and params (human readable help text). Could the latter be assembled > from the former? I'm not sure this is desirable as the help text may have a list of possible arguments accepted by the handler, this information is internal to each handler and not part of args_type. For example, 'singlestep' has a 'option:s?' arg_type, but 'option' has to be 'on' or 'off'. In the future though, we could think in ways of merging them somehow.