linux/arch/mips/dec/prom/console.c
<<
>>
Prefs
   1/*
   2 *      DECstation PROM-based early console support.
   3 *
   4 *      Copyright (C) 2004, 2007  Maciej W. Rozycki
   5 *
   6 *      This program is free software; you can redistribute it and/or
   7 *      modify it under the terms of the GNU General Public License
   8 *      as published by the Free Software Foundation; either version
   9 *      2 of the License, or (at your option) any later version.
  10 */
  11#include <linux/console.h>
  12#include <linux/init.h>
  13#include <linux/kernel.h>
  14#include <linux/string.h>
  15
  16#include <asm/dec/prom.h>
  17
  18static void __init prom_console_write(struct console *con, const char *s,
  19                                      unsigned int c)
  20{
  21        char buf[81];
  22        unsigned int chunk = sizeof(buf) - 1;
  23
  24        while (c > 0) {
  25                if (chunk > c)
  26                        chunk = c;
  27                memcpy(buf, s, chunk);
  28                buf[chunk] = '\0';
  29                prom_printf("%s", buf);
  30                s += chunk;
  31                c -= chunk;
  32        }
  33}
  34
  35static struct console promcons __initdata = {
  36        .name   = "prom",
  37        .write  = prom_console_write,
  38        .flags  = CON_BOOT | CON_PRINTBUFFER,
  39        .index  = -1,
  40};
  41
  42void __init register_prom_console(void)
  43{
  44        register_console(&promcons);
  45}
  46