ctcdbug.c 2.3 KB

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