kern: fix dynamic calculation of slab heap size

This commit is contained in:
Michael Scire 2020-07-31 02:59:12 -07:00 committed by SciresM
parent 5c4fbf5c67
commit 8cd81b3092
2 changed files with 7 additions and 3 deletions

View file

@ -127,10 +127,14 @@ namespace ams::kern::init {
size += util::AlignUp(sizeof(NAME) * (COUNT), alignof(void *)); \
});
/* NOTE: This can't be used right now because we don't have all these types implemented. */
/* Once we do, uncomment the following and stop using the hardcoded size. */
/* Add the size required for each slab. */
FOREACH_SLAB_TYPE(ADD_SLAB_SIZE)
#undef ADD_SLAB_SIZE
/* Add the reserved size. */
size += SlabRegionReservedSize;
return size;
}

View file

@ -156,7 +156,7 @@ namespace ams::kern::init {
const size_t resource_region_size = GetResourceRegionSize();
/* Determine the size of the slab region. */
const size_t slab_region_size = CalculateTotalSlabHeapSize();
const size_t slab_region_size = util::AlignUp(CalculateTotalSlabHeapSize(), PageSize);
MESOSPHERE_INIT_ABORT_UNLESS(slab_region_size <= resource_region_size);
/* Setup the slab region. */