summaryrefslogtreecommitdiff
path: root/vendor/github.com/tetratelabs/wazero/internal/platform/mremap_unix.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/tetratelabs/wazero/internal/platform/mremap_unix.go')
-rw-r--r--vendor/github.com/tetratelabs/wazero/internal/platform/mremap_unix.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/vendor/github.com/tetratelabs/wazero/internal/platform/mremap_unix.go b/vendor/github.com/tetratelabs/wazero/internal/platform/mremap_unix.go
new file mode 100644
index 000000000..8f42d44fd
--- /dev/null
+++ b/vendor/github.com/tetratelabs/wazero/internal/platform/mremap_unix.go
@@ -0,0 +1,21 @@
+//go:build (darwin || linux || freebsd) && !tinygo
+
+package platform
+
+func remapCodeSegmentAMD64(code []byte, size int) ([]byte, error) {
+ return remapCodeSegment(code, size, mmapProtAMD64)
+}
+
+func remapCodeSegmentARM64(code []byte, size int) ([]byte, error) {
+ return remapCodeSegment(code, size, mmapProtARM64)
+}
+
+func remapCodeSegment(code []byte, size, prot int) ([]byte, error) {
+ b, err := mmapCodeSegment(size, prot)
+ if err != nil {
+ return nil, err
+ }
+ copy(b, code)
+ mustMunmapCodeSegment(code)
+ return b, nil
+}