Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/mips/dec/prom/console.c
26489 views
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
14
static 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
31
static struct console promcons __initdata = {
32
.name = "prom",
33
.write = prom_console_write,
34
.flags = CON_BOOT | CON_PRINTBUFFER,
35
.index = -1,
36
};
37
38
void __init register_prom_console(void)
39
{
40
register_console(&promcons);
41
}
42
43