memlayout: Store region sizes as separate symbols
This patch changes the memlayout macro infrastructure so that the size of a region "xxx" (i.e. the distance between the symbols _xxx and _exxx) is stored in a separate _xxx_size symbol. This has the advantage that region sizes can be used inside static initializers, and also saves an extra subtraction at runtime. Since linker symbols can only be treated as addresses (not as raw integers) by C, retain the REGION_SIZE() accessor macro to hide the necessary typecast. Signed-off-by: Julius Werner <jwerner@chromium.org> Change-Id: Ifd89708ca9bd3937d0db7308959231106a6aa373 Reviewed-on: https://review.coreboot.org/c/coreboot/+/49332 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
committed by
Patrick Georgi
parent
422501fb14
commit
82d16b150c
@@ -8,6 +8,7 @@
|
||||
.section .bss, "aw", @nobits
|
||||
.global _stack
|
||||
.global _estack
|
||||
.global _stack_size
|
||||
|
||||
/* Stack alignment is not enforced with rmodule loader, reserve one
|
||||
* extra CPU such that alignment can be enforced on entry. */
|
||||
@@ -15,6 +16,7 @@
|
||||
_stack:
|
||||
.space (CONFIG_MAX_CPUS+1)*CONFIG_STACK_SIZE
|
||||
_estack:
|
||||
.set _stack_size, _estack - _stack
|
||||
#if CONFIG(COOP_MULTITASKING)
|
||||
.global thread_stacks
|
||||
thread_stacks:
|
||||
|
Reference in New Issue
Block a user