diff options
author | Eric Norum <WENorum@lbl.gov> | 2005-01-28 19:35:23 +0000 |
---|---|---|
committer | Eric Norum <WENorum@lbl.gov> | 2005-01-28 19:35:23 +0000 |
commit | 572484f1aef2d9544b2b3db98362737a597bf093 (patch) | |
tree | 7b2b0eef034f4dd98551f1707aec9014b07e0b1c /c/src/lib/libbsp/m68k/shared/m68kpretaskinghook.c | |
parent | 2005-01-28 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-572484f1aef2d9544b2b3db98362737a597bf093.tar.bz2 |
New BSP for Arcturus uCDIMM ColdFire 5282.
Diffstat (limited to 'c/src/lib/libbsp/m68k/shared/m68kpretaskinghook.c')
-rw-r--r-- | c/src/lib/libbsp/m68k/shared/m68kpretaskinghook.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/c/src/lib/libbsp/m68k/shared/m68kpretaskinghook.c b/c/src/lib/libbsp/m68k/shared/m68kpretaskinghook.c index 55d12334d7..61588f93b1 100644 --- a/c/src/lib/libbsp/m68k/shared/m68kpretaskinghook.c +++ b/c/src/lib/libbsp/m68k/shared/m68kpretaskinghook.c @@ -34,23 +34,27 @@ extern void bsp_libc_init( void *, unsigned long, int ); extern rtems_configuration_table BSP_Configuration; -extern void *_RamBase; -extern void *_WorkspaceBase; -extern void *_HeapSize; +extern char _RamBase[]; +extern char _WorkspaceBase[]; +extern char _HeapSize[]; unsigned long _M68k_Ramsize; void bsp_pretasking_hook(void) { void *heapStart; - unsigned long heapSize = (unsigned long)&_HeapSize; + unsigned long heapSize = (unsigned long)_HeapSize; unsigned long ramSpace; heapStart = (void *) - ((unsigned long)&_WorkspaceBase + BSP_Configuration.work_space_size); - ramSpace = (unsigned long) &_RamBase + _M68k_Ramsize - (unsigned long) heapStart; + ((unsigned long)_WorkspaceBase + BSP_Configuration.work_space_size); + ramSpace = (unsigned long)_RamBase + _M68k_Ramsize - (unsigned long)heapStart; - if (heapSize == 0) + /* + * Can't use 'if(heapSize==0)' because the compiler "knows" that nothing + * can have an address of 0 and proceeds to optimize-away the test. + */ + if (heapSize < 10) heapSize = ramSpace; else if (heapSize > ramSpace) rtems_fatal_error_occurred (('H'<<24) | ('E'<<16) | ('A'<<8) | 'P'); |