Linux-2.6.12-rc2
[linux-flexiantxendom0-natty.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