On Fri, Sep 18, 2009 at 5:36 AM, Peter Teoh <htmldevelo...@gmail.com> wrote:

> >
> > I think you are talking about ioctl on a single minor number device, my
> > concern is more
> > about choice here. Meaning whether using ioctls with different commands
> on a
> > single dev
> > node be preferable to issuing reads on 3 different minor number device
> > nodes.
> >
> >
> > -Leo.
> >
> >
>
> just take the example of major device no 1:   u have /dev/mem,
> /dev/kmem, /dev/null, /dev/port etc etc....all having same major but
> different minor number, and implementation functions spilled into
> mem.c, or random.c etc, ie, more codes, more global variables (the
> fops structures) and more kernel memory (> 6MB++?).   but then u have
> the simplicity of coding (userspace) as well as asynchronous access to
> the kernel - ie, all three read() can enter the kernel at the same
> time.
>
> but if u used just one minor for 3 different buffer, and do some
> sophisticated multiplexing, u saved on memory (2MB++), but programming
> is more complex (userspace + kernel - those multiplexing stuff).  and
> u need to issue the read() synchronously - and u can either use
> in-band (or in-channel, hope u know what I mean) signalling (meaning
> the identifier of the buffer type is inside the buffer itself), or
> simpler still is out-of-band signalling (or side-channel), so in this
> case u need another minor device for ioctl purpose, to signal the
> buffer type to be used for the first minor device. ie, read() for
> first minor device, and ioctl() for 2nd minor device?   does it make
> any sense?
>
>
> --
> Regards,
> Peter Teoh
>

Peter,

You explained the first part in a fantastic way!
But I am not sure about the second para, in/out-band stuff.

-Leo

Reply via email to