Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


incorporate changes to intelligent barriers
[palacios.git] / palacios / src / devices / lnx_virtio_vnet.c
index b4b7342..f7795f5 100644 (file)
 #include <palacios/vmm_dev_mgr.h>
 #include <palacios/vm_guest_mem.h>
 #include <devices/lnx_virtio_pci.h>
-#include <palacios/vmm_vnet.h>
+#include <vnet/vnet.h>
 #include <palacios/vmm_sprintf.h>
 #include <devices/pci.h>
 
 
-#ifndef CONFIG_DEBUG_LINUX_VIRTIO_VNET
+#ifndef V3_CONFIG_DEBUG_LINUX_VIRTIO_VNET
 #undef PrintDebug
 #define PrintDebug(fmt, args...)
 #endif
@@ -204,7 +204,7 @@ static int handle_cmd_kick(struct guest_info * core,
 
     if (!(q->avail->flags & VIRTIO_NO_IRQ_FLAG)) {
        PrintDebug("Raising IRQ %d\n",  vnet_state->pci_dev->config_header.intr_line);
-       v3_pci_raise_irq(vnet_state->pci_bus, 0, vnet_state->pci_dev);
+       v3_pci_raise_irq(vnet_state->pci_bus, vnet_state->pci_dev, 0);
        vnet_state->virtio_cfg.pci_isr = 1;
     }
 
@@ -258,7 +258,7 @@ static int vnet_pkt_input_cb(struct v3_vm_info * vm,
     }
 
     if (!(q->avail->flags & VIRTIO_NO_IRQ_FLAG)) {
-       v3_pci_raise_irq(vnet_state->pci_bus, 0, vnet_state->pci_dev);
+       v3_pci_raise_irq(vnet_state->pci_bus, vnet_state->pci_dev, 0);
        vnet_state->virtio_cfg.pci_isr = 0x1;
        PrintDebug("Raising IRQ %d\n",  vnet_state->pci_dev->config_header.intr_line);
     }
@@ -320,8 +320,8 @@ static int do_tx_pkts(struct guest_info * core,
     }
 
     if (!(q->avail->flags & VIRTIO_NO_IRQ_FLAG)) {
-           v3_pci_raise_irq(vnet_state->pci_bus, 0, vnet_state->pci_dev);
-           vnet_state->virtio_cfg.pci_isr = 0x1;
+       v3_pci_raise_irq(vnet_state->pci_bus,  vnet_state->pci_dev, 0);
+       vnet_state->virtio_cfg.pci_isr = 0x1;
     }
        
     return 0;
@@ -525,7 +525,7 @@ static int vnet_virtio_io_read(struct guest_info * core,
        case VIRTIO_ISR_PORT:
            *(uint8_t *)dst = vnet_state->virtio_cfg.pci_isr;
            vnet_state->virtio_cfg.pci_isr = 0;
-           v3_pci_lower_irq(vnet_state->pci_bus, 0, vnet_state->pci_dev);
+           v3_pci_lower_irq(vnet_state->pci_bus, vnet_state->pci_dev, 0);
            break;
 
        default:
@@ -575,6 +575,12 @@ static int dev_init(struct v3_vm_info * vm, v3_cfg_tree_t * cfg) {
     }
     
     vnet_state  = (struct virtio_vnet_state *)V3_Malloc(sizeof(struct virtio_vnet_state));
+
+    if (!vnet_state) {
+       PrintError("Cannot allocate in init\n");
+       return -1;
+    }
+
     memset(vnet_state, 0, sizeof(struct virtio_vnet_state));
        
     vnet_state->vm = vm;
@@ -623,7 +629,7 @@ static int dev_init(struct v3_vm_info * vm, v3_cfg_tree_t * cfg) {
        pci_dev = v3_pci_register_device(pci_bus, PCI_STD_DEVICE, 
                                         0, 5 /*PCI_AUTO_DEV_NUM*/, 0,
                                         "LNX_VIRTIO_VNET", bars,
-                                        NULL, NULL, NULL, vnet_state);
+                                        NULL, NULL, NULL, NULL, vnet_state);
 
        if (!pci_dev) {
            PrintError("Could not register PCI Device\n");