Simple Read operation on a misc device driver

L. Alberto Giménez agimenez at sysvalve.es
Sat Apr 19 12:44:12 EDT 2014


On Fri, Apr 18, 2014 at 02:35:53PM -0700, Greg KH wrote:
> On Fri, Apr 18, 2014 at 06:30:44PM -0300, Aldo Esteban Paz wrote:
> > For the Eudyptula's Chanllenge Task 6, i need to write a misc device
> > driver with simple read/write operations.
> >  The following was the answer to part of my code:
> > 
> > > static char eid[] = EUDYPTULAID;
> > >
> > > static ssize_t misc_device_read(struct file *file, char __user *buf,
> > >                                         size_t count, loff_t *ppos)
> > > {
> > >         if (*ppos == sizeof(eid))
> > >                 return 0;
> > >         else
> > >                 if (*ppos != 0 || count < sizeof(eid))
> > >                         return -EINVAL;
> > >
> > >         if (copy_to_user(buf, eid, sizeof(eid)))
> > >                 return -EINVAL;
> > >
> > >         *ppos = sizeof(eid);
> > >
> > >         return *ppos;
> > > }
> > 
> > This whole function can be made much more "simple" and reduced to one
> > single line {hint} (It's just a "simple" function call {hint}).
> > 
> > Anyone know that "single" function?
> 
> Yes, but you really should do your own research for stuff like this,
> that's what the challenge is all about, not asking others to do it for
> you :(

I'm curious about this. I didn't get the simple, one-line function call feedback and
my task was accepted with a regular function definition, similar to the one from the
OP.

-- 
L. Alberto Giménez
GnuPG key ID 0xDD4E27AB



More information about the Kernelnewbies mailing list