home *** CD-ROM | disk | FTP | other *** search
- #ifndef DWR_MEMORY_H
- #define DWR_MEMORY_H
-
- /*****************************************************************************
- *
- * Memory.a
- *
- * Memory allocation routines.
- */
-
- extern UBYTE * __asm Malloc(register __d0 ULONG);
- extern UBYTE * __asm Calloc(register __d0 ULONG, register __d1 ULONG);
- extern VOID __asm Free(register __a1 UBYTE *);
-
- extern UBYTE * __asm AllocMA(register __d0 ULONG, register __d1 ULONG);
- extern VOID __asm FreeMA(register __a1 UBYTE *);
- extern VOID FreeMAll(VOID);
-
- typedef struct MemABlock{
- ULONG Size;
- struct MemABlock *Succ;
- struct MemABlock *Pred;
- UBYTE Block[1];
- } MABLK;
-
- /*
- * If no block could be allocated, YOUR routine NoMem() is called. Do what
- * ever you think is appropriate, like printing a message. If you return 0,
- * the allocator (Malloc(), Calloc(), AllocMA()) returns 0. If you return
- * -1, the allocator does a retry, and any other value is used as a pointer
- * to a block of the requested type and size. Be aware that it is linked in
- * the memory list and that it will be freed by a call to FreeMAll().
- */
-
- extern UBYTE *NoMem(ULONG Size, ULONG Type);
-
- #endif
-