home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 534.lha / vmalloc_v1.2 / vm.h < prev    next >
C/C++ Source or Header  |  1991-08-08  |  1KB  |  44 lines

  1. /*
  2.  */
  3.  
  4. struct VM_FreeList {
  5.    struct VM_FreeList *VM_Next ;
  6.    ULONG VM_Offset ;
  7.    ULONG VM_Length ;
  8.    } ;
  9.  
  10. #define VM_INUSE    (1 << 0) 
  11. #define VM_RESERVED (1 << 1)
  12. #define VM_READONLY (1 << 2)
  13.  
  14. struct VM_Lock {
  15.    struct MinNode VM_Node ;
  16.    struct VM_Construct *VM_C ;
  17.    struct VM_FreeList *VM_FL ;
  18.    ULONG VM_Flags ;
  19.    void *VM_Addr ;
  20.    } ;
  21.  
  22. struct VM_Construct {
  23.    BPTR VM_File ;
  24.    char *VM_FileName ;
  25.    ULONG VM_Length ;
  26.    ULONG VM_NumLocks ;
  27.    struct MinList VM_LockList ;
  28.    struct VM_FreeList *VM_FreeList ;
  29.    } ;
  30.  
  31. extern struct VM_Construct *VM_Open(char *VM_Filename) ;
  32. extern ULONG VM_Close(struct VM_Construct *VM_C) ;
  33. extern struct VM_FreeList *VM_Allocate(struct VM_FreeList **VM_F, long Size) ;
  34. extern void VM_Free(struct VM_FreeList **VM_F, struct VM_FreeList *VM_A) ;
  35. extern void *VM_Lock(struct VM_Lock *VM_L) ;
  36. extern ULONG VM_FlushLockList (struct VM_Construct *VM_C) ;
  37. extern ULONG VM_FlushLock (struct VM_Lock *VM_L) ;
  38. extern ULONG VM_UnLock(struct VM_Lock *VM_L) ;
  39. extern struct VM_Lock *VM_AllocMem(struct VM_Construct *VM_C, LONG Size) ;
  40. extern ULONG VM_FreeMem(struct VM_Lock *VM_L) ;
  41. extern ULONG VM_ReadLock(struct VM_Lock *VM_L) ;
  42. extern void VM_ReadOnly(struct VM_Lock *VM_L) ;
  43. extern void VM_FlushFreeList(struct VM_FreeList **VM_F) ;
  44.