qemu-patch-raspberry4/linux-user
Filip Bozuta 1c4c6fcd1a linux-user: Add support for getting alsa timer version and id
This patch implements functionalities of following ioctls:

SNDRV_TIMER_IOCTL_PVERSION - Getting the sound timer version

    Read the sound timer version. The third ioctl's argument is
    a pointer to an int in which the specified timers version
    is returned.

SNDRV_TIMER_IOCTL_NEXT_DEVICE - Getting id information about next timer

    Read id information about the next timer device from the sound timer
    device list. The id infomration is returned in the following structure:

        struct snd_timer_id {
            int dev_class;    /* timer device class number */
            int dev_sclass;   /* slave device class number (unused) */
            int card;         /* card number */
            int device;       /* device number */
            int subdevice;    /* sub-device number */
        };

    The devices in the sound timer device list are arranged by the fields
    of this structure respectively (first by dev_class number, then by
    card number, ...). A pointer to this structure should be passed as
    the third ioctl's argument. Before calling the ioctl, the parameters
    of this structure should be initialized in relation to the next timer
    device which information is to be obtained. For example, if a wanted
    timer device has the device class number equal to or bigger then 2,
    the field dev_class should be initialized to 2. After the ioctl call,
    the structure fields are filled with values from the next device in
    the sound timer device list. If there is no next device in the list,
    the structure is filled with "zero" id values (in that case all
    fields are filled with value -1).

