X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fi440fx.c;h=ee4dc8072fb3bab315637556eb53341fc4bcb6c8;hb=123a1ba27ea09c8fa77a1b36ce625b43d7c48b14;hp=8621d3336f1f79426bce3f5fca8502bcceaa96e6;hpb=37c18b2c2335a41c68c2f0b779fd2b7d51ab216d;p=palacios.git diff --git a/palacios/src/devices/i440fx.c b/palacios/src/devices/i440fx.c index 8621d33..ee4dc80 100644 --- a/palacios/src/devices/i440fx.c +++ b/palacios/src/devices/i440fx.c @@ -21,6 +21,9 @@ #include #include + +// We Have to setup some sort of PIC interrupt mapping here.... + struct i440_state { struct vm_device * pci; }; @@ -54,12 +57,13 @@ static struct v3_device_ops dev_ops = { -static int i440_init(struct guest_info * vm, void * cfg_data) { +static int i440_init(struct guest_info * vm, v3_cfg_tree_t * cfg) { struct pci_device * pci_dev = NULL; struct v3_pci_bar bars[6]; int i; struct i440_state * state = NULL; - struct vm_device * pci = v3_find_dev(vm, (char *)cfg_data); + struct vm_device * pci = v3_find_dev(vm, v3_cfg_val(cfg, "bus")); + char * name = v3_cfg_val(cfg, "name"); if (!pci) { PrintError("could not find PCI Device\n"); @@ -70,10 +74,10 @@ static int i440_init(struct guest_info * vm, void * cfg_data) { state->pci = pci; - struct vm_device * dev = v3_allocate_device("i440FX", &dev_ops, state); + struct vm_device * dev = v3_allocate_device(name, &dev_ops, state); if (v3_attach_device(vm, dev) == -1) { - PrintError("Could not attach device %s\n", "i440FX"); + PrintError("Could not attach device %s\n", name); return -1; } @@ -89,7 +93,8 @@ static int i440_init(struct guest_info * vm, void * cfg_data) { bars[i].type = PCI_BAR_NONE; } - pci_dev = v3_pci_register_device(state->pci, PCI_STD_DEVICE, 0, 0, 0, "i440FX", bars, + pci_dev = v3_pci_register_device(state->pci, PCI_STD_DEVICE, + 0, 0, 0, "i440FX", bars, NULL, NULL, NULL, dev); if (!pci_dev) {