summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-05-30 10:41:21 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-05-30 10:41:21 +0000
commit825a2bb5734113ddb720c0f3525a9759e4f7ca9f (patch)
tree66b6490d68097b27047f30103661877d89a2b577 /c/src/lib/libbsp
parentRewrote in C to avoid Makefile problems. (diff)
downloadrtems-825a2bb5734113ddb720c0f3525a9759e4f7ca9f.tar.bz2
Use shared initialization.
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/powerpc/dmv177/startup/rtems-ctor.cc151
1 files changed, 0 insertions, 151 deletions
diff --git a/c/src/lib/libbsp/powerpc/dmv177/startup/rtems-ctor.cc b/c/src/lib/libbsp/powerpc/dmv177/startup/rtems-ctor.cc
deleted file mode 100644
index 0c7efef592..0000000000
--- a/c/src/lib/libbsp/powerpc/dmv177/startup/rtems-ctor.cc
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * rtems-ctor.cc
- *
- * Description:
- * This file exists solely to (try to) ensure RTEMS is initialized
- * before any global constructors are run.
- *
- * The problem:
- * Global constructors might reasonably expect that new() will
- * work, but since new() uses malloc() which uses RTEMS regions,
- * it can not be called until after initialize_executive().
- *
- * Global constructors are called in GNU systems one of 2 ways:
- *
- * an "invisible" call to __main() inserted by compiler
- * This __main() calls __do_global_ctors() which
- * walks thru the table and calls all global
- * constructors.
- *
- * or -
- * A special section is put into the linked binary. The
- * system startup code knows to run the constructors in
- * this special section before calling main().
- *
- * By making RTEMS initialization a constructor, we avoid having
- * too much about all this. All we have to guarantee is that
- * this constructor is the first one run.
- *
- *
- * So for the first case above, this is what happens
- *
- * host crt0
- * main()
- * __main()
- * __do_global_ctors()
- * bsp_start()
- * init_executive_early()
- * <<any other constructors>>
- *
- * rtems_init_executive_late()
- * bsp_cleanup()
- *
- * TODO:
- *
- * COPYRIGHT (c) 1989-1998.
- * On-Line Applications Research Corporation (OAR).
- * Copyright assigned to U.S. Government, 1994.
- *
- * The license and distribution terms for this file may in
- * the file LICENSE in this distribution or at
- * http://www.OARcorp.com/rtems/license.html.
- *
- * $Id$
- */
-
-#include <bsp.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;
-char **rtems_environp;
-
-#ifdef USE_CONSTRUCTORS_FOR_INIT_EXEC
-
-class RTEMS {
- public:
- RTEMS();
- ~RTEMS();
-};
-
-RTEMS rtems_constructor;
-
-
-/* PAGE
- *
- * RTEMS::RTEMS
- *
- * RTEMS constructor routine
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * Return values: NONE
- */
-
-RTEMS::RTEMS()
-{
- bsp_start();
-}
-
-/* PAGE
- *
- * RTEMS::~RTEMS
- *
- * RTEMS distructor routine
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * Return values: NONE
- */
-
-RTEMS::~RTEMS()
-{
- bsp_cleanup();
-}
-#endif
-
-extern "C" {
- int
- main(int argc,
- char **argv,
- char **environp)
- {
-
-#ifndef USE_CONSTRUCTORS_FOR_INIT_EXEC
- bsp_start();
-#endif
-
- if ((argc > 0) && argv && argv[0])
- rtems_progname = argv[0];
- else
- rtems_progname = "RTEMS";
-
- rtems_environp = environp;
-
- /*
- * Start multitasking
- */
-
- rtems_initialize_executive_late( bsp_isr_level );
-
-#ifndef USE_CONSTRUCTORS_FOR_INIT_EXEC
- bsp_cleanup();
-#endif
-
- /*
- * Returns when multitasking is stopped
- * This allows our destructors to get run normally
- */
-
- return 0;
- }
-}