[lkml]   [2000]   [Sep]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: reading 1 hardsector size, not one block size

On Sat, 30 Sep 2000, Andre Hedrick wrote:

> Can you tell me how to get/do this request? (seriously).
> read(32 sectors, beginning at LBA 50)
> How can one do this through the FS-layer?

<blinks> WTF does FS have to that? But anyway, the most trivial way is
to have the driver set blk_size[major][minor] to sector size and do

fd = open("your_device_name",O_RDONLY);
lseek(fd, 25600, 0);
read(fd, buf, 16384);

Driver will get a sequence of requests in its queue. Requests will have
->rq_dev set to your device, ->sector from 50 to 81 and ->nr_sectors == 1
(provided that they will not get merged, indeed). It's up to the driver
to decide what to do with them. For the rest of kernel device is just a
linear array of blocks. Where/how do you get the data for block number n
is entirely up to the driver. You get to decide how to interpret these
numbers - upper layers simply do not give a damn. If you treat
req->sector==50 as "access sector with LBA==50" - that's it.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:39    [W:0.091 / U:4.308 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site