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 27#include "ctcdbug.h" 28 29/** 30 * Debug Facility Stuff 31 */ 32debug_info_t *ctc_dbf_setup = NULL; 33debug_info_t *ctc_dbf_data = NULL; 34debug_info_t *ctc_dbf_trace = NULL; 35 36DEFINE_PER_CPU(char[256], ctc_dbf_txt_buf); 37 38void 39ctc_unregister_dbf_views(void) 40{ 41 if (ctc_dbf_setup) 42 debug_unregister(ctc_dbf_setup); 43 if (ctc_dbf_data) 44 debug_unregister(ctc_dbf_data); 45 if (ctc_dbf_trace) 46 debug_unregister(ctc_dbf_trace); 47} 48int 49ctc_register_dbf_views(void) 50{ 51 ctc_dbf_setup = debug_register(CTC_DBF_SETUP_NAME, 52 CTC_DBF_SETUP_PAGES, 53 CTC_DBF_SETUP_NR_AREAS, 54 CTC_DBF_SETUP_LEN); 55 ctc_dbf_data = debug_register(CTC_DBF_DATA_NAME, 56 CTC_DBF_DATA_PAGES, 57 CTC_DBF_DATA_NR_AREAS, 58 CTC_DBF_DATA_LEN); 59 ctc_dbf_trace = debug_register(CTC_DBF_TRACE_NAME, 60 CTC_DBF_TRACE_PAGES, 61 CTC_DBF_TRACE_NR_AREAS, 62 CTC_DBF_TRACE_LEN); 63 64 if ((ctc_dbf_setup == NULL) || (ctc_dbf_data == NULL) || 65 (ctc_dbf_trace == NULL)) { 66 ctc_unregister_dbf_views(); 67 return -ENOMEM; 68 } 69 debug_register_view(ctc_dbf_setup, &debug_hex_ascii_view); 70 debug_set_level(ctc_dbf_setup, CTC_DBF_SETUP_LEVEL); 71 72 debug_register_view(ctc_dbf_data, &debug_hex_ascii_view); 73 debug_set_level(ctc_dbf_data, CTC_DBF_DATA_LEVEL); 74 75 debug_register_view(ctc_dbf_trace, &debug_hex_ascii_view); 76 debug_set_level(ctc_dbf_trace, CTC_DBF_TRACE_LEVEL); 77 78 return 0; 79} 80