RTEMS Logo

RTEMS 4.7.3 On-Line Library


Miscellaneous Support Files sbrk() Implementation

PREV UP NEXT Bookshelf BSP and Device Driver Development Guide

5.7: sbrk() Implementation

If the BSP wants to dynamically extend the heap used by the C Library memory allocation routines (i.e. malloc family), then this routine must be functional. The following is the prototype for this routine:

void * sbrk(size_t increment)

The increment amount is based upon the sbrk_amount parameter passed to the RTEMS_Malloc_Initialize during system initialization. See Initialization Code RTEMS Pretasking Callback for more information.

There is a default implementation which returns an error to indicate that the heap can not be extended. This implementation can be found in c/src/lib/libbsp/shared/sbrk.c. Many of the BSPs use this shared implementation. In order to use this implementation, the file Makefile.am in the BSP's startup directory must be modified so that the $VPATH variable searches both the startup directory and the shared directory. The following illustates the VPATH setting in the PowerPC psim BSP's startup/Makefile.am:

VPATH = @srcdir@:@srcdir@/../../../shared

This instructs make to look in all of the directories in the VPATH for the source files. The directories will be examined in the order they are specified.


PREV UP NEXT Bookshelf BSP and Device Driver Development Guide

Copyright © 1988-2004 OAR Corporation