OSDN Git Service

semihosting/arm-compat: replace heuristic for softmmu SYS_HEAPINFO
authorAlex Bennée <alex.bennee@linaro.org>
Fri, 25 Feb 2022 17:20:20 +0000 (17:20 +0000)
committerAlex Bennée <alex.bennee@linaro.org>
Mon, 28 Feb 2022 16:42:35 +0000 (16:42 +0000)
commit5fc983af8b20d69279f819efef2b340565d0e9a3
tree3cfdbdf77a57ce019760f325aaef7c1ef3db5ba5
parent04e90c1313fc6422fc3a5066fcc84ef3ef030ebf
semihosting/arm-compat: replace heuristic for softmmu SYS_HEAPINFO

The previous numbers were a guess at best and rather arbitrary without
taking into account anything that might be loaded. Instead of using
guesses based on the state of registers implement a new function that:

 a) scans the MemoryRegions for the largest RAM block
 b) iterates through all "ROM" blobs looking for the biggest gap

The "ROM" blobs include all code loaded via -kernel and the various
-device loader techniques.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Andrew Strauss <astrauss11@gmail.com>
Cc: Keith Packard <keithp@keithp.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20220225172021.3493923-18-alex.bennee@linaro.org>
hw/core/loader.c
include/hw/loader.h
semihosting/arm-compat-semi.c