Use the magic of common symbols to allow struct dev to effectively grow at

link time to accommodate whatever bus objects are included.
This commit is contained in:
Michael Brown
2005-04-14 10:10:54 +00:00
parent 0dc98309b2
commit 75d864432c
8 changed files with 84 additions and 49 deletions

View File

@@ -144,7 +144,10 @@ static int initialized;
/* Global instance of the current boot device */
struct dev dev;
DEV_BUS(struct {}, dev_bus);
struct dev dev = {
.bus = &dev_bus,
};
/**************************************************************************
* initialise() - perform any C-level initialisation
@@ -213,24 +216,6 @@ void exit(int status)
}
/*
* Set PCI device to use.
*
* This routine can be called by e.g. the ROM prefix to specify that
* the first device to be tried should be the device on which the ROM
* was physically located.
*
* Note that this is deliberately in main.c rather than pci.c, because
* this function should generalise to other bus types (e.g. ISAPnP),
* and we don't want to end up dragging in pci.o unnecessarily.
*/
void set_pci_device ( uint16_t busdevfn ) {
dev.devid.bus_type = PCI_BUS_TYPE;
dev.pci.busdevfn = busdevfn;
dev.pci.already_tried = 0;
}
#if 0
static int main_loop(int state)