[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 10/12] linux-user: Add support for selecting alsa timer using ioc
From: |
Filip Bozuta |
Subject: |
[PATCH 10/12] linux-user: Add support for selecting alsa timer using ioctl |
Date: |
Wed, 15 Jan 2020 16:53:36 +0100 |
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 */
--
2.7.4
- Re: [PATCH 08/12] linux-user: Add support for setting alsa timer enhanced read using ioctl, (continued)
[PATCH 09/12] linux-user: Add support for getting/setting specified alsa timer parameters using ioctls, Filip Bozuta, 2020/01/15
[PATCH 02/12] linux-user: Add support for getting/setting RTC time and alarm using ioctls, Filip Bozuta, 2020/01/15
[PATCH 01/12] linux-user: Add support for enabling/disabling RTC features using ioctls, Filip Bozuta, 2020/01/15
[PATCH 11/12] linux-user: Add support for getting/setting selected alsa timer parameters using ioctls, Filip Bozuta, 2020/01/15
[PATCH 03/12] linux-user: Add support for getting/setting RTC periodic interrupt and epoch using ioctls, Filip Bozuta, 2020/01/15
[PATCH 06/12] linux-user: Add support for read/clear RTC voltage low detector using ioctls, Filip Bozuta, 2020/01/15
[PATCH 12/12] linux-user: Add support for selected alsa timer instructions using ioctls, Filip Bozuta, 2020/01/15
[PATCH 05/12] linux-user: Add support for getting/setting RTC PLL correction using ioctls, Filip Bozuta, 2020/01/15
[PATCH 10/12] linux-user: Add support for selecting alsa timer using ioctl,
Filip Bozuta <=
Re: [PATCH 00/12] linux-user: Add support for real time clock and, Laurent Vivier, 2020/01/15