mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-01 00:23:56 +08:00 
			
		
		
		
	vendor: update buildkit with typed errors support
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
		
							
								
								
									
										29
									
								
								vendor/golang.org/x/sys/windows/dll_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/golang.org/x/sys/windows/dll_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -104,6 +104,35 @@ func (d *DLL) MustFindProc(name string) *Proc { | ||||
| 	return p | ||||
| } | ||||
|  | ||||
| // FindProcByOrdinal searches DLL d for procedure by ordinal and returns *Proc | ||||
| // if found. It returns an error if search fails. | ||||
| func (d *DLL) FindProcByOrdinal(ordinal uintptr) (proc *Proc, err error) { | ||||
| 	a, e := GetProcAddressByOrdinal(d.Handle, ordinal) | ||||
| 	name := "#" + itoa(int(ordinal)) | ||||
| 	if e != nil { | ||||
| 		return nil, &DLLError{ | ||||
| 			Err:     e, | ||||
| 			ObjName: name, | ||||
| 			Msg:     "Failed to find " + name + " procedure in " + d.Name + ": " + e.Error(), | ||||
| 		} | ||||
| 	} | ||||
| 	p := &Proc{ | ||||
| 		Dll:  d, | ||||
| 		Name: name, | ||||
| 		addr: a, | ||||
| 	} | ||||
| 	return p, nil | ||||
| } | ||||
|  | ||||
| // MustFindProcByOrdinal is like FindProcByOrdinal but panics if search fails. | ||||
| func (d *DLL) MustFindProcByOrdinal(ordinal uintptr) *Proc { | ||||
| 	p, e := d.FindProcByOrdinal(ordinal) | ||||
| 	if e != nil { | ||||
| 		panic(e) | ||||
| 	} | ||||
| 	return p | ||||
| } | ||||
|  | ||||
| // Release unloads DLL d from memory. | ||||
| func (d *DLL) Release() (err error) { | ||||
| 	return FreeLibrary(d.Handle) | ||||
|   | ||||
							
								
								
									
										11
									
								
								vendor/golang.org/x/sys/windows/env_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/golang.org/x/sys/windows/env_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -8,7 +8,6 @@ package windows | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unicode/utf16" | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
| @@ -40,17 +39,11 @@ func (token Token) Environ(inheritExisting bool) (env []string, err error) { | ||||
| 	defer DestroyEnvironmentBlock(block) | ||||
| 	blockp := uintptr(unsafe.Pointer(block)) | ||||
| 	for { | ||||
| 		entry := (*[(1 << 30) - 1]uint16)(unsafe.Pointer(blockp))[:] | ||||
| 		for i, v := range entry { | ||||
| 			if v == 0 { | ||||
| 				entry = entry[:i] | ||||
| 				break | ||||
| 			} | ||||
| 		} | ||||
| 		entry := UTF16PtrToString((*uint16)(unsafe.Pointer(blockp))) | ||||
| 		if len(entry) == 0 { | ||||
| 			break | ||||
| 		} | ||||
| 		env = append(env, string(utf16.Decode(entry))) | ||||
| 		env = append(env, entry) | ||||
| 		blockp += 2 * (uintptr(len(entry)) + 1) | ||||
| 	} | ||||
| 	return env, nil | ||||
|   | ||||
							
								
								
									
										5
									
								
								vendor/golang.org/x/sys/windows/memory_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/golang.org/x/sys/windows/memory_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -23,4 +23,9 @@ const ( | ||||
| 	PAGE_EXECUTE_READ      = 0x20 | ||||
| 	PAGE_EXECUTE_READWRITE = 0x40 | ||||
| 	PAGE_EXECUTE_WRITECOPY = 0x80 | ||||
|  | ||||
| 	QUOTA_LIMITS_HARDWS_MIN_DISABLE = 0x00000002 | ||||
| 	QUOTA_LIMITS_HARDWS_MIN_ENABLE  = 0x00000001 | ||||
| 	QUOTA_LIMITS_HARDWS_MAX_DISABLE = 0x00000008 | ||||
| 	QUOTA_LIMITS_HARDWS_MAX_ENABLE  = 0x00000004 | ||||
| ) | ||||
|   | ||||
							
								
								
									
										20
									
								
								vendor/golang.org/x/sys/windows/security_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/golang.org/x/sys/windows/security_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -7,6 +7,8 @@ package windows | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
|  | ||||
| 	"golang.org/x/sys/internal/unsafeheader" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| @@ -1229,7 +1231,7 @@ func (sd *SECURITY_DESCRIPTOR) String() string { | ||||
| 		return "" | ||||
| 	} | ||||
| 	defer LocalFree(Handle(unsafe.Pointer(sddl))) | ||||
| 	return UTF16ToString((*[(1 << 30) - 1]uint16)(unsafe.Pointer(sddl))[:]) | ||||
| 	return UTF16PtrToString(sddl) | ||||
| } | ||||
|  | ||||
| // ToAbsolute converts a self-relative security descriptor into an absolute one. | ||||
| @@ -1307,9 +1309,17 @@ func (absoluteSD *SECURITY_DESCRIPTOR) ToSelfRelative() (selfRelativeSD *SECURIT | ||||
| } | ||||
|  | ||||
| func (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() *SECURITY_DESCRIPTOR { | ||||
| 	sdBytes := make([]byte, selfRelativeSD.Length()) | ||||
| 	copy(sdBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(selfRelativeSD))[:len(sdBytes)]) | ||||
| 	return (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&sdBytes[0])) | ||||
| 	sdLen := (int)(selfRelativeSD.Length()) | ||||
|  | ||||
| 	var src []byte | ||||
| 	h := (*unsafeheader.Slice)(unsafe.Pointer(&src)) | ||||
| 	h.Data = unsafe.Pointer(selfRelativeSD) | ||||
| 	h.Len = sdLen | ||||
| 	h.Cap = sdLen | ||||
|  | ||||
| 	dst := make([]byte, sdLen) | ||||
| 	copy(dst, src) | ||||
| 	return (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&dst[0])) | ||||
| } | ||||
|  | ||||
| // SecurityDescriptorFromString converts an SDDL string describing a security descriptor into a | ||||
| @@ -1391,6 +1401,6 @@ func ACLFromEntries(explicitEntries []EXPLICIT_ACCESS, mergedACL *ACL) (acl *ACL | ||||
| 	} | ||||
| 	defer LocalFree(Handle(unsafe.Pointer(winHeapACL))) | ||||
| 	aclBytes := make([]byte, winHeapACL.aclSize) | ||||
| 	copy(aclBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(winHeapACL))[:len(aclBytes)]) | ||||
| 	copy(aclBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(winHeapACL))[:len(aclBytes):len(aclBytes)]) | ||||
| 	return (*ACL)(unsafe.Pointer(&aclBytes[0])), nil | ||||
| } | ||||
|   | ||||
							
								
								
									
										39
									
								
								vendor/golang.org/x/sys/windows/syscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								vendor/golang.org/x/sys/windows/syscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,6 +13,8 @@ import ( | ||||
| 	"time" | ||||
| 	"unicode/utf16" | ||||
| 	"unsafe" | ||||
|  | ||||
| 	"golang.org/x/sys/internal/unsafeheader" | ||||
| ) | ||||
|  | ||||
| type Handle uintptr | ||||
| @@ -117,6 +119,32 @@ func UTF16PtrFromString(s string) (*uint16, error) { | ||||
| 	return &a[0], nil | ||||
| } | ||||
|  | ||||
| // UTF16PtrToString takes a pointer to a UTF-16 sequence and returns the corresponding UTF-8 encoded string. | ||||
| // If the pointer is nil, this returns the empty string. This assumes that the UTF-16 sequence is terminated | ||||
| // at a zero word; if the zero word is not present, the program may crash. | ||||
| func UTF16PtrToString(p *uint16) string { | ||||
| 	if p == nil { | ||||
| 		return "" | ||||
| 	} | ||||
| 	if *p == 0 { | ||||
| 		return "" | ||||
| 	} | ||||
|  | ||||
| 	// Find NUL terminator. | ||||
| 	n := 0 | ||||
| 	for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ { | ||||
| 		ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) | ||||
| 	} | ||||
|  | ||||
| 	var s []uint16 | ||||
| 	h := (*unsafeheader.Slice)(unsafe.Pointer(&s)) | ||||
| 	h.Data = unsafe.Pointer(p) | ||||
| 	h.Len = n | ||||
| 	h.Cap = n | ||||
|  | ||||
| 	return string(utf16.Decode(s)) | ||||
| } | ||||
|  | ||||
| func Getpagesize() int { return 4096 } | ||||
|  | ||||
| // NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention. | ||||
| @@ -280,6 +308,8 @@ func NewCallbackCDecl(fn interface{}) uintptr { | ||||
| //sys	GetProcessId(process Handle) (id uint32, err error) | ||||
| //sys	OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) | ||||
| //sys	SetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost | ||||
| //sys	GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) | ||||
| //sys	SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) | ||||
|  | ||||
| // Volume Management Functions | ||||
| //sys	DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW | ||||
| @@ -1181,7 +1211,12 @@ type IPv6Mreq struct { | ||||
| 	Interface uint32 | ||||
| } | ||||
|  | ||||
| func GetsockoptInt(fd Handle, level, opt int) (int, error) { return -1, syscall.EWINDOWS } | ||||
| func GetsockoptInt(fd Handle, level, opt int) (int, error) { | ||||
| 	v := int32(0) | ||||
| 	l := int32(unsafe.Sizeof(v)) | ||||
| 	err := Getsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), &l) | ||||
| 	return int(v), err | ||||
| } | ||||
|  | ||||
| func SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) { | ||||
| 	sys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)} | ||||
| @@ -1378,7 +1413,7 @@ func (t Token) KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, e | ||||
| 		return "", err | ||||
| 	} | ||||
| 	defer CoTaskMemFree(unsafe.Pointer(p)) | ||||
| 	return UTF16ToString((*[(1 << 30) - 1]uint16)(unsafe.Pointer(p))[:]), nil | ||||
| 	return UTF16PtrToString(p), nil | ||||
| } | ||||
|  | ||||
| // RtlGetVersion returns the version of the underlying operating system, ignoring | ||||
|   | ||||
							
								
								
									
										19
									
								
								vendor/golang.org/x/sys/windows/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/golang.org/x/sys/windows/zsyscall_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -217,6 +217,8 @@ var ( | ||||
| 	procGetProcessId                                         = modkernel32.NewProc("GetProcessId") | ||||
| 	procOpenThread                                           = modkernel32.NewProc("OpenThread") | ||||
| 	procSetProcessPriorityBoost                              = modkernel32.NewProc("SetProcessPriorityBoost") | ||||
| 	procGetProcessWorkingSetSizeEx                           = modkernel32.NewProc("GetProcessWorkingSetSizeEx") | ||||
| 	procSetProcessWorkingSetSizeEx                           = modkernel32.NewProc("SetProcessWorkingSetSizeEx") | ||||
| 	procDefineDosDeviceW                                     = modkernel32.NewProc("DefineDosDeviceW") | ||||
| 	procDeleteVolumeMountPointW                              = modkernel32.NewProc("DeleteVolumeMountPointW") | ||||
| 	procFindFirstVolumeW                                     = modkernel32.NewProc("FindFirstVolumeW") | ||||
| @@ -2414,6 +2416,23 @@ func SetProcessPriorityBoost(process Handle, disable bool) (err error) { | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) { | ||||
| 	syscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0) | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) { | ||||
| 	r1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0) | ||||
| 	if r1 == 0 { | ||||
| 		if e1 != 0 { | ||||
| 			err = errnoErr(e1) | ||||
| 		} else { | ||||
| 			err = syscall.EINVAL | ||||
| 		} | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { | ||||
| 	r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) | ||||
| 	if r1 == 0 { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Tonis Tiigi
					Tonis Tiigi