qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 10/12] linux-user: Add support for selecting alsa timer using


From: Laurent Vivier
Subject: Re: [PATCH 10/12] linux-user: Add support for selecting alsa timer using ioctl
Date: Tue, 14 Jan 2020 13:53:33 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1

Le 09/01/2020 à 13:59, Filip Bozuta a écrit :
> This patch implements functionality of following ioctl:
> 
> SNDRV_TIMER_IOCTL_SELECT - Selecting timer
> 
>     Selects the timer which id is specified. The timer id is specified in the
>     following strcuture:
> 
>     struct snd_timer_select {
>         struct snd_timer_id id;         /* timer ID */
>         unsigned char reserved[32];     /* reserved */
>     };
> 
>     A pointer to this structure should be passed as the third ioctl's 
> argument.
>     Before calling the ioctl, the field "tid" should be initialized with the 
> id
>     information for the timer which is to be selected. If there is no timer
>     device with the specified id, the error ENODEV ("No such device") is
>     returned.
> 
> Implementation notes:
> 
>     Ioctl implemented in this patch has a pointer to a
>     'struct snd_timer_select' as its third argument.
>     That is the reason why a corresponding definition
>     was added in 'linux-user/syscall_types.h'. The rest
>     of the implementation was straightforward.
> 
> Signed-off-by: Filip Bozuta <address@hidden>
> ---
>  linux-user/ioctls.h        | 2 ++
>  linux-user/syscall_defs.h  | 7 +++++++
>  linux-user/syscall_types.h | 4 ++++
>  3 files changed, 13 insertions(+)
> 
> diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
> index 989eb9b..7652117 100644
> --- a/linux-user/ioctls.h
> +++ b/linux-user/ioctls.h
> @@ -459,6 +459,8 @@
>          MK_PTR(MK_STRUCT(STRUCT_snd_timer_gparams)))
>    IOCTL(SNDRV_TIMER_IOCTL_GSTATUS, IOC_RW,
>          MK_PTR(MK_STRUCT(STRUCT_snd_timer_gstatus)))
> +  IOCTL(SNDRV_TIMER_IOCTL_SELECT, IOC_W,
> +        MK_PTR(MK_STRUCT(STRUCT_snd_timer_select)))
>  
>    IOCTL(HDIO_GETGEO, IOC_R, MK_PTR(MK_STRUCT(STRUCT_hd_geometry)))
>    IOCTL(HDIO_GET_UNMASKINTR, IOC_R, MK_PTR(TYPE_INT))
> diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
> index 4d4dad3..9a33b71 100644
> --- a/linux-user/syscall_defs.h
> +++ b/linux-user/syscall_defs.h
> @@ -2462,6 +2462,11 @@ struct target_snd_timer_gstatus {
>      unsigned char reserved[32];
>  };
>  
> +struct target_snd_timer_select {
> +    struct target_snd_timer_id id;
> +    unsigned char reserved[32];
> +};
> +
>  /* alsa timer ioctls */
>  #define TARGET_SNDRV_TIMER_IOCTL_PVERSION     TARGET_IOR('T', 0x00, int)
>  #define TARGET_SNDRV_TIMER_IOCTL_NEXT_DEVICE  TARGET_IOWR('T', 0x01,         
>             \
> @@ -2473,6 +2478,8 @@ struct target_snd_timer_gstatus {
>                                                           struct 
> target_snd_timer_gparams)
>  #define TARGET_SNDRV_TIMER_IOCTL_GSTATUS      TARGET_IOWR('T', 0x05,         
>             \
>                                                            struct 
> target_snd_timer_gstatus)
> +#define TARGET_SNDRV_TIMER_IOCTL_SELECT       TARGET_IOW('T', 0x10,          
>             \
> +                                                         struct 
> target_snd_timer_select)
>  
>  /* vfat ioctls */
>  #define TARGET_VFAT_IOCTL_READDIR_BOTH    TARGET_IORU('r', 1)
> diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
> index 4e90716..767632d 100644
> --- a/linux-user/syscall_types.h
> +++ b/linux-user/syscall_types.h
> @@ -116,6 +116,10 @@ STRUCT(snd_timer_gstatus,
>         TYPE_ULONG, /* resolution_den */
>         MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
>  
> +STRUCT(snd_timer_select,
> +       MK_STRUCT(STRUCT_snd_timer_id), /* id */
> +       MK_ARRAY(TYPE_CHAR, 32)) /* reserved */
> +
>  /* loop device ioctls */
>  STRUCT(loop_info,
>         TYPE_INT,                 /* lo_number */
> 

Reviewed-by: Laurent Vivier <address@hidden>



reply via email to

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