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

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

 



On Tue, 2008-09-23 at 14:47 +0200, Lennart Poettering wrote:
> On Tue, 23.09.08 14:38, Ralf Corsepius (rc040203@xxxxxxxxxx) wrote:
> 
> > 
> > On Tue, 2008-09-23 at 14:21 +0200, Lennart Poettering wrote:
> > > On Tue, 23.09.08 10:54, Dominik 'Rathann' Mierzejewski (dominik@xxxxxxxxxxxxxx) wrote:
> > 
> > > Oh my. So you know someone who thinks that ioctl()s are ingenious API
> > > design?
> > What do ioctls and files/stream not provide that you are missing?
> > 
> > ioctls essentially are "descriptor"/"tag"/"arbitrary argument".
> > An interface can hardly be more generic than this.
> 
> Yes, and the fact that it is that generic is the weakness.
> 
> You know, we have this wonderful language called C. It's all about
> tape-safety and having nice names for things and having proper
> signatures for functions and being descriptive. ioctl()s go against
> all that. They are not type-safe, have unreadable names, have no
> signatures and are everthing but descriptive. 
> 
> 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.





-- 
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