]> git.sur5r.net Git - freertos/blob - FreeRTOS/Source/portable/Softune/MB96340/__STD_LIB_sbrk.c
Add FreeRTOS-Plus directory.
[freertos] / FreeRTOS / Source / portable / Softune / MB96340 / __STD_LIB_sbrk.c
1 /* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */\r
2 /* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */\r
3 /* ELIGIBILITY FOR ANY PURPOSES.                                             */\r
4 /*                 (C) Fujitsu Microelectronics Europe GmbH                  */\r
5 /*---------------------------------------------------------------------------\r
6   __STD_LIB_sbrk.C\r
7   - Used by heap_3.c for memory accocation and deletion.\r
8 \r
9 /*---------------------------------------------------------------------------*/\r
10 \r
11 #include "FreeRTOSConfig.h"\r
12 #include <stdlib.h>\r
13 \r
14         static  long         brk_siz  =  0;\r
15         typedef int          _heep_t;\r
16         #define ROUNDUP(s)   (((s)+sizeof(_heep_t)-1)&~(sizeof(_heep_t)-1))\r
17         static  _heep_t      _heep[ROUNDUP(configTOTAL_HEAP_SIZE)/sizeof(_heep_t)];\r
18         #define              _heep_size      ROUNDUP(configTOTAL_HEAP_SIZE)\r
19 \r
20         extern  char  *sbrk(int  size)\r
21         {\r
22            if  (brk_siz  +  size  >  _heep_size  ||  brk_siz  +  size  <  0)\r
23 \r
24           return((char*)-1);\r
25            brk_siz  +=  size;\r
26            return(  (char*)_heep  +  brk_siz  -  size);\r
27         }\r
28 \r