diff options
Diffstat (limited to 'drivers/s390/net/ctcm_dbug.c')
-rw-r--r-- | drivers/s390/net/ctcm_dbug.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/drivers/s390/net/ctcm_dbug.c b/drivers/s390/net/ctcm_dbug.c new file mode 100644 index 000000000000..8eb25d00b2e7 --- /dev/null +++ b/drivers/s390/net/ctcm_dbug.c | |||
@@ -0,0 +1,67 @@ | |||
1 | /* | ||
2 | * drivers/s390/net/ctcm_dbug.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2001, 2007 | ||
5 | * Authors: Peter Tiedemann (ptiedem@de.ibm.com) | ||
6 | * | ||
7 | */ | ||
8 | |||
9 | #include <linux/stddef.h> | ||
10 | #include <linux/kernel.h> | ||
11 | #include <linux/errno.h> | ||
12 | #include <linux/slab.h> | ||
13 | #include <linux/ctype.h> | ||
14 | #include <linux/sysctl.h> | ||
15 | #include <linux/module.h> | ||
16 | #include <linux/init.h> | ||
17 | #include <linux/fs.h> | ||
18 | #include <linux/debugfs.h> | ||
19 | #include "ctcm_dbug.h" | ||
20 | |||
21 | /* | ||
22 | * Debug Facility Stuff | ||
23 | */ | ||
24 | |||
25 | DEFINE_PER_CPU(char[256], ctcm_dbf_txt_buf); | ||
26 | |||
27 | struct ctcm_dbf_info ctcm_dbf[CTCM_DBF_INFOS] = { | ||
28 | [CTCM_DBF_SETUP] = {"ctc_setup", 8, 1, 64, 5, NULL}, | ||
29 | [CTCM_DBF_ERROR] = {"ctc_error", 8, 1, 64, 3, NULL}, | ||
30 | [CTCM_DBF_TRACE] = {"ctc_trace", 8, 1, 64, 3, NULL}, | ||
31 | [CTCM_DBF_MPC_SETUP] = {"mpc_setup", 8, 1, 64, 5, NULL}, | ||
32 | [CTCM_DBF_MPC_ERROR] = {"mpc_error", 8, 1, 64, 3, NULL}, | ||
33 | [CTCM_DBF_MPC_TRACE] = {"mpc_trace", 8, 1, 64, 3, NULL}, | ||
34 | }; | ||
35 | |||
36 | void ctcm_unregister_dbf_views(void) | ||
37 | { | ||
38 | int x; | ||
39 | for (x = 0; x < CTCM_DBF_INFOS; x++) { | ||
40 | debug_unregister(ctcm_dbf[x].id); | ||
41 | ctcm_dbf[x].id = NULL; | ||
42 | } | ||
43 | } | ||
44 | |||
45 | int ctcm_register_dbf_views(void) | ||
46 | { | ||
47 | int x; | ||
48 | for (x = 0; x < CTCM_DBF_INFOS; x++) { | ||
49 | /* register the areas */ | ||
50 | ctcm_dbf[x].id = debug_register(ctcm_dbf[x].name, | ||
51 | ctcm_dbf[x].pages, | ||
52 | ctcm_dbf[x].areas, | ||
53 | ctcm_dbf[x].len); | ||
54 | if (ctcm_dbf[x].id == NULL) { | ||
55 | ctcm_unregister_dbf_views(); | ||
56 | return -ENOMEM; | ||
57 | } | ||
58 | |||
59 | /* register a view */ | ||
60 | debug_register_view(ctcm_dbf[x].id, &debug_hex_ascii_view); | ||
61 | /* set a passing level */ | ||
62 | debug_set_level(ctcm_dbf[x].id, ctcm_dbf[x].level); | ||
63 | } | ||
64 | |||
65 | return 0; | ||
66 | } | ||
67 | |||