console.c (815B)
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * DECstation PROM-based early console support. 4 * 5 * Copyright (C) 2004, 2007 Maciej W. Rozycki 6 */ 7#include <linux/console.h> 8#include <linux/init.h> 9#include <linux/kernel.h> 10#include <linux/string.h> 11 12#include <asm/dec/prom.h> 13 14static void __init prom_console_write(struct console *con, const char *s, 15 unsigned int c) 16{ 17 char buf[81]; 18 unsigned int chunk = sizeof(buf) - 1; 19 20 while (c > 0) { 21 if (chunk > c) 22 chunk = c; 23 memcpy(buf, s, chunk); 24 buf[chunk] = '\0'; 25 prom_printf("%s", buf); 26 s += chunk; 27 c -= chunk; 28 } 29} 30 31static struct console promcons __initdata = { 32 .name = "prom", 33 .write = prom_console_write, 34 .flags = CON_BOOT | CON_PRINTBUFFER, 35 .index = -1, 36}; 37 38void __init register_prom_console(void) 39{ 40 register_console(&promcons); 41}