arc_con.c 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Wrap-around code for a console using the
  4. * ARC io-routines.
  5. *
  6. * Copyright (c) 1998 Harald Koerfgen
  7. * Copyright (c) 2001 Ralf Baechle
  8. * Copyright (c) 2002 Thiemo Seufer
  9. */
  10. #include <linux/tty.h>
  11. #include <linux/major.h>
  12. #include <linux/init.h>
  13. #include <linux/console.h>
  14. #include <linux/fs.h>
  15. #include <asm/setup.h>
  16. #include <asm/sgialib.h>
  17. static void prom_console_write(struct console *co, const char *s,
  18. unsigned count)
  19. {
  20. /* Do each character */
  21. while (count--) {
  22. if (*s == '\n')
  23. prom_putchar('\r');
  24. prom_putchar(*s++);
  25. }
  26. }
  27. static int prom_console_setup(struct console *co, char *options)
  28. {
  29. if (prom_flags & PROM_FLAG_USE_AS_CONSOLE)
  30. return 0;
  31. return -ENODEV;
  32. }
  33. static struct console arc_cons = {
  34. .name = "arc",
  35. .write = prom_console_write,
  36. .setup = prom_console_setup,
  37. .flags = CON_PRINTBUFFER,
  38. .index = -1,
  39. };
  40. /*
  41. * Register console.
  42. */
  43. static int __init arc_console_init(void)
  44. {
  45. register_console(&arc_cons);
  46. return 0;
  47. }
  48. console_initcall(arc_console_init);