HI All
I am writing a block device driver that uses another block device for
its "base storage".
First the block device sturctures questions.
there is one 'struct gendisk' per disk. with partitions under this
->part[N].
there is one 'struct block_device' is the file system device, one per
disk or one part partition?
Is ther one kobject for each disk or partition?
-----------------------------------
one of the module parameters passed in is the base device. eather
/dev/hda1 or 0x0301, which format is the best?
module_parm_array(str_dev, charp, &dev_cnt,0);
or
module_parm_array(dev_dev, ushort, &dev_cnt,0);
from string to gendisk
bdev = lookup_bdev(str_dev); then finds the
block_device
gd = get_gendisk(bdev->bd_dev,MINOR(bdev->bd_dev))
OR
gd= get_gendisk(dev_dev,MINOR(dev_dev))
bdev = bdget_disk(gd, MINOR(dev_dev))
This confuses me, if there is one gendisk per disk why does get_gendisk
need a partition number?
OR
something with kobject?
----------------------------------------------------------
Now to get ther size.
numberOfSectors =gd->part[MINOR(dev)]->nr_sects
Now I need to 'open' the device for r/w
bd_claim()
or
open_bdev_excl()
Now read and write data to the sub block device