diff options
Diffstat (limited to 'arch/x86/kernel/kdebugfs.c')
-rw-r--r-- | arch/x86/kernel/kdebugfs.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/arch/x86/kernel/kdebugfs.c b/arch/x86/kernel/kdebugfs.c new file mode 100644 index 000000000000..73354302fda7 --- /dev/null +++ b/arch/x86/kernel/kdebugfs.c | |||
@@ -0,0 +1,65 @@ | |||
1 | /* | ||
2 | * Architecture specific debugfs files | ||
3 | * | ||
4 | * Copyright (C) 2007, Intel Corp. | ||
5 | * Huang Ying <ying.huang@intel.com> | ||
6 | * | ||
7 | * This file is released under the GPLv2. | ||
8 | */ | ||
9 | |||
10 | #include <linux/debugfs.h> | ||
11 | #include <linux/stat.h> | ||
12 | #include <linux/init.h> | ||
13 | |||
14 | #include <asm/setup.h> | ||
15 | |||
16 | #ifdef CONFIG_DEBUG_BOOT_PARAMS | ||
17 | static struct debugfs_blob_wrapper boot_params_blob = { | ||
18 | .data = &boot_params, | ||
19 | .size = sizeof(boot_params), | ||
20 | }; | ||
21 | |||
22 | static int __init boot_params_kdebugfs_init(void) | ||
23 | { | ||
24 | int error; | ||
25 | struct dentry *dbp, *version, *data; | ||
26 | |||
27 | dbp = debugfs_create_dir("boot_params", NULL); | ||
28 | if (!dbp) { | ||
29 | error = -ENOMEM; | ||
30 | goto err_return; | ||
31 | } | ||
32 | version = debugfs_create_x16("version", S_IRUGO, dbp, | ||
33 | &boot_params.hdr.version); | ||
34 | if (!version) { | ||
35 | error = -ENOMEM; | ||
36 | goto err_dir; | ||
37 | } | ||
38 | data = debugfs_create_blob("data", S_IRUGO, dbp, | ||
39 | &boot_params_blob); | ||
40 | if (!data) { | ||
41 | error = -ENOMEM; | ||
42 | goto err_version; | ||
43 | } | ||
44 | return 0; | ||
45 | err_version: | ||
46 | debugfs_remove(version); | ||
47 | err_dir: | ||
48 | debugfs_remove(dbp); | ||
49 | err_return: | ||
50 | return error; | ||
51 | } | ||
52 | #endif | ||
53 | |||
54 | static int __init arch_kdebugfs_init(void) | ||
55 | { | ||
56 | int error = 0; | ||
57 | |||
58 | #ifdef CONFIG_DEBUG_BOOT_PARAMS | ||
59 | error = boot_params_kdebugfs_init(); | ||
60 | #endif | ||
61 | |||
62 | return error; | ||
63 | } | ||
64 | |||
65 | arch_initcall(arch_kdebugfs_init); | ||