Simple Read operation on a misc device driver

Aldo Esteban Paz estebanpazutn at gmail.com
Fri Apr 18 17:30:44 EDT 2014


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?



More information about the Kernelnewbies mailing list