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");