qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 06/29] monitor: New format for handlers argument


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH 06/29] monitor: New format for handlers argument types
Date: Fri, 04 Sep 2009 17:18:53 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.3 (gnu/linux)

Anthony Liguori <address@hidden> writes:

> Luiz Capitulino wrote:
>> 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.
>>   
> 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:
>
> { "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.

Yes.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]