ctcdbug.c 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. *
  3. * linux/drivers/s390/net/ctcdbug.c
  4. *
  5. * CTC / ESCON network driver - s390 dbf exploit.
  6. *
  7. * Copyright 2000,2003 IBM Corporation
  8. *
  9. * Author(s): Original Code written by
  10. * Peter Tiedemann (ptiedem@de.ibm.com)
  11. *
  12. * This program is free software; you can redistribute it and/or modify
  13. * it under the terms of the GNU General Public License as published by
  14. * the Free Software Foundation; either version 2, or (at your option)
  15. * any later version.
  16. *
  17. * This program is distributed in the hope that it will be useful,
  18. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  19. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  20. * GNU General Public License for more details.
  21. *
  22. * You should have received a copy of the GNU General Public License
  23. * along with this program; if not, write to the Free Software
  24. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  25. */
  26. #include "ctcdbug.h"
  27. /**
  28. * Debug Facility Stuff
  29. */
  30. debug_info_t *ctc_dbf_setup = NULL;
  31. debug_info_t *ctc_dbf_data = NULL;
  32. debug_info_t *ctc_dbf_trace = NULL;
  33. DEFINE_PER_CPU(char[256], ctc_dbf_txt_buf);
  34. void
  35. ctc_unregister_dbf_views(void)
  36. {
  37. if (ctc_dbf_setup)
  38. debug_unregister(ctc_dbf_setup);
  39. if (ctc_dbf_data)
  40. debug_unregister(ctc_dbf_data);
  41. if (ctc_dbf_trace)
  42. debug_unregister(ctc_dbf_trace);
  43. }
  44. int
  45. ctc_register_dbf_views(void)
  46. {
  47. ctc_dbf_setup = debug_register(CTC_DBF_SETUP_NAME,
  48. CTC_DBF_SETUP_PAGES,
  49. CTC_DBF_SETUP_NR_AREAS,
  50. CTC_DBF_SETUP_LEN);
  51. ctc_dbf_data = debug_register(CTC_DBF_DATA_NAME,
  52. CTC_DBF_DATA_PAGES,
  53. CTC_DBF_DATA_NR_AREAS,
  54. CTC_DBF_DATA_LEN);
  55. ctc_dbf_trace = debug_register(CTC_DBF_TRACE_NAME,
  56. CTC_DBF_TRACE_PAGES,
  57. CTC_DBF_TRACE_NR_AREAS,
  58. CTC_DBF_TRACE_LEN);
  59. if ((ctc_dbf_setup == NULL) || (ctc_dbf_data == NULL) ||
  60. (ctc_dbf_trace == NULL)) {
  61. ctc_unregister_dbf_views();
  62. return -ENOMEM;
  63. }
  64. debug_register_view(ctc_dbf_setup, &debug_hex_ascii_view);
  65. debug_set_level(ctc_dbf_setup, CTC_DBF_SETUP_LEVEL);
  66. debug_register_view(ctc_dbf_data, &debug_hex_ascii_view);
  67. debug_set_level(ctc_dbf_data, CTC_DBF_DATA_LEVEL);
  68. debug_register_view(ctc_dbf_trace, &debug_hex_ascii_view);
  69. debug_set_level(ctc_dbf_trace, CTC_DBF_TRACE_LEVEL);
  70. return 0;
  71. }