From: Jack Lange Date: Wed, 18 Mar 2009 00:21:04 +0000 (-0500) Subject: updated ramdisk with initial pci placeholders X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=commitdiff_plain;h=822536b2f91a061cc6ead6039575533e35b48d2f;p=palacios.releases.git updated ramdisk with initial pci placeholders --- diff --git a/palacios/include/devices/ide.h b/palacios/include/devices/ide.h index b43d4a6..b667a03 100644 --- a/palacios/include/devices/ide.h +++ b/palacios/include/devices/ide.h @@ -41,7 +41,7 @@ #include - +#include typedef long off_t; typedef sint32_t ssize_t; @@ -179,6 +179,8 @@ struct controller_t { Bit8u sectors_per_block; Bit8u lba_mode; + struct vm_device * pci; + struct { rd_bool reset; // 0=normal, 1=reset controller rd_bool disable_irq; // 0=allow irq, 1=disable irq diff --git a/palacios/src/devices/ramdisk.c b/palacios/src/devices/ramdisk.c index cb92ca9..7ad7f9b 100644 --- a/palacios/src/devices/ramdisk.c +++ b/palacios/src/devices/ramdisk.c @@ -40,7 +40,7 @@ #include #include #include - +#include #ifndef TRACE_RAMDISK #undef PrintTrace @@ -2304,6 +2304,33 @@ static void rd_command_aborted(struct vm_device * dev, } +/* +static void init_pci(struct ramdisk_t * ramdisk) { +struct v3_pci_bar bars[6]; + struct pci_device * pci_dev; + int i; + + for (i = 0; i < 6; i++) { + bars[i].type = PCI_BAR_NONE; + bars[i].mem_hook = 0; + bars[i].num_pages = 0; + bars[i].bar_update = NULL; + } + + bars[4].type = PCI_BAR_MEM32; + bars[4].mem_hook = 0; + bars[4].num_pages = 1; + bars[4].bar_update = NULL; + + pci_dev = v3_pci_register_device(ramdisk->pci, PCI_STD_DEVICE, 0, "IDE", -1, bars, NULL, NULL, NULL, NULL); + + + pci_dev->config_header.vendor_id = 0x8086; + pci_dev->config_header.device_id = 0x2421; + + +} + */ static int ramdisk_init_device(struct vm_device *dev) { struct ramdisk_t *ramdisk= (struct ramdisk_t *)dev->private_data; @@ -2364,6 +2391,8 @@ static int ramdisk_init_device(struct vm_device *dev) { + + return 0; } @@ -2386,17 +2415,21 @@ static struct vm_device_ops dev_ops = { -struct vm_device * v3_create_ramdisk() +struct vm_device * v3_create_ramdisk(struct vm_device * pci) { struct ramdisk_t *ramdisk; ramdisk = (struct ramdisk_t *)V3_Malloc(sizeof(struct ramdisk_t)); V3_ASSERT(ramdisk != NULL); + // ramdisk->pci = pci; + PrintDebug("[create_ramdisk]\n"); struct vm_device * device = v3_create_device("RAMDISK", &dev_ops, ramdisk); + + return device; }