mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	* Use vendored go-swagger (#8087) * Use vendored go-swagger * vendor go-swagger * revert un wanteed change * remove un-needed GO111MODULE * Update Makefile Co-Authored-By: techknowlogick <matti@mdranta.net> * re-generate swagger file
This commit is contained in:
		
				
					committed by
					
						
						Lauris BH
					
				
			
			
				
	
			
			
			
						parent
						
							2f71571305
						
					
				
				
					commit
					c4d8d53a6d
				
			
							
								
								
									
										17
									
								
								vendor/github.com/edsrzf/mmap-go/mmap.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/github.com/edsrzf/mmap-go/mmap.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -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
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										50
									
								
								vendor/github.com/edsrzf/mmap-go/mmap_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										50
									
								
								vendor/github.com/edsrzf/mmap-go/mmap_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -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© != 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))
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										64
									
								
								vendor/github.com/edsrzf/mmap-go/mmap_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								vendor/github.com/edsrzf/mmap-go/mmap_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -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© != 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)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								vendor/github.com/edsrzf/mmap-go/msync_netbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/edsrzf/mmap-go/msync_netbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -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
 | 
			
		||||
							
								
								
									
										14
									
								
								vendor/github.com/edsrzf/mmap-go/msync_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/github.com/edsrzf/mmap-go/msync_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -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
 | 
			
		||||
		Reference in New Issue
	
	Block a user