diff options
Diffstat (limited to 'vendor/modernc.org/memory')
27 files changed, 0 insertions, 1250 deletions
diff --git a/vendor/modernc.org/memory/AUTHORS b/vendor/modernc.org/memory/AUTHORS deleted file mode 100644 index 1c9e7bf33..000000000 --- a/vendor/modernc.org/memory/AUTHORS +++ /dev/null @@ -1,15 +0,0 @@ -# This file lists authors for copyright purposes. This file is distinct from -# the CONTRIBUTORS files. See the latter for an explanation. -# -# Names should be added to this file as: -# Name or Organization <email address> -# -# The email address is not required for organizations. -# -# Please keep the list sorted. - -Chris Waldon <christopher(dot)waldon(dot)dev@gmail.com> -Gleb Sakhnov <gleb.sakhnov@gmail.com> -Jan Mercl <0xjnml@gmail.com> -Scot C Bontrager <scot@indievisible.org> -Steffen Butzer <steffen(dot)butzer@outlook.com> diff --git a/vendor/modernc.org/memory/CONTRIBUTORS b/vendor/modernc.org/memory/CONTRIBUTORS deleted file mode 100644 index df91c088f..000000000 --- a/vendor/modernc.org/memory/CONTRIBUTORS +++ /dev/null @@ -1,15 +0,0 @@ -# This file lists people who contributed code to this repository. The AUTHORS -# file lists the copyright holders; this file lists people. -# -# Names should be added to this file like so: -# Name <email address> -# -# Please keep the list sorted. - -Anup Kodlekere <anup.kodlekere@ibm.com> -Chris Waldon <christopher(dot)waldon(dot)dev@gmail.com> -Gleb Sakhnov <gleb.sakhnov@gmail.com> -Jan Mercl <0xjnml@gmail.com> -Scot C Bontrager <scot@indievisible.org> -Steffen Butzer <steffen(dot)butzer@outlook.com> -ZHU Zijia <piggynl@outlook.com> diff --git a/vendor/modernc.org/memory/LICENSE b/vendor/modernc.org/memory/LICENSE deleted file mode 100644 index 967339afc..000000000 --- a/vendor/modernc.org/memory/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2017 The Memory Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the names of the authors nor the names of the -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/modernc.org/memory/LICENSE-GO b/vendor/modernc.org/memory/LICENSE-GO deleted file mode 100644 index 6a66aea5e..000000000 --- a/vendor/modernc.org/memory/LICENSE-GO +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/modernc.org/memory/LICENSE-MMAP-GO b/vendor/modernc.org/memory/LICENSE-MMAP-GO deleted file mode 100644 index 8f05f338a..000000000 --- a/vendor/modernc.org/memory/LICENSE-MMAP-GO +++ /dev/null @@ -1,25 +0,0 @@ -Copyright (c) 2011, Evan Shaw <edsrzf@gmail.com> -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/vendor/modernc.org/memory/Makefile b/vendor/modernc.org/memory/Makefile deleted file mode 100644 index f844f1314..000000000 --- a/vendor/modernc.org/memory/Makefile +++ /dev/null @@ -1,83 +0,0 @@ -# Copyright 2017 The Memory Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -.PHONY: all clean cover cpu editor internalError later mem nuke todo edit build_all_targets - -grep=--include=*.go --include=*.l --include=*.y --include=*.yy -ngrep='TODOOK\|parser\.go\|scanner\.go\|.*_string\.go' - -all: editor - go vet 2>&1 | grep -v $(ngrep) || true - golint 2>&1 | grep -v $(ngrep) || true - make todo - misspell *.go - maligned || true - unconvert -apply - staticcheck | grep -v 'lexer\.go' || true - grep -n 'FAIL\|PASS' log - date - -clean: - go clean - rm -f *~ *.test *.out - -cover: - t=$(shell tempfile) ; go test -coverprofile $$t && go tool cover -html $$t && unlink $$t - -cpu: clean - go test -run @ -bench . -cpuprofile cpu.out - go tool pprof -lines *.test cpu.out - -edit: - @ 1>/dev/null 2>/dev/null gvim -p Makefile go.mod builder.json *.go & - -editor: - gofmt -l -s -w *.go - -build_all_targets: - GOOS=darwin GOARCH=amd64 go build - GOOS=darwin GOARCH=arm64 go build - GOOS=freebsd GOARCH=386 go build - GOOS=freebsd GOARCH=amd64 go build - GOOS=freebsd GOARCH=arm go build - GOOS=freebsd GOARCH=arm64 go build - GOOS=illumos GOARCH=amd64 go build - GOOS=linux GOARCH=386 go build - GOOS=linux GOARCH=amd64 go build - GOOS=linux GOARCH=arm go build - GOOS=linux GOARCH=arm64 go build - GOOS=linux GOARCH=loong64 go build - GOOS=linux GOARCH=mips go build - GOOS=linux GOARCH=mips64le go build - GOOS=linux GOARCH=mipsle go build - GOOS=linux GOARCH=riscv64 go build - GOOS=linux GOARCH=s390x go build - GOOS=netbsd GOARCH=386 go build - GOOS=netbsd GOARCH=amd64 go build - GOOS=netbsd GOARCH=arm go build - GOOS=openbsd GOARCH=386 go build - GOOS=openbsd GOARCH=amd64 go build - GOOS=openbsd GOARCH=arm64 go build - GOOS=windows GOARCH=386 go build - GOOS=windows GOARCH=amd64 go build - -internalError: - egrep -ho '"internal error.*"' *.go | sort | cat -n - -later: - @grep -n $(grep) LATER * || true - @grep -n $(grep) MAYBE * || true - -mem: clean - go test -run @ -bench . -memprofile mem.out -memprofilerate 1 -timeout 24h - go tool pprof -lines -web -alloc_space *.test mem.out - -nuke: clean - go clean -i - -todo: - @grep -nr $(grep) ^[[:space:]]*_[[:space:]]*=[[:space:]][[:alpha:]][[:alnum:]]* * | grep -v $(ngrep) || true - @grep -nr $(grep) TODO * | grep -v $(ngrep) || true - @grep -nr $(grep) BUG * | grep -v $(ngrep) || true - @grep -nr $(grep) [^[:alpha:]]println * | grep -v $(ngrep) || true diff --git a/vendor/modernc.org/memory/README.md b/vendor/modernc.org/memory/README.md deleted file mode 100644 index 9354a3650..000000000 --- a/vendor/modernc.org/memory/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# memory - -Package memory implements a memory allocator. - -## Build status - -available at https://modern-c.appspot.com/-/builder/?importpath=modernc.org%2fmemory - -Installation - - $ go get modernc.org/memory - -Documentation: [godoc.org/modernc.org/memory](http://godoc.org/modernc.org/memory) diff --git a/vendor/modernc.org/memory/builder.json b/vendor/modernc.org/memory/builder.json deleted file mode 100644 index 029d1414e..000000000 --- a/vendor/modernc.org/memory/builder.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "autogen": "<none>", - "autoupdate": ".", - "autotag": ".", - "test": "." -} diff --git a/vendor/modernc.org/memory/counters.go b/vendor/modernc.org/memory/counters.go deleted file mode 100644 index d50a36128..000000000 --- a/vendor/modernc.org/memory/counters.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2017 The Memory Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build memory.counters -// +build memory.counters - -package memory // import "modernc.org/memory" - -const counters = true diff --git a/vendor/modernc.org/memory/memory.go b/vendor/modernc.org/memory/memory.go deleted file mode 100644 index c6d02df80..000000000 --- a/vendor/modernc.org/memory/memory.go +++ /dev/null @@ -1,477 +0,0 @@ -// Copyright 2017 The Memory Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package memory implements a memory allocator. -// -// # Build status -// -// available at https://modern-c.appspot.com/-/builder/?importpath=modernc.org%2fmemory -// -// # Changelog -// -// 2017-10-03 Added alternative, unsafe.Pointer-based API. -// -// Package memory implements a memory allocator. -// -// # Changelog -// -// 2017-10-03 Added alternative, unsafe.Pointer-based API. -// -// # Benchmarks -// -// jnml@3900x:~/src/modernc.org/memory$ date ; go version ; go test -run @ -bench . -benchmem |& tee log -// Mon Sep 25 16:02:02 CEST 2023 -// go version go1.21.1 linux/amd64 -// goos: linux -// goarch: amd64 -// pkg: modernc.org/memory -// cpu: AMD Ryzen 9 3900X 12-Core Processor -// BenchmarkFree16-24 123506772 9.802 ns/op 0 B/op 0 allocs/op -// BenchmarkFree32-24 73853230 15.08 ns/op 0 B/op 0 allocs/op -// BenchmarkFree64-24 43070334 25.15 ns/op 0 B/op 0 allocs/op -// BenchmarkCalloc16-24 59353304 18.92 ns/op 0 B/op 0 allocs/op -// BenchmarkCalloc32-24 39415004 29.00 ns/op 0 B/op 0 allocs/op -// BenchmarkCalloc64-24 35825725 32.02 ns/op 0 B/op 0 allocs/op -// BenchmarkGoCalloc16-24 38274313 26.99 ns/op 16 B/op 1 allocs/op -// BenchmarkGoCalloc32-24 44590477 33.06 ns/op 32 B/op 1 allocs/op -// BenchmarkGoCalloc64-24 44233016 37.20 ns/op 64 B/op 1 allocs/op -// BenchmarkMalloc16-24 145736911 7.720 ns/op 0 B/op 0 allocs/op -// BenchmarkMalloc32-24 128898334 7.887 ns/op 0 B/op 0 allocs/op -// BenchmarkMalloc64-24 149569483 7.994 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrFree16-24 117043012 9.205 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrFree32-24 77399617 14.20 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrFree64-24 48770785 25.04 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrCalloc16-24 79257636 15.44 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrCalloc32-24 49644562 23.62 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrCalloc64-24 39854710 28.22 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrMalloc16-24 252987727 4.525 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrMalloc32-24 241423840 4.433 ns/op 0 B/op 0 allocs/op -// BenchmarkUintptrMalloc64-24 256450324 4.669 ns/op 0 B/op 0 allocs/op -// PASS -// ok modernc.org/memory 93.178s -// jnml@3900x:~/src/modernc.org/memory$ -package memory // import "modernc.org/memory" - -import ( - "fmt" - "math/bits" - "os" - "reflect" - "unsafe" -) - -const ( - headerSize = unsafe.Sizeof(page{}) - mallocAllign = 2 * unsafe.Sizeof(uintptr(0)) - maxSlotSize = 1 << maxSlotSizeLog - maxSlotSizeLog = pageSizeLog - 2 - pageAvail = pageSize - headerSize - pageMask = pageSize - 1 - pageSize = 1 << pageSizeLog -) - -func init() { - if unsafe.Sizeof(page{})%mallocAllign != 0 { - panic("internal error") - } -} - -// if n%m != 0 { n += m-n%m }. m must be a power of 2. -func roundup(n, m int) int { return (n + m - 1) &^ (m - 1) } - -type node struct { - prev, next uintptr // *node -} - -type page struct { - brk int - log uint - size int - used int -} - -// Allocator allocates and frees memory. Its zero value is ready for use. The -// exported counters are updated only when build tag memory.counters is -// present. -type Allocator struct { - Allocs int // # of allocs. - Bytes int // Asked from OS. - cap [64]int - lists [64]uintptr // *node - Mmaps int // Asked from OS. - pages [64]uintptr // *page - regs map[uintptr]struct{} // map[*page]struct{} -} - -func (a *Allocator) mmap(size int) (uintptr /* *page */, error) { - p, size, err := mmap(size) - if err != nil { - return 0, err - } - - if counters { - a.Mmaps++ - a.Bytes += size - } - if a.regs == nil { - a.regs = map[uintptr]struct{}{} - } - (*page)(unsafe.Pointer(p)).size = size - a.regs[p] = struct{}{} - return p, nil -} - -func (a *Allocator) newPage(size int) (uintptr /* *page */, error) { - size += int(headerSize) - p, err := a.mmap(size) - if err != nil { - return 0, err - } - - (*page)(unsafe.Pointer(p)).log = 0 - return p, nil -} - -func (a *Allocator) newSharedPage(log uint) (uintptr /* *page */, error) { - if a.cap[log] == 0 { - a.cap[log] = int(pageAvail) / (1 << log) - } - size := int(headerSize) + a.cap[log]<<log - p, err := a.mmap(size) - if err != nil { - return 0, err - } - - a.pages[log] = p - (*page)(unsafe.Pointer(p)).log = log - return p, nil -} - -func (a *Allocator) unmap(p uintptr /* *page */) error { - delete(a.regs, p) - if counters { - a.Mmaps-- - } - return unmap(p, (*page)(unsafe.Pointer(p)).size) -} - -// UintptrCalloc is like Calloc except it returns an uintptr. -func (a *Allocator) UintptrCalloc(size int) (r uintptr, err error) { - if trace { - defer func() { - fmt.Fprintf(os.Stderr, "Calloc(%#x) %#x, %v\n", size, r, err) - }() - } - if r, err = a.UintptrMalloc(size); r == 0 || err != nil { - return 0, err - } - b := ((*rawmem)(unsafe.Pointer(r)))[:size:size] - for i := range b { - b[i] = 0 - } - return r, nil -} - -// UintptrFree is like Free except its argument is an uintptr, which must have -// been acquired from UintptrCalloc or UintptrMalloc or UintptrRealloc. -func (a *Allocator) UintptrFree(p uintptr) (err error) { - if trace { - defer func() { - fmt.Fprintf(os.Stderr, "Free(%#x) %v\n", p, err) - }() - } - if p == 0 { - return nil - } - - if counters { - a.Allocs-- - } - pg := p &^ uintptr(pageMask) - log := (*page)(unsafe.Pointer(pg)).log - if log == 0 { - if counters { - a.Bytes -= (*page)(unsafe.Pointer(pg)).size - } - return a.unmap(pg) - } - - (*node)(unsafe.Pointer(p)).prev = 0 - (*node)(unsafe.Pointer(p)).next = a.lists[log] - if next := (*node)(unsafe.Pointer(p)).next; next != 0 { - (*node)(unsafe.Pointer(next)).prev = p - } - a.lists[log] = p - (*page)(unsafe.Pointer(pg)).used-- - if (*page)(unsafe.Pointer(pg)).used != 0 { - return nil - } - - for i := 0; i < (*page)(unsafe.Pointer(pg)).brk; i++ { - n := pg + headerSize + uintptr(i)<<log - next := (*node)(unsafe.Pointer(n)).next - prev := (*node)(unsafe.Pointer(n)).prev - switch { - case prev == 0: - a.lists[log] = next - if next != 0 { - (*node)(unsafe.Pointer(next)).prev = 0 - } - case next == 0: - (*node)(unsafe.Pointer(prev)).next = 0 - default: - (*node)(unsafe.Pointer(prev)).next = next - (*node)(unsafe.Pointer(next)).prev = prev - } - } - - if a.pages[log] == pg { - a.pages[log] = 0 - } - if counters { - a.Bytes -= (*page)(unsafe.Pointer(pg)).size - } - return a.unmap(pg) -} - -// UintptrMalloc is like Malloc except it returns an uinptr. -func (a *Allocator) UintptrMalloc(size int) (r uintptr, err error) { - if trace { - defer func() { - fmt.Fprintf(os.Stderr, "Malloc(%#x) %#x, %v\n", size, r, err) - }() - } - if size < 0 { - panic("invalid malloc size") - } - - if size == 0 { - return 0, nil - } - - if counters { - a.Allocs++ - } - log := uint(bits.Len(uint((size+int(mallocAllign)-1)&^int(mallocAllign-1) - 1))) - if log > maxSlotSizeLog { - p, err := a.newPage(size) - if err != nil { - return 0, err - } - - return p + headerSize, nil - } - - if a.lists[log] == 0 && a.pages[log] == 0 { - if _, err := a.newSharedPage(log); err != nil { - return 0, err - } - } - - if p := a.pages[log]; p != 0 { - (*page)(unsafe.Pointer(p)).used++ - (*page)(unsafe.Pointer(p)).brk++ - if (*page)(unsafe.Pointer(p)).brk == a.cap[log] { - a.pages[log] = 0 - } - return p + headerSize + uintptr((*page)(unsafe.Pointer(p)).brk-1)<<log, nil - } - - n := a.lists[log] - p := n &^ uintptr(pageMask) - a.lists[log] = (*node)(unsafe.Pointer(n)).next - if next := (*node)(unsafe.Pointer(n)).next; next != 0 { - (*node)(unsafe.Pointer(next)).prev = 0 - } - (*page)(unsafe.Pointer(p)).used++ - return n, nil -} - -// UintptrRealloc is like Realloc except its first argument is an uintptr, -// which must have been returned from UintptrCalloc, UintptrMalloc or -// UintptrRealloc. -func (a *Allocator) UintptrRealloc(p uintptr, size int) (r uintptr, err error) { - if trace { - defer func() { - fmt.Fprintf(os.Stderr, "UnsafeRealloc(%#x, %#x) %#x, %v\n", p, size, r, err) - }() - } - switch { - case p == 0: - return a.UintptrMalloc(size) - case size == 0 && p != 0: - return 0, a.UintptrFree(p) - } - - us := UintptrUsableSize(p) - if us >= size { - return p, nil - } - - if r, err = a.UintptrMalloc(size); err != nil { - return 0, err - } - - if us < size { - size = us - } - copy((*rawmem)(unsafe.Pointer(r))[:size:size], (*rawmem)(unsafe.Pointer(p))[:size:size]) - return r, a.UintptrFree(p) -} - -// UintptrUsableSize is like UsableSize except its argument is an uintptr, -// which must have been returned from UintptrCalloc, UintptrMalloc or -// UintptrRealloc. -func UintptrUsableSize(p uintptr) (r int) { - if trace { - defer func() { - fmt.Fprintf(os.Stderr, "UsableSize(%#x) %#x\n", p, r) - }() - } - if p == 0 { - return 0 - } - - return usableSize(p) -} - -func usableSize(p uintptr) (r int) { - pg := p &^ uintptr(pageMask) - if log := (*page)(unsafe.Pointer(pg)).log; log != 0 { - return 1 << log - } - - return (*page)(unsafe.Pointer(pg)).size - int(headerSize) -} - -// Calloc is like Malloc except the allocated memory is zeroed. -func (a *Allocator) Calloc(size int) (r []byte, err error) { - p, err := a.UintptrCalloc(size) - if err != nil { - return nil, err - } - - var b []byte - sh := (*reflect.SliceHeader)(unsafe.Pointer(&b)) - sh.Cap = usableSize(p) - sh.Data = p - sh.Len = size - return b, nil -} - -// Close releases all OS resources used by a and sets it to its zero value. -// -// It's not necessary to Close the Allocator when exiting a process. -func (a *Allocator) Close() (err error) { - for p := range a.regs { - if e := a.unmap(p); e != nil && err == nil { - err = e - } - } - *a = Allocator{} - return err -} - -// Free deallocates memory (as in C.free). The argument of Free must have been -// acquired from Calloc or Malloc or Realloc. -func (a *Allocator) Free(b []byte) (err error) { - if b = b[:cap(b)]; len(b) == 0 { - return nil - } - - return a.UintptrFree(uintptr(unsafe.Pointer(&b[0]))) -} - -// Malloc allocates size bytes and returns a byte slice of the allocated -// memory. The memory is not initialized. Malloc panics for size < 0 and -// returns (nil, nil) for zero size. -// -// It's ok to reslice the returned slice but the result of appending to it -// cannot be passed to Free or Realloc as it may refer to a different backing -// array afterwards. -func (a *Allocator) Malloc(size int) (r []byte, err error) { - p, err := a.UintptrMalloc(size) - if p == 0 || err != nil { - return nil, err - } - - sh := (*reflect.SliceHeader)(unsafe.Pointer(&r)) - sh.Cap = usableSize(p) - sh.Data = p - sh.Len = size - return r, nil -} - -// Realloc changes the size of the backing array of b to size bytes or returns -// an error, if any. The contents will be unchanged in the range from the -// start of the region up to the minimum of the old and new sizes. If the -// new size is larger than the old size, the added memory will not be -// initialized. If b's backing array is of zero size, then the call is -// equivalent to Malloc(size), for all values of size; if size is equal to -// zero, and b's backing array is not of zero size, then the call is equivalent -// to Free(b). Unless b's backing array is of zero size, it must have been -// returned by an earlier call to Malloc, Calloc or Realloc. If the area -// pointed to was moved, a Free(b) is done. -func (a *Allocator) Realloc(b []byte, size int) (r []byte, err error) { - var p uintptr - if b = b[:cap(b)]; len(b) != 0 { - p = uintptr(unsafe.Pointer(&b[0])) - } - if p, err = a.UintptrRealloc(p, size); p == 0 || err != nil { - return nil, err - } - - sh := (*reflect.SliceHeader)(unsafe.Pointer(&r)) - sh.Cap = usableSize(p) - sh.Data = p - sh.Len = size - return r, nil -} - -// UsableSize reports the size of the memory block allocated at p, which must -// point to the first byte of a slice returned from Calloc, Malloc or Realloc. -// The allocated memory block size can be larger than the size originally -// requested from Calloc, Malloc or Realloc. -func UsableSize(p *byte) (r int) { return UintptrUsableSize(uintptr(unsafe.Pointer(p))) } - -// UnsafeCalloc is like Calloc except it returns an unsafe.Pointer. -func (a *Allocator) UnsafeCalloc(size int) (r unsafe.Pointer, err error) { - p, err := a.UintptrCalloc(size) - if err != nil { - return nil, err - } - - return unsafe.Pointer(p), nil -} - -// UnsafeFree is like Free except its argument is an unsafe.Pointer, which must -// have been acquired from UnsafeCalloc or UnsafeMalloc or UnsafeRealloc. -func (a *Allocator) UnsafeFree(p unsafe.Pointer) (err error) { return a.UintptrFree(uintptr(p)) } - -// UnsafeMalloc is like Malloc except it returns an unsafe.Pointer. -func (a *Allocator) UnsafeMalloc(size int) (r unsafe.Pointer, err error) { - p, err := a.UintptrMalloc(size) - if err != nil { - return nil, err - } - - return unsafe.Pointer(p), nil -} - -// UnsafeRealloc is like Realloc except its first argument is an -// unsafe.Pointer, which must have been returned from UnsafeCalloc, -// UnsafeMalloc or UnsafeRealloc. -func (a *Allocator) UnsafeRealloc(p unsafe.Pointer, size int) (r unsafe.Pointer, err error) { - q, err := a.UintptrRealloc(uintptr(p), size) - if err != nil { - return nil, err - } - - return unsafe.Pointer(q), nil -} - -// UnsafeUsableSize is like UsableSize except its argument is an -// unsafe.Pointer, which must have been returned from UnsafeCalloc, -// UnsafeMalloc or UnsafeRealloc. -func UnsafeUsableSize(p unsafe.Pointer) (r int) { return UintptrUsableSize(uintptr(p)) } diff --git a/vendor/modernc.org/memory/memory32.go b/vendor/modernc.org/memory/memory32.go deleted file mode 100644 index 527bec3fe..000000000 --- a/vendor/modernc.org/memory/memory32.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2018 The Memory Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build 386 || arm || armbe || mips || mipsle || ppc || s390 || s390x || sparc -// +build 386 arm armbe mips mipsle ppc s390 s390x sparc - -package memory // import "modernc.org/memory" - -type rawmem [1<<31 - 2]byte diff --git a/vendor/modernc.org/memory/memory64.go b/vendor/modernc.org/memory/memory64.go deleted file mode 100644 index 633929258..000000000 --- a/vendor/modernc.org/memory/memory64.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2018 The Memory Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 || amd64p32 || arm64 || arm64be || mips64 || mips64le || mips64p32 || mips64p32le || ppc64 || ppc64le || sparc64 || riscv64 || loong64 -// +build amd64 amd64p32 arm64 arm64be mips64 mips64le mips64p32 mips64p32le ppc64 ppc64le sparc64 riscv64 loong64 - -package memory // import "modernc.org/memory" - -type rawmem [1<<50 - 1]byte diff --git a/vendor/modernc.org/memory/mmap_darwin.go b/vendor/modernc.org/memory/mmap_darwin.go deleted file mode 100644 index d597cb45c..000000000 --- a/vendor/modernc.org/memory/mmap_darwin.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2017 The Memory Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build amd64 || arm64 -// +build amd64 arm64 - -package memory - -import ( - _ "unsafe" -) - -// Function syscall.mmap for darwin and openbsd calls internal/abi.FuncPCABI0, -// which is implemented as a compile intrinsic so the code cannot be reused. -// Using go:linkname directive to link mmapSyscall to syscall.mmap - -//go:linkname mmapSyscall syscall.mmap -func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) diff --git a/vendor/modernc.org/memory/mmap_freebsd_32.go b/vendor/modernc.org/memory/mmap_freebsd_32.go deleted file mode 100644 index 8b88f1b0e..000000000 --- a/vendor/modernc.org/memory/mmap_freebsd_32.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -//go:build (freebsd && 386) || (freebsd && arm) -// +build freebsd,386 freebsd,arm - -package memory - -import ( - "syscall" -) - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_freebsd_386.go -func mmapSyscall(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall.Syscall9(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_freebsd_64.go b/vendor/modernc.org/memory/mmap_freebsd_64.go deleted file mode 100644 index 9a988bca1..000000000 --- a/vendor/modernc.org/memory/mmap_freebsd_64.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -//go:build (freebsd && amd64) || (freebsd && arm64) -// +build freebsd,amd64 freebsd,arm64 - -package memory - -import ( - "syscall" -) - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_freebsd_amd64.go;l=1337-1346 -func mmapSyscall(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall.Syscall6(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_illumos_amd64.go b/vendor/modernc.org/memory/mmap_illumos_amd64.go deleted file mode 100644 index 1006fe812..000000000 --- a/vendor/modernc.org/memory/mmap_illumos_amd64.go +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2011 Evan Shaw. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-MMAP-GO file. - -// Modifications (c) 2022 The Memory Authors. - -package memory // import "modernc.org/memory" - -import ( - "os" - "syscall" - _ "unsafe" -) - -const ( - pageSizeLog = 20 - - // $ find /usr/include -name syscall.h - // /usr/include/sys/syscall.h - // $ grep -ni munmap /usr/include/sys/syscall.h - // 293:#define SYS_munmap 117 - // $ grep -ni mmap /usr/include/sys/syscall.h - // 291:#define SYS_mmap 115 - // 303:#define SYS_mmapobj 127 - // 442:#define SYS_mmap64 214 - // $ - // $ uname -a - // SunOS omnios64 5.11 omnios-r151044-d3b715b9d1 i86pc i386 i86pc - // $ - sys_MUNMAP = 117 - sys_MMAP = 214 -) - -var ( - osPageMask = osPageSize - 1 - osPageSize = os.Getpagesize() -) - -//go:linkname mmapSyscall syscall.mmap -func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) - -func unmap(addr uintptr, size int) error { - _, _, errno := syscall.Syscall(sys_MUNMAP, addr, uintptr(size), 0) - if errno != 0 { - return errno - } - - return nil -} - -// pageSize aligned. -func mmap(size int) (uintptr, int, error) { - size = roundup(size, osPageSize) - // The actual mmap syscall varies by architecture. mmapSyscall provides same - // functionality as the unexported funtion syscall.mmap and is declared in - // mmap_*_*.go and mmap_fallback.go. To add support for a new architecture, - // check function mmap in src/syscall/syscall_*_*.go or - // src/syscall/zsyscall_*_*.go in Go's source code. - p, err := mmapSyscall(0, uintptr(size+pageSize), syscall.PROT_READ|syscall.PROT_WRITE, syscall.MAP_PRIVATE|syscall.MAP_ANON, -1, 0) - if err != nil { - return 0, 0, err - } - - n := size + pageSize - if p&uintptr(osPageMask) != 0 { - panic("internal error") - } - - mod := int(p) & pageMask - if mod != 0 { - m := pageSize - mod - if err := unmap(p, m); err != nil { - return 0, 0, err - } - - n -= m - p += uintptr(m) - } - - if p&uintptr(pageMask) != 0 { - panic("internal error") - } - - if n-size != 0 { - if err := unmap(p+uintptr(size), n-size); err != nil { - return 0, 0, err - } - } - - return p, size, nil -} diff --git a/vendor/modernc.org/memory/mmap_linux_32.go b/vendor/modernc.org/memory/mmap_linux_32.go deleted file mode 100644 index 207ad417d..000000000 --- a/vendor/modernc.org/memory/mmap_linux_32.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -//go:build linux && (386 || arm || mips || mipsle) -// +build linux -// +build 386 arm mips mipsle - -package memory - -import ( - "syscall" -) - -// Function syscall.mmap and syscall.mmap2 are same for linux/386, linux/arm, -// linux/mips and linux/mipsle - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/syscall_linux_386.go;l=99-105 -func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - page := uintptr(offset / 4096) - if offset != int64(page)*4096 { - return 0, syscall.EINVAL - } - return mmap2Syscall(addr, length, prot, flags, fd, page) -} - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_linux_386.go;l=1361-1370 -func mmap2Syscall(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { - r0, _, e1 := syscall.Syscall6(syscall.SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_linux_64.go b/vendor/modernc.org/memory/mmap_linux_64.go deleted file mode 100644 index 6b7e93dc1..000000000 --- a/vendor/modernc.org/memory/mmap_linux_64.go +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -//go:build linux && (amd64 || arm64 || mips64 || mips64le || riscv64 || ppc64le || loong64) -// +build linux -// +build amd64 arm64 mips64 mips64le riscv64 ppc64le loong64 - -package memory - -import ( - "syscall" -) - -// Function syscall.mmap is same for linux/amd64, linux/arm64, linux/mips64, -// linux/mips64le and linux/riscv64. - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_linux_amd64.go;l=1575-1584 -func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - r0, _, e1 := syscall.Syscall6(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) - xaddr = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_linux_s390x.go b/vendor/modernc.org/memory/mmap_linux_s390x.go deleted file mode 100644 index bf7260e52..000000000 --- a/vendor/modernc.org/memory/mmap_linux_s390x.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -package memory - -import ( - "syscall" - "unsafe" -) - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/syscall_linux_s390x.go;l=105-115 -// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct. -// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in <asm/unistd.h>. -func mmapSyscall(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { - mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)} - r0, _, e1 := syscall.Syscall(syscall.SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0) - xaddr = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_netbsd_32.go b/vendor/modernc.org/memory/mmap_netbsd_32.go deleted file mode 100644 index 2c17038ae..000000000 --- a/vendor/modernc.org/memory/mmap_netbsd_32.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -//go:build (netbsd && 386) || (netbsd && arm) -// +build netbsd,386 netbsd,arm - -package memory - -import ( - "syscall" -) - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_freebsd_386.go -func mmapSyscall(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall.Syscall9(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) - ret = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_netbsd_64.go b/vendor/modernc.org/memory/mmap_netbsd_64.go deleted file mode 100644 index 5c09a7bb0..000000000 --- a/vendor/modernc.org/memory/mmap_netbsd_64.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2009 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-GO file. - -//go:build netbsd && amd64 -// +build netbsd,amd64 - -package memory - -import ( - "syscall" -) - -// https://cs.opensource.google/go/go/+/refs/tags/go1.17.8:src/syscall/zsyscall_netbsd_amd64.go;l=1190 -func mmapSyscall(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { - r0, _, e1 := syscall.Syscall9(syscall.SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) - ret = uintptr(r0) - if e1 != 0 { - err = e1 - } - return -} diff --git a/vendor/modernc.org/memory/mmap_openbsd.go b/vendor/modernc.org/memory/mmap_openbsd.go deleted file mode 100644 index 24cc0a424..000000000 --- a/vendor/modernc.org/memory/mmap_openbsd.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2011 Evan Shaw. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-MMAP-GO file. - -// Modifications (c) 2024 The Memory Authors. -// Copyright 2024 The Memory Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build openbsd && (386 || amd64 || arm64) - -package memory - -import ( - "fmt" - "os" - "sync" - "unsafe" - - "golang.org/x/sys/unix" -) - -// track what can be unmapped -var allocmap map[uintptr][]byte -var m sync.Mutex - -const pageSizeLog = 20 - -var ( - osPageMask = osPageSize - 1 - osPageSize = os.Getpagesize() -) - -func init() { - allocmap = make(map[uintptr][]byte) -} - -func unmap(addr uintptr, size int) error { - if trace { - fmt.Fprintf(os.Stderr, "unmap %#x\n", addr) - } - - a, ok := allocmap[addr] - if !ok { - if trace { - fmt.Fprintf(os.Stderr, "unmap %#x: not found\n", addr) - } - // panic("unmap called on unknown mapping") - return nil - } - - if err := unix.Munmap(a); err != nil { - if trace { - fmt.Fprintf(os.Stderr, "unmap: %s\n", err.Error()) - } - // panic(err.Error()) - return err - } - - m.Lock() - delete(allocmap, addr) - m.Unlock() - - return nil -} - -func mmap(size int) (uintptr, int, error) { - roundsize := roundup(size, osPageSize) + pageSize - - b, err := unix.Mmap(-1, 0, roundsize, unix.PROT_READ|unix.PROT_WRITE, unix.MAP_PRIVATE|unix.MAP_ANON) - if err != nil { - return 0, 0, err - } - - p := uintptr(unsafe.Pointer(&b[0])) - - if trace { - fmt.Fprintf(os.Stderr, "mmap actual @%#x size: %#x\n", p, roundsize) - } - - // waste all the space until the next page - r := (p + uintptr(pageSize)) &^ uintptr(pageMask) - nsize := (roundsize) - int((r - p)) - if nsize < size { - panic("didn't allocate enough to meet initial request!") - } - - if trace { - fmt.Fprintf(os.Stderr, "mmap page-rounded @%#x size: %#x\n", r, nsize) - } - - m.Lock() - allocmap[r] = b - m.Unlock() - - return r, nsize, nil -} diff --git a/vendor/modernc.org/memory/mmap_unix.go b/vendor/modernc.org/memory/mmap_unix.go deleted file mode 100644 index de57b8823..000000000 --- a/vendor/modernc.org/memory/mmap_unix.go +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2011 Evan Shaw. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE-MMAP-GO file. - -//go:build darwin || dragonfly || freebsd || linux || (solaris && !illumos) || netbsd -// +build darwin dragonfly freebsd linux solaris,!illumos netbsd - -// Modifications (c) 2017 The Memory Authors. - -package memory // import "modernc.org/memory" - -import ( - "os" - "syscall" -) - -const pageSizeLog = 20 - -var ( - osPageMask = osPageSize - 1 - osPageSize = os.Getpagesize() -) - -func unmap(addr uintptr, size int) error { - _, _, errno := syscall.Syscall(syscall.SYS_MUNMAP, addr, uintptr(size), 0) - if errno != 0 { - return errno - } - - return nil -} - -// pageSize aligned. -func mmap(size int) (uintptr, int, error) { - size = roundup(size, osPageSize) - - // The actual mmap syscall varies by architecture. mmapSyscall provides same - // functionality as the unexported funtion syscall.mmap and is declared in - // mmap_*_*.go and mmap_fallback.go. To add support for a new architecture, - // check function mmap in src/syscall/syscall_*_*.go or - // src/syscall/zsyscall_*_*.go in Go's source code. - p, err := mmapSyscall(0, uintptr(size+pageSize), syscall.PROT_READ|syscall.PROT_WRITE, syscall.MAP_PRIVATE|syscall.MAP_ANON, -1, 0) - if err != nil { - return 0, 0, err - } - - n := size + pageSize - if p&uintptr(osPageMask) != 0 { - panic("internal error") - } - - mod := int(p) & pageMask - if mod != 0 { - m := pageSize - mod - if err := unmap(p, m); err != nil { - return 0, 0, err - } - - n -= m - p += uintptr(m) - } - - if p&uintptr(pageMask) != 0 { - panic("internal error") - } - - if n-size != 0 { - if err := unmap(p+uintptr(size), n-size); err != nil { - return 0, 0, err - } - } - - return p, size, nil -} diff --git a/vendor/modernc.org/memory/mmap_windows.go b/vendor/modernc.org/memory/mmap_windows.go deleted file mode 100644 index f085a22ce..000000000 --- a/vendor/modernc.org/memory/mmap_windows.go +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2017 The Memory Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package memory // import "modernc.org/memory" - -import ( - "os" - syscall "golang.org/x/sys/windows" -) - -const ( - _MEM_COMMIT = 0x1000 - _MEM_RESERVE = 0x2000 - _MEM_DECOMMIT = 0x4000 - _MEM_RELEASE = 0x8000 - - _PAGE_READWRITE = 0x0004 - _PAGE_NOACCESS = 0x0001 -) - -const pageSizeLog = 16 - -var ( - modkernel32 = syscall.NewLazySystemDLL("kernel32.dll") - osPageMask = osPageSize - 1 - osPageSize = os.Getpagesize() - procVirtualAlloc = modkernel32.NewProc("VirtualAlloc") - procVirtualFree = modkernel32.NewProc("VirtualFree") -) - -// pageSize aligned. -func mmap(size int) (uintptr, int, error) { - size = roundup(size, pageSize) - addr, _, err := procVirtualAlloc.Call(0, uintptr(size), _MEM_COMMIT|_MEM_RESERVE, _PAGE_READWRITE) - if err.(syscall.Errno) != 0 || addr == 0 { - return addr, size, err - } - return addr, size, nil -} - -func unmap(addr uintptr, size int) error { - r, _, err := procVirtualFree.Call(addr, 0, _MEM_RELEASE) - if r == 0 { - return err - } - - return nil -} diff --git a/vendor/modernc.org/memory/nocounters.go b/vendor/modernc.org/memory/nocounters.go deleted file mode 100644 index 090eb958c..000000000 --- a/vendor/modernc.org/memory/nocounters.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2017 The Memory Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !memory.counters -// +build !memory.counters - -package memory // import "modernc.org/memory" - -const counters = false diff --git a/vendor/modernc.org/memory/trace_disabled.go b/vendor/modernc.org/memory/trace_disabled.go deleted file mode 100644 index eeebc9c78..000000000 --- a/vendor/modernc.org/memory/trace_disabled.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2017 The Memory Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !memory.trace -// +build !memory.trace - -package memory // import "modernc.org/memory" - -const trace = false diff --git a/vendor/modernc.org/memory/trace_enabled.go b/vendor/modernc.org/memory/trace_enabled.go deleted file mode 100644 index 37b8e232b..000000000 --- a/vendor/modernc.org/memory/trace_enabled.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2017 The Memory Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build memory.trace -// +build memory.trace - -package memory // import "modernc.org/memory" - -const trace = true |