CVSROOT:        /cvs
Module name:    src
Changes by:     s...@cvs.openbsd.org    2019/05/26 09:20:04

Modified files:
        sys/dev/fdt    : virtio_mmio.c 
        sys/dev/pci    : virtio_pci.c 
        sys/dev/pv     : if_vio.c vioblk.c viocon.c viomb.c viornd.c 
                         vioscsi.c virtio.c virtiovar.h vmmci.c 

Log message:
Rework virtio_negotiate_features()

Add a sc_driver_features field that is automatically used by
virtio_negotiate_features() and during reinit.

Make virtio_negotiate_features() return an error code.  Virtio 1.0 has a
special status bit for feature negotiation that means that negotiation
can fail. Make virtio_negotiate_features() return an error code instead
of the features.

Make virtio_reinit_start() automatically call
virtio_negotiate_features().

Add a convenience function virtio_has_feature() to make checking bits
easier.

Add an error check in viomb for virtio_negotiate_features because it has
some feature bits that may cause negotiation to fail. More error
checking in the child drivers is still missing.

ok mlarkin@

Reply via email to