home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / languages / netlib / !NetLib / sys / h / time < prev    next >
Encoding:
Text File  |  1995-05-23  |  1.5 KB  |  62 lines

  1. #ifndef __sys_time_h
  2. #define __sys_time_h
  3.  
  4. /* Freenet programmers library - sys/time.h - 23/5/95 */
  5.  
  6. #include "Internet:sys.h.types"
  7.  
  8. /*
  9.  * Structure defining a time of day
  10.  */
  11. struct timeval {
  12.   long tv_sec;         /* Seconds past midnight */
  13.   long tv_usec;        /* Microseconds within the current second */
  14. };
  15.  
  16. /*
  17.  * Structure defining a timezone
  18.  */
  19. struct timezone {
  20.   int tz_minuteswest;  /* Minutes west of Greenwich */
  21.   int tz_dsttime;      /* Type of DST in use */
  22. };
  23.  
  24. /*
  25.  * Type of DST recognised
  26.  */
  27. #define DST_NONE    0  /* Not on DST */
  28. #define DST_USA     1  /* USA style DST */
  29. #define DST_AUST    2  /* Australian style DST */
  30. #define DST_WET     3  /* Western European DST */
  31. #define DST_MET     4  /* Middle European DST */
  32. #define DST_EET     5  /* Eastern European DST */
  33. #define DST_CAN     6  /* Canada */
  34. #define DST_GB      7  /* Great Britain and Eire */
  35. #define DST_RUM     8  /* Rumania */
  36. #define DST_TUR     9  /* Turkey */
  37. #define DST_AUSTALT 10 /* Australian style with shift in 1986 */
  38.  
  39. /*
  40.  * Is a timeval structure set?
  41.  */
  42. #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
  43.  
  44. /*
  45.  * Compare two timeval structures (doesn't work for <= or >= ops)
  46.  */
  47. #define timercmp(tvp, uvp, cmp) \
  48.           ((tvp)->tv_sec cmp (uvp)->tv_sec || \
  49.            (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec)
  50.  
  51. /*
  52.  * Clear a timeval structure
  53.  */
  54. #define timerclear(tvp) (void)((tvp)->tv_sec = (tvp)->tv_usec = 0)
  55.  
  56. /*
  57.  * Get the time of day
  58.  */
  59. extern void gettimeofday(struct timeval */*tv*/, struct timezone */*tz*/);
  60.  
  61. #endif
  62.