On Tue, Sep 29, 2009 at 3:31 PM, Nagaprabhanjan Bellari
<nagp....@gmail.com>wrote:

> 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 <htmldevelo...@gmail.com>wrote:
>
>> On Fri, Sep 18, 2009 at 9:07 PM, Leonidas . <leonidas...@gmail.com>
>> wrote:
>> >
>> >
>> > 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
>> >
>>
>> 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 ecar...@nl.linux.org
>> Please read the FAQ at http://kernelnewbies.org/FAQ
>>
>>
>

I dont think so....

Your kernel module can write to /proc file only when someone has issued a
read on it.
i.e. your kernel module will not know whether to write or not unless someone
tries to
read from /proc file. You cant dump data to a /proc file assuming that
someone will read
it later on.

-Leo.

Reply via email to