]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: add O_DIRECTORY for wasip1
authorKir Kolyshkin <kolyshkin@gmail.com>
Tue, 20 Aug 2024 00:29:19 +0000 (17:29 -0700)
committerGopher Robot <gobot@golang.org>
Wed, 21 Aug 2024 18:23:28 +0000 (18:23 +0000)
Change-Id: Iadd69360fb09714a280c4dae26639834df28a7dc
Reviewed-on: https://go-review.googlesource.com/c/go/+/606659
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
src/syscall/fs_wasip1.go
src/syscall/syscall_wasip1.go

index fc361ee898978f0165aa79ceabc2949700e3a067..c249891dd2181c6721c64d1077b4d6a1fab6f16a 100644 (file)
@@ -542,6 +542,14 @@ func Open(path string, openmode int, perm uint32) (int, error) {
                rights = fileRights
        }
 
+       if (openmode & O_DIRECTORY) != 0 {
+               if openmode&(O_WRONLY|O_RDWR) != 0 {
+                       return -1, EISDIR
+               }
+               oflags |= OFLAG_DIRECTORY
+               rights &= dirRights
+       }
+
        var fdflags fdflags
        if (openmode & O_APPEND) != 0 {
                fdflags |= FDFLAG_APPEND
index bcf7676123c06c79c162b02ffbe89afa5da1b4fa..b98f99745f29e37a77f016305caaa9d0d085612b 100644 (file)
@@ -216,12 +216,13 @@ const (
        O_WRONLY = 1
        O_RDWR   = 2
 
-       O_CREAT  = 0100
-       O_CREATE = O_CREAT
-       O_TRUNC  = 01000
-       O_APPEND = 02000
-       O_EXCL   = 0200
-       O_SYNC   = 010000
+       O_CREAT     = 0100
+       O_CREATE    = O_CREAT
+       O_TRUNC     = 01000
+       O_APPEND    = 02000
+       O_EXCL      = 0200
+       O_SYNC      = 010000
+       O_DIRECTORY = 020000
 
        O_CLOEXEC = 0
 )