If you take /proc filesystem for example, you can write something to it and
can read something from it depending on what you last wrote.
-nagp

On Fri, Sep 18, 2009 at 9:46 PM, Peter Teoh <[email protected]> wrote:

> On Fri, Sep 18, 2009 at 9:07 PM, Leonidas . <[email protected]> wrote:
> >
> >
> > On Fri, Sep 18, 2009 at 5:36 AM, Peter Teoh <[email protected]>
> 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
> >
>
> ok......by in-band, i mean data + buffer type descriptor (u have 3
> types of buffer right) all goes into the same data area, so perhaps
> 2MB + 1 byte (which will have values of 1,2, or 3 to identify which
> buffer the current data represent).   so basically only ONE device
> (eg, /dev/myA).
>
> by out-of-band, i mean data will go into /dev/myA, and buffer type
> will go into /dev/myB.   so u do ioctl(/dev/myB) to specify the buffer
> type, and then the entire 2MB will go into /dev/myA.   so basically
> TWO device have to be created.
>
>
>
>
> --
> Regards,
> Peter Teoh
>
> --
> To unsubscribe from this list: send an email with
> "unsubscribe kernelnewbies" to [email protected]
> Please read the FAQ at http://kernelnewbies.org/FAQ
>
>

Reply via email to