[libvirt] [PATCH 05/13] send-key: Defining the public API
Lai Jiangshan
laijs at cn.fujitsu.com
Thu May 26 10:10:32 UTC 2011
On 05/26/2011 12:43 AM, Daniel P. Berrange wrote:
> On Wed, May 25, 2011 at 05:37:47PM +0800, Lai Jiangshan wrote:
>> Add public virDomainSendKey() and enum libvirt_keycode_set
>> for the @codeset.
>>
>> Python version of virDomainSendKey() has not been implemented yet,
>> it will be done soon.
>>
>> Signed-off-by: Lai Jiangshan <laijs at fujitsu.com>
>> ---
>> include/libvirt/libvirt.h.in | 7 +++++++
>> include/libvirt/virtkeys.h | 23 +++++++++++++++++++++++
>> python/generator.py | 1 +
>> src/libvirt_public.syms | 1 +
>> 4 files changed, 32 insertions(+), 0 deletions(-)
>>
>> diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
>> index 7cd6e13..9167dbc 100644
>> --- a/include/libvirt/libvirt.h.in
>> +++ b/include/libvirt/libvirt.h.in
>> @@ -2617,6 +2617,13 @@ int virDomainOpenConsole(virDomainPtr dom,
>>
>> int virDomainInjectNMI(virDomainPtr domain, unsigned int flags);
>>
>> +int virDomainSendKey(virDomainPtr domain,
>> + unsigned int codeset,
>> + unsigned int holdtime,
>> + unsigned int nkeycodes,
>> + unsigned int *keycodes,
>> + unsigned int flags);
>> +
>
> This looks fine. As mentioned earlier we might like to *also*
> have a variant which takes strings, to make life easier for
> virsh, or similar use cases
>
> +int virDomainSendKeyStr(virDomainPtr domain,
> + unsigned int codeset,
> + unsigned int holdtime,
> + unsigned int nkeycodes,
> + unsigned char **keycodestrs,
> + unsigned int flags);
> +
>
>
>> #ifdef __cplusplus
>> }
>> #endif
>> diff --git a/include/libvirt/virtkeys.h b/include/libvirt/virtkeys.h
>> new file mode 100644
>> index 0000000..eb07129
>> --- /dev/null
>> +++ b/include/libvirt/virtkeys.h
>> @@ -0,0 +1,23 @@
>> +#ifndef _LIBVIRT_VIRTKEYS_H
>> +#define _LIBVIRT_VIRTKEYS_H
>> +
>> +/*
>> + * Copyright (c) 2011 Lai Jiangshan
>> + *
>> + * This program is free software; you can redistribute it and/or modify it
>> + * under the terms of the GNU General Public License version 2 as published by
>> + * the Free Software Foundation.
>> + */
>> +
>> +enum libvirt_keycode_set {
>> + LIBVIRT_KEYCODE_LINUX = 0,
>> + LIBVIRT_KEYCODE_DRIVER_DEFAULT = 1,
>> + LIBVIRT_KEYCODE_XT = 2,
>> + LIBVIRT_KEYCODE_ATSET1 = LIBVIRT_KEYCODE_XT,
>> + LIBVIRT_KEYCODE_ATSET2 = 3,
>> + LIBVIRT_KEYCODE_ATSET3 = 4,
>> +};
>
> If we're going to have constants for XT and ATSET1 then we
> probably want to have them separate values. If not then
> we should just kill one of them. As mentioned in the initial
> message, I think 'driver default' isn't useful, so I'd go
> with:
>
> +enum libvirt_keycode_set {
> + LIBVIRT_KEYCODE_LINUX = 0,
> + LIBVIRT_KEYCODE_XT = 1,
> + LIBVIRT_KEYCODE_ATSET1 = 2
> + LIBVIRT_KEYCODE_ATSET2 = 3,
> + LIBVIRT_KEYCODE_ATSET3 = 4,
> +};
>
Sorry, That's my fault, I thought xt and atset1 are the same codeset.
Thank you for correcting me.
Thanks,
Lai.
>
>> +
>> +#define MAX_SEND_KEY 16
>> +
>> +#endif
>> diff --git a/python/generator.py b/python/generator.py
>> index 1741bba..3d57bf9 100755
>> --- a/python/generator.py
>> +++ b/python/generator.py
>> @@ -355,6 +355,7 @@ skip_impl = (
>> 'virNodeDeviceListCaps',
>> 'virConnectBaselineCPU',
>> 'virDomainRevertToSnapshot',
>> + 'virDomainSendKey',
>> )
>>
>>
>> diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms
>> index 0590535..9e8a37c 100644
>> --- a/src/libvirt_public.syms
>> +++ b/src/libvirt_public.syms
>> @@ -442,6 +442,7 @@ LIBVIRT_0.9.2 {
>> virDomainInjectNMI;
>> virDomainScreenshot;
>> virDomainSetSchedulerParametersFlags;
>> + virDomainSendKey;
>> } LIBVIRT_0.9.0;
>>
>> # .... define new API here using predicted next version number ....
>
> Daniel
More information about the libvir-list
mailing list