promcon.c 928 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. * Wrap-around code for a console using the
  3. * DECstation PROM io-routines.
  4. *
  5. * Copyright (c) 1998 Harald Koerfgen
  6. */
  7. #include <linux/tty.h>
  8. #include <linux/ptrace.h>
  9. #include <linux/init.h>
  10. #include <linux/console.h>
  11. #include <linux/fs.h>
  12. #include <asm/dec/prom.h>
  13. static void prom_console_write(struct console *co, const char *s,
  14. unsigned count)
  15. {
  16. unsigned i;
  17. /*
  18. * Now, do each character
  19. */
  20. for (i = 0; i < count; i++) {
  21. if (*s == 10)
  22. prom_printf("%c", 13);
  23. prom_printf("%c", *s++);
  24. }
  25. }
  26. static int __init prom_console_setup(struct console *co, char *options)
  27. {
  28. return 0;
  29. }
  30. static struct console sercons = {
  31. .name = "ttyS",
  32. .write = prom_console_write,
  33. .setup = prom_console_setup,
  34. .flags = CON_PRINTBUFFER,
  35. .index = -1,
  36. };
  37. /*
  38. * Register console.
  39. */
  40. static int __init prom_console_init(void)
  41. {
  42. register_console(&sercons);
  43. return 0;
  44. }
  45. console_initcall(prom_console_init);