Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[wrt350n-kernel.git] / arch / x86 / kernel / kdebugfs.c
blob73354302fda76c3ee5a326e63deed6f37acca3a9
1 /*
2 * Architecture specific debugfs files
4 * Copyright (C) 2007, Intel Corp.
5 * Huang Ying <ying.huang@intel.com>
7 * This file is released under the GPLv2.
8 */
10 #include <linux/debugfs.h>
11 #include <linux/stat.h>
12 #include <linux/init.h>
14 #include <asm/setup.h>
16 #ifdef CONFIG_DEBUG_BOOT_PARAMS
17 static struct debugfs_blob_wrapper boot_params_blob = {
18 .data = &boot_params,
19 .size = sizeof(boot_params),
22 static int __init boot_params_kdebugfs_init(void)
24 int error;
25 struct dentry *dbp, *version, *data;
27 dbp = debugfs_create_dir("boot_params", NULL);
28 if (!dbp) {
29 error = -ENOMEM;
30 goto err_return;
32 version = debugfs_create_x16("version", S_IRUGO, dbp,
33 &boot_params.hdr.version);
34 if (!version) {
35 error = -ENOMEM;
36 goto err_dir;
38 data = debugfs_create_blob("data", S_IRUGO, dbp,
39 &boot_params_blob);
40 if (!data) {
41 error = -ENOMEM;
42 goto err_version;
44 return 0;
45 err_version:
46 debugfs_remove(version);
47 err_dir:
48 debugfs_remove(dbp);
49 err_return:
50 return error;
52 #endif
54 static int __init arch_kdebugfs_init(void)
56 int error = 0;
58 #ifdef CONFIG_DEBUG_BOOT_PARAMS
59 error = boot_params_kdebugfs_init();
60 #endif
62 return error;
65 arch_initcall(arch_kdebugfs_init);