console.c uses the generic table mechanism
authorMichael Brown <mcb30@etherboot.org>
Wed, 27 Apr 2005 11:38:43 +0000 (11:38 +0000)
committerMichael Brown <mcb30@etherboot.org>
Wed, 27 Apr 2005 11:38:43 +0000 (11:38 +0000)
src/arch/i386/scripts/i386.lds
src/core/console.c
src/include/console.h

index 51cfbd3..89d2f62 100644 (file)
@@ -141,7 +141,10 @@ SECTIONS {
        *(.data)
        *(.data.*)
 
-       /* Various tables */
+       /* Various tables.  See include/tables.h for an explanation. */
+       *(SORT(.tbl.*)) 
+
+
        device_drivers = .;
        *(.drivers.device)
        device_drivers_end = .;
@@ -154,15 +157,9 @@ SECTIONS {
        type_drivers = .;
        *(.drivers.type)
        type_drivers_end = .;
-       console_drivers = .;
-       *(.drivers.console)
-       console_drivers_end = .;
        post_reloc_fns = .;
        *(SORT(.post_reloc_fns.*))
        post_reloc_fns_end = .;
-       init_fns = .;
-       *(SORT(.init_fns.*))
-       init_fns_end = .;
 
        _progbits_end = .;
     }
index 6e92cb5..2fbf863 100644 (file)
@@ -18,8 +18,8 @@
  */
 #include "bios.h"
 
-extern struct console_driver console_drivers[];
-extern struct console_driver console_drivers_end[];
+static struct console_driver console_drivers[0] __table_start ( console );
+static struct console_driver console_drivers_end[0] __table_end ( console );
 
 /*****************************************************************************
  * putchar : write a single character to each console
index 55ce730..146fd9c 100644 (file)
@@ -3,6 +3,7 @@
 
 #include "stdint.h"
 #include "vsprintf.h"
+#include "tables.h"
 
 /*
  * Consoles that cannot be used before their INIT_FN() has completed
@@ -18,7 +19,7 @@ struct console_driver {
 };
 
 #define __console_driver \
-       __attribute__ (( used, __section__ ( ".drivers.console" ) ))
+       __attribute__ (( used, __table_section ( console, 01 ) ))
 
 /* Function prototypes */