X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fsystime.h;h=915cf29f24ca29e8a7256e3bb38f4c8c13eb0d33;hb=c84990d1037000e9487a437491a853975b356e5a;hp=159139f33f7d5afc17eb93f99b1a160d45239f79;hpb=3e447015251ce6dcde843cbed10d9033d5538622;p=chise%2Fxemacs-chise.git.1 diff --git a/src/systime.h b/src/systime.h index 159139f..915cf29 100644 --- a/src/systime.h +++ b/src/systime.h @@ -24,14 +24,14 @@ Boston, MA 02111-1307, USA. */ #define INCLUDED_systime_h_ #ifdef TIME_WITH_SYS_TIME -#include -#include +# include +# include #else -#ifdef HAVE_SYS_TIME_H -#include -#else -#include -#endif +# ifdef HAVE_SYS_TIME_H +# include +# else +# include +# endif #endif /* select() is supposed to be (Unix98) defined in sys/time.h, @@ -41,17 +41,39 @@ Boston, MA 02111-1307, USA. */ #include #endif -#if defined(WINDOWSNT) && defined(HAVE_X_WINDOWS) +#ifdef WIN32_NATIVE + +/* This defines struct timeval */ +#include + +struct timezone + { + int tz_minuteswest; /* minutes west of Greenwich */ + int tz_dsttime; /* type of dst correction */ + }; + +#ifdef HAVE_X_WINDOWS /* Provides gettimeofday etc */ #include #include -#endif +#else +/* X11R6 on NT provides the single parameter version of this command */ +void gettimeofday (struct timeval *, struct timezone *); +#endif /* HAVE_X_WINDOWS */ + +#endif /* WIN32_NATIVE */ + +/* struct utimbuf */ -#ifdef HAVE_UTIME_H +#ifdef HAVE_UTIME # include #endif -#if defined(HAVE_TZNAME) && !defined(WINDOWSNT) && !defined(__CYGWIN32__) +#ifdef WIN32_NATIVE +# include +#endif + +#if defined(HAVE_TZNAME) && !defined(WIN32_NATIVE) && !defined(CYGWIN) #ifndef tzname /* For SGI. */ extern char *tzname[]; /* RS6000 and others want it this way. */ #endif @@ -212,12 +234,14 @@ do { \ #define EMACS_SET_SECS_USECS(time, secs, usecs) \ (EMACS_SET_SECS (time, secs), EMACS_SET_USECS (time, usecs)) -int set_file_times (char *filename, EMACS_TIME atime, EMACS_TIME mtime); +#ifdef emacs +int set_file_times (Lisp_Object path, EMACS_TIME atime, EMACS_TIME mtime); +#endif void get_process_times (double *user_time, double *system_time, double *real_time); -#if defined(WINDOWSNT) || defined(BROKEN_CYGWIN) || defined(__MINGW32__) +#if defined(WIN32_NATIVE) || defined(BROKEN_CYGWIN) /* setitimer emulation for Win32 (see nt.c) */ @@ -227,12 +251,46 @@ struct itimerval struct timeval it_interval; }; -int setitimer (int kind, const struct itimerval* itnew, - struct itimerval* itold); - #define ITIMER_REAL 1 #define ITIMER_PROF 2 -#endif /* WINDOWSNT */ +#endif /* WIN32_NATIVE || BROKEN_CYGWIN */ + +#if defined (WIN32_NATIVE) || defined (CYGWIN) + +int mswindows_setitimer (int kind, const struct itimerval *itnew, + struct itimerval *itold); + +#endif /* defined (WIN32_NATIVE) || defined (CYGWIN) */ + +/* #### Move this comment elsewhere when we figure out the place. + + "qxe" is a unique prefix used to identify encapsulations of standard + library functions. We used to play pre-processing games but in + general this leads to nothing but trouble because someone first + encountering the code will have no idea that what appears to be a + call to a library function has actually been redefined to be a call + somewhere else. This is doubly true when the redefinition occurs + in out-of-the way s+m files and only on certainly systems. + + By making the encapsulation explicit we might be making the code + that uses is slightly less pretty, but this is more than compensated + for by the huge increase in clarity. + + "Standard library function" can refer to any function in any + standard library. If we are explicitly changing the semantics + (e.g. Mule-encapsulating), we should use an extended version of + the prefix, e.g. perhaps "qxe_xlat_" for functions that Mule- + encapsulate, or "qxe_retry_" for functions that automatically + retry a system call interrupted by EINTR. In general, if there + is no prefix extension, it means the function is trying to + provide (more or less) the same semantics as the standard library + function; but be aware that the reimplementation may be incomplete + or differ in important respects. This is especially the case + when attempts are made to implement Unix functions on MS Windows. +*/ + +int qxe_setitimer (int kind, const struct itimerval *itnew, + struct itimerval *itold); #endif /* INCLUDED_systime_h_ */