|
@@ -0,0 +1,65 @@
|
|
|
+/*
|
|
|
+ * 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);
|