void *__wrap_memalign(size_t a, size_t size) { void *p; if ((SYS_GetArena1Lo() >= MAX_MEM1_ARENA_LO) || size >= MEM2_PRIORITY_SIZE) { if (a <= 32 && 32 % a == 0) { p = MEM2_alloc(size); if (p != 0) return p; } return __real_memalign(a, size); } p = __real_memalign(a, size); return p != 0 ? p : MEM2_alloc(size); }
void *__wrap_memalign(size_t a, size_t size) { void *p; if(size >= MEM2_PRIORITY_SIZE) { if(a <= 32 && 32 % a == 0) { p = g_mem2gp.allocate(size); if (p != 0) return p; } return __real_memalign(a, size); } p = __real_memalign(a, size); if(p != 0 || a > 32 || 32 % a != 0) return p; return g_mem2gp.allocate(size); }
void *__wrap_memalign(size_t a, size_t size) { void *p; if ((SYS_GetArena1Lo() > MAX_MEM1_ARENA_LO) || (g_bigGoesToMem2 && size > MEM2_PRIORITY_SIZE)) { if (a <= 32 && 32 % a == 0) { p = g_mem2gp.allocate(size); if (p != 0) { return p; } } return __real_memalign(a, size); } p = __real_memalign(a, size); if (p != 0 || a > 32 || 32 % a != 0) { return p; } return g_mem2gp.allocate(size); }
void* __wrap_memalign( size_t align, size_t size ) { LockAlloc(); void *ptr = __real_memalign( align, size ); if( ptr == NULL && size > 0 && IsSingleLocked() && g_bMemoryAssert ) { TempLog( "memalign failed: %ubytes(aligned %u)\r\n", size, align ); MemoryError(); } UnlockAlloc(); return ptr; }
void * __wrap_memalign(size_t align, size_t size) { u32 lr=(u32)__builtin_return_address(0); lock(&lck); u32 pg=align>PRE_GUARD?align:PRE_GUARD; size+=pg; size+=POST_GUARD; u8 * p=__real_memalign(align,size); memset(p,FILL,size); *(u32*)&p[pg-4]=MAGIC; *(size_t*)&p[pg-8]=pg; *(size_t*)&p[pg-12]=size; *(u32*)&p[pg-16]=lr; unlock(&lck); return &p[pg]; }
void *MEM1_memalign(unsigned int a, unsigned int s) { return __real_memalign(a, s); }