home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / c / genmo112.lha / GTB-Modula / Interfaces / NoFrag.def < prev   
Encoding:
Modula Definition  |  1993-09-28  |  2.2 KB  |  92 lines

  1. DEFINITION MODULE NoFrag {"nofrag.library", 2};
  2.  
  3. (*
  4.  * -------------------------------------------------------------------------
  5.  *
  6.  *    :Program.    NoFrag.def
  7.  *    :Contents.    Interface to NoFrag.library 2.2 by Jaan van den Baard
  8.  *
  9.  *    :Author.    Reiner B. Nix
  10.  *    :Address.    Geranienhof 2, 50769 Köln Seeberg
  11.  *    :Address.    rbnix@pool.informatik.rwth-aachen.de
  12.  *    :Copyright.    free
  13.  *    :Language.    Modula-2
  14.  *    :Translator.    M2Amiga A-L V4.2d
  15.  *    :History.    this interface descends from the original C-Interface  and 
  16.  *    :History.     the Oberon Interface by Kai Bolay
  17.  *    :History,    NoFrag.def 1.0          ;M2Amiga 4.0d
  18.  *    :History.    NoFrag.def 1.1          :M2Amiga 4.2d
  19.  *
  20.  * -------------------------------------------------------------------------
  21.  *)
  22.  
  23. FROM    SYSTEM            IMPORT    ADDRESS;
  24. FROM    ExecD            IMPORT    MemReqSet,
  25.                     LibraryPtr;
  26.  
  27.  
  28. TYPE    MemoryBlockPtr        =POINTER TO MemoryBlock;
  29.  
  30.     MemoryBlock        =RECORD    next, previous        :MemoryBlockPtr;
  31.                     requirements        :MemReqSet;
  32.                     bytesUsed        :LONGINT
  33.                     END;
  34.  
  35.     MemoryItemPtr        =POINTER TO MemoryItem;
  36.  
  37.     MemoryItem        =RECORD    next, previous        :MemoryItemPtr;
  38.                     block            :MemoryBlockPtr;
  39.                     size            :LONGINT
  40.                     END;
  41.  
  42.  
  43.     BlockListPtr        =POINTER TO BlockList;
  44.  
  45.     BlockList        =RECORD    first, end, last    :MemoryItemPtr
  46.                     END;
  47.  
  48.  
  49.     ItemListPtr        =POINTER TO ItemList;
  50.  
  51.     ItemList        =RECORD    first, end, last        :MemoryItemPtr
  52.                     END;
  53.  
  54.  
  55.     MemoryChainPtr        =POINTER TO MemoryChain;
  56.  
  57.     MemoryChain        =RECORD    block            :BlockList;
  58.                     items            :ItemList;
  59.                     blockSize        :LONGINT
  60.                     END;
  61.  
  62.  
  63. CONST    MinAlloc        =SIZE (MemoryItem);
  64.  
  65.  
  66. VAR    nofragVersion        :INTEGER;
  67.     nofragBase        :LibraryPtr;
  68.  
  69.  
  70. PROCEDURE GetMemoryChain    (    blocksize {0}    :LONGINT) :MemoryChainPtr;    CODE -30;
  71.  
  72. PROCEDURE AllocItem        (    chain {8}        :MemoryChainPtr;
  73.                      size {0}        :LONGINT;
  74.                      requirements {1}    :MemReqSet) :ADDRESS;        CODE -36;
  75.  
  76. PROCEDURE FreeItem        (    chain {8}        :MemoryChainPtr;
  77.                      memptr {9}        :ADDRESS;
  78.                      size {0}        :LONGINT);            CODE -42;
  79.  
  80. PROCEDURE FreeMemoryChain    (    chain {8}        :MemoryChainPtr;
  81.                      all {0}        :BOOLEAN);            CODE -48;
  82.  
  83. PROCEDURE AllocVecItem        (    chain {8}        :MemoryChainPtr;
  84.                      size {0}        :LONGINT;
  85.                      requirements {1}    :MemReqSet) :ADDRESS;        CODE -54;
  86.  
  87. PROCEDURE FreeVecItem        (    chain {8}        :MemoryChainPtr;
  88.                      memptr {9}        :ADDRESS);            CODE -60;
  89.  
  90.  
  91. END NoFrag.
  92.