summaryrefslogtreecommitdiffstats
path: root/include/init.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/init.h')
-rw-r--r--include/init.h29
1 files changed, 22 insertions, 7 deletions
diff --git a/include/init.h b/include/init.h
index eb606f3ce3..8692b68d07 100644
--- a/include/init.h
+++ b/include/init.h
@@ -1,6 +1,12 @@
#ifndef _INIT_H
#define _INIT_H
+/*
+ * fake define to simplify the linux sync
+ */
+#define __init
+#define __initdata
+
typedef int (*initcall_t)(void);
#define __define_initcall(level,fn,id) \
@@ -8,13 +14,22 @@ typedef int (*initcall_t)(void);
__attribute__((__section__(".initcall." level))) = fn
-#define core_initcall(fn) __define_initcall("0",fn,0)
-#define postcore_initcall(fn) __define_initcall("1",fn,1)
-#define console_initcall(fn) __define_initcall("2",fn,2)
-#define coredevice_initcall(fn) __define_initcall("4",fn,4)
-#define fs_initcall(fn) __define_initcall("5",fn,5)
-#define device_initcall(fn) __define_initcall("6",fn,6)
-#define late_initcall(fn) __define_initcall("7",fn,7)
+/*
+ * A "pure" initcall has no dependencies on anything else, and purely
+ * initializes variables that couldn't be statically initialized.
+ *
+ * This only exists for built-in code, not for modules.
+ */
+#define pure_initcall(fn) __define_initcall("0",fn,0)
+
+#define core_initcall(fn) __define_initcall("1",fn,1)
+#define postcore_initcall(fn) __define_initcall("2",fn,2)
+#define console_initcall(fn) __define_initcall("3",fn,3)
+#define postconsole_initcall(fn) __define_initcall("4",fn,4)
+#define coredevice_initcall(fn) __define_initcall("5",fn,5)
+#define fs_initcall(fn) __define_initcall("6",fn,6)
+#define device_initcall(fn) __define_initcall("7",fn,7)
+#define late_initcall(fn) __define_initcall("8",fn,8)
/* section for code used very early when
* - we're not running from where we linked at