summaryrefslogtreecommitdiff
path: root/vendor/github.com/tetratelabs/wazero/internal/platform/mremap_unix.go
blob: 8f42d44fd7f0348168f342f8f2d43e4a2f7210c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
}