Implementation notes:

    The ioctl 'SNDRV_TIMER_IOCTL_NEXT_DEVICE' has a pointer to a
    'struct snd_timer_id' as its third argument. That is the reason why
    corresponding definition is added in 'linux-user/syscall_types.h'.
    Since all elements of this structure are of type 'int', the rest of
    the implementation was straightforward.

    The line '#include <linux/rtc.h>' was added to recognize
    preprocessor definitions for these ioctls. This needs to be
    done only once in this series of commits. Also, the content
    of this file (with respect to ioctl definitions) remained
    unchanged for a long time, therefore there is no need to
    worry about supporting older Linux kernel version.

Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Filip Bozuta <Filip.Bozuta@rt-rk.com>
Message-Id: <1579117007-7565-8-git-send-email-Filip.Bozuta@rt-rk.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2020-02-19 11:17:40 +01:00
..
aarch64 target/arm: only update pc after semihosting completes 2020-01-09 11:41:29 +00:00
alpha linux-user: alpha: Update syscall numbers to kernel 5.5 level 2020-02-17 10:28:50 +01:00
arm linux-user: Use `qemu_log' for non-strace logging 2020-02-19 11:17:40 +01:00
cris linux-user: Introduce cpu_clone_regs_parent 2019-11-06 13:43:25 +01:00
generic linux-user: Introduce TARGET_HAVE_ARCH_STRUCT_FLOCK 2019-07-02 16:56:46 +02:00
host linux-user: Add safe_syscall for riscv64 host 2018-12-26 06:40:02 +11:00
hppa linux-user: add missing TARGET_SIGRTMIN for hppa 2020-02-12 18:56:22 +01:00
i386 linux-user: Introduce cpu_clone_regs_parent 2019-11-06 13:43:25 +01:00
m68k linux-user: m68k: Update syscall numbers to kernel 5.5 level 2020-02-17 10:28:50 +01:00
microblaze linux-user: microblaze: Update syscall numbers to kernel 5.5 level 2020-02-17 10:28:50 +01:00
mips linux-user: mips: Update syscall numbers to kernel 5.5 level 2020-02-17 10:28:50 +01:00
mips64 linux-user: mips: Update syscall numbers to kernel 5.5 level 2020-02-17 10:28:50 +01:00
nios2 linux-user: Introduce cpu_clone_regs_parent 2019-11-06 13:43:25 +01:00
openrisc linux-user: Introduce cpu_clone_regs_parent 2019-11-06 13:43:25 +01:00
ppc target/ppc: Implement the VTB for HV access 2019-12-17 10:39:48 +11:00
riscv linux-user: Introduce cpu_clone_regs_parent 2019-11-06 13:43:25 +01:00
s390x linux-user: Introduce cpu_clone_regs_parent 2019-11-06 13:43:25 +01:00
sh4 linux-user: sh4: Update syscall numbers to kernel 5.5 level 2020-02-17 10:28:50 +01:00
sparc linux-user/sparc: Fix cpu_clone_regs_* 2019-11-06 13:44:19 +01:00
sparc64 Supply missing header guards 2019-06-12 13:20:21 +02:00
tilegx linux-user: Introduce cpu_clone_regs_parent 2019-11-06 13:43:25 +01:00
x86_64 linux-user: x86_64: Update syscall numbers to kernel 5.5 level 2020-02-17 10:28:50 +01:00
xtensa linux-user: xtensa: Remove unused constant TARGET_NR_syscall_count 2020-02-17 10:28:50 +01:00
cpu_loop-common.h cpu: Replace ENV_GET_CPU with env_cpu 2019-06-10 07:03:34 -07:00
elfload.c linux-user: Reserve space for brk 2020-01-22 15:00:03 +01:00
errno_defs.h Supply missing header guards 2019-06-12 13:20:21 +02:00
exit.c build: move TARGET_GPROF to config-host.mak 2020-02-12 16:29:27 +01:00
fd-trans.c linux-user: Use `qemu_log' for non-strace logging 2020-02-19 11:17:40 +01:00
fd-trans.h linux-user: move TargetFdTrans functions to their own file 2018-09-25 22:36:47 +02:00
flat.h Supply missing header guards 2019-06-12 13:20:21 +02:00
flatload.c linux-user/flatload: fix initial stack pointer alignment 2018-10-30 11:23:32 -07:00
ioctls.h linux-user: Add support for getting alsa timer version and id 2020-02-19 11:17:40 +01:00
linux_loop.h linux-user: Add loop control ioctls 2016-07-19 15:22:33 +03:00
linuxload.c avoid TABs in files that only contain a few 2019-01-11 15:46:56 +01:00
main.c linux-user: remove gemu_log from the linux-user tree 2020-02-19 11:17:40 +01:00
Makefile.objs linux-user/m68k: remove simulator syscall interface 2019-06-26 17:14:41 +02:00
mmap.c linux-user: convert target_munmap debug to a tracepoint 2019-12-19 08:20:16 +00:00
qemu.h linux-user: remove gemu_log from the linux-user tree 2020-02-19 11:17:40 +01:00
safe-syscall.S linux-user: Provide safe_syscall for fixing races between signals and syscalls 2016-05-27 14:49:51 +03:00
signal-common.h linux-user: Make sigaltstack stacks per-thread 2019-07-26 19:24:33 +02:00
signal.c linux-user: Use `qemu_log' for strace 2020-02-19 11:17:40 +01:00
socket.h Supply missing header guards 2019-06-12 13:20:21 +02:00
strace.c linux-user: Use `qemu_log' for strace 2020-02-19 11:17:40 +01:00
strace.list linux-user/strace: Improve output of various syscalls 2020-02-19 11:17:40 +01:00
syscall.c linux-user: Add support for getting alsa timer version and id 2020-02-19 11:17:40 +01:00
syscall_defs.h linux-user: Add support for getting alsa timer version and id 2020-02-19 11:17:40 +01:00
syscall_types.h linux-user: Add support for getting alsa timer version and id 2020-02-19 11:17:40 +01:00
target_flat.h Supply missing header guards 2019-06-12 13:20:21 +02:00
trace-events linux-user: fix use of SIGRTMIN 2020-02-12 18:56:41 +01:00
uaccess.c avoid TABs in files that only contain a few 2019-01-11 15:46:56 +01:00
uname.c cpu: Replace ENV_GET_CPU with env_cpu 2019-06-10 07:03:34 -07:00
uname.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
vm86.c linux-user: Use `qemu_log' for non-strace logging 2020-02-19 11:17:40 +01:00