-- StorageGVImpl.mesa: give them Storage in the MDS
-- Ted Wobber, 18-Jan-83 13:29:02
-- Mark Johnson, 11-Nov-81 12:24:20

DIRECTORY
  Heap USING [CreateMDS],
  Storage -- the Grapevine "Storage" EXPORTed -- ;

StorageGVImpl: PROGRAM IMPORTS Heap EXPORTS Storage =

  BEGIN

  mz: MDSZone = Heap.CreateMDS[10 -- pages initially -- ];

  Words: TYPE = RECORD [SEQUENCE COMPUTED CARDINAL OF UNSPECIFIED];

  Node: PUBLIC PROC [nwords: CARDINAL] RETURNS [p: POINTER] = {
    p ← mz.NEW[Words [nwords]]};

  String: PUBLIC PROC [nchars: CARDINAL] RETURNS [s: STRING] = {
    s ← mz.NEW[StringBody [nchars]]};

  Free: PUBLIC PROC [p: POINTER] = {mz.FREE[@p]};

  FreeString: PUBLIC PROC [s: STRING] = {mz.FREE[@s]};

  END.