Ejemplo n.º 1
0
void* _realloc_impl( void* oldptr, size_t size, int krn)
{
	if (krn == 1){	// kernel
		uint8_t* newptr = tlsf_realloc(kernel_heap, oldptr, size);
		return newptr;
	} else {		// processes
		void* heapStart = sdk_prc_getHeapPointer();		
		uint8_t* newptr = tlsf_realloc(heapStart, oldptr, size);
		return newptr;
	}
}
Ejemplo n.º 2
0
//----------------------------------------------------------------//
void* zipfs_realloc ( void* ptr, size_t size ) {

	if ( sTlsfPool ) {
		return tlsf_realloc ( sTlsfPool->mPool, ptr, size );
	}
	return realloc ( ptr, size );
}
Ejemplo n.º 3
0
/**
 * Deallocate and reallocate with a different size.
 */
ATTR_REALLOC void *realloc(void *ptr, size_t size)
{
    unsigned old_state = irq_disable();
    void *result = tlsf_realloc(gheap, ptr, size);

    irq_restore(old_state);
    return result;
}
Ejemplo n.º 4
0
void *krealloc(void *oldptr, size_t bytes)
{
    uint32_t flags;
    void *ptr;

    save_flags_cli(flags);
    ptr = tlsf_realloc(g_kheap, oldptr, bytes);
    restore_flags(flags);

    return ptr;
}
Ejemplo n.º 5
0
void* AllocatorTLSF_Impl::Reallocate(void* _Pointer, size_t _NumBytes)
{
	size_t oldBlockSize = _Pointer ? tlsf_block_size(_Pointer) : 0;
	void* p = tlsf_realloc(hPool, _Pointer, _NumBytes);
	if (p)
	{
		size_t blockSizeDiff = tlsf_block_size(p) - oldBlockSize;
		Stats.BytesAllocated += blockSizeDiff;
		Stats.BytesFree -= blockSizeDiff;
		Stats.PeakBytesAllocated = __max(Stats.PeakBytesAllocated, Stats.BytesAllocated);
	}

	return 0;
}
Ejemplo n.º 6
0
void *
myrealloc(void *ptr, size_t bytes)
{
  hts_lwmutex_lock(&mutex);
  void *r = tlsf_realloc(gpool, ptr, bytes);

  hts_lwmutex_unlock(&mutex);
  if(r == NULL) {
    memtrace();
    tracelog(TRACE_NO_PROP, TRACE_ERROR, "MEMORY",
          "realloc(%d) failed", (int)bytes);
    errno = ENOMEM;
  }
  return r;
}
Ejemplo n.º 7
0
void *realloc(void *ptr, size_t bytes)
{
  void *r;

  if(bytes == 0) {
    free(ptr);
    return NULL;
  }

  hts_lwmutex_lock(&mutex);
  r = tlsf_realloc(gpool, ptr, bytes);
  hts_lwmutex_unlock(&mutex);
  if(r == NULL) {
    memtrace();
    panic("OOM: realloc(%p, %d)", ptr, (int)bytes);
  }
  return r;
}
Ejemplo n.º 8
0
static void *g_realloc(void *ptr, size_t osize, size_t size)
{
    void* p = NULL;

    if (ptr && size == 0)
    {
        g_free(ptr);
    }
    else if (ptr == NULL)
    {
        if (size <= 256)
            p = tlsf_malloc(memory_pool, size);

        if (p == NULL)
            p = ::malloc(size);
    }
    else
    {
        if (memory_pool <= ptr && ptr < memory_pool_end)
        {
            if (size <= 256)
                p = tlsf_realloc(memory_pool, ptr, size);

            if (p == NULL)
            {
                p = ::malloc(size);
                memcpy(p, ptr, osize);
                tlsf_free(memory_pool, ptr);
            }
        }
        else
        {
            p = ::realloc(ptr, size);
        }
    }

    return p;
}
Ejemplo n.º 9
0
			void* realloc( void* ptr, size_t size )
			{
				return tlsf_realloc( g_tlsfPool, ptr, size );
			}
Ejemplo n.º 10
0
void *realloc(void *oldmem, size_t bytes)
{
	return tlsf_realloc(tlsf_mem_pool, oldmem, bytes);
}
Ejemplo n.º 11
0
void * pvPortRealloc( void *pv, size_t xWantedSize ){
	vTaskSuspendAll();
	void * res = tlsf_realloc(pv, xWantedSize);
	xTaskResumeAll();
	return res;
}