hwc_con.c
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  *  drivers/s390/char/hwc_con.c
  3.  *    HWC line mode console driver
  4.  *
  5.  *  S390 version
  6.  *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
  7.  *    Author(s): Martin Peschke <mpeschke@de.ibm.com>
  8.  */
  9. #include <linux/config.h>
  10. #include <linux/kernel.h>
  11. #include <linux/major.h>
  12. #include <linux/errno.h>
  13. #include <linux/kdev_t.h>
  14. #include <linux/string.h>
  15. #include <linux/console.h>
  16. #include <linux/fs.h>
  17. #include <linux/init.h>
  18. #include "hwc_rw.h"
  19. #ifdef CONFIG_HWC_CONSOLE
  20. #define  hwc_console_major 4
  21. #define  hwc_console_minor 64
  22. #define  hwc_console_name  "console"
  23. void hwc_console_write (struct console *, const char *, unsigned int);
  24. kdev_t hwc_console_device (struct console *);
  25. void hwc_console_unblank (void);
  26. #define  HWC_CON_PRINT_HEADER "hwc console driver: "
  27. struct console hwc_console = {
  28. name: hwc_console_name,
  29. write: hwc_console_write,
  30. device: hwc_console_device,
  31. unblank:hwc_console_unblank,
  32. flags: CON_PRINTBUFFER,
  33. };
  34. void 
  35. hwc_console_write (
  36.   struct console *console,
  37.   const char *message,
  38.   unsigned int count)
  39. {
  40. if (console->device (console) != hwc_console.device (&hwc_console)) {
  41. hwc_printk (KERN_WARNING HWC_CON_PRINT_HEADER
  42.     "hwc_console_write() called with wrong "
  43.     "device number");
  44. return;
  45. }
  46. hwc_write (0, message, count);
  47. }
  48. kdev_t 
  49. hwc_console_device (struct console * c)
  50. {
  51. return MKDEV (hwc_console_major, hwc_console_minor);
  52. }
  53. void 
  54. hwc_console_unblank (void)
  55. {
  56. hwc_unblank ();
  57. }
  58. #endif
  59. void __init 
  60. hwc_console_init (void)
  61. {
  62. if (!MACHINE_HAS_HWC)
  63. return;
  64. if (hwc_init () == 0) {
  65. #ifdef CONFIG_HWC_CONSOLE
  66. if (CONSOLE_IS_HWC)
  67. register_console (&hwc_console);
  68. #endif
  69. } else
  70. panic (HWC_CON_PRINT_HEADER "hwc initialisation failed !");
  71. return;
  72. }