ALSA: seq: add an alternative way to handle ioctl requests
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sat, 13 Aug 2016 01:13:34 +0000 (10:13 +0900)
committerTakashi Iwai <tiwai@suse.de>
Mon, 22 Aug 2016 09:11:03 +0000 (11:11 +0200)
commit8ce8eb601c71d4eec4c83ac2398a2cb847f4ef4d
tree2d7897ca14af7eb173f7af9656166a30cfef2485
parent77dfa8d3196a0cd219dfd6c65e4ff5a3e696fd8c
ALSA: seq: add an alternative way to handle ioctl requests

ALSA sequencer is designed with two types of clients; application and
kernel. Operations for each ioctl command should handle data in both of
user space and kernel space, while current implementation just allows them
to handle data in user space. Data in kernel space is handled with change
of address limit of running tasks.

This commit adds a new table to map ioctl commands to corresponding
functions. The functions get data in kernel space. Helper functions to
operate kernel and application clients seek entries from the table.
Especially, the helper function for application is responsible for coping
from user space to kernel space or vise versa.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/seq/seq_clientmgr.c
sound/core/seq/seq_compat.c