diff options
Diffstat (limited to 'vendor/github.com/tetratelabs/wazero/internal/platform/mmap_unix.go')
| -rw-r--r-- | vendor/github.com/tetratelabs/wazero/internal/platform/mmap_unix.go | 25 |
1 files changed, 1 insertions, 24 deletions
diff --git a/vendor/github.com/tetratelabs/wazero/internal/platform/mmap_unix.go b/vendor/github.com/tetratelabs/wazero/internal/platform/mmap_unix.go index 8d0baa712..6b7c617b2 100644 --- a/vendor/github.com/tetratelabs/wazero/internal/platform/mmap_unix.go +++ b/vendor/github.com/tetratelabs/wazero/internal/platform/mmap_unix.go @@ -2,31 +2,8 @@ package platform -import ( - "syscall" -) - -const ( - mmapProtAMD64 = syscall.PROT_READ | syscall.PROT_WRITE | syscall.PROT_EXEC - mmapProtARM64 = syscall.PROT_READ | syscall.PROT_WRITE -) +import "syscall" func munmapCodeSegment(code []byte) error { return syscall.Munmap(code) } - -// mmapCodeSegmentAMD64 gives all read-write-exec permission to the mmap region -// to enter the function. Otherwise, segmentation fault exception is raised. -func mmapCodeSegmentAMD64(size int) ([]byte, error) { - // The region must be RWX: RW for writing native codes, X for executing the region. - return mmapCodeSegment(size, mmapProtAMD64) -} - -// mmapCodeSegmentARM64 cannot give all read-write-exec permission to the mmap region. -// Otherwise, the mmap systemcall would raise an error. Here we give read-write -// to the region so that we can write contents at call-sites. Callers are responsible to -// execute MprotectRX on the returned buffer. -func mmapCodeSegmentARM64(size int) ([]byte, error) { - // The region must be RW: RW for writing native codes. - return mmapCodeSegment(size, mmapProtARM64) -} |
