#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
/* Subprocess calls that are emulated. */
#define spawnve sys_spawnve
-#define wait sys_wait
#define kill sys_kill
#define signal sys_signal
#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
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__
#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
#endif
extern int getloadavg (double *, int);
+extern int getpagesize (void);
#if defined (__MINGW32__)