switch_serial_input();
}
+int console_has(const char *device)
+{
+ char *p;
+
+ for ( p = opt_console; p != NULL; p = strchr(p, ',') )
+ {
+ if ( *p == ',' )
+ p++;
+ if ( strncmp(p, device, strlen(device)) == 0 )
+ return 1;
+ }
+
+ return 0;
+}
+
void console_start_log_everything(void)
{
atomic_inc(&print_everything);
*/
#include <xen/config.h>
+#include <xen/console.h>
#include <xen/init.h>
#include <xen/irq.h>
#include <xen/sched.h>
if ( (index < 0) || (index > 1) )
return;
- if ( defaults != NULL )
- {
- uart->baud = defaults->baud;
- uart->data_bits = defaults->data_bits;
- uart->parity = parse_parity_char(defaults->parity);
- uart->stop_bits = defaults->stop_bits;
- uart->irq = defaults->irq;
- uart->io_base = defaults->io_base;
- }
+ uart->baud = (defaults->baud ? :
+ console_has((index == 0) ? "com1" : "com2")
+ ? BAUD_AUTO : 0);
+ uart->data_bits = defaults->data_bits;
+ uart->parity = parse_parity_char(defaults->parity);
+ uart->stop_bits = defaults->stop_bits;
+ uart->irq = defaults->irq;
+ uart->io_base = defaults->io_base;
ns16550_parse_port_config(uart, (index == 0) ? opt_com1 : opt_com2);
}