wrapc.mod 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. IMPLEMENTATION MODULE wrapc;
  2. (* Bound to m2c* helpers in the shim. SHORTREAL/LONGREAL widen to REAL
  3. in V3, so the f/l float variants share the double implementations. *)
  4. FROM SYSTEM IMPORT ADDRESS;
  5. PROCEDURE m2cstrtime () : ADDRESS;
  6. EXTERNAL;
  7. PROCEDURE m2cfilesize (f : INTEGER; VAR low, high : CARDINAL) : INTEGER;
  8. EXTERNAL;
  9. PROCEDURE m2cfileinode (f : INTEGER; VAR low, high : CARDINAL) : INTEGER;
  10. EXTERNAL;
  11. PROCEDURE m2cfilemtime (f : INTEGER) : INTEGER;
  12. EXTERNAL;
  13. PROCEDURE m2cgetrand (n : INTEGER) : INTEGER;
  14. EXTERNAL;
  15. PROCEDURE m2cgetusername () : ADDRESS;
  16. EXTERNAL;
  17. PROCEDURE m2cgetnameuidgid (name : ADDRESS; VAR uid, gid : INTEGER);
  18. EXTERNAL;
  19. PROCEDURE m2csignbit (r : REAL) : INTEGER;
  20. EXTERNAL;
  21. PROCEDURE m2cisfinite (x : REAL) : INTEGER;
  22. EXTERNAL;
  23. PROCEDURE m2cisnan (x : REAL) : INTEGER;
  24. EXTERNAL;
  25. PROCEDURE m2cseekset () : INTEGER;
  26. EXTERNAL;
  27. PROCEDURE m2cseekend () : INTEGER;
  28. EXTERNAL;
  29. PROCEDURE m2creadonly () : CARDINAL;
  30. EXTERNAL;
  31. PROCEDURE m2cwriteonly () : CARDINAL;
  32. EXTERNAL;
  33. PROCEDURE strtime () : ADDRESS;
  34. BEGIN RETURN m2cstrtime() END strtime;
  35. PROCEDURE filesize (f : INTEGER; VAR low, high : CARDINAL) : INTEGER;
  36. BEGIN RETURN m2cfilesize(f, low, high) END filesize;
  37. PROCEDURE fileinode (f : INTEGER; VAR low, high : CARDINAL) : INTEGER;
  38. BEGIN RETURN m2cfileinode(f, low, high) END fileinode;
  39. PROCEDURE filemtime (f : INTEGER) : INTEGER;
  40. BEGIN RETURN m2cfilemtime(f) END filemtime;
  41. PROCEDURE getrand (n : INTEGER) : INTEGER;
  42. BEGIN RETURN m2cgetrand(n) END getrand;
  43. PROCEDURE getusername () : ADDRESS;
  44. BEGIN RETURN m2cgetusername() END getusername;
  45. PROCEDURE getnameuidgid (name : ADDRESS; VAR uid, gid : INTEGER);
  46. BEGIN m2cgetnameuidgid(name, uid, gid) END getnameuidgid;
  47. PROCEDURE signbit (r : REAL) : INTEGER;
  48. BEGIN RETURN m2csignbit(r) END signbit;
  49. PROCEDURE signbitf (s : SHORTREAL) : INTEGER;
  50. BEGIN RETURN m2csignbit(s) END signbitf;
  51. PROCEDURE signbitl (l : LONGREAL) : INTEGER;
  52. BEGIN RETURN m2csignbit(l) END signbitl;
  53. PROCEDURE isfinite (x : REAL) : INTEGER;
  54. BEGIN RETURN m2cisfinite(x) END isfinite;
  55. PROCEDURE isfinitef (x : SHORTREAL) : INTEGER;
  56. BEGIN RETURN m2cisfinite(x) END isfinitef;
  57. PROCEDURE isfinitel (x : LONGREAL) : INTEGER;
  58. BEGIN RETURN m2cisfinite(x) END isfinitel;
  59. PROCEDURE isnan (x : REAL) : INTEGER;
  60. BEGIN RETURN m2cisnan(x) END isnan;
  61. PROCEDURE isnanf (x : SHORTREAL) : INTEGER;
  62. BEGIN RETURN m2cisnan(x) END isnanf;
  63. PROCEDURE isnanl (x : LONGREAL) : INTEGER;
  64. BEGIN RETURN m2cisnan(x) END isnanl;
  65. PROCEDURE SeekSet () : INTEGER;
  66. BEGIN RETURN m2cseekset() END SeekSet;
  67. PROCEDURE SeekEnd () : INTEGER;
  68. BEGIN RETURN m2cseekend() END SeekEnd;
  69. PROCEDURE ReadOnly () : CARDINAL;
  70. BEGIN RETURN m2creadonly() END ReadOnly;
  71. PROCEDURE WriteOnly () : CARDINAL;
  72. BEGIN RETURN m2cwriteonly() END WriteOnly;
  73. END wrapc.