On Fri, Sep 18, 2009 at 7:32 AM, Pei Lin <[email protected]> wrote:

> 2009/9/17 Leonidas . <[email protected]>:
> >
> >
> > Hi list,
> >
> > I know that introducing/using new ioctls is frawned upon by the
> community.
> > They might still be needed for controlling various hw parameters, Just
> > wanted
> > to understand the data transfer side of ioctls with a use case.
> >
> > E.g. My kernel module needs to pass a buffer of 1-2Mb to userspace
> > whenever user requests. The buffer will contain different kind of data
> > depending
> > on different commands i.e. assume that I maintain 3 types of buffers in
> my
> > module.
> >
> > Now, with ioctls it is much easiler to get the buffer to userspace simply
> by
> > issusing
> > different commands. But if I have to achive the same functionality using
> > read() call
> > how would I do it? Meaning ioctl kind of multiplexes the things which
> might
> > be
> > needed in some cases. How would I do this kind of stuff with read()? By
> > having 3
> > different minor devices and issuing read() on 3 devices for getting 3
> > buffers?
> >
> hi, leo
> just implement your ioctl function, create the command, and decode
> command,deliver your command and buffer point (user) into your
> module,then use copy_from_user /copy_to_user deliver your buffer from
> user to kernel or vice versa.
>
> > I am not looking for anyother mechanism of trasnfering data to userspace
> as
> > of now
> > since this data would be really sporadic. I have to choose between ioctl
> and
> > read.
> >
> > -Leo.
> >
>
>
>
> --
> Best Regards
> Lin
>

Peter,

No it is going to be a simple char device. Actually a pseudo device since it
is not going
to be associated with any hw buffers. The buffers which I need to transfer
are some
bookkeeping buffers I would maintain in my module. So the usd stuff which
you mention
might not be appropriate.

Lin,

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.

Reply via email to