home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mod201j.zip / modula2.exe / os2api / dosmemmg.def < prev    next >
Text File  |  1994-05-03  |  5KB  |  140 lines

  1. DEFINITION MODULE DOSMEMMGR;
  2.  
  3. (************************************************************************
  4.   OS/2 2.0 interface for memory management.
  5.  
  6.   Copyright (c) 1992 by Juergen Neuhoff
  7. *************************************************************************)
  8.  
  9. (*$XL+       Modula-2 language extensions: '_' allowed for symbol names *)
  10. (*$CDECL+    C-style procedures                                         *)
  11.  
  12. IMPORT SYSTEM;
  13. FROM   OS2DEF IMPORT APIRET, PID;
  14.  
  15.  
  16. CONST (* Access protection *)
  17.   PAG_READ        = 00000001H;      (* read access                     *)
  18.   PAG_WRITE       = 00000002H;      (* write access                    *)
  19.   PAG_EXECUTE     = 00000004H;      (* execute access                  *)
  20.   PAG_GUARD       = 00000008H;      (* guard protection                *)
  21.   PAG_DEFAULT     = 00000400H;      (* default (initial) access        *)
  22.  
  23. CONST (* Commit *)
  24.   PAG_COMMIT      = 00000010H;      (* commit storage                  *)
  25.   PAG_DECOMMIT    = 00000020H;      (* decommit storage                *)
  26.  
  27. CONST (* Allocation attributes *)
  28.   OBJ_TILE        = 00000040H;     (* tile object                      *)
  29.   OBJ_PROTECTED   = 00000080H;     (* protect object                   *)
  30.                                    (*  NOTE: This flag is NOT          *)
  31.                                    (*  available at the api level                *)
  32.   OBJ_GETTABLE    = 00000100H;     (* gettable by other processes      *)
  33.   OBJ_GIVEABLE    = 00000200H;     (* giveable to other processes      *)
  34.   fPERM           = (PAG_EXECUTE OR PAG_READ OR PAG_WRITE);
  35.   fSHARE          = (OBJ_GETTABLE OR OBJ_GIVEABLE);
  36.  
  37. CONST (* DosAllocMem flags *)
  38.   fALLOC          = (OBJ_TILE OR PAG_COMMIT OR fPERM);
  39.  
  40. CONST (* DosAllocSharedMem() flags *)
  41.   fALLOCSHR       = (OBJ_TILE OR PAG_COMMIT OR fSHARE OR fPERM);
  42.   fGETNMSHR       = (fPERM);
  43.  
  44. CONST (* DosGetSharedMem() flags *)
  45.   fGETSHR         = (fPERM);
  46.  
  47. CONST (* DosGiveSharedMem() flags *)
  48.   fGIVESHR        = (fPERM);
  49.  
  50. CONST (* DosSetMem() flags *)
  51.   fSET            = (PAG_COMMIT + PAG_DECOMMIT + PAG_DEFAULT + fPERM);
  52.  
  53. CONST (* Dos32SubSet() flags *)
  54.   DOSSUB_INIT       = 01H;          (* initialize memory object for     *)
  55.                                     (* suballocation                    *)
  56.   DOSSUB_GROW       = 02H;          (* increase size of memory pool     *)
  57.                                     (* for suballocation                *)
  58.   DOSSUB_SPARSE_OBJ = 04H;          (* indicator for DosSub to          *)
  59.                                     (* manage the commitment of         *)
  60.                                     (* pages spanned by the memory      *)
  61.                                     (* pool                             *)
  62.   DOSSUB_SERIALIZE  = 08H;          (* indicates that access to the     *)
  63.                                     (* memory pool is to be             *)
  64.                                     (* serialized by DosSub             *)
  65.  
  66. CONST (* Allocation type returned from DosQueryMem() *)
  67.   PAG_SHARED        = 00002000H;    (* shared object                    *)
  68.   PAG_FREE          = 00004000H;    (* pages are free                   *)
  69.   PAG_BASE          = 00010000H;    (* first page in object             *)
  70.  
  71. PROCEDURE DosAllocMem
  72. ( VAR BaseAddress        : SYSTEM.ADDRESS;
  73.   ObjectSize             : LONGCARD;
  74.   AllocationFlags        : LONGCARD
  75. )                        : APIRET;
  76.  
  77. PROCEDURE DosFreeMem
  78. ( BaseAddress            : SYSTEM.ADDRESS
  79. )                        : APIRET;
  80.  
  81. PROCEDURE DosSetMem
  82. ( BaseAddress            : SYSTEM.ADDRESS;
  83.   RegionSize             : LONGCARD;
  84.   AttributeFlags         : LONGCARD
  85. )                        : APIRET;
  86.  
  87. PROCEDURE DosGiveSharedMem
  88. ( BaseAddress            : SYSTEM.ADDRESS;
  89.   ProcessId              : PID;
  90.   AttributeFlags         : LONGCARD
  91. )                        : APIRET;
  92.  
  93. PROCEDURE DosGetSharedMem
  94. ( BaseAddress            : SYSTEM.ADDRESS;
  95.   AttributeFlags         : LONGCARD
  96. )                        : APIRET;
  97.  
  98. PROCEDURE DosGetNamedSharedMem
  99. ( VAR BaseAddress        : SYSTEM.ADDRESS;
  100.   SharedMemName          : ARRAY OF CHAR;
  101.   AttributeFlags         : LONGCARD
  102. )                        : APIRET;
  103.  
  104. PROCEDURE DosAllocSharedMem
  105. ( VAR BaseAddress        : SYSTEM.ADDRESS;
  106.   Name                   : ARRAY OF CHAR;
  107.   ObjectSize             : LONGCARD;
  108.   Flags                  : LONGCARD
  109. )                        : APIRET;
  110.  
  111. PROCEDURE DosQueryMem
  112. ( BaseAddress            : SYSTEM.ADDRESS;
  113.   VAR RegionSize         : LONGCARD;
  114.   VAR AllocationFlags    : LONGCARD
  115. )                        : APIRET;
  116.  
  117. PROCEDURE DosSubAllocMem
  118. ( Offset                 : SYSTEM.ADDRESS;
  119.   VAR BlockOffset        : SYSTEM.ADDRESS;
  120.   Size                   : LONGCARD
  121. )                        : APIRET;
  122.  
  123. PROCEDURE DosSubFreeMem
  124. ( Offset                 : SYSTEM.ADDRESS;
  125.   BlockOffset            : SYSTEM.ADDRESS;
  126.   Size                   : LONGCARD
  127. )                        : APIRET;
  128.  
  129. PROCEDURE DosSubSetMem
  130. ( Offset                 : SYSTEM.ADDRESS;
  131.   Flags                  : LONGCARD;
  132.   Size                   : LONGCARD
  133. )                        : APIRET;
  134.  
  135. PROCEDURE DosSubUnsetMem
  136. ( Offset                 : SYSTEM.ADDRESS
  137. )                        : APIRET;
  138.  
  139. END DOSMEMMGR.
  140.