This repository has been archived on 2023-11-05. You can view files and clone it, but cannot push or open issues or pull requests.
FreeRTOS-Kernel/Source/portable/Softune/MB96340/__STD_LIB_sbrk.c
2008-02-12 09:29:26 +00:00

34 lines
1.2 KiB
C

/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
/* ELIGIBILITY FOR ANY PURPOSES. */
/* (C) Fujitsu Microelectronics Europe GmbH */
/*---------------------------------------------------------------------------
__STD_LIB_sbrk.C
- Used by heap_3.c for memory accocation and deletion.
/*---------------------------------------------------------------------------*/
#include "FreeRTOSConfig.h"
#include <stdlib.h>
static long brk_siz = 0;
// #if configTOTAL_HEAP_SIZE != 0
typedef int _heep_t;
#define ROUNDUP(s) (((s)+sizeof(_heep_t)-1)&~(sizeof(_heep_t)-1))
static _heep_t _heep[ROUNDUP(configTOTAL_HEAP_SIZE)/sizeof(_heep_t)];
#define _heep_size ROUNDUP(configTOTAL_HEAP_SIZE)
/* #else
extern char *_heep;
extern long _heep_size;
#endif
*/
extern char *sbrk(int size)
{
if (brk_siz + size > _heep_size || brk_siz + size < 0)
return((char*)-1);
brk_siz += size;
return( (char*)_heep + brk_siz - size);
}