summaryrefslogtreecommitdiff
path: root/libguile/posix-w32.h
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/posix-w32.h')
-rw-r--r--libguile/posix-w32.h48
1 files changed, 47 insertions, 1 deletions
diff --git a/libguile/posix-w32.h b/libguile/posix-w32.h
index b4c6510eb..f11a25e49 100644
--- a/libguile/posix-w32.h
+++ b/libguile/posix-w32.h
@@ -21,6 +21,8 @@
* 02110-1301 USA
*/
+#include <string.h>
+
#define _UTSNAME_LENGTH 65
#define _UTSNAME_NODENAME_LENGTH _UTSNAME_LENGTH
#define _UTSNAME_DOMAIN_LENGTH _UTSNAME_LENGTH
@@ -47,6 +49,50 @@ struct utsname
char domainname[_UTSNAME_DOMAIN_LENGTH];
};
-int uname (struct utsname * uts);
+#define WNOHANG 1
+
+#define WEXITSTATUS(stat_val) ((stat_val) & 255)
+/* MS-Windows programs that crash due to a fatal exception exit with
+ an exit code whose 2 MSB bits are set. */
+#define WIFEXITED(stat_val) (((stat_val) & 0xC0000000) == 0)
+#define WIFSIGNALED(stat_val) (((stat_val) & 0xC0000000) == 0xC0000000)
+#define WTERMSIG(stat_val) w32_status_to_termsig (stat_val)
+/* The funny conditional avoids a compiler warning in status:stop_sig. */
+#define WIFSTOPPED(stat_val) ((stat_val) == (stat_val) ? 0 : 0)
+#define WSTOPSIG(stat_var) (0)
+
+#define CPU_ZERO(s) memset(s,0,sizeof(*s))
+#define CPU_ISSET(b,s) ((*s) & (1U << (b))) != 0
+#define CPU_SET(b,s) (*s) |= (1U << (b))
+#define CPU_SETSIZE (8*sizeof(DWORD_PTR))
+typedef DWORD_PTR cpu_set_t;
+
+#define PRIO_PROCESS 1
+#define PRIO_PGRP 2
+#define PRIO_USER 3
+
+SCM_INTERNAL int uname (struct utsname * uts);
+SCM_INTERNAL int waitpid (intptr_t, int *, int);
+SCM_INTERNAL int w32_status_to_termsig (DWORD status);
+
+SCM_INTERNAL int start_child (const char *exec_file, char **argv,
+ int reading, int c2p[2], int writing, int p2c[2],
+ int infd, int outfd, int errfd);
+
+SCM_INTERNAL int kill (int pid, int sig);
+
+SCM_INTERNAL int getpriority (int which, int who);
+SCM_INTERNAL int setpriority (int which, int who, int nice_val);
+SCM_INTERNAL int sched_getaffinity (int pid, size_t mask_size, cpu_set_t *mask);
+SCM_INTERNAL int sched_setaffinity (int pid, size_t mask_size, cpu_set_t *mask);
+
+#define HAVE_UNAME 1
+#define HAVE_WAITPID 1
+#define HAVE_START_CHILD 1
+#define HAVE_KILL 1
+#define HAVE_GETPRIORITY 1
+#define HAVE_SETPRIORITY 1
+#define HAVE_SCHED_GETAFFINITY 1
+#define HAVE_SCHED_SETAFFINITY 1
#endif /* SCM_POSIX_W32_H */