From 2f07e8d2e39a1ee5fdacdd77a1783a9e7e04d3e3 Mon Sep 17 00:00:00 2001 From: deadprogram Date: Fri, 8 Dec 2023 18:07:25 +0100 Subject: [PATCH] internal: just a bunch of hacked up files here Signed-off-by: deadprogram --- internal/platform/mmap_tinygo.go | 4 ++++ internal/sock/sock_supported.go | 2 +- internal/sock/sock_unsupported.go | 2 +- internal/sysfs/datasync_linux.go | 2 +- internal/sysfs/datasync_unsupported.go | 2 +- internal/sysfs/dirfs.go | 2 ++ internal/sysfs/dirfs_tinygo.go | 11 +++++++++++ internal/sysfs/file_unix.go | 2 +- internal/sysfs/file_unsupported.go | 2 +- internal/sysfs/futimens.go | 2 +- internal/sysfs/futimens_linux.go | 2 ++ internal/sysfs/futimens_unsupported.go | 2 +- internal/sysfs/ino.go | 2 +- internal/sysfs/ino_tinygo.go | 15 +++++++++++++++ internal/sysfs/nonblock_tinygo.go | 15 +++++++++++++++ internal/sysfs/nonblock_unix.go | 2 +- internal/sysfs/open_file_linux.go | 2 ++ internal/sysfs/open_file_unsupported.go | 2 +- internal/sysfs/poll.go | 2 +- internal/sysfs/poll_linux.go | 2 ++ internal/sysfs/poll_unsupported.go | 2 +- internal/sysfs/rename.go | 2 +- internal/sysfs/rename_tinygo.go | 11 +++++++++++ internal/sysfs/sock_unix.go | 2 +- internal/sysfs/sock_unsupported.go | 2 +- internal/sysfs/unlink.go | 2 +- internal/sysfs/unlink_tinygo.go | 11 +++++++++++ internal/wasm/memory.go | 2 +- internal/wasm/memorypages.go | 7 +++++++ internal/wasm/memorypages_tinygo.go | 7 +++++++ 30 files changed, 107 insertions(+), 18 deletions(-) create mode 100644 internal/sysfs/dirfs_tinygo.go create mode 100644 internal/sysfs/ino_tinygo.go create mode 100644 internal/sysfs/nonblock_tinygo.go create mode 100644 internal/sysfs/rename_tinygo.go create mode 100644 internal/sysfs/unlink_tinygo.go create mode 100644 internal/wasm/memorypages.go create mode 100644 internal/wasm/memorypages_tinygo.go diff --git a/internal/platform/mmap_tinygo.go b/internal/platform/mmap_tinygo.go index 548840321f..88b76cf038 100644 --- a/internal/platform/mmap_tinygo.go +++ b/internal/platform/mmap_tinygo.go @@ -17,3 +17,7 @@ func mmapCodeSegmentAMD64(size int) ([]byte, error) { func mmapCodeSegmentARM64(size int) ([]byte, error) { return nil, errNotYetSupported } + +func MprotectRX(b []byte) (err error) { + return errNotYetSupported +} diff --git a/internal/sock/sock_supported.go b/internal/sock/sock_supported.go index 30cdb9f926..e317be8320 100644 --- a/internal/sock/sock_supported.go +++ b/internal/sock/sock_supported.go @@ -1,4 +1,4 @@ -//go:build !plan9 && !js +//go:build !plan9 && !js && !tinygo package sock diff --git a/internal/sock/sock_unsupported.go b/internal/sock/sock_unsupported.go index 76ec031efa..77026754f3 100644 --- a/internal/sock/sock_unsupported.go +++ b/internal/sock/sock_unsupported.go @@ -1,4 +1,4 @@ -//go:build plan9 || js +//go:build plan9 || js || tinygo package sock diff --git a/internal/sysfs/datasync_linux.go b/internal/sysfs/datasync_linux.go index c37e698d2f..5a8a415c55 100644 --- a/internal/sysfs/datasync_linux.go +++ b/internal/sysfs/datasync_linux.go @@ -1,4 +1,4 @@ -//go:build linux +//go:build linux && !tinygo package sysfs diff --git a/internal/sysfs/datasync_unsupported.go b/internal/sysfs/datasync_unsupported.go index aa05719be6..eede1e26d6 100644 --- a/internal/sysfs/datasync_unsupported.go +++ b/internal/sysfs/datasync_unsupported.go @@ -1,4 +1,4 @@ -//go:build !linux +//go:build !linux || tinygo package sysfs diff --git a/internal/sysfs/dirfs.go b/internal/sysfs/dirfs.go index 05d5b647ea..0b4413a7ca 100644 --- a/internal/sysfs/dirfs.go +++ b/internal/sysfs/dirfs.go @@ -1,3 +1,5 @@ +//go:build !tinygo + package sysfs import ( diff --git a/internal/sysfs/dirfs_tinygo.go b/internal/sysfs/dirfs_tinygo.go new file mode 100644 index 0000000000..ba39d02251 --- /dev/null +++ b/internal/sysfs/dirfs_tinygo.go @@ -0,0 +1,11 @@ +//go:build tinygo + +package sysfs + +import ( + experimentalsys "github.com/tetratelabs/wazero/experimental/sys" +) + +func DirFS(dir string) experimentalsys.FS { + return nil +} diff --git a/internal/sysfs/file_unix.go b/internal/sysfs/file_unix.go index 92eaf35423..f201e813d9 100644 --- a/internal/sysfs/file_unix.go +++ b/internal/sysfs/file_unix.go @@ -1,4 +1,4 @@ -//go:build unix +//go:build unix && !tinygo package sysfs diff --git a/internal/sysfs/file_unsupported.go b/internal/sysfs/file_unsupported.go index e74a8e4dd9..303b88a1b3 100644 --- a/internal/sysfs/file_unsupported.go +++ b/internal/sysfs/file_unsupported.go @@ -1,4 +1,4 @@ -//go:build !unix && !windows +//go:build (!unix && !windows) || tinygo package sysfs diff --git a/internal/sysfs/futimens.go b/internal/sysfs/futimens.go index 1f670ca116..7f6b110941 100644 --- a/internal/sysfs/futimens.go +++ b/internal/sysfs/futimens.go @@ -1,4 +1,4 @@ -//go:build linux || darwin +//go:build (linux || darwin) && !tinygo package sysfs diff --git a/internal/sysfs/futimens_linux.go b/internal/sysfs/futimens_linux.go index 3ec68537be..db3b1b8b63 100644 --- a/internal/sysfs/futimens_linux.go +++ b/internal/sysfs/futimens_linux.go @@ -1,3 +1,5 @@ +//go:build !tinygo + package sysfs import ( diff --git a/internal/sysfs/futimens_unsupported.go b/internal/sysfs/futimens_unsupported.go index c78a16b407..69d5649429 100644 --- a/internal/sysfs/futimens_unsupported.go +++ b/internal/sysfs/futimens_unsupported.go @@ -1,4 +1,4 @@ -//go:build !windows && !linux && !darwin +//go:build (!windows && !linux && !darwin) || tinygo package sysfs diff --git a/internal/sysfs/ino.go b/internal/sysfs/ino.go index 703f113660..8344cd16ff 100644 --- a/internal/sysfs/ino.go +++ b/internal/sysfs/ino.go @@ -1,4 +1,4 @@ -//go:build !windows && !plan9 +//go:build !windows && !plan9 && !tinygo package sysfs diff --git a/internal/sysfs/ino_tinygo.go b/internal/sysfs/ino_tinygo.go new file mode 100644 index 0000000000..34f804a525 --- /dev/null +++ b/internal/sysfs/ino_tinygo.go @@ -0,0 +1,15 @@ +//go:build tinygo + +package sysfs + +import ( + "io/fs" + + experimentalsys "github.com/tetratelabs/wazero/experimental/sys" + "github.com/tetratelabs/wazero/sys" +) + +// inoFromFileInfo uses stat to get the inode information of the file. +func inoFromFileInfo(dirPath string, info fs.FileInfo) (ino sys.Inode, errno experimentalsys.Errno) { + return 0, 0 +} diff --git a/internal/sysfs/nonblock_tinygo.go b/internal/sysfs/nonblock_tinygo.go new file mode 100644 index 0000000000..bef57e8eab --- /dev/null +++ b/internal/sysfs/nonblock_tinygo.go @@ -0,0 +1,15 @@ +//go:build tinygo + +package sysfs + +import ( + "github.com/tetratelabs/wazero/experimental/sys" +) + +func setNonblock(fd uintptr, enable bool) sys.Errno { + return 0 +} + +func isNonblock(f *osFile) bool { + return false +} diff --git a/internal/sysfs/nonblock_unix.go b/internal/sysfs/nonblock_unix.go index 07fb15cf12..4477ee977f 100644 --- a/internal/sysfs/nonblock_unix.go +++ b/internal/sysfs/nonblock_unix.go @@ -1,4 +1,4 @@ -//go:build !windows && !plan9 +//go:build !windows && !plan9 && !tinygo package sysfs diff --git a/internal/sysfs/open_file_linux.go b/internal/sysfs/open_file_linux.go index 7f4915480c..3fe2bb6e12 100644 --- a/internal/sysfs/open_file_linux.go +++ b/internal/sysfs/open_file_linux.go @@ -1,3 +1,5 @@ +//go:build !tinygo + package sysfs import ( diff --git a/internal/sysfs/open_file_unsupported.go b/internal/sysfs/open_file_unsupported.go index 9f7a6d0885..d11fe17a5f 100644 --- a/internal/sysfs/open_file_unsupported.go +++ b/internal/sysfs/open_file_unsupported.go @@ -1,4 +1,4 @@ -//go:build !darwin && !linux && !windows && !illumos && !solaris && !freebsd +//go:build (!darwin && !linux && !windows && !illumos && !solaris && !freebsd) || tinygo package sysfs diff --git a/internal/sysfs/poll.go b/internal/sysfs/poll.go index f5c9829529..787f19e669 100644 --- a/internal/sysfs/poll.go +++ b/internal/sysfs/poll.go @@ -1,4 +1,4 @@ -//go:build windows || linux || darwin +//go:build (windows || linux || darwin) && !tinygo package sysfs diff --git a/internal/sysfs/poll_linux.go b/internal/sysfs/poll_linux.go index dab7bb2cab..49bf4fd06d 100644 --- a/internal/sysfs/poll_linux.go +++ b/internal/sysfs/poll_linux.go @@ -1,3 +1,5 @@ +//go:build !tinygo + package sysfs import ( diff --git a/internal/sysfs/poll_unsupported.go b/internal/sysfs/poll_unsupported.go index ebe8a6fa92..14278249dd 100644 --- a/internal/sysfs/poll_unsupported.go +++ b/internal/sysfs/poll_unsupported.go @@ -1,4 +1,4 @@ -//go:build !linux && !darwin && !windows +//go:build (!linux && !darwin && !windows) || tinygo package sysfs diff --git a/internal/sysfs/rename.go b/internal/sysfs/rename.go index f7d84ef7ae..37c53571d3 100644 --- a/internal/sysfs/rename.go +++ b/internal/sysfs/rename.go @@ -1,4 +1,4 @@ -//go:build !windows && !plan9 +//go:build !windows && !plan9 && !tinygo package sysfs diff --git a/internal/sysfs/rename_tinygo.go b/internal/sysfs/rename_tinygo.go new file mode 100644 index 0000000000..629b7ed9f8 --- /dev/null +++ b/internal/sysfs/rename_tinygo.go @@ -0,0 +1,11 @@ +//go:build tinygo + +package sysfs + +import ( + "github.com/tetratelabs/wazero/experimental/sys" +) + +func rename(from, to string) sys.Errno { + return 0 +} diff --git a/internal/sysfs/sock_unix.go b/internal/sysfs/sock_unix.go index 3698f560e0..b2d794795b 100644 --- a/internal/sysfs/sock_unix.go +++ b/internal/sysfs/sock_unix.go @@ -1,4 +1,4 @@ -//go:build linux || darwin +//go:build (linux || darwin) && !tinygo package sysfs diff --git a/internal/sysfs/sock_unsupported.go b/internal/sysfs/sock_unsupported.go index 76a10a8b61..6ebadc69ba 100644 --- a/internal/sysfs/sock_unsupported.go +++ b/internal/sysfs/sock_unsupported.go @@ -1,4 +1,4 @@ -//go:build !linux && !darwin && !windows +//go:build (!linux && !darwin && !windows) || tinygo package sysfs diff --git a/internal/sysfs/unlink.go b/internal/sysfs/unlink.go index 4f7dbe3fe7..e3f0510082 100644 --- a/internal/sysfs/unlink.go +++ b/internal/sysfs/unlink.go @@ -1,4 +1,4 @@ -//go:build !windows && !plan9 +//go:build !windows && !plan9 && !tinygo package sysfs diff --git a/internal/sysfs/unlink_tinygo.go b/internal/sysfs/unlink_tinygo.go new file mode 100644 index 0000000000..5947ea7c12 --- /dev/null +++ b/internal/sysfs/unlink_tinygo.go @@ -0,0 +1,11 @@ +//go:build tinygo + +package sysfs + +import ( + "github.com/tetratelabs/wazero/experimental/sys" +) + +func unlink(name string) (errno sys.Errno) { + return 0 +} diff --git a/internal/wasm/memory.go b/internal/wasm/memory.go index bce037e415..7dbd8cf1b3 100644 --- a/internal/wasm/memory.go +++ b/internal/wasm/memory.go @@ -192,7 +192,7 @@ func (m *MemoryInstance) Grow(delta uint32) (result uint32, ok bool) { return currentPages, true } else { // We already have the capacity we need. sp := (*reflect.SliceHeader)(unsafe.Pointer(&m.Buffer)) - sp.Len = int(MemoryPagesToBytesNum(newPages)) + sp.Len = lengthMemoryPages(newPages) return currentPages, true } } diff --git a/internal/wasm/memorypages.go b/internal/wasm/memorypages.go new file mode 100644 index 0000000000..1b8b79505b --- /dev/null +++ b/internal/wasm/memorypages.go @@ -0,0 +1,7 @@ +//go:build !tinygo + +package wasm + +func lengthMemoryPages(newPage uint32) int { + return int(MemoryPagesToBytesNum(newPage)) +} diff --git a/internal/wasm/memorypages_tinygo.go b/internal/wasm/memorypages_tinygo.go new file mode 100644 index 0000000000..14302ab0f6 --- /dev/null +++ b/internal/wasm/memorypages_tinygo.go @@ -0,0 +1,7 @@ +//go:build tinygo + +package wasm + +func lengthMemoryPages(newPage uint32) uintptr { + return uintptr(MemoryPagesToBytesNum(newPage)) +}