static int configure_kgdboc(void) { struct tty_driver *p; int tty_line = 0; int err; err = kgdboc_option_setup(config); if (err || !strlen(config) || isspace(config[0])) goto noconfig; err = -ENODEV; p = tty_find_polling_driver(config, &tty_line); if (!p) goto noconfig; kgdb_tty_driver = p; kgdb_tty_line = tty_line; err = kgdb_register_io_module(&kgdboc_io_ops); if (err) goto noconfig; configured = 1; return 0; noconfig: config[0] = 0; configured = 0; return err; }
static int configure_kgdboc(void) { struct tty_driver *p; int tty_line = 0; int err; char *cptr = config; struct console *cons; err = kgdboc_option_setup(config); if (err || !strlen(config) || isspace(config[0])) goto noconfig; err = -ENODEV; kgdboc_io_ops.is_console = 0; kgdb_tty_driver = NULL; kgdboc_use_kms = 0; if (strncmp(cptr, "kms,", 4) == 0) { cptr += 4; kgdboc_use_kms = 1; } if (kgdboc_register_kbd(&cptr)) goto do_register; p = tty_find_polling_driver(cptr, &tty_line); if (!p) goto noconfig; cons = console_drivers; while (cons) { int idx; if (cons->device && cons->device(cons, &idx) == p && idx == tty_line) { kgdboc_io_ops.is_console = 1; break; } cons = cons->next; } kgdb_tty_driver = p; kgdb_tty_line = tty_line; do_register: err = kgdb_register_io_module(&kgdboc_io_ops); if (err) goto noconfig; configured = 1; return 0; noconfig: config[0] = 0; configured = 0; cleanup_kgdboc(); return err; }
/* This is only available if kgdboc is a built in for early debugging */ static int __init kgdboc_early_init(char *opt) { /* save the first character of the config string because the * init routine can destroy it. */ char save_ch; kgdboc_option_setup(opt); save_ch = config[0]; init_kgdboc(); config[0] = save_ch; return 0; }
static int __init kgdboc_early_init(char *opt) { /* */ char save_ch; kgdboc_option_setup(opt); save_ch = config[0]; init_kgdboc(); config[0] = save_ch; return 0; }
static int configure_kgdboc(void) { struct tty_driver *p; int tty_line = 0; int err; err = kgdboc_option_setup(config); if (err || !strlen(config) || isspace(config[0])) goto noconfig; err = -ENODEV; p = tty_find_polling_driver(config, &tty_line); if (!p) { printk("kgdb will retry in %d secs\n", config_retry_time); if (config_retry_time > 0) { INIT_DELAYED_WORK(&ttycheck_work, ttycheck_func); schedule_delayed_work(&ttycheck_work, config_retry_time * HZ); config_retry_time--; return -ENODEV; } goto noconfig; } kgdb_tty_driver = p; kgdb_tty_line = tty_line; err = kgdb_register_io_module(&kgdboc_io_ops); if (err) goto noconfig; configured = 1; return 0; noconfig: config[0] = 0; configured = 0; return err; }