IMPLEMENTATION MODULE wrapc; (* Bound to m2c* helpers in the shim. SHORTREAL/LONGREAL widen to REAL in V3, so the f/l float variants share the double implementations. *) FROM SYSTEM IMPORT ADDRESS; PROCEDURE m2cstrtime () : ADDRESS; EXTERNAL; PROCEDURE m2cfilesize (f : INTEGER; VAR low, high : CARDINAL) : INTEGER; EXTERNAL; PROCEDURE m2cfileinode (f : INTEGER; VAR low, high : CARDINAL) : INTEGER; EXTERNAL; PROCEDURE m2cfilemtime (f : INTEGER) : INTEGER; EXTERNAL; PROCEDURE m2cgetrand (n : INTEGER) : INTEGER; EXTERNAL; PROCEDURE m2cgetusername () : ADDRESS; EXTERNAL; PROCEDURE m2cgetnameuidgid (name : ADDRESS; VAR uid, gid : INTEGER); EXTERNAL; PROCEDURE m2csignbit (r : REAL) : INTEGER; EXTERNAL; PROCEDURE m2cisfinite (x : REAL) : INTEGER; EXTERNAL; PROCEDURE m2cisnan (x : REAL) : INTEGER; EXTERNAL; PROCEDURE m2cseekset () : INTEGER; EXTERNAL; PROCEDURE m2cseekend () : INTEGER; EXTERNAL; PROCEDURE m2creadonly () : CARDINAL; EXTERNAL; PROCEDURE m2cwriteonly () : CARDINAL; EXTERNAL; PROCEDURE strtime () : ADDRESS; BEGIN RETURN m2cstrtime() END strtime; PROCEDURE filesize (f : INTEGER; VAR low, high : CARDINAL) : INTEGER; BEGIN RETURN m2cfilesize(f, low, high) END filesize; PROCEDURE fileinode (f : INTEGER; VAR low, high : CARDINAL) : INTEGER; BEGIN RETURN m2cfileinode(f, low, high) END fileinode; PROCEDURE filemtime (f : INTEGER) : INTEGER; BEGIN RETURN m2cfilemtime(f) END filemtime; PROCEDURE getrand (n : INTEGER) : INTEGER; BEGIN RETURN m2cgetrand(n) END getrand; PROCEDURE getusername () : ADDRESS; BEGIN RETURN m2cgetusername() END getusername; PROCEDURE getnameuidgid (name : ADDRESS; VAR uid, gid : INTEGER); BEGIN m2cgetnameuidgid(name, uid, gid) END getnameuidgid; PROCEDURE signbit (r : REAL) : INTEGER; BEGIN RETURN m2csignbit(r) END signbit; PROCEDURE signbitf (s : SHORTREAL) : INTEGER; BEGIN RETURN m2csignbit(s) END signbitf; PROCEDURE signbitl (l : LONGREAL) : INTEGER; BEGIN RETURN m2csignbit(l) END signbitl; PROCEDURE isfinite (x : REAL) : INTEGER; BEGIN RETURN m2cisfinite(x) END isfinite; PROCEDURE isfinitef (x : SHORTREAL) : INTEGER; BEGIN RETURN m2cisfinite(x) END isfinitef; PROCEDURE isfinitel (x : LONGREAL) : INTEGER; BEGIN RETURN m2cisfinite(x) END isfinitel; PROCEDURE isnan (x : REAL) : INTEGER; BEGIN RETURN m2cisnan(x) END isnan; PROCEDURE isnanf (x : SHORTREAL) : INTEGER; BEGIN RETURN m2cisnan(x) END isnanf; PROCEDURE isnanl (x : LONGREAL) : INTEGER; BEGIN RETURN m2cisnan(x) END isnanl; PROCEDURE SeekSet () : INTEGER; BEGIN RETURN m2cseekset() END SeekSet; PROCEDURE SeekEnd () : INTEGER; BEGIN RETURN m2cseekend() END SeekEnd; PROCEDURE ReadOnly () : CARDINAL; BEGIN RETURN m2creadonly() END ReadOnly; PROCEDURE WriteOnly () : CARDINAL; BEGIN RETURN m2cwriteonly() END WriteOnly; END wrapc.