source: rtems/c/src/lib/libbsp/m68k/shared/m68kpretaskinghook.c @ 9b2c969

4.104.114.84.95
Last change on this file since 9b2c969 was 9b2c969, checked in by Joel Sherrill <joel.sherrill@…>, on 01/13/00 at 15:07:03

Made sweep of changes to get all BSPs to the same point on the linkcmds
and memory layout. Next step is to share the same bsp_pretasking_hook.

  • Property mode set to 100644
File size: 1.6 KB
Line 
1/* 
2 *  This routine is an implementation of the bsp_pretasking_hook
3 *  that can be used by all m68k BSPs following linkcmds conventions
4 *  regarding heap, stack, and workspace allocation.
5 *
6 *  COPYRIGHT (c) 1989-1999.
7 *  On-Line Applications Research Corporation (OAR).
8 *
9 *  The license and distribution terms for this file may be
10 *  found in the file LICENSE in this distribution or at
11 *  http://www.OARcorp.com/rtems/license.html.
12 *
13 *  $Id$
14 */
15
16#include <rtems.h>
17#include <bsp.h>
18#include <libcsupport.h>
19
20/*
21 *  Function:   bsp_pretasking_hook
22 *  Created:    95/03/10
23 *
24 *  Description:
25 *      BSP pretasking hook.  Called just before drivers are initialized.
26 *      Used to setup libc and install any BSP extensions.
27 *
28 *  NOTES:
29 *      Must not use libc (to do io) from here, since drivers are
30 *      not yet initialized.
31 *
32 */
33
34extern void bsp_libc_init( void *, unsigned long, int );
35extern rtems_configuration_table  BSP_Configuration;
36
37extern unsigned long  _RamSize;
38extern void          *_WorkspaceBase;
39extern void          *_HeapSize;
40
41void bsp_pretasking_hook(void)
42{
43    void         *heapStart;
44    unsigned long heapSize = (unsigned long)&_HeapSize;
45    unsigned long ramSpace;
46
47    heapStart =  (void *)
48       ((unsigned long)&_WorkspaceBase + BSP_Configuration.work_space_size);
49    ramSpace = _RamSize - (unsigned long) heapStart;
50
51    if (heapSize == 0)
52        heapSize = ramSpace;
53    else if (heapSize > ramSpace)
54        rtems_fatal_error_occurred (('H'<<24) | ('E'<<16) | ('A'<<8) | 'P');
55
56    bsp_libc_init(heapStart, heapSize, 0);
57
58#ifdef RTEMS_DEBUG
59    rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
60#endif
61
62}
Note: See TracBrowser for help on using the repository browser.