aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/sam
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2003-10-01 02:50:57 +0000
committerrsc <devnull@localhost>2003-10-01 02:50:57 +0000
commita995e477ffb4dd1184da87e9e46a9e57f3178c63 (patch)
tree5b2260becdfb1aaf8b67fd91223b7d214b7e9451 /src/cmd/sam
parente182749a982e415fba755bc1035c35da5c4fe606 (diff)
downloadplan9port-a995e477ffb4dd1184da87e9e46a9e57f3178c63.tar.gz
plan9port-a995e477ffb4dd1184da87e9e46a9e57f3178c63.tar.bz2
plan9port-a995e477ffb4dd1184da87e9e46a9e57f3178c63.zip
Various tweaks to make things run on Mac OS.
The main change is the use of pthread to implement ffork.
Diffstat (limited to 'src/cmd/sam')
-rw-r--r--src/cmd/sam/unix.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/cmd/sam/unix.c b/src/cmd/sam/unix.c
index cc15db44..205af4cd 100644
--- a/src/cmd/sam/unix.c
+++ b/src/cmd/sam/unix.c
@@ -270,3 +270,39 @@ int create(char *name, int omode, int perm)
return fd;
}
+
+/* SHOULD BE ELSEWHERE */
+#ifdef __APPLE__
+#include <lib9.h>
+
+Lock plk;
+
+ulong
+pread(int fd, void *buf, ulong n, ulong off)
+{
+ ulong rv;
+
+ lock(&plk);
+ if (lseek(fd, off, 0) != off)
+ return -1;
+ rv = read(fd, buf, n);
+ unlock(&plk);
+
+ return rv;
+}
+
+ulong
+pwrite(int fd, void *buf, ulong n, ulong off)
+{
+ ulong rv;
+
+ lock(&plk);
+ if (lseek(fd, off, 0) != off)
+ return -1;
+ rv = write(fd, buf, n);
+ unlock(&plk);
+
+ return rv;
+}
+#endif
+