summaryrefslogtreecommitdiff
path: root/vendor/github.com/tetratelabs/wazero/internal/platform/mmap_linux.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/github.com/tetratelabs/wazero/internal/platform/mmap_linux.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/tetratelabs/wazero/internal/platform/mmap_linux.go')
-rw-r--r--vendor/github.com/tetratelabs/wazero/internal/platform/mmap_linux.go76
1 files changed, 0 insertions, 76 deletions
diff --git a/vendor/github.com/tetratelabs/wazero/internal/platform/mmap_linux.go b/vendor/github.com/tetratelabs/wazero/internal/platform/mmap_linux.go
deleted file mode 100644
index 55906e827..000000000
--- a/vendor/github.com/tetratelabs/wazero/internal/platform/mmap_linux.go
+++ /dev/null
@@ -1,76 +0,0 @@
-package platform
-
-import (
- "math/bits"
- "os"
- "sort"
- "strconv"
- "strings"
- "syscall"
-)
-
-const (
- // https://man7.org/linux/man-pages/man2/mmap.2.html
- __MAP_HUGE_SHIFT = 26
- __MAP_HUGETLB = 0x40000
-)
-
-var hugePagesConfigs []hugePagesConfig
-
-type hugePagesConfig struct {
- size int
- flag int
-}
-
-func (hpc *hugePagesConfig) match(size int) bool {
- return (size & (hpc.size - 1)) == 0
-}
-
-func init() {
- dirents, err := os.ReadDir("/sys/kernel/mm/hugepages/")
- if err != nil {
- return
- }
-
- for _, dirent := range dirents {
- name := dirent.Name()
- if !strings.HasPrefix(name, "hugepages-") {
- continue
- }
- if !strings.HasSuffix(name, "kB") {
- continue
- }
- n, err := strconv.ParseUint(name[10:len(name)-2], 10, 64)
- if err != nil {
- continue
- }
- if bits.OnesCount64(n) != 1 {
- continue
- }
- n *= 1024
- hugePagesConfigs = append(hugePagesConfigs, hugePagesConfig{
- size: int(n),
- flag: int(bits.TrailingZeros64(n)<<__MAP_HUGE_SHIFT) | __MAP_HUGETLB,
- })
- }
-
- sort.Slice(hugePagesConfigs, func(i, j int) bool {
- return hugePagesConfigs[i].size > hugePagesConfigs[j].size
- })
-}
-
-func mmapCodeSegment(size, prot int) ([]byte, error) {
- flags := syscall.MAP_ANON | syscall.MAP_PRIVATE
-
- for _, hugePagesConfig := range hugePagesConfigs {
- if hugePagesConfig.match(size) {
- b, err := syscall.Mmap(-1, 0, size, prot, flags|hugePagesConfig.flag)
- if err != nil {
- continue
- }
- return b, nil
- }
- }
-
- return syscall.Mmap(-1, 0, size, prot, flags)
-}