Merge pull request #5414 from mariusyo07/feat/libc-mspace-aligned-alloc
feat(libc): implement sceLibcMspaceAlignedAlloc
This commit is contained in:
commit
1535e2c688
|
|
@ -261,6 +261,10 @@ void* APS5_VABI sceLibcMspaceMemalign_nid_postfix(void* handle, std::size_t alig
|
|||
return Allocate(Find(handle), size, alignment);
|
||||
}
|
||||
|
||||
void* APS5_VABI sceLibcMspaceAlignedAlloc_nid_postfix(void* handle, std::size_t alignment, std::size_t size) {
|
||||
return sceLibcMspaceMemalign_nid_postfix(handle, alignment, size);
|
||||
}
|
||||
|
||||
void* APS5_VABI sceLibcMspaceReallocalign_nid_postfix(void* handle, void* pointer, std::size_t size, std::size_t alignment) {
|
||||
if (alignment == 0 || (alignment & (alignment - 1))) {
|
||||
Error(22);
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ void APS5_VABI sceLibcMspaceFree_nid_postfix(void*, void*);
|
|||
int APS5_VABI sceLibcMspacePosixMemalign_nid_postfix(void*, void**, std::size_t, std::size_t);
|
||||
std::size_t APS5_VABI sceLibcMspaceMallocUsableSize_nid_postfix(const void*);
|
||||
void* APS5_VABI sceLibcMspaceMemalign_nid_postfix(void*, std::size_t, std::size_t);
|
||||
void* APS5_VABI sceLibcMspaceAlignedAlloc_nid_postfix(void*, std::size_t, std::size_t);
|
||||
void* APS5_VABI sceLibcMspaceReallocalign_nid_postfix(void*, void*, std::size_t, std::size_t);
|
||||
int APS5_VABI sceLibcMspaceMallocStats_nid_postfix(void*, void*);
|
||||
int APS5_VABI sceLibcMspaceMallocStatsFast_nid_postfix(void*, void*);
|
||||
|
|
@ -187,6 +188,9 @@ int main() {
|
|||
void* memaligned = sceLibcMspaceMemalign_nid_postfix(arena, 256, 100);
|
||||
Require(memaligned && (reinterpret_cast<std::uintptr_t>(memaligned) & 255) == 0);
|
||||
Require(sceLibcMspaceMemalign_nid_postfix(arena, 24, 100) == nullptr);
|
||||
void* alignedAlloc = sceLibcMspaceAlignedAlloc_nid_postfix(arena, 128, 256);
|
||||
Require(alignedAlloc && (reinterpret_cast<std::uintptr_t>(alignedAlloc) & 127) == 0);
|
||||
Require(sceLibcMspaceAlignedAlloc_nid_postfix(arena, 24, 100) == nullptr);
|
||||
unsigned char* realigned = static_cast<unsigned char*>(sceLibcMspaceReallocalign_nid_postfix(arena, nullptr, 64, 64));
|
||||
Require(realigned && (reinterpret_cast<std::uintptr_t>(realigned) & 63) == 0);
|
||||
for (int i = 0; i < 64; ++i) realigned[i] = static_cast<unsigned char>(i + 1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue