From 9f90833d2b2df73f0074e11e4581e52fed306b86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Jos=C3=A9=20Garc=C3=ADa=20Garc=C3=ADa?= Date: Fri, 2 Apr 2021 19:50:09 +0200 Subject: [PATCH] [VITA] Align VM block size to 1MB --- bootstrap/vita/sbrk.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bootstrap/vita/sbrk.c b/bootstrap/vita/sbrk.c index d610d64c38..49df34fa57 100644 --- a/bootstrap/vita/sbrk.c +++ b/bootstrap/vita/sbrk.c @@ -15,6 +15,8 @@ static int _newlib_vm_memblock; extern int _newlib_heap_size_user __attribute__((weak)); extern int _newlib_vm_size_user __attribute__((weak)); +#define ALIGN(x, a) (((x) + ((a) - 1)) & ~((a) - 1)) + void * _sbrk_r(struct _reent *reent, ptrdiff_t incr) { if (sceKernelLockLwMutex((struct SceKernelLwMutexWork*)_newlib_sbrk_mutex, 1, 0) < 0) goto fail; @@ -36,8 +38,8 @@ void _init_vita_heap(void) { int _newlib_vm_size = 0; if (&_newlib_vm_size_user != NULL) { - _newlib_vm_size = _newlib_vm_size_user; - _newlib_vm_memblock = sceKernelAllocMemBlockForVM("code", _newlib_vm_size_user); + _newlib_vm_size = ALIGN(_newlib_vm_size_user, 0x100000); + _newlib_vm_memblock = sceKernelAllocMemBlockForVM("code", _newlib_vm_size); if (_newlib_vm_memblock < 0){ //sceClibPrintf("sceKernelAllocMemBlockForVM failed\n");