extern char* getgoversion(void);
#ifdef __MINGW32__
-extern int fork();
+struct timespec {
+ int tv_sec;
+ long tv_nsec;
+};
+extern int nanosleep(const struct timespec *rqtp, struct timespec *rmtp);
+extern int fork(void);
extern int pread(int fd, void *buf, int n, int off);
extern int pwrite(int fd, void *buf, int n, int off);
+#define execv(prog, argv) execv(prog, (const char* const*)(argv))
#define execvp(prog, argv) execvp(prog, (const char**)(argv))
#define lseek(fd, n, base) _lseeki64(fd, n, base)
#define mkdir(path, perm) mkdir(path)
clean:
rm -f *.$O $(TARG)
-install: install-$(shell uname | tr A-Z a-z)
+ifeq ($(GOOS),windows)
+NAME=windows
+else
+NAME=$(shell uname | tr A-Z a-z)
+endif
+
+install: install-$(NAME)
install-linux: install-default
install-freebsd: install-default
+install-windows: install-default
# on Darwin, have to install and setgid; see $GOROOT/src/sudo.bash
install-darwin: $(TARG)
clean:
rm -f *.$O $(TARG)
-install: install-$(shell uname | tr A-Z a-z) install-pprof
+ifeq ($(GOOS),windows)
+NAME=windows
+else
+NAME=$(shell uname | tr A-Z a-z)
+endif
+
+install: install-$(NAME) install-pprof
install-linux: install-default
install-freebsd: install-default
+install-windows: install-default
# on Darwin, have to install and setgid; see $GOROOT/src/sudo.bash
install-darwin: $(TARG)
OFILES+=\
$(shell uname | tr A-Z a-z).$O\
+else
+OFILES+=\
+ windows.$O\
+
endif
HFILES=../../include/mach.h elf.h macho.h obj.h
--- /dev/null
+// This is stubbed out for the moment. Will revisit when the time comes.
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+#include <mach.h>
+
+int
+ctlproc(int pid, char *msg)
+{
+ sysfatal("ctlproc unimplemented in Windows");
+}
+
+char*
+proctextfile(int pid)
+{
+ sysfatal("proctextfile unimplemented in Windows");
+}
+
+char*
+procstatus(int pid)
+{
+ sysfatal("procstatus unimplemented in Windows");
+}
+
+Map*
+attachproc(int pid, Fhdr *fp)
+{
+ sysfatal("attachproc unimplemented in Windows");
+}
+
+void
+detachproc(Map *m)
+{
+ sysfatal("detachproc unimplemented in Windows");
+}
+
+int
+procthreadpids(int pid, int *p, int np)
+{
+ sysfatal("procthreadpids unimplemented in Windows");
+}
+
+int
+pread(int fd, void *buf, int count, int offset)
+{
+ sysfatal("pread unimplemented in Windows");
+}
+
+int
+pwrite(int fd, void *buf, int count, int offset)
+{
+ sysfatal("pwrite unimplemented in Windows");
+}
+
+int
+nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
+{
+ sysfatal("nanosleep unimplemented in Windows");
+}