Changeset 3a4ae6c in rtems for c/src/lib/libbsp/powerpc


Ignore:
Timestamp:
09/11/95 19:35:39 (28 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.

Location:
c/src/lib/libbsp/powerpc/papyrus
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/powerpc/papyrus/include/bsp.h

    r5072b07 r3a4ae6c  
    4444#else
    4545#include <rtems.h>
     46#include <console.h>
    4647
    4748/*
     
    9596extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
    9697
     98/*
     99 *  Device Driver Table Entries
     100 */
     101
     102/*
     103 * NOTE: Use the standard Console driver entry
     104 */
     105 
     106/*
     107 * NOTE: Use the standard Clock driver entry
     108 */
     109
     110/*
     111 * How many libio files we want
     112 */
     113
     114#define BSP_LIBIO_MAX_FDS       20
     115
    97116/* functions */
    98117
  • c/src/lib/libbsp/powerpc/papyrus/startup/bspstart.c

    r5072b07 r3a4ae6c  
    3838 */
    3939
    40 #include <rtems.h>
    4140#include <bsp.h>
    42 #include <shm.h>
     41#include <rtems/libio.h>
     42 
    4343#include <libcsupport.h>
     44 
     45#include <string.h>
     46#include <fcntl.h>
     47 
     48#ifdef STACK_CHECKER_ON
     49#include <stackchk.h>
     50#endif
    4451
    4552/*
     
    5360
    5461rtems_cpu_table Cpu_table;
     62
     63char *rtems_progname;
    5564
    5665/*      Initialize whatever libc we are using
     
    7786
    7887    /*
     88     *  Init the RTEMS libio facility to provide UNIX-like system
     89     *  calls for use by newlib (ie: provide __open, __close, etc)
     90     *  Uses malloc() to get area for the iops, so must be after malloc init
     91     */
     92
     93    rtems_libio_init();
     94
     95    /*
    7996     * Set up for the libc handling.
    8097     */
     
    94111}
    95112
    96 void bsp_start(void)
     113/*
     114 * After drivers are setup, register some "filenames"
     115 * and open stdin, stdout, stderr files
     116 *
     117 * Newlib will automatically associate the files with these
     118 * (it hardcodes the numbers)
     119 */
     120 
     121void
     122bsp_postdriver_hook(void)
    97123{
     124  int stdin_fd, stdout_fd, stderr_fd;
     125 
     126  if ((stdin_fd = __open("/dev/console", O_RDONLY, 0)) == -1)
     127    rtems_fatal_error_occurred('STD0');
     128 
     129  if ((stdout_fd = __open("/dev/console", O_WRONLY, 0)) == -1)
     130    rtems_fatal_error_occurred('STD1');
     131 
     132  if ((stderr_fd = __open("/dev/console", O_WRONLY, 0)) == -1)
     133    rtems_fatal_error_occurred('STD2');
     134 
     135  if ((stdin_fd != 0) || (stdout_fd != 1) || (stderr_fd != 2))
     136    rtems_fatal_error_occurred('STIO');
     137}
     138
     139int main(
     140  int argc,
     141  char **argv,
     142  char **environp
     143)
     144{
     145  if ((argc > 0) && argv && argv[0])
     146    rtems_progname = argv[0];
     147  else
     148    rtems_progname = "RTEMS";
     149
    98150  /*
    99151   *  Allocate the memory for the RTEMS Work Space.  This can come from
     
    133185
    134186  /*
     187   * Tell libio how many fd's we want and allow it to tweak config
     188   */
     189
     190  rtems_libio_config(&BSP_Configuration, BSP_LIBIO_MAX_FDS);
     191
     192  /*
    135193   *  Need to "allocate" the memory for the RTEMS Workspace and
    136194   *  tell the RTEMS configuration where it is.  This memory is
     
    155213  Cpu_table.predriver_hook = bsp_libc_init;    /* RTEMS resources available */
    156214
    157   Cpu_table.postdriver_hook = NULL;
     215  Cpu_table.postdriver_hook = bsp_postdriver_hook;
    158216
    159217  Cpu_table.idle_task = NULL;  /* do not override system IDLE task */
Note: See TracChangeset for help on using the changeset viewer.