Author: grehan
Date: Tue Sep  9 04:11:54 2014
New Revision: 271299
URL: http://svnweb.freebsd.org/changeset/base/271299

Log:
  Add a callback to be notified about negotiated features.
  
  Submitted by: luigi
  Obtained from:        Vincenzo Maffione, Universita` di Pisa
  MFC after:    3 days

Modified:
  head/usr.sbin/bhyve/pci_virtio_block.c
  head/usr.sbin/bhyve/pci_virtio_net.c
  head/usr.sbin/bhyve/pci_virtio_rnd.c
  head/usr.sbin/bhyve/virtio.c
  head/usr.sbin/bhyve/virtio.h

Modified: head/usr.sbin/bhyve/pci_virtio_block.c
==============================================================================
--- head/usr.sbin/bhyve/pci_virtio_block.c      Tue Sep  9 04:00:30 2014        
(r271298)
+++ head/usr.sbin/bhyve/pci_virtio_block.c      Tue Sep  9 04:11:54 2014        
(r271299)
@@ -133,6 +133,7 @@ static struct virtio_consts vtblk_vi_con
        pci_vtblk_notify,       /* device-wide qnotify */
        pci_vtblk_cfgread,      /* read PCI config */
        pci_vtblk_cfgwrite,     /* write PCI config */
+       NULL,                   /* apply negotiated features */
        VTBLK_S_HOSTCAPS,       /* our capabilities */
 };
 

Modified: head/usr.sbin/bhyve/pci_virtio_net.c
==============================================================================
--- head/usr.sbin/bhyve/pci_virtio_net.c        Tue Sep  9 04:00:30 2014        
(r271298)
+++ head/usr.sbin/bhyve/pci_virtio_net.c        Tue Sep  9 04:11:54 2014        
(r271299)
@@ -160,6 +160,7 @@ static struct virtio_consts vtnet_vi_con
        NULL,                   /* device-wide qnotify -- not used */
        pci_vtnet_cfgread,      /* read PCI config */
        pci_vtnet_cfgwrite,     /* write PCI config */
+       NULL,                   /* apply negotiated features */
        VTNET_S_HOSTCAPS,       /* our capabilities */
 };
 

Modified: head/usr.sbin/bhyve/pci_virtio_rnd.c
==============================================================================
--- head/usr.sbin/bhyve/pci_virtio_rnd.c        Tue Sep  9 04:00:30 2014        
(r271298)
+++ head/usr.sbin/bhyve/pci_virtio_rnd.c        Tue Sep  9 04:11:54 2014        
(r271299)
@@ -80,6 +80,7 @@ static struct virtio_consts vtrnd_vi_con
        pci_vtrnd_notify,       /* device-wide qnotify */
        NULL,                   /* read virtio config */
        NULL,                   /* write virtio config */
+       NULL,                   /* apply negotiated features */
        0,                      /* our capabilities */
 };
 

Modified: head/usr.sbin/bhyve/virtio.c
==============================================================================
--- head/usr.sbin/bhyve/virtio.c        Tue Sep  9 04:00:30 2014        
(r271298)
+++ head/usr.sbin/bhyve/virtio.c        Tue Sep  9 04:11:54 2014        
(r271299)
@@ -698,6 +698,9 @@ bad:
        switch (offset) {
        case VTCFG_R_GUESTCAP:
                vs->vs_negotiated_caps = value & vc->vc_hv_caps;
+               if (vc->vc_apply_features)
+                       (*vc->vc_apply_features)(DEV_SOFTC(vs),
+                           vs->vs_negotiated_caps);
                break;
        case VTCFG_R_PFN:
                if (vs->vs_curq >= vc->vc_nvq)

Modified: head/usr.sbin/bhyve/virtio.h
==============================================================================
--- head/usr.sbin/bhyve/virtio.h        Tue Sep  9 04:00:30 2014        
(r271298)
+++ head/usr.sbin/bhyve/virtio.h        Tue Sep  9 04:11:54 2014        
(r271299)
@@ -352,6 +352,8 @@ struct virtio_consts {
                                        /* called to read config regs */
        int     (*vc_cfgwrite)(void *, int, int, uint32_t);
                                        /* called to write config regs */
+       void    (*vc_apply_features)(void *, uint64_t);
+                               /* called to apply negotiated features */
        uint64_t vc_hv_caps;            /* hypervisor-provided capabilities */
 };
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to