Hi,

I am a newbie who is developing a device driver for NetBSD. For this driver, I 
need to do some read/write operations to the disk. Therefore, I was using 
'struct buf' from buf.h. I figured I can set the buf.b_data to the reference of 
a continuously/consecutively allocated memory. This memory is supposed to hold 
read/write data. Once the buf is set with appropriate values, the 
bdev_strategy(buf)  function is called to do the R/W operation on the device.

My concern is what if I do not have a reference to a consecutive memory to set 
the buf.b_data with, i.e. what should I do if I have multiple non-consecutive 
pages to write to the device? Should I create one buf per non-consecutive pages 
and call the bdev_strategy(buf) for each of them? Is there any way to write 
multiple pages using a single buf? 

I am trying to figure the proper way to handle such a situation instead of 
serializing using memalloc() and memcpy(). Please let me know your suggestion.

Thanks,
Mehrab

Reply via email to