From 7b3dc19445bb0d497017feb9b32a2bdefd55c94c Mon Sep 17 00:00:00 2001 From: Matthew Hiles <15929821+sparques@users.noreply.github.com> Date: Sat, 6 Jun 2026 10:11:20 -0400 Subject: [PATCH] UEFI target groundwork: runtime: split baremetal memory setup (#5360) * runtime: split baremetal memory setup * add missing unsafe import --- src/runtime/baremetal.go | 30 ---------------------------- src/runtime/baremetal_memory.go | 35 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 30 deletions(-) create mode 100644 src/runtime/baremetal_memory.go diff --git a/src/runtime/baremetal.go b/src/runtime/baremetal.go index 9915f191b..6dd29e490 100644 --- a/src/runtime/baremetal.go +++ b/src/runtime/baremetal.go @@ -7,36 +7,6 @@ import ( "unsafe" ) -//go:extern _heap_start -var heapStartSymbol [0]byte - -//go:extern _heap_end -var heapEndSymbol [0]byte - -//go:extern _globals_start -var globalsStartSymbol [0]byte - -//go:extern _globals_end -var globalsEndSymbol [0]byte - -//go:extern _stack_top -var stackTopSymbol [0]byte - -var ( - heapStart = uintptr(unsafe.Pointer(&heapStartSymbol)) - heapEnd = uintptr(unsafe.Pointer(&heapEndSymbol)) - globalsStart = uintptr(unsafe.Pointer(&globalsStartSymbol)) - globalsEnd = uintptr(unsafe.Pointer(&globalsEndSymbol)) - stackTop = uintptr(unsafe.Pointer(&stackTopSymbol)) -) - -// growHeap tries to grow the heap size. It returns true if it succeeds, false -// otherwise. -func growHeap() bool { - // On baremetal, there is no way the heap can be grown. - return false -} - //export malloc func libc_malloc(size uintptr) unsafe.Pointer { // Note: this zeroes the returned buffer which is not necessary. diff --git a/src/runtime/baremetal_memory.go b/src/runtime/baremetal_memory.go new file mode 100644 index 000000000..02f870ad6 --- /dev/null +++ b/src/runtime/baremetal_memory.go @@ -0,0 +1,35 @@ +//go:build baremetal + +package runtime + +import "unsafe" + +//go:extern _heap_start +var heapStartSymbol [0]byte + +//go:extern _heap_end +var heapEndSymbol [0]byte + +//go:extern _globals_start +var globalsStartSymbol [0]byte + +//go:extern _globals_end +var globalsEndSymbol [0]byte + +//go:extern _stack_top +var stackTopSymbol [0]byte + +var ( + heapStart = uintptr(unsafe.Pointer(&heapStartSymbol)) + heapEnd = uintptr(unsafe.Pointer(&heapEndSymbol)) + globalsStart = uintptr(unsafe.Pointer(&globalsStartSymbol)) + globalsEnd = uintptr(unsafe.Pointer(&globalsEndSymbol)) + stackTop = uintptr(unsafe.Pointer(&stackTopSymbol)) +) + +// growHeap tries to grow the heap size. It returns true if it succeeds, false +// otherwise. +func growHeap() bool { + // On baremetal, there is no way the heap can be grown. + return false +}