Firstly you cannot set the block size to lesser than 512.I understand that for real block device (like hard disk), block size cannot be less than 512. But to ramdisks, I think they are truely random addressable, and should be able to move on blocks even with size of 2 bytes.
When there is a request for the IO, you populate "struct req" data
structure which you will pass it to the kernel or lower level SCSI/SATA
driver. In the "struct req" there is a field "b_size" which may be what
you are interested in. At the user level you can use the IOCTLs to set
the block size of the RAW block device.
-Shesha
On Wed, 2004-10-27 at 18:44, Lei Yang wrote:
If nobody could answer this question, what about another one? Is there a system call or a kernel interface that would allow me to write a block of data to block 1 of a certain block device?
Thanks for your reply in advance!
Lei
Lei Yang wrote:
Please cc me if you have answers to this, I am not on the list. Thanks a lot!
Lei Yang wrote:
Hello,
I am learning block device drivers and have a newbie question. Given a block device, is there anyway that I could set its block size? For example, I want to write a block device driver that will work on an existing block device. In this driver, I want block size smaller. (The idea looks confusing but I could explain if anybody is interested :- ) However, typically the block size is 1KB, now I want to set it to 512 or 256. Can I do it?
TIA
Lei
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/