aboutsummaryrefslogtreecommitdiff
path: root/src/syscall
diff options
context:
space:
mode:
authorKir Kolyshkin <kolyshkin@gmail.com>2024-08-19 17:29:19 -0700
committerGopher Robot <gobot@golang.org>2024-08-21 18:23:28 +0000
commitc5a9c8d067d4695eaf5f6ce94a464f7fcdc07584 (patch)
tree30c822fa05737e0d007ff5842125225a586ae7e8 /src/syscall
parentf0f4e2d0af78618b89fdb13d557faee193cbaa4c (diff)
downloadgo-c5a9c8d067d4695eaf5f6ce94a464f7fcdc07584.tar.xz
syscall: add O_DIRECTORY for wasip1
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>
Diffstat (limited to 'src/syscall')
-rw-r--r--src/syscall/fs_wasip1.go8
-rw-r--r--src/syscall/syscall_wasip1.go13
2 files changed, 15 insertions, 6 deletions
diff --git a/src/syscall/fs_wasip1.go b/src/syscall/fs_wasip1.go
index fc361ee898..c249891dd2 100644
--- a/src/syscall/fs_wasip1.go
+++ b/src/syscall/fs_wasip1.go
@@ -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
diff --git a/src/syscall/syscall_wasip1.go b/src/syscall/syscall_wasip1.go
index bcf7676123..b98f99745f 100644
--- a/src/syscall/syscall_wasip1.go
+++ b/src/syscall/syscall_wasip1.go
@@ -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
)