wrapclock.mod 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. IMPLEMENTATION MODULE wrapclock;
  2. (* Bound to m2wc* helpers in the shim (C struct timespec on the heap).
  3. Helper names avoid underscores (classic Modula-2 identifiers). *)
  4. FROM SYSTEM IMPORT ADDRESS;
  5. PROCEDURE m2wctimezone () : LONGINT;
  6. EXTERNAL;
  7. PROCEDURE m2wcistimezone () : INTEGER;
  8. EXTERNAL;
  9. PROCEDURE m2wcdaylight () : INTEGER;
  10. EXTERNAL;
  11. PROCEDURE m2wcisdst () : INTEGER;
  12. EXTERNAL;
  13. PROCEDURE m2wctzname (d : INTEGER) : ADDRESS;
  14. EXTERNAL;
  15. PROCEDURE m2wctsnew () : ADDRESS;
  16. EXTERNAL;
  17. PROCEDURE m2wctskill (ts : ADDRESS) : ADDRESS;
  18. EXTERNAL;
  19. PROCEDURE m2wctsget (ts : ADDRESS; VAR sec, nano : LONGCARD) : INTEGER;
  20. EXTERNAL;
  21. PROCEDURE m2wctsset (ts : ADDRESS; sec, nano : LONGCARD) : INTEGER;
  22. EXTERNAL;
  23. PROCEDURE m2wctsrealtime (ts : ADDRESS) : INTEGER;
  24. EXTERNAL;
  25. PROCEDURE m2wctssetrealtime (ts : ADDRESS) : INTEGER;
  26. EXTERNAL;
  27. PROCEDURE timezone () : LONGINT;
  28. BEGIN RETURN m2wctimezone() END timezone;
  29. PROCEDURE istimezone () : INTEGER;
  30. BEGIN RETURN m2wcistimezone() END istimezone;
  31. PROCEDURE daylight () : INTEGER;
  32. BEGIN RETURN m2wcdaylight() END daylight;
  33. PROCEDURE isdst () : INTEGER;
  34. BEGIN RETURN m2wcisdst() END isdst;
  35. PROCEDURE tzname (daylight : INTEGER) : ADDRESS;
  36. BEGIN RETURN m2wctzname(daylight) END tzname;
  37. PROCEDURE InitTimespec () : timespec;
  38. BEGIN RETURN m2wctsnew() END InitTimespec;
  39. PROCEDURE KillTimespec (ts : timespec) : timespec;
  40. BEGIN RETURN m2wctskill(ts) END KillTimespec;
  41. PROCEDURE GetTimespec (ts : timespec; VAR sec, nano : LONGCARD) : INTEGER;
  42. BEGIN RETURN m2wctsget(ts, sec, nano) END GetTimespec;
  43. PROCEDURE SetTimespec (ts : timespec; sec, nano : LONGCARD) : INTEGER;
  44. BEGIN RETURN m2wctsset(ts, sec, nano) END SetTimespec;
  45. PROCEDURE GetTimeRealtime (ts : timespec) : INTEGER;
  46. BEGIN RETURN m2wctsrealtime(ts) END GetTimeRealtime;
  47. PROCEDURE SetTimeRealtime (ts : timespec) : INTEGER;
  48. BEGIN RETURN m2wctssetrealtime(ts) END SetTimeRealtime;
  49. END wrapclock.