stderr_console.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include <linux/init.h>
  2. #include <linux/console.h>
  3. #include "chan_user.h"
  4. /* ----------------------------------------------------------------------------- */
  5. /* trivial console driver -- simply dump everything to stderr */
  6. /*
  7. * Don't register by default -- as this registeres very early in the
  8. * boot process it becomes the default console. And as this isn't a
  9. * real tty driver init isn't able to open /dev/console then.
  10. *
  11. * In most cases this isn't what you want ...
  12. */
  13. static int use_stderr_console = 0;
  14. static void stderr_console_write(struct console *console, const char *string,
  15. unsigned len)
  16. {
  17. generic_write(2 /* stderr */, string, len, NULL);
  18. }
  19. static struct console stderr_console = {
  20. .name = "stderr",
  21. .write = stderr_console_write,
  22. .flags = CON_PRINTBUFFER,
  23. };
  24. static int __init stderr_console_init(void)
  25. {
  26. if (use_stderr_console)
  27. register_console(&stderr_console);
  28. return 0;
  29. }
  30. console_initcall(stderr_console_init);
  31. static int stderr_setup(char *str)
  32. {
  33. if (!str)
  34. return 0;
  35. use_stderr_console = simple_strtoul(str,&str,0);
  36. return 1;
  37. }
  38. __setup("stderr=", stderr_setup);