xref: /openbmc/linux/arch/x86/kernel/kdebugfs.c (revision a1e58bbd)
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);
66