ref: 18bcc12f58930608f28dd3854f408941d39cc01a
parent: 6c03e0312087a22b53c44369ac758c7d8ae155e4
author: Ori Bernstein <[email protected]>
date: Tue Dec 23 10:29:57 EST 2014
Add directory modes.
--- a/libstd/sys+plan9-x64.myr
+++ b/libstd/sys+plan9-x64.myr
@@ -17,6 +17,24 @@
const Orclose : fdopt = 64
const Oexcl : fdopt = 0x1000
+ const Qtdir : int64 = 0x80
+ const Qtappend : int64 = 0x40
+ const Qtexcl : int64 = 0x20
+ const Qtmount : int64 = 0x10
+ const Qtauth : int64 = 0x08
+ const Qttmp : int64 = 0x04
+ const Qtfile : int64 = 0x00
+
+ const Dmdir : int64 = 0x8000000
+ const Dmappend : int64 = 0x4000000
+ const Dmexcl : int64 = 0x2000000
+ const Dmmount : int64 = 0x1000000
+ const Dmauth : int64 = 0x0800000
+ const Dmtmp : int64 = 0x0400000
+ const Dmread : int64 = 0x4
+ const Dmwrite : int64 = 0x2
+ const Dmexec : int64 = 0x1
+
const Syssysr1 : scno = 0
const Sys_errstr : scno = 1
const Sysbind : scno = 2
--- a/libstd/syswrap+plan9.myr
+++ b/libstd/syswrap+plan9.myr
@@ -42,7 +42,7 @@
const open = {path, opts; -> openmode(path, opts, 0o777)}
const openmode = {path, opts, mode;
if opts & Ocreat
- sys.create(path, opts, mode)
+ sys.create(path, opts castto(sys.fdopt), mode) castto(fd)
else
sys.open(path, opts castto(sys.fdopt)) castto(fd)
;;
@@ -57,7 +57,7 @@
const mkdir = {path, mode; ->
var fd
- fd = sys.create(path, OREAD, DMDIR | mode)
+ fd = sys.create(path, sys.Oread, sys.Dmdir | mode)
if fd >= 0
close(fd)
-> 0