Simple Read operation on a misc device driver

Greg KH greg at kroah.com
Fri Apr 18 17:35:53 EDT 2014


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 :(





More information about the Kernelnewbies mailing list