关于LDD中Block Driver例子的一个问题
为何sbull_transfer传输的不是buffer的长度 ,而是sector整数倍的长度?
复制代码
谢谢~
- static void sbull_transfer(struct sbull_dev *dev, unsigned long sector,
-
- unsigned long nsect, char *buffer, int write)
-
- {
-
- unsigned long offset = sector*KERNEL_SECTOR_SIZE;
-
- unsigned long nbytes = nsect*KERNEL_SECTOR_SIZE;
-
-
-
- if ((offset + nbytes) > dev->size) {
-
- printk (KERN_NOTICE "Beyond-end write (%ld %ld)\n", offset, nbytes);
-
- return;
-
- }
-
- if (write)
-
- memcpy(dev->data + offset, buffer, nbytes);
-
- else
-
- memcpy(buffer, dev->data + offset, nbytes);
-
- }
作者: vividone 发布时间: 2011-02-01
因为这个驱动是块设备驱动,只能以sector整数倍的长度访问
作者: 0vk0 发布时间: 2011-02-01