|
发表于 2007-7-29 10:19:15
|
显示全部楼层
Post by wawxdyy
书上例程如下:
- loff_t scull_llseek(struct file *filp, loff_t off, int whence)
- {
- struct scull_dev *dev = filp->private_data;
- loff_t newpos;
- switch(whence) {
- case 0: /* SEEK_SET */
- newpos = off;
- break;
- case 1: /* SEEK_CUR */
- newpos = filp->f_pos + off;
- break;
- case 2: /* SEEK_END */
- newpos = dev->size + off;
- break;
- default: /* can't happen */
- return -EINVAL;
- }
- if (newpos < 0) return -EINVAL;
- filp->f_pos = newpos;
- return newpos;
- }
复制代码
可是我觉得应该加上互斥锁,各位觉得如何?
内核会保证该函数执行的串行化。
光看驱动没用,建议你先熟悉一下内核流程。 |
|