[alsa-devel] write/read system calls and ioctl
Michael Voigt
michael.c.m.voigt at web.de
Thu Dec 20 20:37:42 CET 2007
Dear ALSA developers,
At the beginning, I would like to give a short introdution of myself, then my
question follows.
My project:
===============
Currently, I am interning at the TU Dresden operating
systems group's [1] and it is my task to port ALSA to DROPS [2, 3], a
L4-microkernel-based real-time system. The long-term goal of this
project should be to establish a truely real-time capable FOSS platform
for audio recording and processing.
The current state of the project: By using DDELinux [4] and writing a small
kernel-user inferface emulation layer, we now have an unchanged version of
ALSA and an unchanged version of salsa-lib [5] running on our system. The
next steps will be to test how stable this port is and fix bugs. Then, during
my diploma thesis, it is my task to port Jack (or an equivalent) to our
system and to evaluate how to make the whole thing to work in real-time.
But now my question:
===============
In the file pcm_native in alsa-core read (snd_pcm_read) and write
(snd_pcm_write) functions are attached to the snd_pcm_f_ops. But as far
as I can see, these write- und read- system calls aren't used either in
salsa-lib or in alsa-lib.
I can see that in former versions of alsa-lib (for instance alsalib-0.0.3) the
write system call was used to implement snd_pcm_write (LIB); but now we have
snd_pcm_writei (LIB) and snd_pcm_writen (LIB) which use ioctl. I guess this
was done to realize both interleaved and noninterleaved audio playback (The
old snd_pcm_write (LIB) was based on bytes not on frames and did not have a
notion of interleaved/noninterleaved playback?). If I have a look at
snd_pcm_write (KERNEL, pcm_native.c), I can see it also ends up in
snd_pcm_lib_write(...). So does ioctl with SNDRV_PCM_IOCTL_WRITEI_FRAMES as
argument, but snd_pcm_write (KERNEL) does not copy the frames to kernel
memory.
My question: what is snd_pcm_write in pcm_native.c good for? Is it only there
to keep ALSA compatible to older versions of alsa-lib?
Kindest regards,
Michael Voigt
================
[1] http://www.inf.tu-dresden.de/index.php?node_id=1141&ln=en
[2] http://www.osnews.com/story.php/15814/Introduction-to-TUD-OS/
[3]
http://www.realtimelinuxfoundation.org/variants/variants.html#VARIANTS_DROPS
[4] http://demo.tudos.org/dsweeper_tutorial.html
[5] http://ftp.isr.ist.utl.pt/pub/MIRRORS/ftp.suse.com/people/tiwai/salsa-lib/
================
--
Today is Pungenday, the 61st day of The Aftermath in the YOLD 3173
More information about the Alsa-devel
mailing list