(*
    Title: 	Usefile marshalling things
    LastEdit:	"Tue Jan  5 18:05:58 1988"
    Author: 	Derek McAuley,Oms1,4663,329629
		Cambridge University Computer Laboratory
*)

DEFINITION MODULE MarshalLib;


IMPORT
  Marshal, RPC, SYSTEM;

FROM SystemTypes  IMPORT String;


EXPORT QUALIFIED 
  ArrayOfString, Strings;
  
  
PROCEDURE ArrayOfString(
  VAR strings:ARRAY OF String; (* InOut *)
  VAR number: CARDINAL;        (* InOut *)
      m:      Marshal.T
 );
  (* For   marshalling: number is (* In *)  - marshal Min(number, max)
         unmarshalling: number is (* Out *) - elements unmarshalled.   
  *)


PROCEDURE Strings(
  address:SYSTEM.ADDRESS;
  number: CARDINAL;
  m:      Marshal.T
 );
  (* address is start of area to get / put string (pointers) from / to *)


END MarshalLib.
