summaryrefslogtreecommitdiffstats
path: root/src/arch
diff options
context:
space:
mode:
authorMichael Brown2005-04-26 14:30:14 +0200
committerMichael Brown2005-04-26 14:30:14 +0200
commit3dbdeb588f27eea038b5b5ac9819e67698d636e0 (patch)
treeb7c62bb438157e9fd7499cdff0cc4784a8d0e742 /src/arch
parentPCI_DRIVER changed (diff)
downloadipxe-3dbdeb588f27eea038b5b5ac9819e67698d636e0.tar.gz
ipxe-3dbdeb588f27eea038b5b5ac9819e67698d636e0.tar.xz
ipxe-3dbdeb588f27eea038b5b5ac9819e67698d636e0.zip
ISA bus driver updated to report devices as present only if a driver
thinks they are. Other bus drivers modified for consistency.
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/i386/drivers/disk/floppy.c3
-rw-r--r--src/arch/i386/include/bios_disks.h11
-rw-r--r--src/arch/i386/scripts/i386.lds3
3 files changed, 10 insertions, 7 deletions
diff --git a/src/arch/i386/drivers/disk/floppy.c b/src/arch/i386/drivers/disk/floppy.c
index 865273397..0582ca18f 100644
--- a/src/arch/i386/drivers/disk/floppy.c
+++ b/src/arch/i386/drivers/disk/floppy.c
@@ -21,8 +21,7 @@ static void floppy_disable ( struct disk *disk,
}
-static struct bios_disk_driver floppy_driver =
- BIOS_DISK_DRIVER ( fill_floppy_name, 0x00, 0x7f );
+BIOS_DISK_DRIVER ( floppy_driver, fill_floppy_name, 0x00, 0x7f );
DRIVER ( "floppy", disk_driver, bios_disk_driver, floppy_driver,
floppy_probe, floppy_disable );
diff --git a/src/arch/i386/include/bios_disks.h b/src/arch/i386/include/bios_disks.h
index 1a2c31aab..0dd7c4ebb 100644
--- a/src/arch/i386/include/bios_disks.h
+++ b/src/arch/i386/include/bios_disks.h
@@ -47,11 +47,12 @@ struct bios_disk_driver {
* Define a BIOS disk driver
*
*/
-#define BIOS_DISK_DRIVER( _fill_drive_name, _min_drive, _max_drive ) { \
- .fill_drive_name = _fill_drive_name, \
- .min_drive = _min_drive, \
- .max_drive = _max_drive, \
-}
+#define BIOS_DISK_DRIVER( _name, _fill_drive_name, _min_drive, _max_drive ) \
+ static struct bios_disk_driver _name = { \
+ .fill_drive_name = _fill_drive_name, \
+ .min_drive = _min_drive, \
+ .max_drive = _max_drive, \
+ }
/*
* Functions in bios_disks.c
diff --git a/src/arch/i386/scripts/i386.lds b/src/arch/i386/scripts/i386.lds
index 0ed9955d0..51cfbd333 100644
--- a/src/arch/i386/scripts/i386.lds
+++ b/src/arch/i386/scripts/i386.lds
@@ -145,6 +145,9 @@ SECTIONS {
device_drivers = .;
*(.drivers.device)
device_drivers_end = .;
+ isa_drivers = . ;
+ *(.drivers.isa)
+ isa_drivers_end = .;
bus_drivers = .;
*(.drivers.bus)
bus_drivers_end = .;