Linux-2.6.12-rc2
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / s390 / net / ctcdbug.c
1 /*
2 *
3 * linux/drivers/s390/net/ctcdbug.c ($Revision: 1.4 $)
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.4 $ $Date: 2004/08/04 10:11:59 $
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
29 #include "ctcdbug.h"
30
31 /**
32 * Debug Facility Stuff
33 */
34 debug_info_t *ctc_dbf_setup = NULL;
35 debug_info_t *ctc_dbf_data = NULL;
36 debug_info_t *ctc_dbf_trace = NULL;
37
38 DEFINE_PER_CPU(char[256], ctc_dbf_txt_buf);
39
40 void
41 ctc_unregister_dbf_views(void)
42 {
43 if (ctc_dbf_setup)
44 debug_unregister(ctc_dbf_setup);
45 if (ctc_dbf_data)
46 debug_unregister(ctc_dbf_data);
47 if (ctc_dbf_trace)
48 debug_unregister(ctc_dbf_trace);
49 }
50 int
51 ctc_register_dbf_views(void)
52 {
53 ctc_dbf_setup = debug_register(CTC_DBF_SETUP_NAME,
54 CTC_DBF_SETUP_INDEX,
55 CTC_DBF_SETUP_NR_AREAS,
56 CTC_DBF_SETUP_LEN);
57 ctc_dbf_data = debug_register(CTC_DBF_DATA_NAME,
58 CTC_DBF_DATA_INDEX,
59 CTC_DBF_DATA_NR_AREAS,
60 CTC_DBF_DATA_LEN);
61 ctc_dbf_trace = debug_register(CTC_DBF_TRACE_NAME,
62 CTC_DBF_TRACE_INDEX,
63 CTC_DBF_TRACE_NR_AREAS,
64 CTC_DBF_TRACE_LEN);
65
66 if ((ctc_dbf_setup == NULL) || (ctc_dbf_data == NULL) ||
67 (ctc_dbf_trace == NULL)) {
68 ctc_unregister_dbf_views();
69 return -ENOMEM;
70 }
71 debug_register_view(ctc_dbf_setup, &debug_hex_ascii_view);
72 debug_set_level(ctc_dbf_setup, CTC_DBF_SETUP_LEVEL);
73
74 debug_register_view(ctc_dbf_data, &debug_hex_ascii_view);
75 debug_set_level(ctc_dbf_data, CTC_DBF_DATA_LEVEL);
76
77 debug_register_view(ctc_dbf_trace, &debug_hex_ascii_view);
78 debug_set_level(ctc_dbf_trace, CTC_DBF_TRACE_LEVEL);
79
80 return 0;
81 }
82
83