File nut/os/heap.c


Included Files


Preprocessor definitions

#define NUTMEM_GUARD_BYTES 0

#define NUT_HEAP_OVERHEAD

#define NUTMEM_HEAPNODE_MIN


Global Variable heapFreeList

HEAPNODE* heapFreeList
Visible in:   nut/os/heap.c
Used in: NutHeapDump() nut/os/heap.c

Global Function NutHeapCheck()

int NutHeapCheck ( void )
Prototyped in: nut/include/sys/heap.h

Global Function NutHeapDump()

void NutHeapDump ( void* stream )
Prototyped in: nut/include/sys/heap.h
Calls: fprintf() nut/crt/fprintf.c
References Variables: heapFreeList nut/os/heap.c

Global Function NutHeapRootAdd()

void NutHeapRootAdd ( HEAPNODE** root, void* addr, size_t size )
Prototyped in: nut/include/sys/heap.h
Calls: NutHeapRootFree() nut/os/heap.c
  PrepareUserArea() nut/os/heap.c
Called by: NutInitHeap() nut/arch/avr/os/nutinit.c

Global Function NutHeapRootAlloc()

void* NutHeapRootAlloc ( HEAPNODE** root, size_t size )
Prototyped in: nut/include/sys/heap.h
Calls: PrepareUserArea() nut/os/heap.c
Called by: ADCInit() nut/arch/avr/dev/adc.c
  AceOpen() nut/arch/avr/dev/tlc16c550.c
  AhdlcAt91Init() nut/arch/arm/dev/at91_ahdlc.c
  AhdlcAt91Open() nut/arch/arm/dev/at91_ahdlc.c
  AhdlcAvrInit() nut/arch/avr/dev/ahdlcavr.c
  AhdlcAvrOpen() nut/arch/avr/dev/ahdlcavr.c
  AhdlcRx() nut/arch/avr/dev/ahdlcavr.c
  At91MciMount() nut/arch/arm/dev/at91_mci.c
  AtCanInit() nut/arch/avr/dev/atcan.c
  CANBufferInit() nut/arch/avr/dev/sja1000.c
  CFChange() nut/arch/avr/dev/ide.c
  CFMount() nut/fs/fat.c
  FATFileOpen() nut/fs/fat.c
  FATInit() nut/fs/fat.c
  FATMountDrive() nut/fs/fat.c
  MmCardMount() nut/dev/mmcard.c
  NutConditionInit() nut/os/condition.c
  NutEncodeBase64() nut/gorp/base64/base64_encode.c
  NutHeapRootAllocClear() nut/os/heap.c
  NutHeapRootRealloc() nut/os/heap.c
  NutNetBufAllocData() nut/dev/netbuf.c
  NutPppOpen() nut/dev/ppp.c
  NutSegBufInit() nut/os/bankmem.c
  NutThreadCreate() nut/arch/avr/os/context_icc.c
  UartAvrOpen() nut/arch/avr/dev/uartavr.c
  WlanInit() nut/arch/avr/dev/wlan.c
  _sbrk() nut/crt/sbrk.c
  malloc() nut/crt/malloc.c
  vfprintf_P() nut/crt/vfprintf_p.c
  vfscanf_P() nut/crt/vfscanf_p.c
  vsprintf_P() nut/crt/vsprintf_p.c
  vsscanf_P() nut/crt/vsscanf_p.c

Global Function NutHeapRootAllocClear()

void* NutHeapRootAllocClear ( HEAPNODE** root, size_t size )
Prototyped in: nut/include/sys/heap.h
Calls: NutHeapRootAlloc() nut/os/heap.c
  memset() nut/c/string/memset.c
Called by: At91MciMount() nut/arch/arm/dev/at91_mci.c
  NutNetBufAlloc() nut/dev/netbuf.c
  NutNetBufClone() nut/dev/netbuf.c

Global Function NutHeapRootAvailable()

size_t NutHeapRootAvailable ( HEAPNODE** root )
Prototyped in: nut/include/sys/heap.h
Called by: HelixInit() nut/dev/hxcodec.c
  NutSegBufInit() nut/os/bankmem.c

Global Function NutHeapRootFree()

int NutHeapRootFree ( HEAPNODE** root, void* block )
Prototyped in: nut/include/sys/heap.h
Calls: ValidateUserArea() nut/os/heap.c
Called by: AceClose() nut/arch/avr/dev/tlc16c550.c
  AhdlcAt91Close() nut/arch/arm/dev/at91_ahdlc.c
  AhdlcAt91Init() nut/arch/arm/dev/at91_ahdlc.c
  AhdlcAvrClose() nut/arch/avr/dev/ahdlcavr.c
  AhdlcAvrInit() nut/arch/avr/dev/ahdlcavr.c
  AhdlcRx() nut/arch/avr/dev/ahdlcavr.c
  At91MciMount() nut/arch/arm/dev/at91_mci.c
  At91MciUnmount() nut/arch/arm/dev/at91_mci.c
  CFChange() nut/arch/avr/dev/ide.c
  CFMount() nut/fs/fat.c
  FATFileClose() nut/fs/fat.c
  FATFileOpen() nut/fs/fat.c
  FATInit() nut/fs/fat.c
  NutConditionFree() nut/os/condition.c
  NutHeapRootAdd() nut/os/heap.c
  NutHeapRootRealloc() nut/os/heap.c
  NutNetBufAlloc() nut/dev/netbuf.c
  NutNetBufCollect() nut/dev/netbuf.c
  NutNetBufFree() nut/dev/netbuf.c
  NutPppClose() nut/dev/ppp.c
  NutSegBufInit() nut/os/bankmem.c
  UartAvrClose() nut/arch/avr/dev/uartavr.c
  free() nut/crt/malloc.c
  vfprintf_P() nut/crt/vfprintf_p.c
  vfscanf_P() nut/crt/vfscanf_p.c
  vsprintf_P() nut/crt/vsprintf_p.c
  vsscanf_P() nut/crt/vsscanf_p.c

Global Function NutHeapRootRealloc()

* \brief Change the size of an allocated memory block. * * If more memory is requested than available at that block the data * is copied to a new, bigger block. * * \param block Points to a previously allocated memory block. If NULL, * then this call is equivalent to NutHeapRootAlloc(). * \param size The requested new size. If 0, then this call is * equivalent to NutHeapRootFree(). * * \return A pointer to the memory block on success or NULL on failures.

void* NutHeapRootRealloc ( HEAPNODE** root, void* block, size_t size )

Prototyped in: nut/include/sys/heap.h
Calls: NutHeapRootAlloc() nut/os/heap.c
  NutHeapRootFree() nut/os/heap.c
  PrepareUserArea() nut/os/heap.c
  ValidateUserArea() nut/os/heap.c
  memcpy() nut/c/string/memcpy.c
Called by: realloc() nut/crt/realloc.c

Global Function NutHeapRootRegionAvailable()

size_t NutHeapRootRegionAvailable ( HEAPNODE** root )
Prototyped in: nut/include/sys/heap.h

Local Function PrepareUserArea()

static inline void* PrepareUserArea ( HEAPNODE* node )
Called by: NutHeapRootAdd() nut/os/heap.c
  NutHeapRootAlloc() nut/os/heap.c
  NutHeapRootRealloc() nut/os/heap.c

Local Function ValidateUserArea()

static inline int ValidateUserArea ( HEAPNODE* node )
Called by: NutHeapRootFree() nut/os/heap.c
  NutHeapRootRealloc() nut/os/heap.c