| /* |
| * Architecture specific debugfs files |
| * |
| * Copyright (C) 2007, Intel Corp. |
| * Huang Ying <ying.huang@intel.com> |
| * |
| * This file is released under the GPLv2. |
| */ |
| |
| #include <linux/debugfs.h> |
| #include <linux/stat.h> |
| #include <linux/init.h> |
| |
| #include <asm/setup.h> |
| |
| #ifdef CONFIG_DEBUG_BOOT_PARAMS |
| static struct debugfs_blob_wrapper boot_params_blob = { |
| .data = &boot_params, |
| .size = sizeof(boot_params), |
| }; |
| |
| static int __init boot_params_kdebugfs_init(void) |
| { |
| int error; |
| struct dentry *dbp, *version, *data; |
| |
| dbp = debugfs_create_dir("boot_params", NULL); |
| if (!dbp) { |
| error = -ENOMEM; |
| goto err_return; |
| } |
| version = debugfs_create_x16("version", S_IRUGO, dbp, |
| &boot_params.hdr.version); |
| if (!version) { |
| error = -ENOMEM; |
| goto err_dir; |
| } |
| data = debugfs_create_blob("data", S_IRUGO, dbp, |
| &boot_params_blob); |
| if (!data) { |
| error = -ENOMEM; |
| goto err_version; |
| } |
| return 0; |
| err_version: |
| debugfs_remove(version); |
| err_dir: |
| debugfs_remove(dbp); |
| err_return: |
| return error; |
| } |
| #endif |
| |
| static int __init arch_kdebugfs_init(void) |
| { |
| int error = 0; |
| |
| #ifdef CONFIG_DEBUG_BOOT_PARAMS |
| error = boot_params_kdebugfs_init(); |
| #endif |
| |
| return error; |
| } |
| |
| arch_initcall(arch_kdebugfs_init); |