isa.c uses the new table infrastructure.
authorMichael Brown <mcb30@etherboot.org>
Wed, 27 Apr 2005 12:24:38 +0000 (12:24 +0000)
committerMichael Brown <mcb30@etherboot.org>
Wed, 27 Apr 2005 12:24:38 +0000 (12:24 +0000)
src/arch/i386/scripts/i386.lds
src/drivers/bus/isa.c
src/include/isa.h

index 9da043d..4329164 100644 (file)
@@ -140,15 +140,7 @@ SECTIONS {
        __data = .;
        *(.data)
        *(.data.*)
-
-       /* Various tables.  See include/tables.h for an explanation. */
-       *(SORT(.tbl.*)) 
-
-
-       isa_drivers = . ;
-       *(.drivers.isa)
-       isa_drivers_end = .;
-
+       *(SORT(.tbl.*))         /* Various tables.  See include/tables.h */
        _progbits_end = .;
     }
 
index 3766a73..fb207ba 100644 (file)
@@ -44,8 +44,8 @@ static isa_probe_addr_t isa_extra_probe_addrs[] = {
  * Symbols defined by linker
  *
  */
-extern struct isa_driver isa_drivers[];
-extern struct isa_driver isa_drivers_end[];
+static struct isa_driver isa_drivers[0] __table_start ( isa_driver );
+static struct isa_driver isa_drivers_end[0] __table_end ( isa_driver );
 
 /*
  * Increment a bus_loc structure to the next possible ISA location.
index 1a4c870..9e1dcad 100644 (file)
@@ -48,14 +48,13 @@ struct isa_driver {
        uint16_t mfg_id;
        uint16_t prod_id;
 };
-#define __isa_driver __attribute__ (( section ( ".drivers.isa" ) ))
 
 /*
  * Define an ISA driver
  *
  */
 #define ISA_DRIVER( _name, _probe_addrs, _probe_addr, _mfg_id, _prod_id )   \
-static struct isa_driver _name __isa_driver = {                                    \
+static struct isa_driver _name __table(isa_driver,01 ) = {                 \
        .probe_addrs = _probe_addrs,                                        \
        .addr_count = sizeof ( _probe_addrs ) / sizeof ( _probe_addrs[0] ), \
        .probe_addr = _probe_addr,                                          \