summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/moxie/moxiesim/startup/__main.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/moxie/moxiesim/startup/__main.c')
-rw-r--r--c/src/lib/libbsp/moxie/moxiesim/startup/__main.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/moxie/moxiesim/startup/__main.c b/c/src/lib/libbsp/moxie/moxiesim/startup/__main.c
new file mode 100644
index 0000000000..ffe8b55961
--- /dev/null
+++ b/c/src/lib/libbsp/moxie/moxiesim/startup/__main.c
@@ -0,0 +1,21 @@
+/*
+ * COPYRIGHT (c) 2011 Anthony Green <green@moxielogic.com>
+ *
+ */
+
+typedef void (*pfunc) (void);
+extern pfunc __ctors[];
+extern pfunc __ctors_end[];
+
+void __main (void)
+{
+ static int initialized;
+ pfunc *p;
+
+ if (initialized)
+ return;
+
+ initialized = 1;
+ for (p = __ctors_end; p > __ctors; )
+ (*--p) ();
+}