summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/unix/posix/startup/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/unix/posix/startup/main.c')
-rw-r--r--c/src/lib/libbsp/unix/posix/startup/main.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/unix/posix/startup/main.c b/c/src/lib/libbsp/unix/posix/startup/main.c
new file mode 100644
index 0000000000..520cd36b04
--- /dev/null
+++ b/c/src/lib/libbsp/unix/posix/startup/main.c
@@ -0,0 +1,54 @@
+/*
+ * Description:
+ * This file exists solely to (try to) ensure RTEMS is initialized.
+ * It is not to be used in systems which want C++ support.
+ *
+ * $Id$
+ */
+
+#include <bsp.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+/*
+ * RTEMS program name
+ * Probably not used by anyone, but it is nice to have it.
+ * Actually the UNIX version of CPU_INVOKE_DEBUGGER will probably
+ * need to use it
+ */
+
+char *rtems_progname;
+
+int main(
+ int argc,
+ char **argv
+)
+{
+ rtems_argc = argc;
+ rtems_argv = argv;
+
+ bsp_start();
+
+ if ((argc > 0) && argv && argv[0])
+ rtems_progname = argv[0];
+ else
+ rtems_progname = "RTEMS";
+
+ /*
+ * Start multitasking
+ */
+
+ rtems_initialize_executive_late( bsp_isr_level );
+
+ /*
+ * Returns when multitasking is stopped
+ * This allows our destructors to get run normally
+ */
+
+ fflush( stdout );
+ fflush( stderr );
+
+ bsp_cleanup();
+
+ return 0;
+}