diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2015-10-08 11:18:17 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2015-10-15 10:52:13 -0400 |
commit | 5d91226e897b8209f7acefc1806a3cbf90a5394e (patch) | |
tree | fc08571a7a45b908d430c6952ec1f90d5f01d5a2 /src/malloc.c | |
parent | fe6682da0bc435a62f3a5189ec203dcba9f91183 (diff) | |
download | seabios-hppa-5d91226e897b8209f7acefc1806a3cbf90a5394e.zip seabios-hppa-5d91226e897b8209f7acefc1806a3cbf90a5394e.tar.gz seabios-hppa-5d91226e897b8209f7acefc1806a3cbf90a5394e.tar.bz2 |
memmap: Introduce SYMBOL() macro to access linker script symbols
Use a macro to define and obtain the value of a symbol introduced by
the linker scripts (scripts/layoutrom.py).
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/malloc.c')
-rw-r--r-- | src/malloc.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/malloc.c b/src/malloc.c index 106c7ea..5113bb6 100644 --- a/src/malloc.c +++ b/src/malloc.c @@ -366,8 +366,7 @@ rom_get_max(void) if (CONFIG_MALLOC_UPPERMEMORY) return ALIGN_DOWN(RomBase->range_end - OPROM_HEADER_RESERVE , OPTION_ROM_ALIGN); - extern u8 final_readonly_start[]; - return (u32)final_readonly_start; + return SYMBOL(final_readonly_start); } // Return the end of the last deployed option rom. @@ -385,8 +384,8 @@ rom_reserve(u32 size) if (newend > rom_get_max()) return NULL; if (CONFIG_MALLOC_UPPERMEMORY) { - if (newend < (u32)zonelow_base) - newend = (u32)zonelow_base; + if (newend < SYMBOL(zonelow_base)) + newend = SYMBOL(zonelow_base); RomBase->range_start = newend + OPROM_HEADER_RESERVE; } return (void*)RomEnd; @@ -504,21 +503,21 @@ malloc_init(void) } // Initialize low-memory region - extern u8 varlow_start[], varlow_end[], final_varlow_start[]; - memmove(final_varlow_start, varlow_start, varlow_end - varlow_start); + memmove(VSYMBOL(final_varlow_start), VSYMBOL(varlow_start) + , SYMBOL(varlow_end) - SYMBOL(varlow_start)); if (CONFIG_MALLOC_UPPERMEMORY) { - alloc_add(&ZoneLow, (u32)zonelow_base + OPROM_HEADER_RESERVE - , (u32)final_varlow_start); + alloc_add(&ZoneLow, SYMBOL(zonelow_base) + OPROM_HEADER_RESERVE + , SYMBOL(final_varlow_start)); RomBase = alloc_find_lowest(&ZoneLow); } else { - alloc_add(&ZoneLow, ALIGN_DOWN((u32)final_varlow_start, 1024) - , (u32)final_varlow_start); + alloc_add(&ZoneLow, ALIGN_DOWN(SYMBOL(final_varlow_start), 1024) + , SYMBOL(final_varlow_start)); } // Add space available in f-segment to ZoneFSeg - extern u8 zonefseg_start[], zonefseg_end[]; - memset(zonefseg_start, 0, zonefseg_end - zonefseg_start); - alloc_add(&ZoneFSeg, (u32)zonefseg_start, (u32)zonefseg_end); + memset(VSYMBOL(zonefseg_start), 0 + , SYMBOL(zonefseg_end) - SYMBOL(zonefseg_start)); + alloc_add(&ZoneFSeg, SYMBOL(zonefseg_start), SYMBOL(zonefseg_end)); calcRamSize(); } |