|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [PATCH 06/29] monitor: New format for handlers argument types |
Date: | Fri, 04 Sep 2009 09:06:23 -0500 |
User-agent: | Thunderbird 2.0.0.23 (X11/20090825) |
Luiz Capitulino wrote:
I agree with Markus. I think we can start with this approach but I'd like to see it changed in the near future. Instead of having:On Mon, 24 Aug 2009 18:21:17 +0200 Markus Armbruster <address@hidden> wrote:Luiz Capitulino <address@hidden> 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 <address@hidden>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.
{ "eject", "force:-f,filename:B", do_eject, ... } I would expect something like: { .name = "eject", .args = (MonitorArgs[]){ { .name = "force", .short = 'f', .type = MON_FLAG }, {}}, .func = do_eject, }Macros can be used to simplify things but I think this is the general idea that Markus was suggesting.
Regards, Anthony Liguori
[Prev in Thread] | Current Thread | [Next in Thread] |