.symlink_to = "tts", .mc = { .name = "ssl", .config = ssl_config, .get_config = ssl_get_config, .remove = ssl_remove, }, }; /* The array is initialized by line_init, which is an initcall. The * individual elements are protected by individual semaphores. */ static struct line serial_lines[NR_PORTS] = { [0 ... NR_PORTS - 1] = LINE_INIT(CONFIG_SSL_CHAN, &driver) }; static struct lines lines = LINES_INIT(NR_PORTS); static int ssl_config(char *str) { return(line_config(serial_lines, sizeof(serial_lines)/sizeof(serial_lines[0]), str)); } static int ssl_get_config(char *dev, char *str, int size, char **error_out) { return(line_get_config(dev, serial_lines, sizeof(serial_lines)/sizeof(serial_lines[0]), str, size, error_out)); } static int ssl_remove(char *str)
.subtype = SYSTEM_TYPE_CONSOLE, .read_irq = CONSOLE_IRQ, .read_irq_name = "console", .write_irq = CONSOLE_WRITE_IRQ, .write_irq_name = "console-write", .symlink_from = "ttys", .symlink_to = "vc", .mc = { .name = "con", .config = con_config, .get_config = con_get_config, .remove = con_remove, }, }; static struct lines console_lines = LINES_INIT(MAX_TTYS); /* The array is initialized by line_init, which is an initcall. The * individual elements are protected by individual semaphores. */ struct line vts[MAX_TTYS] = { LINE_INIT(CONFIG_CON_ZERO_CHAN, &driver), [ 1 ... MAX_TTYS - 1 ] = LINE_INIT(CONFIG_CON_CHAN, &driver) }; static int con_config(char *str) { return(line_config(vts, sizeof(vts)/sizeof(vts[0]), str)); } static int con_get_config(char *dev, char *str, int size, char **error_out) {