aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/edsrzf
diff options
context:
space:
mode:
authorTamal Saha <tamal@appscode.com>2019-08-23 09:40:30 -0700
committertechknowlogick <techknowlogick@gitea.io>2019-08-23 12:40:29 -0400
commit171b3598778a1ecd0a921c71ed6755bfef68f7f0 (patch)
tree02857629ef9e8e26ee0ee559153f803f77b588b7 /vendor/github.com/edsrzf
parentca6fb004ac50fc924861112403895d637c6a2d1d (diff)
downloadgitea-171b3598778a1ecd0a921c71ed6755bfef68f7f0.tar.gz
gitea-171b3598778a1ecd0a921c71ed6755bfef68f7f0.zip
Use gitea forked macaron (#7933)
Signed-off-by: Tamal Saha <tamal@appscode.com>
Diffstat (limited to 'vendor/github.com/edsrzf')
-rw-r--r--vendor/github.com/edsrzf/mmap-go/mmap.go17
-rw-r--r--vendor/github.com/edsrzf/mmap-go/mmap_unix.go50
-rw-r--r--vendor/github.com/edsrzf/mmap-go/mmap_windows.go64
-rw-r--r--vendor/github.com/edsrzf/mmap-go/msync_netbsd.go8
-rw-r--r--vendor/github.com/edsrzf/mmap-go/msync_unix.go14
5 files changed, 67 insertions, 86 deletions
diff --git a/vendor/github.com/edsrzf/mmap-go/mmap.go b/vendor/github.com/edsrzf/mmap-go/mmap.go
index 14fb22580a..29655bd222 100644
--- a/vendor/github.com/edsrzf/mmap-go/mmap.go
+++ b/vendor/github.com/edsrzf/mmap-go/mmap.go
@@ -81,25 +81,27 @@ func (m *MMap) header() *reflect.SliceHeader {
return (*reflect.SliceHeader)(unsafe.Pointer(m))
}
+func (m *MMap) addrLen() (uintptr, uintptr) {
+ header := m.header()
+ return header.Data, uintptr(header.Len)
+}
+
// Lock keeps the mapped region in physical memory, ensuring that it will not be
// swapped out.
func (m MMap) Lock() error {
- dh := m.header()
- return lock(dh.Data, uintptr(dh.Len))
+ return m.lock()
}
// Unlock reverses the effect of Lock, allowing the mapped region to potentially
// be swapped out.
// If m is already unlocked, aan error will result.
func (m MMap) Unlock() error {
- dh := m.header()
- return unlock(dh.Data, uintptr(dh.Len))
+ return m.unlock()
}
// Flush synchronizes the mapping's contents to the file's contents on disk.
func (m MMap) Flush() error {
- dh := m.header()
- return flush(dh.Data, uintptr(dh.Len))
+ return m.flush()
}
// Unmap deletes the memory mapped region, flushes any remaining changes, and sets
@@ -109,8 +111,7 @@ func (m MMap) Flush() error {
// Unmap should only be called on the slice value that was originally returned from
// a call to Map. Calling Unmap on a derived slice may cause errors.
func (m *MMap) Unmap() error {
- dh := m.header()
- err := unmap(dh.Data, uintptr(dh.Len))
+ err := m.unmap()
*m = nil
return err
}
diff --git a/vendor/github.com/edsrzf/mmap-go/mmap_unix.go b/vendor/github.com/edsrzf/mmap-go/mmap_unix.go
index 4af98420d5..25b13e51fd 100644
--- a/vendor/github.com/edsrzf/mmap-go/mmap_unix.go
+++ b/vendor/github.com/edsrzf/mmap-go/mmap_unix.go
@@ -7,61 +7,45 @@
package mmap
import (
- "syscall"
+ "golang.org/x/sys/unix"
)
func mmap(len int, inprot, inflags, fd uintptr, off int64) ([]byte, error) {
- flags := syscall.MAP_SHARED
- prot := syscall.PROT_READ
+ flags := unix.MAP_SHARED
+ prot := unix.PROT_READ
switch {
case inprot&COPY != 0:
- prot |= syscall.PROT_WRITE
- flags = syscall.MAP_PRIVATE
+ prot |= unix.PROT_WRITE
+ flags = unix.MAP_PRIVATE
case inprot&RDWR != 0:
- prot |= syscall.PROT_WRITE
+ prot |= unix.PROT_WRITE
}
if inprot&EXEC != 0 {
- prot |= syscall.PROT_EXEC
+ prot |= unix.PROT_EXEC
}
if inflags&ANON != 0 {
- flags |= syscall.MAP_ANON
+ flags |= unix.MAP_ANON
}
- b, err := syscall.Mmap(int(fd), off, len, prot, flags)
+ b, err := unix.Mmap(int(fd), off, len, prot, flags)
if err != nil {
return nil, err
}
return b, nil
}
-func flush(addr, len uintptr) error {
- _, _, errno := syscall.Syscall(_SYS_MSYNC, addr, len, _MS_SYNC)
- if errno != 0 {
- return syscall.Errno(errno)
- }
- return nil
+func (m MMap) flush() error {
+ return unix.Msync([]byte(m), unix.MS_SYNC)
}
-func lock(addr, len uintptr) error {
- _, _, errno := syscall.Syscall(syscall.SYS_MLOCK, addr, len, 0)
- if errno != 0 {
- return syscall.Errno(errno)
- }
- return nil
+func (m MMap) lock() error {
+ return unix.Mlock([]byte(m))
}
-func unlock(addr, len uintptr) error {
- _, _, errno := syscall.Syscall(syscall.SYS_MUNLOCK, addr, len, 0)
- if errno != 0 {
- return syscall.Errno(errno)
- }
- return nil
+func (m MMap) unlock() error {
+ return unix.Munlock([]byte(m))
}
-func unmap(addr, len uintptr) error {
- _, _, errno := syscall.Syscall(syscall.SYS_MUNMAP, addr, len, 0)
- if errno != 0 {
- return syscall.Errno(errno)
- }
- return nil
+func (m MMap) unmap() error {
+ return unix.Munmap([]byte(m))
}
diff --git a/vendor/github.com/edsrzf/mmap-go/mmap_windows.go b/vendor/github.com/edsrzf/mmap-go/mmap_windows.go
index c3d2d02d3f..7910da2577 100644
--- a/vendor/github.com/edsrzf/mmap-go/mmap_windows.go
+++ b/vendor/github.com/edsrzf/mmap-go/mmap_windows.go
@@ -8,7 +8,8 @@ import (
"errors"
"os"
"sync"
- "syscall"
+
+ "golang.org/x/sys/windows"
)
// mmap on Windows is a two-step process.
@@ -19,23 +20,29 @@ import (
// not a struct, so it's convenient to manipulate.
// We keep this map so that we can get back the original handle from the memory address.
+
+type addrinfo struct {
+ file windows.Handle
+ mapview windows.Handle
+}
+
var handleLock sync.Mutex
-var handleMap = map[uintptr]syscall.Handle{}
+var handleMap = map[uintptr]*addrinfo{}
func mmap(len int, prot, flags, hfile uintptr, off int64) ([]byte, error) {
- flProtect := uint32(syscall.PAGE_READONLY)
- dwDesiredAccess := uint32(syscall.FILE_MAP_READ)
+ flProtect := uint32(windows.PAGE_READONLY)
+ dwDesiredAccess := uint32(windows.FILE_MAP_READ)
switch {
case prot&COPY != 0:
- flProtect = syscall.PAGE_WRITECOPY
- dwDesiredAccess = syscall.FILE_MAP_COPY
+ flProtect = windows.PAGE_WRITECOPY
+ dwDesiredAccess = windows.FILE_MAP_COPY
case prot&RDWR != 0:
- flProtect = syscall.PAGE_READWRITE
- dwDesiredAccess = syscall.FILE_MAP_WRITE
+ flProtect = windows.PAGE_READWRITE
+ dwDesiredAccess = windows.FILE_MAP_WRITE
}
if prot&EXEC != 0 {
flProtect <<= 4
- dwDesiredAccess |= syscall.FILE_MAP_EXECUTE
+ dwDesiredAccess |= windows.FILE_MAP_EXECUTE
}
// The maximum size is the area of the file, starting from 0,
@@ -45,7 +52,7 @@ func mmap(len int, prot, flags, hfile uintptr, off int64) ([]byte, error) {
maxSizeHigh := uint32((off + int64(len)) >> 32)
maxSizeLow := uint32((off + int64(len)) & 0xFFFFFFFF)
// TODO: Do we need to set some security attributes? It might help portability.
- h, errno := syscall.CreateFileMapping(syscall.Handle(hfile), nil, flProtect, maxSizeHigh, maxSizeLow, nil)
+ h, errno := windows.CreateFileMapping(windows.Handle(hfile), nil, flProtect, maxSizeHigh, maxSizeLow, nil)
if h == 0 {
return nil, os.NewSyscallError("CreateFileMapping", errno)
}
@@ -54,12 +61,15 @@ func mmap(len int, prot, flags, hfile uintptr, off int64) ([]byte, error) {
// is the length the user requested.
fileOffsetHigh := uint32(off >> 32)
fileOffsetLow := uint32(off & 0xFFFFFFFF)
- addr, errno := syscall.MapViewOfFile(h, dwDesiredAccess, fileOffsetHigh, fileOffsetLow, uintptr(len))
+ addr, errno := windows.MapViewOfFile(h, dwDesiredAccess, fileOffsetHigh, fileOffsetLow, uintptr(len))
if addr == 0 {
return nil, os.NewSyscallError("MapViewOfFile", errno)
}
handleLock.Lock()
- handleMap[addr] = h
+ handleMap[addr] = &addrinfo{
+ file: windows.Handle(hfile),
+ mapview: h,
+ }
handleLock.Unlock()
m := MMap{}
@@ -71,8 +81,9 @@ func mmap(len int, prot, flags, hfile uintptr, off int64) ([]byte, error) {
return m, nil
}
-func flush(addr, len uintptr) error {
- errno := syscall.FlushViewOfFile(addr, len)
+func (m MMap) flush() error {
+ addr, len := m.addrLen()
+ errno := windows.FlushViewOfFile(addr, len)
if errno != nil {
return os.NewSyscallError("FlushViewOfFile", errno)
}
@@ -85,22 +96,29 @@ func flush(addr, len uintptr) error {
return errors.New("unknown base address")
}
- errno = syscall.FlushFileBuffers(handle)
+ errno = windows.FlushFileBuffers(handle.file)
return os.NewSyscallError("FlushFileBuffers", errno)
}
-func lock(addr, len uintptr) error {
- errno := syscall.VirtualLock(addr, len)
+func (m MMap) lock() error {
+ addr, len := m.addrLen()
+ errno := windows.VirtualLock(addr, len)
return os.NewSyscallError("VirtualLock", errno)
}
-func unlock(addr, len uintptr) error {
- errno := syscall.VirtualUnlock(addr, len)
+func (m MMap) unlock() error {
+ addr, len := m.addrLen()
+ errno := windows.VirtualUnlock(addr, len)
return os.NewSyscallError("VirtualUnlock", errno)
}
-func unmap(addr, len uintptr) error {
- flush(addr, len)
+func (m MMap) unmap() error {
+ err := m.flush()
+ if err != nil {
+ return err
+ }
+
+ addr := m.header().Data
// Lock the UnmapViewOfFile along with the handleMap deletion.
// As soon as we unmap the view, the OS is free to give the
// same addr to another new map. We don't want another goroutine
@@ -108,7 +126,7 @@ func unmap(addr, len uintptr) error {
// we're trying to remove our old addr/handle pair.
handleLock.Lock()
defer handleLock.Unlock()
- err := syscall.UnmapViewOfFile(addr)
+ err = windows.UnmapViewOfFile(addr)
if err != nil {
return err
}
@@ -120,6 +138,6 @@ func unmap(addr, len uintptr) error {
}
delete(handleMap, addr)
- e := syscall.CloseHandle(syscall.Handle(handle))
+ e := windows.CloseHandle(windows.Handle(handle.mapview))
return os.NewSyscallError("CloseHandle", e)
}
diff --git a/vendor/github.com/edsrzf/mmap-go/msync_netbsd.go b/vendor/github.com/edsrzf/mmap-go/msync_netbsd.go
deleted file mode 100644
index a64b003e2d..0000000000
--- a/vendor/github.com/edsrzf/mmap-go/msync_netbsd.go
+++ /dev/null
@@ -1,8 +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 file.
-
-package mmap
-
-const _SYS_MSYNC = 277
-const _MS_SYNC = 0x04
diff --git a/vendor/github.com/edsrzf/mmap-go/msync_unix.go b/vendor/github.com/edsrzf/mmap-go/msync_unix.go
deleted file mode 100644
index 91ee5f40f1..0000000000
--- a/vendor/github.com/edsrzf/mmap-go/msync_unix.go
+++ /dev/null
@@ -1,14 +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 file.
-
-// +build darwin dragonfly freebsd linux openbsd solaris
-
-package mmap
-
-import (
- "syscall"
-)
-
-const _SYS_MSYNC = syscall.SYS_MSYNC
-const _MS_SYNC = syscall.MS_SYNC