| /* | |
| * | |
| * linux/drivers/s390/net/ctcdbug.c ($Revision: 1.4 $) | |
| * | |
| * CTC / ESCON network driver - s390 dbf exploit. | |
| * | |
| * Copyright 2000,2003 IBM Corporation | |
| * | |
| * Author(s): Original Code written by | |
| * Peter Tiedemann (ptiedem@de.ibm.com) | |
| * | |
| * $Revision: 1.4 $ $Date: 2004/08/04 10:11:59 $ | |
| * | |
| * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2, or (at your option) | |
| * any later version. | |
| * | |
| * This program is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| * GNU General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU General Public License | |
| * along with this program; if not, write to the Free Software | |
| * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
| */ | |
| #include "ctcdbug.h" | |
| /** | |
| * Debug Facility Stuff | |
| */ | |
| debug_info_t *ctc_dbf_setup = NULL; | |
| debug_info_t *ctc_dbf_data = NULL; | |
| debug_info_t *ctc_dbf_trace = NULL; | |
| DEFINE_PER_CPU(char[256], ctc_dbf_txt_buf); | |
| void | |
| ctc_unregister_dbf_views(void) | |
| { | |
| if (ctc_dbf_setup) | |
| debug_unregister(ctc_dbf_setup); | |
| if (ctc_dbf_data) | |
| debug_unregister(ctc_dbf_data); | |
| if (ctc_dbf_trace) | |
| debug_unregister(ctc_dbf_trace); | |
| } | |
| int | |
| ctc_register_dbf_views(void) | |
| { | |
| ctc_dbf_setup = debug_register(CTC_DBF_SETUP_NAME, | |
| CTC_DBF_SETUP_INDEX, | |
| CTC_DBF_SETUP_NR_AREAS, | |
| CTC_DBF_SETUP_LEN); | |
| ctc_dbf_data = debug_register(CTC_DBF_DATA_NAME, | |
| CTC_DBF_DATA_INDEX, | |
| CTC_DBF_DATA_NR_AREAS, | |
| CTC_DBF_DATA_LEN); | |
| ctc_dbf_trace = debug_register(CTC_DBF_TRACE_NAME, | |
| CTC_DBF_TRACE_INDEX, | |
| CTC_DBF_TRACE_NR_AREAS, | |
| CTC_DBF_TRACE_LEN); | |
| if ((ctc_dbf_setup == NULL) || (ctc_dbf_data == NULL) || | |
| (ctc_dbf_trace == NULL)) { | |
| ctc_unregister_dbf_views(); | |
| return -ENOMEM; | |
| } | |
| debug_register_view(ctc_dbf_setup, &debug_hex_ascii_view); | |
| debug_set_level(ctc_dbf_setup, CTC_DBF_SETUP_LEVEL); | |
| debug_register_view(ctc_dbf_data, &debug_hex_ascii_view); | |
| debug_set_level(ctc_dbf_data, CTC_DBF_DATA_LEVEL); | |
| debug_register_view(ctc_dbf_trace, &debug_hex_ascii_view); | |
| debug_set_level(ctc_dbf_trace, CTC_DBF_TRACE_LEVEL); | |
| return 0; | |
| } | |