home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / programming / source / virt.lha / Virtual.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-11-14  |  1.5 KB  |  58 lines

  1. /* $Revision Header *** Header built automatically - do not edit! ***********
  2.  *
  3.  *    (C) Copyright 1992 by Amit Fridman
  4.  *
  5.  *    Name .....: Virtual.h
  6.  *    Created ..: Friday 13-Nov-92 15:21:07
  7.  *    Revision .: 1
  8.  *
  9.  *    Date        Author                 Comment
  10.  *    =========   ====================   ====================
  11.  *    14-Nov-92   Amit Fridman           Version 1.0 finished
  12.  *    13-Nov-92   Amit Fridman           Created this file!
  13.  *
  14.  * $Revision Header ********************************************************/
  15. #define REVISION    1
  16.  
  17. #include <exec/types.h>
  18.  
  19. struct SegEntry {
  20.     struct SegEntry *NextP;
  21.     char *Base;
  22.     ULONG Size;
  23.     ULONG FOffset;
  24.     ULONG Access;
  25.     SHORT Pri;
  26.     UWORD Flags;
  27. };
  28.  
  29. #define SF_PRESENT 1
  30. #define SF_DIRTY   2
  31. #define SF_USED    4
  32. #define SF_INFILE  8
  33.  
  34. struct VirtMem {
  35.     struct SegEntry *Segments;
  36.     struct SegEntry *PSegments;
  37.     ULONG VirtSize;
  38.     ULONG PhysSize;
  39.     SHORT SegNum;
  40.     char *PhysMem;
  41.     char FName[108];
  42.     BPTR File;
  43.     ULONG AccOffset;
  44.     ULONG Count;
  45.     UWORD Flags;
  46. };
  47.  
  48. #define NORMALIZE(seg,offset) ((seg)->Base+(offset))
  49. #define OFFSET(seg,full)      ((full)-(seg)->Base)
  50. #define DIRTY(seg)            ((seg)->Flags|=SF_DIRTY)
  51. #define PRESENT(seg)          ((seg)->Flags & SF_PRESENT)
  52.  
  53. /* Virtual.c */
  54. short InitVirtualMem(struct VirtMem *vm, char const *FName, unsigned long VirtSize, unsigned long PhysSize, unsigned short SegNum);
  55. void FreeVirtMem(struct VirtMem *vm);
  56. struct SegEntry *CreateSegment(struct VirtMem *vm, unsigned long size, short pri);
  57. short Access(struct VirtMem *vm,struct SegEntry *seg);
  58.