On Tue, 2016-06-07 at 13:29 +0100, Stefan Hajnoczi wrote:
> On Mon, Jun 06, 2016 at 10:51:11AM +0530, Srinivas Nayak wrote:
> >
> > I am studying the virtio spec 1.0 and trying to write a virtio blk
> > driver.
> > Is there anywhere a simple example virtio blk driver can be found,
> > which may be written with conformance to virtio spec 1.0?
> > I would like to understand a simple virtio blk driver, how it is
> > written.
> >
> > Better if there is any clear document available regarding a virtio
> > blk driver implementation.
> If you want to see a minimal driver, look at the SeaBIOS
> src/hw/virtio-blk.c driver. It only uses a subset of virtio-blk
> functionality.
>
> https://github.com/qemu/seabios/blob/master/src/hw/virtio-blk.c
There's also a reasonably small/simple implementation in the FreeBSD
bhyve stuff, e.g.
https://github.com/freebsd/freebsd/blob/master/usr.sbin/bhyve/pci_virtio_block.c
> For a full implementation,
It's probably worth noting that in most cases a lot of the code (e.g.
the more low level ring/descriptor handling) is in the generic virtio
framework for the OS rather than the specific driver.
Ian.