lkml.org 
[lkml]   [2004]   [Jul]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 2.6.8-rc2-mm1
Johannes Stezenbach <js@convergence.de> wrote:
>
> Andrew Morton wrote:
> > Johannes Stezenbach <js@convergence.de> wrote:
> > >
> > > This is a hack introduced by someone years ago. The "pointer" is
> > > actually an integer argument, e.g. in include/linux/dvb/audio.h:
> > >
> > > #define AUDIO_SET_MUTE _IO('o', 6)
> > >
> > > actually takes an integer argument (!0 mute, 0 unmute), so one can write
> > >
> > > if (ioctl(fd, AUDIO_SET_MUTE, 1) == -1)
> > > perror("mute");
> >
> > Is it a boolean argument?
> >
> > If so, we could change the code to do
> >
> > parg = (void *)(arg ? 1 : 0);
> >
> > so if someone dereferences it they'll get a nice oops.
>
> Unfortunately there are a few more ioctls which use enums,
> e.g. AUDIO_CHANNEL_SELECT has an argument of type
> audio_channel_select_t etc. (yes, I know, those typedefs
> should go). Or even DMX_SET_BUFFER_SIZE...

OK. Well how's about we add a fifth argument to that callback function, of
type `int'? Stick this integer in there and leave the fourth argument NULL
for this class of ioctl?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:04    [W:0.051 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site