More files related to user-level file servers.
Also add acme!
diff --git a/src/lib9/open.c b/src/lib9/open.c
new file mode 100644
index 0000000..bb597e8
--- /dev/null
+++ b/src/lib9/open.c
@@ -0,0 +1,38 @@
+#include <u.h>
+#define NOPLAN9DEFINES
+#include <libc.h>
+
+extern char* _p9translate(char*);
+
+int
+p9open(char *xname, int mode)
+{
+	char *name;
+	int cexec, rclose;
+	int fd, umode;
+
+	umode = mode&3;
+	cexec = mode&OCEXEC;
+	rclose = mode&ORCLOSE;
+	mode &= ~(3|OCEXEC|ORCLOSE);
+	if(mode&OTRUNC){
+		umode |= O_TRUNC;
+		mode ^= OTRUNC;
+	}
+	if(mode){
+		werrstr("mode not supported");
+		return -1;
+	}
+	if((name = _p9translate(xname)) == nil)
+		return -1;
+	fd = open(name, umode);
+	if(fd >= 0){
+		if(cexec)
+			fcntl(fd, F_SETFL, FD_CLOEXEC);
+		if(rclose)
+			remove(name);
+	}
+	if(name != xname)
+		free(name);
+	return fd;
+}