summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2011-11-29 20:52:03 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2011-11-29 20:52:03 +0100
commit7631e76c0b472e95c908866d26883b019657636d (patch)
treec177100f2ed9f13ca33ec159bbf69b6114d0c23b /include
parente0f4fb2c982d66210dfd5ffaf92912bf1c6c6586 (diff)
parent7766c288ff6e6defd7565af73a3407c3c414eb94 (diff)
downloadbarebox-7631e76c0b472e95c908866d26883b019657636d.tar.gz
barebox-7631e76c0b472e95c908866d26883b019657636d.tar.xz
Merge branch 'work/magicvars' into next
Diffstat (limited to 'include')
-rw-r--r--include/asm-generic/barebox.lds.h2
-rw-r--r--include/magicvar.h32
2 files changed, 34 insertions, 0 deletions
diff --git a/include/asm-generic/barebox.lds.h b/include/asm-generic/barebox.lds.h
index 8aee5d2ce4..5467d3a8a0 100644
--- a/include/asm-generic/barebox.lds.h
+++ b/include/asm-generic/barebox.lds.h
@@ -24,3 +24,5 @@
#define BAREBOX_CMDS KEEP(*(SORT_BY_NAME(.barebox_cmd*)))
#define BAREBOX_SYMS KEEP(*(__usymtab))
+
+#define BAREBOX_MAGICVARS KEEP(*(SORT_BY_NAME(.barebox_magicvar*)))
diff --git a/include/magicvar.h b/include/magicvar.h
new file mode 100644
index 0000000000..d27a2e32a3
--- /dev/null
+++ b/include/magicvar.h
@@ -0,0 +1,32 @@
+#ifndef __MAGIC_VARS_H
+#define __MAGIC_VARS_H
+
+#include <linux/stringify.h>
+
+struct magicvar {
+ const char *name;
+ const char *description;
+};
+
+extern struct magicvar __barebox_magicvar_start;
+extern struct magicvar __barebox_magicvar_end;
+
+#ifdef CONFIG_CMD_MAGICVAR_HELP
+#define MAGICVAR_DESCRIPTION(d) (d)
+#else
+#define MAGICVAR_DESCRIPTION(d) NULL
+#endif
+
+#ifdef CONFIG_CMD_MAGICVAR
+#define BAREBOX_MAGICVAR(_name, _description) \
+extern const struct magicvar __barebox_magicvar_##_name; \
+const struct magicvar __barebox_magicvar_##_name \
+ __attribute__ ((unused,section (".barebox_magicvar_" __stringify(_name)))) = { \
+ .name = #_name, \
+ .description = MAGICVAR_DESCRIPTION(_description), \
+};
+#else
+#define BAREBOX_MAGICVAR(_name, _description)
+#endif
+
+#endif /* __MAGIC_VARS_H */