arc_con.c
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * Wrap-around code for a console using the
  3.  * ARC io-routines.
  4.  *
  5.  * Copyright (c) 1998 Harald Koerfgen 
  6.  */
  7. #include <linux/tty.h>
  8. #include <linux/major.h>
  9. #include <linux/ptrace.h>
  10. #include <linux/init.h>
  11. #include <linux/console.h>
  12. #include <linux/fs.h>
  13. extern char prom_getchar (void);
  14. extern void prom_printf (char *, ...);
  15. static void prom_console_write(struct console *co, const char *s,
  16.        unsigned count)
  17. {
  18. unsigned i;
  19. /*
  20.  *    Now, do each character
  21.  */
  22. for (i = 0; i < count; i++) {
  23. if (*s == 10)
  24. prom_printf("%c", 13);
  25. prom_printf("%c", *s++);
  26. }
  27. }
  28. static int prom_console_wait_key(struct console *co)
  29. {
  30. return prom_getchar();
  31. }
  32. static int __init prom_console_setup(struct console *co, char *options)
  33. {
  34. return 0;
  35. }
  36. static kdev_t prom_console_device(struct console *c)
  37. {
  38. return MKDEV(TTY_MAJOR, 64 + c->index);
  39. }
  40. static struct console arc_cons = {
  41. "ttyS",
  42. prom_console_write,
  43. NULL,
  44. prom_console_device,
  45. prom_console_wait_key,
  46. NULL,
  47. prom_console_setup,
  48. CON_PRINTBUFFER,
  49. -1,
  50. 0,
  51. NULL
  52. };
  53. /*
  54.  *    Register console.
  55.  */
  56. void __init arc_console_init(void)
  57. {
  58. register_console(&arc_cons);
  59. }