Listing 1: The HeapManager header file


/*
  *    HEAPMGR.H
  *    Header  file  for  32-bit  OS/2  heap
  *    management  library.
  *
  */
#ifndef  _H_HEAPMGR_
#define  _H_HEAPMGR_

#include  <stdlib.h>        /*    for  size_t    */

/*
  *    The  incomplete  HeapManager  control  struct
  *
  */
struct  _heap;
#define  HEAP  struct  _heap

/*
  *    Prototypes
  *
  */
#ifdef  __cplusplus
extern  "C"  {
#endif

HEAP  *  createHeap(size_t  size);
int        destroyHeap(HEAP  *heap);

void  *  allocMem(HEAP  *heap,  size_t  size);
int        freeMem(HEAP  *heap,  void  *blockP);

size_t  queryHeapSize(HEAP  *heap);
size_t  queryHeapFree(HEAP  *heap);
size_t  queryHeapBlocks(HEAP  *heap);
void  *  queryHeapBase(HEAP  *heap);
size_t  queryBlockSize(void  *blockP);

#ifdef  __cplusplus
}
#endif

#endif      /*    _H_HEAPMGR_    */
/* End of File */