diff options
author | 2025-03-09 17:47:56 +0100 | |
---|---|---|
committer | 2025-03-10 01:59:49 +0100 | |
commit | 3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch) | |
tree | f61faa581feaaeaba2542b9f2b8234a590684413 /vendor/github.com/tetratelabs/wazero/internal/platform/mmap_linux.go | |
parent | [chore] update URLs to forked source (diff) | |
download | gotosocial-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.go | 76 |
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) -} |