Pulseaudio : lots of issues, how can I help?
Lennart Poettering
mzerqung at 0pointer.de
Tue Sep 23 13:07:36 UTC 2008
On Tue, 23.09.08 15:02, Ralf Corsepius (rc040203 at freenet.de) wrote:
> > Let's say every single libc call would have been mutlipexed by a
> > single function call. i.e. instead of calling malloc() like this:
> >
> > a = malloc(4711);
> >
> > you'd call:
> >
> > a = (void*) libc(LC_MLLC, 4711);
> >
> > Now think of hwo your program would look like in its entirety:
> > unreadable. Absolutely crazy and unreadable.
> >
> > Now ioctl() does exactly this: a vast number of function calls are
> > multiplexed via a single function call. Big fuckup. And everyone who
> > claims that that would be good API design is just wrong, really,
> > really wrong. It's not good. It's a fuckup. It's terrible.
>
> And I tell you: You are wrong, plain wrong.
>
> ioctl's are a well defined _low level_ interface, providing a clean and
> "natural" separation between kernel and userspace.
> To make them easily applicable in high-level userspace applications,
> they are supposed to be wrapped.
Yepp! That's exactly what I was saying: OSS as an application
programmers interface is a trainwreck because it directly exposes
ioctls.
ioctl as an API for normal programs == bad!
When ioctls are hidden to normal programs like ALSA does it == acceptable!
Lennart
--
Lennart Poettering Red Hat, Inc.
lennart [at] poettering [dot] net ICQ# 11060553
http://0pointer.net/lennart/ GnuPG 0x1A015CC4
More information about the fedora-devel-list
mailing list