summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-03-21 15:37:18 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-03-21 15:37:18 +0000
commite2a2ec6016c9bb3f3146c701bbe950af212c097c (patch)
tree065452e3ecb58b60fb720dcd378e620089d4b407 /c/src/lib/libbsp/i386
parentFixed spacing to be consistent with other CPUs. (diff)
downloadrtems-e2a2ec6016c9bb3f3146c701bbe950af212c097c.tar.bz2
Switch to using a shared main() for all of the embedded BSPs
based on the GNU tools. This usually involved correcting the type of bsp_start(), bsp_cleanup(), adjusting the start code to call the right start routine (the shared boot_card()), and then removing code from bsp_start() which was performed in the new boot_card()/main() path.
Diffstat (limited to 'c/src/lib/libbsp/i386')
-rw-r--r--c/src/lib/libbsp/i386/force386/startup/Makefile.in2
-rw-r--r--c/src/lib/libbsp/i386/force386/startup/bspstart.c16
-rw-r--r--c/src/lib/libbsp/i386/i386ex/startup/Makefile.in3
-rw-r--r--c/src/lib/libbsp/i386/i386ex/startup/bspstart.c15
-rw-r--r--c/src/lib/libbsp/i386/pc386/start/start.s4
-rw-r--r--c/src/lib/libbsp/i386/pc386/startup/Makefile.in2
-rw-r--r--c/src/lib/libbsp/i386/pc386/startup/bspstart.c15
7 files changed, 13 insertions, 44 deletions
diff --git a/c/src/lib/libbsp/i386/force386/startup/Makefile.in b/c/src/lib/libbsp/i386/force386/startup/Makefile.in
index 639fcbdc32..4bf71c8ce3 100644
--- a/c/src/lib/libbsp/i386/force386/startup/Makefile.in
+++ b/c/src/lib/libbsp/i386/force386/startup/Makefile.in
@@ -11,7 +11,7 @@ PROJECT_ROOT = @PROJECT_ROOT@
PGM=${ARCH}/startup.rel
# C source names, if any, go here -- minus the .c
-C_PIECES=bspstart sbrk setvec
+C_PIECES=bspclean bspstart main sbrk setvec
C_FILES=$(C_PIECES:%=%.c)
C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
diff --git a/c/src/lib/libbsp/i386/force386/startup/bspstart.c b/c/src/lib/libbsp/i386/force386/startup/bspstart.c
index 5158b56122..18e4fc88aa 100644
--- a/c/src/lib/libbsp/i386/force386/startup/bspstart.c
+++ b/c/src/lib/libbsp/i386/force386/startup/bspstart.c
@@ -139,18 +139,9 @@ bsp_postdriver_hook(void)
rtems_fatal_error_occurred( error_code | 'I' << 8 | 'O' );
}
-int main(
- int argc,
- char **argv,
- char **environp
-)
+void bsp_start( void )
{
- if ((argc > 0) && argv && argv[0])
- rtems_progname = argv[0];
- else
- rtems_progname = "RTEMS";
-
/*
* FORCE documentation incorrectly states that the bus request
* level is initialized to 3. It is actually initialized by
@@ -217,9 +208,4 @@ int main(
*/
rtems_libio_config(&BSP_Configuration, BSP_LIBIO_MAX_FDS);
-
- rtems_initialize_executive( &BSP_Configuration, &Cpu_table );
- /* does not return */
- /* no cleanup necessary for Force CPU-386 */
- return 0;
}
diff --git a/c/src/lib/libbsp/i386/i386ex/startup/Makefile.in b/c/src/lib/libbsp/i386/i386ex/startup/Makefile.in
index 9f6b78a6d0..8042d83b24 100644
--- a/c/src/lib/libbsp/i386/i386ex/startup/Makefile.in
+++ b/c/src/lib/libbsp/i386/i386ex/startup/Makefile.in
@@ -11,8 +11,7 @@ PROJECT_ROOT = @PROJECT_ROOT@
PGM=${ARCH}/startup.rel
# C source names, if any, go here -- minus the .c
-# C_PIECES=bspstart sbrk setvec except i386-stub
-C_PIECES=bspstart sbrk setvec
+C_PIECES=bspclean bspstart main sbrk setvec
C_FILES=$(C_PIECES:%=%.c)
C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
diff --git a/c/src/lib/libbsp/i386/i386ex/startup/bspstart.c b/c/src/lib/libbsp/i386/i386ex/startup/bspstart.c
index 2415d8daec..77bba61cf3 100644
--- a/c/src/lib/libbsp/i386/i386ex/startup/bspstart.c
+++ b/c/src/lib/libbsp/i386/i386ex/startup/bspstart.c
@@ -141,11 +141,7 @@ bsp_postdriver_hook(void)
}
-int main(
- int argc,
- char **argv,
- char **environp
-)
+void bsp_start( void )
{
#ifdef PRINTON
@@ -155,11 +151,6 @@ int main(
outbyte ('S');
#endif
- if ((argc > 0) && argv && argv[0])
- rtems_progname = argv[0];
- else
- rtems_progname = "RTEMS";
-
/*
* we do not use the pretasking_hook.
*/
@@ -222,8 +213,4 @@ int main(
BSP_Configuration.maximum_extensions++;
#endif
- rtems_initialize_executive( &BSP_Configuration, &Cpu_table );
- /* does not return */
- /* no cleanup necessary for i386ex */
- for (;;); /* was return 0 to go to the debug monitor */
}
diff --git a/c/src/lib/libbsp/i386/pc386/start/start.s b/c/src/lib/libbsp/i386/pc386/start/start.s
index 3439608fa4..03ded48d45 100644
--- a/c/src/lib/libbsp/i386/pc386/start/start.s
+++ b/c/src/lib/libbsp/i386/pc386/start/start.s
@@ -66,7 +66,7 @@ BEGIN_CODE
PUBLIC (start) # GNU default entry point
- EXTERN (main)
+ EXTERN (boot_card)
EXTERN (load_segments)
EXTERN (exit)
@@ -280,7 +280,7 @@ SYM (no_idt_load):
pushl $0 # environp
pushl $0 # argv
pushl $0 # argc
- call SYM (main)
+ call SYM (boot_card)
addl $12, esp
/*---------------------------------------------------------------------+
diff --git a/c/src/lib/libbsp/i386/pc386/startup/Makefile.in b/c/src/lib/libbsp/i386/pc386/startup/Makefile.in
index 7c775413d5..957411a4fb 100644
--- a/c/src/lib/libbsp/i386/pc386/startup/Makefile.in
+++ b/c/src/lib/libbsp/i386/pc386/startup/Makefile.in
@@ -11,7 +11,7 @@ PROJECT_ROOT = @PROJECT_ROOT@
PGM=${ARCH}/startup.rel
# C source names, if any, go here -- minus the .c
-C_PIECES=bspstart exit irq sbrk
+C_PIECES=bspclean bspstart exit irq main sbrk
C_FILES=$(C_PIECES:%=%.c)
C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
diff --git a/c/src/lib/libbsp/i386/pc386/startup/bspstart.c b/c/src/lib/libbsp/i386/pc386/startup/bspstart.c
index dd50fd115a..8b670357c1 100644
--- a/c/src/lib/libbsp/i386/pc386/startup/bspstart.c
+++ b/c/src/lib/libbsp/i386/pc386/startup/bspstart.c
@@ -171,21 +171,16 @@ bsp_postdriver_hook(void)
/*-------------------------------------------------------------------------+
-| Function: main
-| Description: Called from bsp's startup code ('start.s').
+| Function: bsp_start
+| Description: Called before main is invoked.
| Global Variables: None.
| Arguments: None.
| Returns: Nothing.
+--------------------------------------------------------------------------*/
-int main(int argc, char **argv, char **environp)
+void bsp_start( void )
{
/* If we don't have command line arguments set default program name. */
- if ((argc > 0) && argv && argv[0])
- rtems_progname = argv[0];
- else
- rtems_progname = "RTEMS";
-
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
Cpu_table.predriver_hook = NULL; /* use system's */
Cpu_table.postdriver_hook = bsp_postdriver_hook;
@@ -226,6 +221,7 @@ int main(int argc, char **argv, char **environp)
rtems_libio_config(&BSP_Configuration, BSP_LIBIO_MAX_FDS);
+#if 0
rtems_initialize_executive(&BSP_Configuration, &Cpu_table);
/* does not return */
@@ -240,4 +236,5 @@ int main(int argc, char **argv, char **environp)
/* no cleanup necessary for PC386 */
return 0;
-} /* main */
+#endif
+} /* bsp_start */