Commit | Line | Data |
---|---|---|
6d7d7433 HY |
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); |