[SeaBIOS] Help with struct disk_op_s and block drives
Kevin O'Connor
kevin at koconnor.net
Fri Oct 14 01:22:29 CEST 2011
On Thu, Oct 13, 2011 at 09:17:51PM +0900, Daniel Castro wrote:
> Hello,
> I am working on the PV block drivers for Xen.
>
> I am in the point where I must write to my PV ring the requests and responses.
> I need a little help to understand how this works :)
> The operation comes wrapped in this structure:
> struct disk_op_s {
> u64 lba;
> void *buf_fl;
> struct drive_s *drive_g;
> u16 count;
> lba is the sector I need to read or write to, right?
Yes.
> count is how many sectors I am going to move, right?
Yes.
> buf_fl is the pointer to the buffer where I will put the info in case
> of write, or I will get the info in case of read, right?
Yes.
> command is either read or write.
Command can be other things as well - see some of the other drivers.
> drive_s contains the descriptor of the drive.
Yes.
> How does seabios handle more than one drive? My case, right now is
> only one drive but there will be more.
During the initialization phase, your driver should create a drive_s
structure for each available drive and pass it to boot_add_hd(). On
an access request, the disk_op_s struct will point to the drive_s
struct of the requested drive.
-Kevin
More information about the SeaBIOS
mailing list