summaryrefslogtreecommitdiffstats
path: root/include/init.h
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2007-07-05 18:01:24 +0200
committerSascha Hauer <sha@octopus.labnet.pengutronix.de>2007-07-05 18:01:24 +0200
commit55ebf67d3ec2b0727f86a54157a2740e9e8472c3 (patch)
tree01fde5994de0c51b4701750464c73f750c6b754e /include/init.h
parent4eae36cc43b290ed74929d925987d8f2fe8a888e (diff)
downloadbarebox-55ebf67d3ec2b0727f86a54157a2740e9e8472c3.tar.gz
barebox-55ebf67d3ec2b0727f86a54157a2740e9e8472c3.tar.xz
svn_rev_120
implement initcalls
Diffstat (limited to 'include/init.h')
-rw-r--r--include/init.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/init.h b/include/init.h
new file mode 100644
index 0000000000..06d1174e6f
--- /dev/null
+++ b/include/init.h
@@ -0,0 +1,16 @@
+#ifndef _INIT_H
+#define _INIT_H
+
+typedef int (*initcall_t)(void);
+
+#define __define_initcall(level,fn,id) \
+ static initcall_t __initcall_##fn##id __attribute__((__used__)) \
+ __attribute__((__section__(".initcall." level))) = fn
+
+
+#define core_initcall(fn) __define_initcall("0",fn,0)
+#define device_initcall(fn) __define_initcall("5",fn,5)
+#define late_initcall(fn) __define_initcall("6",fn,6)
+
+#endif /* _INIT_H */
+