(* Copyright (C) 1989, Digital Equipment Corporation *) (* All rights reserved. *) (* See the file COPYRIGHT for a full description. *) (* File: M3toC.i3 *) (* Last modified on Tue Apr 24 16:38:45 1990 by jerome *) (* modified on Fri Mar 16 01:58:15 1990 by muller *) INTERFACE M3toC; IMPORT Ctypes, Text; (* The C null string "" *) VAR nullString: ADDRESS; (* Convert a Modula3 Text into a C CharStar *) PROCEDURE TtoS (t: Text.T): Ctypes.CharStar; (* Convert a C CharStar into a Modula3 Text *) PROCEDURE StoT (s: Ctypes.CharStar): Text.T; (* Convert a Modula3 INTEGER into a C Pointer *) PROCEDURE ItoP (t: INTEGER): ADDRESS; (* Convert a Modula3 REAL into a C Pointer *) PROCEDURE RtoP (t: REAL): ADDRESS; (* Convert a Ctypes.UnsignedLong into a C Pointer *) PROCEDURE UtoP (t: Ctypes.UnsignedLong): ADDRESS; (* Convert a C Pointer into a Modula3 INTEGER *) PROCEDURE PtoI (t: ADDRESS): INTEGER; (* Convert a C Pointer into a Modula3 REAL *) PROCEDURE PtoR (t: ADDRESS): REAL; (* Convert a C Pointer into a Modula3 FloatStar *) PROCEDURE PtoFS (t: ADDRESS): Ctypes.FloatStar; (* Convert a C Pointer into a Modula3 DoubleStar *) PROCEDURE PtoDS (t: ADDRESS): Ctypes.DoubleStar; TYPE Argv = UNTRACED REF ARRAY [0..255] OF Ctypes.CharStar; VAR argc: INTEGER; adr_argc: ADDRESS; argv: Argv; null: ADDRESS; END M3toC.