Ignore:
Timestamp:
Sep 11, 1995, 7:35:39 PM (26 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
ced11f99
Parents:
5072b07
Message:

The word "RTEMS" almost completely removed from the core.

Configuration Table Template file added and all tests
modified to use this. All gvar.h and conftbl.h files
removed from test directories.

Configuration parameter maximum_devices added.

Core semaphore and mutex handlers added and RTEMS API Semaphore
Manager updated to reflect this.

Initialization sequence changed to invoke API specific initialization
routines. Initialization tasks table now owned by RTEMS Tasks Manager.

Added user extension for post-switch.

Utilized user extensions to implement API specific functionality
like signal dispatching.

Added extensions to the System Initialization Thread so that an
API can register a function to be invoked while the system
is being initialized. These are largely equivalent to the
pre-driver and post-driver hooks.

Added the Modules file oar-go32_p5, modified oar-go32, and modified
the file make/custom/go32.cfg to look at an environment varable which
determines what CPU model is being used.

All BSPs updated to reflect named devices and clock driver's IOCTL
used by the Shared Memory Driver. Also merged clock isr into
main file and removed ckisr.c where possible.

Updated spsize to reflect new and moved variables.

Makefiles for the executive source and include files updated to show
break down of files into Core, RTEMS API, and Neither.

Header and inline files installed into subdirectory based on whether
logically in the Core or a part of the RTEMS API.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/no_cpu/no_bsp/startup/bspstart.c

    r5072b07 r3a4ae6c  
    2121 */
    2222
    23 #include <rtems.h>
    2423#include <bsp.h>
    25 #include <shm.h>
     24#include <rtems/libio.h>
     25 
    2626#include <libcsupport.h>
     27 
     28#include <string.h>
     29#include <fcntl.h>
     30 
     31#ifdef STACK_CHECKER_ON
     32#include <stackchk.h>
     33#endif
    2734
    2835/*
     
    3643
    3744rtems_cpu_table Cpu_table;
     45
     46char *rtems_progname;
    3847
    3948/*      Initialize whatever libc we are using
     
    6069
    6170    /*
     71     *  Init the RTEMS libio facility to provide UNIX-like system
     72     *  calls for use by newlib (ie: provide __open, __close, etc)
     73     *  Uses malloc() to get area for the iops, so must be after malloc init
     74     */
     75
     76    rtems_libio_init();
     77
     78    /*
    6279     * Set up for the libc handling.
    6380     */
     
    7794}
    7895
    79 int bsp_start(
     96/*
     97 * After drivers are setup, register some "filenames"
     98 * and open stdin, stdout, stderr files
     99 *
     100 * Newlib will automatically associate the files with these
     101 * (it hardcodes the numbers)
     102 */
     103 
     104void
     105bsp_postdriver_hook(void)
     106{
     107  int stdin_fd, stdout_fd, stderr_fd;
     108 
     109  if ((stdin_fd = __open("/dev/console", O_RDONLY, 0)) == -1)
     110    rtems_fatal_error_occurred('STD0');
     111 
     112  if ((stdout_fd = __open("/dev/console", O_WRONLY, 0)) == -1)
     113    rtems_fatal_error_occurred('STD1');
     114 
     115  if ((stderr_fd = __open("/dev/console", O_WRONLY, 0)) == -1)
     116    rtems_fatal_error_occurred('STD2');
     117 
     118  if ((stdin_fd != 0) || (stdout_fd != 1) || (stderr_fd != 2))
     119    rtems_fatal_error_occurred('STIO');
     120}
     121
     122int main(
    80123  int argc,
    81124  char **argv,
     
    83126)
    84127{
     128  if ((argc > 0) && argv && argv[0])
     129    rtems_progname = argv[0];
     130  else
     131    rtems_progname = "RTEMS";
     132
    85133  /*
    86134   *  Allocate the memory for the RTEMS Work Space.  This can come from
     
    119167#endif
    120168
     169#ifdef STACK_CHECKER_ON
     170    /*
     171     * Add 1 extension for stack checker
     172     */
     173 
     174    BSP_Configuration.maximum_extensions++;
     175#endif
     176
     177  /*
     178   * Tell libio how many fd's we want and allow it to tweak config
     179   */
     180
     181  rtems_libio_config(&BSP_Configuration, BSP_LIBIO_MAX_FDS);
     182
    121183  /*
    122184   *  Need to "allocate" the memory for the RTEMS Workspace and
     
    139201  Cpu_table.predriver_hook = bsp_libc_init;    /* RTEMS resources available */
    140202
    141   Cpu_table.postdriver_hook = NULL;
     203  Cpu_table.postdriver_hook = bsp_postdriver_hook;
    142204
    143205  Cpu_table.idle_task = NULL;  /* do not override system IDLE task */
Note: See TracChangeset for help on using the changeset viewer.