All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@us.ibm.com>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: Eric Blake <eblake@redhat.com>, Amos Kong <akong@redhat.com>,
	qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 3/3] qapi: convert sendkey
Date: Fri, 25 May 2012 08:16:35 -0500	[thread overview]
Message-ID: <4FBF8633.3060803@us.ibm.com> (raw)
In-Reply-To: <20120525100611.34a32b6a@doriath.home>

On 05/25/2012 08:06 AM, Luiz Capitulino wrote:
> On Fri, 25 May 2012 08:34:54 +0100
> "Daniel P. Berrange"<berrange@redhat.com>  wrote:
>
>> On Fri, May 25, 2012 at 02:20:33PM +0800, Amos Kong wrote:
>>> On 25/05/12 11:51, Eric Blake wrote:
>>>> On 05/24/2012 09:32 PM, Amos Kong wrote:
>>>>> Convert 'sendkey' to use. do_sendkey() depends on some variables
>>>>> in monitor.c, so reserve qmp_sendkey() to monitor.c
>>>>> Rename 'string' to 'keys', rename 'hold_time' to 'hold-time'
>>>>>
>>>>> Signed-off-by: Amos Kong<akong@redhat.com>
>>>>
>>>>> +##
>>>>> +# @sendkey:
>>>>> +#
>>>>> +# Send keys to VM.
>>>>> +#
>>>>> +# @keys: key sequence
>>>>> +# @hold-time: time to delay key up events
>>>>> +#
>>>>> +# Returns: Nothing on success
>>>>> +#          If key is unknown or redundant, QERR_INVALID_PARAMETER
>>>>> +#          If key is invalid, QERR_INVALID_PARAMETER_VALUE
>>>>> +#
>>>>> +# Notes: Send @var{keys} to the emulator. @var{keys} could be the name of the
>>>>> +#        key or the raw value in either decimal or hexadecimal  format. Use
>>>>> +#        @code{-} to press several keys simultaneously.
>>>>> +#
>>>>> +# Since: 0.14.0
>>>>> +##
>>>>> +{ 'command': 'sendkey', 'data': {'keys': 'str', '*hold-time': 'int'} }
>>>>
>>>> Rather than making 'keys' a free-form string where qemu then has to
>>>> parse '-' to separate keys, should we instead make it a JSON array?  For
>>>> example,
>>>
>>>
>>> Anthony, Luiz, Daniel,  what's your opinion?
>>
>> Using a JSON array for the key names does seem like the most
>> natural way to model this. A good rule of thumb is that the
>> implementation of a command should not need to further
>> parse the individual parameter values. Using a magic string
>> encoding instead of the JSON array requires such extra special
>> case parsing.
>
> That's true, and I agree this is better.
>
> Just would like to point out that we can't go too far on improving
> HMP-inherited commands, as our goal here is to convert most (or every single)
> HMP commands to QMP. If we go far on improving commands, we'll get stuck as we
> did some time ago.

I agree.  But obviously, changing the parameter syntax is straight forward 
enough.  I think we rat hole when we change the command semantics though.

>
> Btw, I remember someone saying that when libvirt wants to use a HMP command it
> first checks if the command exists in QMP before using passthrough. In that case,
> how will libvirt behave if we change the arguments?

I don't think libvirt can possibly be assuming that a QMP command exists that 
it's never seen before...  So hopefully this isn't a blind check.  If it is, 
it's a libvirt bug.

Regards,

Anthony Liguori

>

  parent reply	other threads:[~2012-05-25 13:22 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-25  3:31 [Qemu-devel] [PATCH 1/3] qerror: add QERR_TOO_MANY_PARAMETERS Amos Kong
2012-05-25  3:32 ` [Qemu-devel] [PATCH 2/3] fix doc of using raw values with sendkey Amos Kong
2012-05-25  3:32 ` [Qemu-devel] [PATCH 3/3] qapi: convert sendkey Amos Kong
2012-05-25  3:51   ` Eric Blake
2012-05-25  6:20     ` Amos Kong
2012-05-25  7:34       ` Daniel P. Berrange
2012-05-25 12:18         ` Markus Armbruster
2012-05-25 13:06         ` Luiz Capitulino
2012-05-25 13:12           ` Daniel P. Berrange
2012-05-25 13:15             ` Luiz Capitulino
2012-05-25 13:16           ` Anthony Liguori [this message]
2012-05-25 13:00       ` Luiz Capitulino
2012-05-25 14:23         ` Jeff Cody
2012-05-25 13:14     ` Anthony Liguori
2012-05-25 14:35   ` Luiz Capitulino

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FBF8633.3060803@us.ibm.com \
    --to=aliguori@us.ibm.com \
    --cc=akong@redhat.com \
    --cc=eblake@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.