time.h
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:6k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* $Header$ */
  2. #ifndef _SYS_TIME_INCLUDED
  3. #define _SYS_TIME_INCLUDED
  4. /* time.h: Definitions for time handling functions */
  5. #ifdef _KERNEL_BUILD
  6. #include "../h/stdsyms.h"
  7. #else  /* ! _KERNEL_BUILD */
  8. #include <sys/stdsyms.h>
  9. #endif /* _KERNEL_BUILD */
  10. #include <sys/types.h>
  11. /* ANSI C time constants, types, and structures */
  12. #ifdef _INCLUDE__STDC__
  13. #  define CLOCKS_PER_SEC 1000000
  14. #  ifndef NULL
  15. #    define NULL 0
  16. #  endif
  17. #  ifndef _CLOCK_T
  18. #    define _CLOCK_T
  19.      typedef unsigned long clock_t;
  20. #  endif /* _CLOCK_T */
  21. #  ifndef _TIME_T
  22. #    define _TIME_T
  23.      typedef long time_t;
  24. #  endif /* _TIME_T */
  25. #  ifndef _SIZE_T
  26. #    define _SIZE_T
  27.      typedef unsigned int size_t;
  28. #  endif /* _SIZE_T */
  29.    /* Structure used with gmtime(), localtime(), mktime(), strftime(). */
  30.    struct tm {
  31.       int tm_sec; /* second (0-61, allows for leap seconds) */
  32.       int tm_min; /* minute (0-59) */
  33.       int tm_hour; /* hour (0-23) */
  34.       int tm_mday; /* day of the month (1-31) */
  35.       int tm_mon; /* month (0-11) */
  36.       int tm_year; /* years since 1900 */
  37.       int tm_wday; /* day of the week (0-6) */
  38.       int tm_yday; /* day of the year (0-365) */
  39.       int tm_isdst; /* non-0 if daylight savings time is in effect */
  40.    };
  41. #endif /* _INCLUDE__STDC__ */
  42. /* Additional types needed for HP-UX */
  43. #ifdef _INCLUDE_HPUX_SOURCE
  44. # ifndef _STRUCT_TIMEVAL
  45. #  define _STRUCT_TIMEVAL
  46.    /* Structure returned by gettimeofday(2) system call and others */
  47.      struct timeval {
  48.   unsigned long tv_sec; /* seconds */
  49.   long tv_usec; /* and microseconds */
  50.      };
  51. # endif /* _STRUCT_TIMEVAL */
  52.    /* Structure used to represent timezones for gettimeofday(2) and others */
  53.    struct timezone {
  54. int tz_minuteswest; /* minutes west of Greenwich */
  55. int tz_dsttime; /* type of dst correction */
  56.    };
  57.    /* Structure defining a timer setting.  */
  58.    struct itimerval {
  59. struct timeval it_interval; /* timer interval */
  60. struct timeval it_value; /* current value */
  61.    };
  62. #endif /* _INCLUDE_HPUX_SOURCE */
  63. /* Function prototypes and external variable declarations */
  64. #ifndef _KERNEL
  65. #ifdef __cplusplus
  66.    extern "C" {
  67. #endif /* __cplusplus */
  68. #ifdef _INCLUDE__STDC__
  69. #  ifdef _PROTOTYPES
  70.      extern double difftime(time_t, time_t);
  71.      extern time_t mktime(struct tm *);
  72.      extern time_t time(time_t *);
  73.      extern char *ctime(const time_t *);
  74.      extern struct tm *gmtime(const time_t *);
  75.      extern struct tm *localtime(const time_t *);
  76.      extern size_t strftime(char *, size_t, const char *, const struct tm *);
  77. #  else /* not _PROTOTYPES */
  78.      extern double difftime();
  79.      extern time_t mktime();
  80.      extern time_t time();
  81.      extern char *ctime();
  82.      extern struct tm *gmtime();
  83.      extern struct tm *localtime();
  84.      extern size_t strftime();
  85. #  endif /* not _PROTOTYPES */
  86. #  ifdef _CLASSIC_ANSI_TYPES
  87.      extern long clock();
  88. #  else /* not _CLASSIC_ANSI_TYPES */
  89. #    ifdef _PROTOTYPES
  90.        extern clock_t clock(void);
  91. #    else /* not _PROTOTYPES */
  92.        extern clock_t clock();
  93. #    endif /* not _PROTOTYPES */
  94. #  endif /* not _CLASSIC_ANSI_TYPES */
  95. #endif /* _INCLUDE__STDC__ */
  96. #ifdef _INCLUDE_POSIX_SOURCE
  97. #  ifdef _PROTOTYPES
  98.      extern void tzset(void);
  99. #  else /* not _PROTOTYPES */
  100.      extern void tzset();
  101. #  endif /* not _PROTOTYPES */
  102.    extern char *tzname[2];
  103. #endif /* _INCLUDE_POSIX_SOURCE */
  104. #ifdef _INCLUDE_XOPEN_SOURCE
  105. #  ifdef _PROTOTYPES
  106.      extern char *strptime(const char *, const char *, struct tm *);
  107. #  else /* not _PROTOTYPES */
  108.      extern char *strptime();
  109. #  endif /* not _PROTOTYPES */
  110.    extern long timezone;
  111.    extern int daylight;
  112. #endif /* _INCLUDE_XOPEN_SOURCE */
  113. #ifdef _INCLUDE_HPUX_SOURCE
  114. #  ifdef _PROTOTYPES
  115.      extern struct tm *getdate(const char *);
  116.      extern char *nl_asctime(struct tm *, char *, int);
  117.      extern char *nl_ctime(long *, char *, int);
  118.      extern char *nl_ascxtime(struct tm *, char *);
  119.      extern char *nl_cxtime(long *, char *);
  120.      extern int getitimer(int, struct itimerval *);
  121.      extern int setitimer(int, const struct itimerval *, struct itimerval *);
  122.      extern int gettimeofday(struct timeval *, struct timezone *);
  123.      extern int settimeofday(const struct timeval *, const struct timezone *);
  124.      extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
  125.      extern int stime(const time_t *);
  126. #  else /* not _PROTOTYPES */
  127.      extern struct tm *getdate();
  128.      extern char *nl_asctime();
  129.      extern char *nl_ctime();
  130.      extern char *nl_ascxtime();
  131.      extern char *nl_cxtime();
  132.      extern int getitimer();
  133.      extern int setitimer();
  134.      extern int gettimeofday();
  135.      extern int settimeofday();
  136.      extern int select();
  137.      extern int stime();
  138. #  endif /* not _PROTOTYPES */
  139.      extern int getdate_err;
  140. #endif /* _INCLUDE_HPUX_SOURCE */
  141. #ifdef __cplusplus
  142.    }
  143. #endif /* __cplusplus */
  144. #endif /* not _KERNEL */
  145. /*
  146.  * CLK_TCK is needed by the kernel, and also in the POSIX namespace.
  147.  */
  148. #ifdef _INCLUDE_POSIX_SOURCE
  149. #  ifndef CLK_TCK
  150. #    ifdef __hp9000s300
  151. #      define CLK_TCK 50
  152. #    endif /* __hp9000s300 */
  153. #    ifdef __hp9000s800
  154. #      define CLK_TCK 100
  155. #    endif /* __hp9000s800 */
  156. #  endif /* CLK_TCK */
  157. #endif
  158. /* Additional HP-UX structures, macros, and constants */
  159. #ifdef _INCLUDE_HPUX_SOURCE
  160.    /* Kernel instrumentation time value */
  161.     struct ki_timeval {
  162.     long tv_sec; /* seconds */
  163.     long tv_nunit; /* and native units */
  164.     };
  165.    /* Kinds of daylight savings time */
  166. #  define DST_NONE 0 /* not on dst */
  167. #  define DST_USA 1 /* USA style dst */
  168. #  define DST_AUST 2 /* Australian style dst */
  169. #  define DST_WET 3 /* Western European dst */
  170. #  define DST_MET 4 /* Middle European dst */
  171. #  define DST_EET 5 /* Eastern European dst */
  172.    /*
  173.     * Operations on timevals.
  174.     *
  175.     * NB: timercmp does not work for >= or <=.
  176.     */
  177. #  define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
  178. #  define timercmp(tvp, uvp, cmp) 
  179.           ((tvp)->tv_sec cmp (uvp)->tv_sec || 
  180.            (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec)
  181. #  define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0)
  182.    /* Names of the interval timers */
  183. #  define ITIMER_REAL 0
  184. #  define ITIMER_VIRTUAL 1
  185. #  define ITIMER_PROF 2
  186. #endif /* _INCLUDE_HPUX_SOURCE */
  187. #endif /* _SYS_TIME_INCLUDED */