#ifndef _LOCAL_MEMORY_H
#define _LOCAL_MEMORY_H

/* This must be DOS compatible MCB, so DOS tools can do raw memory functions */
struct mcb_struct {
  unsigned int type : 8;
  unsigned int owner : 16;
  unsigned int size : 16;
};

#define MCB_SIZE 16   /* MCB size in bytes */
#define MCB_PSIZE 1   /* MCB size in paragraphs */
#define SEARCH_BEST    0
#define SEARCH_FIRST   1
#define SEARCH_LAST    2
#define SEARCH_WORST   3

#define MCB_NEXT(x) ((struct mcb_struct *)((byte*)x+MCB_SIZE+(x->size<<4)))

extern struct mcb_struct *dosmem_search  ( int , int ) ;
extern void               dosmem_init    ( int , int ) ;
extern void               dosmem_dump    ( void );
extern int                dosmem_alloc   ( int , int , int ) ;
extern int                dosmem_free    ( int , int );
extern int                dosmem_realloc ( int , int , int );
extern int                dosmem_largest ( void ) ;



#endif
