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