diff options
Diffstat (limited to 'vendor/golang.org/x/sys/unix/mremap.go')
-rw-r--r-- | vendor/golang.org/x/sys/unix/mremap.go | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/vendor/golang.org/x/sys/unix/mremap.go b/vendor/golang.org/x/sys/unix/mremap.go deleted file mode 100644 index 3a5e776f8..000000000 --- a/vendor/golang.org/x/sys/unix/mremap.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2023 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 file. - -//go:build linux || netbsd - -package unix - -import "unsafe" - -type mremapMmapper struct { - mmapper - mremap func(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) -} - -var mapper = &mremapMmapper{ - mmapper: mmapper{ - active: make(map[*byte][]byte), - mmap: mmap, - munmap: munmap, - }, - mremap: mremap, -} - -func (m *mremapMmapper) Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { - if newLength <= 0 || len(oldData) == 0 || len(oldData) != cap(oldData) || flags&mremapFixed != 0 { - return nil, EINVAL - } - - pOld := &oldData[cap(oldData)-1] - m.Lock() - defer m.Unlock() - bOld := m.active[pOld] - if bOld == nil || &bOld[0] != &oldData[0] { - return nil, EINVAL - } - newAddr, errno := m.mremap(uintptr(unsafe.Pointer(&bOld[0])), uintptr(len(bOld)), uintptr(newLength), flags, 0) - if errno != nil { - return nil, errno - } - bNew := unsafe.Slice((*byte)(unsafe.Pointer(newAddr)), newLength) - pNew := &bNew[cap(bNew)-1] - if flags&mremapDontunmap == 0 { - delete(m.active, pOld) - } - m.active[pNew] = bNew - return bNew, nil -} - -func Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { - return mapper.Mremap(oldData, newLength, flags) -} - -func MremapPtr(oldAddr unsafe.Pointer, oldSize uintptr, newAddr unsafe.Pointer, newSize uintptr, flags int) (ret unsafe.Pointer, err error) { - xaddr, err := mapper.mremap(uintptr(oldAddr), oldSize, newSize, flags, uintptr(newAddr)) - return unsafe.Pointer(xaddr), err -} |