Re: Pulseaudio : lots of issues, how can I help?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 23.09.08 15:02, Ralf Corsepius (rc040203@xxxxxxxxxx) 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

-- 
fedora-devel-list mailing list
fedora-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux