home *** CD-ROM | disk | FTP | other *** search
- /*
- #### # # # #
- # # # # # The FreeWare C library for
- # # ## ### # # # # ### RISC OS machines
- # # # # # # # # # # # ___________________________________
- # # #### ### ## # # # #
- # # # # # # # # # # Please refer to the accompanying
- #### ### #### # # ##### # ### documentation for conditions of use
- ________________________________________________________________________
-
- File: MemDefs.h
- Author: Copyright © 1993 Jason Williams
- Version: 1.00 (12 May 1993)
- Purpose: Dynamic memory management
- */
-
-
- #ifndef __dl_memdef_h
- #define __dl_memdef_h
-
- #include "DeskLib:Mem.h"
-
- typedef struct
- {
- void **handle; /* The handle/anchor pointing to this block */
- int prevrealsize; /* Real block size of previous chunk */
- int realsize, datasize; /* Chunk's real size and size of data-chunk */
- } mem_header;
-
-
- #ifndef __dl_mem_c
- extern mem_header *mem__lastchunk;
- extern int mem__heap;
- extern int mem__heapsize;
- extern BOOL mem__iscompact;
- #endif
-
-
- /* Rounds an address up to the nearest word boundary */
- #define WORDALIGN(ADDR) (((ADDR) + 3) & (~3))
-
- /* Returns TRUE if the given chunk is free */
- #define ISFREE(CHUNK) ((CHUNK)->datasize == 0)
-
- extern int Mem__HeapSize(int heapsize);
- extern void Mem__ReduceSlot(void);
- extern mem_header *Mem__NextChunk(mem_header *chunk);
- extern mem_header *Mem__PrevChunk(mem_header *chunk);
- extern BOOL Mem__FindChunk(mem_anchor *anchor, mem_header **chunk);
- extern void Mem__SplitOffFreeChunk(mem_header *chunk);
-
- #endif
-