]> code.delx.au - gnu-emacs/blobdiff - nt/inc/ms-w32.h
Fix a race condition with glib (Bug#8855).
[gnu-emacs] / nt / inc / ms-w32.h
index 06a3af937df4a43005ab22a60efd6c47e1755a8c..a9a3049f9b0137321b9eaa9f5687b9b70b144cda 100644 (file)
@@ -120,21 +120,6 @@ extern char *getenv ();
 #endif
 #include <sys/types.h>
 
-#ifdef _MSC_VER
-typedef int sigset_t;
-typedef int ssize_t;
-#endif
-
-struct sigaction {
-  int sa_flags;
-  void (_CALLBACK_ *sa_handler)(int);
-  sigset_t sa_mask;
-};
-#define SA_RESTART      0
-#define SIG_BLOCK       1
-#define SIG_SETMASK     2
-#define SIG_UNBLOCK     3
-
 #ifndef MAXPATHLEN
 #define MAXPATHLEN      _MAX_PATH
 #endif
@@ -200,7 +185,6 @@ struct sigaction {
 
 /* Subprocess calls that are emulated.  */
 #define spawnve sys_spawnve
-#define wait    sys_wait
 #define kill    sys_kill
 #define signal  sys_signal
 
@@ -251,6 +235,9 @@ typedef int pid_t;
 #define stricmp   _stricmp
 #define tzset     _tzset
 
+/* We cannot include system header process.h, since there's src/process.h.  */
+int _getpid (void);
+
 /* Include time.h before redirecting tzname, since MSVC's time.h
    defines _tzname to call a function, but also declares tzname a
    2-element array.  Having the redirection before including the
@@ -272,6 +259,10 @@ struct timespec
   long int     tv_nsec;        /* nanoseconds */
 };
 
+/* Required for functions in lib/time_r.c, since we don't use lib/time.h.  */
+extern struct tm *gmtime_r (time_t const * restrict, struct tm * restrict);
+extern struct tm *localtime_r (time_t const * restrict, struct tm * restrict);
+
 /* This is hacky, but is necessary to avoid warnings about macro
    redefinitions using the SDK compilers.  */
 #ifndef __STDC__
@@ -300,6 +291,37 @@ struct timespec
 #define NSIG 23
 #endif
 
+#ifdef _MSC_VER
+typedef int sigset_t;
+typedef int ssize_t;
+#endif
+
+typedef void (_CALLBACK_ *signal_handler) (int);
+extern signal_handler sys_signal (int, signal_handler);
+
+struct sigaction {
+  int sa_flags;
+  void (_CALLBACK_ *sa_handler)(int);
+  sigset_t sa_mask;
+};
+#define SA_RESTART      0
+#define SIG_BLOCK       1
+#define SIG_SETMASK     2
+#define SIG_UNBLOCK     3
+
+extern int sigemptyset (sigset_t *);
+extern int sigaddset (sigset_t *, int);
+extern int sigfillset (sigset_t *);
+extern int sigprocmask (int, const sigset_t *, sigset_t *);
+extern int pthread_sigmask (int, const sigset_t *, sigset_t *);
+extern int sigismember (const sigset_t *, int);
+extern int setpgrp (int, int);
+extern int sigaction (int, const struct sigaction *, struct sigaction *);
+extern int alarm (int);
+
+extern int sys_kill (int, int);
+
+
 /* For integration with MSDOS support.  */
 #define getdisk()               (_getdrive () - 1)
 #ifdef emacs
@@ -357,6 +379,7 @@ extern char *get_emacs_configuration_options (void);
 #endif
 
 extern int getloadavg (double *, int);
+extern int getpagesize (void);
 
 #if defined (__MINGW32__)