void console_init(void)
{
struct console_driver *driver;
- if(get_option(&console_loglevel, "debug_level"))
- console_loglevel=DEFAULT_CONSOLE_LOGLEVEL;
+
+ if (get_option("debug_level", &console_loglevel))
+ console_loglevel = DEFAULT_CONSOLE_LOGLEVEL;
for(driver = console_drivers; driver < econsole_drivers; driver++) {
if (!driver->init)
__console_tx_byte(byte);
}
+unsigned char console_rx_byte(void)
+{
+ struct console_driver *driver;
+ if (!initialized)
+ return 0;
+ for(driver = console_drivers; driver < econsole_drivers; driver++) {
+ if (driver->tst_byte)
+ break;
+ }
+ if (driver == econsole_drivers)
+ return 0;
+ while (!driver->tst_byte());
+ return driver->rx_byte();
+}
+
+int console_tst_byte(void)
+{
+ struct console_driver *driver;
+ if (!initialized)
+ return 0;
+ for(driver = console_drivers; driver < econsole_drivers; driver++)
+ if (driver->tst_byte)
+ return driver->tst_byte();
+ return 0;
+}
+
/*
* Write POST information
*/
void post_code(uint8_t value)
{
-#ifdef CONFIG_SERIAL_POST
- printk_info("POST: 0x%02x\n", value);
-#elsif !define(NO_POST)
+#if !defined(NO_POST) || NO_POST==0
+#if CONFIG_SERIAL_POST==1
+ printk_emerg("POST: 0x%02x\n", value);
+#endif
outb(value, 0x80);
#endif
}
/* Report a fatal error */
-void die(char *msg)
+void die(const char *msg)
{
printk_emerg("%s", msg);
post_code(0xff);