wraptime.mod 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. IMPLEMENTATION MODULE wraptime;
  2. (* Bound to m2wt* helpers (struct timeval / struct tm on the heap).
  3. Field accessors live in C to avoid struct-layout assumptions here. *)
  4. FROM SYSTEM IMPORT ADDRESS;
  5. PROCEDURE m2wttvnew () : ADDRESS;
  6. EXTERNAL;
  7. PROCEDURE m2wttvkill (tv : ADDRESS) : ADDRESS;
  8. EXTERNAL;
  9. PROCEDURE m2wttznew () : ADDRESS;
  10. EXTERNAL;
  11. PROCEDURE m2wttzkill (tz : ADDRESS) : ADDRESS;
  12. EXTERNAL;
  13. PROCEDURE m2wttmnew () : ADDRESS;
  14. EXTERNAL;
  15. PROCEDURE m2wttmkill (t : ADDRESS) : ADDRESS;
  16. EXTERNAL;
  17. PROCEDURE m2wtgettimeofday (tv, tz : ADDRESS) : INTEGER;
  18. EXTERNAL;
  19. PROCEDURE m2wtsettimeofday (tv, tz : ADDRESS) : INTEGER;
  20. EXTERNAL;
  21. PROCEDURE m2wtfractions (tv : ADDRESS) : CARDINAL;
  22. EXTERNAL;
  23. PROCEDURE m2wtlocaltime (tv, t : ADDRESS) : ADDRESS;
  24. EXTERNAL;
  25. PROCEDURE m2wtyear (t : ADDRESS) : CARDINAL;
  26. EXTERNAL;
  27. PROCEDURE m2wtmonth (t : ADDRESS) : CARDINAL;
  28. EXTERNAL;
  29. PROCEDURE m2wtday (t : ADDRESS) : CARDINAL;
  30. EXTERNAL;
  31. PROCEDURE m2wthour (t : ADDRESS) : CARDINAL;
  32. EXTERNAL;
  33. PROCEDURE m2wtminute (t : ADDRESS) : CARDINAL;
  34. EXTERNAL;
  35. PROCEDURE m2wtsecond (t : ADDRESS) : CARDINAL;
  36. EXTERNAL;
  37. PROCEDURE m2wttvset (tv : ADDRESS; sec, usec : LONGCARD);
  38. EXTERNAL;
  39. PROCEDURE m2wttzset (tz : ADDRESS; minuteswest, dsttime : INTEGER);
  40. EXTERNAL;
  41. PROCEDURE InitTimeval () : timeval;
  42. BEGIN RETURN m2wttvnew() END InitTimeval;
  43. PROCEDURE KillTimeval (tv : timeval) : timeval;
  44. BEGIN RETURN m2wttvkill(tv) END KillTimeval;
  45. PROCEDURE InitTimezone () : timezone;
  46. BEGIN RETURN m2wttznew() END InitTimezone;
  47. PROCEDURE KillTimezone (tz : timezone) : timezone;
  48. BEGIN RETURN m2wttzkill(tz) END KillTimezone;
  49. PROCEDURE InitTM () : tm;
  50. BEGIN RETURN m2wttmnew() END InitTM;
  51. PROCEDURE KillTM (t : tm) : tm;
  52. BEGIN RETURN m2wttmkill(t) END KillTM;
  53. PROCEDURE gettimeofday (tv : timeval; tz : timezone) : INTEGER;
  54. BEGIN RETURN m2wtgettimeofday(tv, tz) END gettimeofday;
  55. PROCEDURE settimeofday (tv : timeval; tz : timezone) : INTEGER;
  56. BEGIN RETURN m2wtsettimeofday(tv, tz) END settimeofday;
  57. PROCEDURE GetFractions (tv : timeval) : CARDINAL;
  58. BEGIN RETURN m2wtfractions(tv) END GetFractions;
  59. PROCEDURE LocalTime (tv : timeval; m : tm) : tm;
  60. BEGIN RETURN m2wtlocaltime(tv, m) END LocalTime;
  61. PROCEDURE GetYear (m : tm) : CARDINAL;
  62. BEGIN RETURN m2wtyear(m) END GetYear;
  63. PROCEDURE GetMonth (m : tm) : CARDINAL;
  64. BEGIN RETURN m2wtmonth(m) END GetMonth;
  65. PROCEDURE GetDay (m : tm) : CARDINAL;
  66. BEGIN RETURN m2wtday(m) END GetDay;
  67. PROCEDURE GetHour (m : tm) : CARDINAL;
  68. BEGIN RETURN m2wthour(m) END GetHour;
  69. PROCEDURE GetMinute (m : tm) : CARDINAL;
  70. BEGIN RETURN m2wtminute(m) END GetMinute;
  71. PROCEDURE GetSecond (m : tm) : CARDINAL;
  72. BEGIN RETURN m2wtsecond(m) END GetSecond;
  73. PROCEDURE SetTimeval (tv : timeval; sec, usec : LONGCARD);
  74. BEGIN m2wttvset(tv, sec, usec) END SetTimeval;
  75. PROCEDURE SetTimezone (tz : timezone; minuteswest, dsttime : INTEGER);
  76. BEGIN m2wttzset(tz, minuteswest, dsttime) END SetTimezone;
  77. END wraptime.