mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-05 16:47:27 -04:00
windows: add missing error constants
While the types_windows file previously had a small handful of types, this forced application code to have an awkward mixture of artisanal error constants and factory-ready ones. This commit adds the missing ones and separates them into a new file, since they are quite numerous. These also preserve the order of winerr.h, which should make it somewhat easier to import new ones in the future. Fixes golang/go#31360 Change-Id: If2abc507a8884ec1641f0b17fe0c612a950d3644 Reviewed-on: https://go-review.googlesource.com/c/sys/+/170918 Reviewed-by: Jason Donenfeld <Jason@zx2c4.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Alex Brainman <alex.brainman@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Jason Donenfeld <Jason@zx2c4.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
b44545bcd3
commit
9773273309
Executable
+64
@@ -0,0 +1,64 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2019 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.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
shopt -s nullglob
|
||||||
|
|
||||||
|
[[ $# -eq 1 ]] || { echo "Usage: $0 OUTPUT_FILE.go" >&2; exit 1; }
|
||||||
|
winerror="$(printf '%s\n' "/mnt/c/Program Files (x86)/Windows Kits/"/*/Include/*/shared/winerror.h | sort -Vr | head -n 1)"
|
||||||
|
[[ -n $winerror ]] || { echo "Unable to find winerror.h" >&2; exit 1; }
|
||||||
|
|
||||||
|
declare -A errors
|
||||||
|
|
||||||
|
{
|
||||||
|
echo "// Code generated by 'go generate'; DO NOT EDIT."
|
||||||
|
echo
|
||||||
|
echo "package windows"
|
||||||
|
echo "import \"syscall\""
|
||||||
|
echo "const ("
|
||||||
|
|
||||||
|
while read -r line; do
|
||||||
|
unset vtype
|
||||||
|
if [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?([A-Z][A-Z0-9_]+k?)\)? ]]; then
|
||||||
|
key="${BASH_REMATCH[1]}"
|
||||||
|
value="${BASH_REMATCH[3]}"
|
||||||
|
elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +([A-Z0-9_]+\()?((0x)?[0-9A-Fa-f]+)L?\)? ]]; then
|
||||||
|
key="${BASH_REMATCH[1]}"
|
||||||
|
value="${BASH_REMATCH[3]}"
|
||||||
|
vtype="${BASH_REMATCH[2]}"
|
||||||
|
elif [[ $line =~ ^#define\ +([A-Z0-9_]+k?)\ +\(\(([A-Z]+)\)((0x)?[0-9A-Fa-f]+)L?\) ]]; then
|
||||||
|
key="${BASH_REMATCH[1]}"
|
||||||
|
value="${BASH_REMATCH[3]}"
|
||||||
|
vtype="${BASH_REMATCH[2]}"
|
||||||
|
else
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
[[ -n $key && -n $value ]] || continue
|
||||||
|
[[ -z ${errors["$key"]} ]] || continue
|
||||||
|
errors["$key"]="$value"
|
||||||
|
if [[ -v vtype ]]; then
|
||||||
|
if [[ $key == FACILITY_* || $key == NO_ERROR ]]; then
|
||||||
|
vtype=""
|
||||||
|
elif [[ $vtype == *HANDLE* || $vtype == *HRESULT* ]]; then
|
||||||
|
vtype="Handle"
|
||||||
|
else
|
||||||
|
vtype="syscall.Errno"
|
||||||
|
fi
|
||||||
|
last_vtype="$vtype"
|
||||||
|
else
|
||||||
|
vtype=""
|
||||||
|
if [[ $last_vtype == Handle && $value == NO_ERROR ]]; then
|
||||||
|
value="S_OK"
|
||||||
|
elif [[ $last_vtype == syscall.Errno && $value == NO_ERROR ]]; then
|
||||||
|
value="ERROR_SUCCESS"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$key $vtype = $value"
|
||||||
|
done < "$winerror"
|
||||||
|
|
||||||
|
echo ")"
|
||||||
|
} | gofmt > "$1"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
// Copyright 2019 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.
|
||||||
|
|
||||||
|
package windows
|
||||||
|
|
||||||
|
//go:generate ./mkerrors.bash zerrors_windows.go
|
||||||
@@ -99,8 +99,6 @@ const (
|
|||||||
SERVICE_CONFIG_DESCRIPTION = 1
|
SERVICE_CONFIG_DESCRIPTION = 1
|
||||||
SERVICE_CONFIG_FAILURE_ACTIONS = 2
|
SERVICE_CONFIG_FAILURE_ACTIONS = 2
|
||||||
|
|
||||||
NO_ERROR = 0
|
|
||||||
|
|
||||||
SC_ENUM_PROCESS_INFO = 0
|
SC_ENUM_PROCESS_INFO = 0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -328,7 +328,7 @@ func Run(name string, handler Handler) error {
|
|||||||
}
|
}
|
||||||
s.c <- e
|
s.c <- e
|
||||||
// Always return NO_ERROR (0) for now.
|
// Always return NO_ERROR (0) for now.
|
||||||
return 0
|
return windows.NO_ERROR
|
||||||
}
|
}
|
||||||
|
|
||||||
var svcmain uintptr
|
var svcmain uintptr
|
||||||
|
|||||||
@@ -6,33 +6,6 @@ package windows
|
|||||||
|
|
||||||
import "syscall"
|
import "syscall"
|
||||||
|
|
||||||
const (
|
|
||||||
// Windows errors.
|
|
||||||
ERROR_FILE_NOT_FOUND syscall.Errno = 2
|
|
||||||
ERROR_PATH_NOT_FOUND syscall.Errno = 3
|
|
||||||
ERROR_ACCESS_DENIED syscall.Errno = 5
|
|
||||||
ERROR_NO_MORE_FILES syscall.Errno = 18
|
|
||||||
ERROR_HANDLE_EOF syscall.Errno = 38
|
|
||||||
ERROR_NETNAME_DELETED syscall.Errno = 64
|
|
||||||
ERROR_FILE_EXISTS syscall.Errno = 80
|
|
||||||
ERROR_BROKEN_PIPE syscall.Errno = 109
|
|
||||||
ERROR_BUFFER_OVERFLOW syscall.Errno = 111
|
|
||||||
ERROR_INSUFFICIENT_BUFFER syscall.Errno = 122
|
|
||||||
ERROR_MOD_NOT_FOUND syscall.Errno = 126
|
|
||||||
ERROR_PROC_NOT_FOUND syscall.Errno = 127
|
|
||||||
ERROR_ALREADY_EXISTS syscall.Errno = 183
|
|
||||||
ERROR_ENVVAR_NOT_FOUND syscall.Errno = 203
|
|
||||||
ERROR_MORE_DATA syscall.Errno = 234
|
|
||||||
ERROR_OPERATION_ABORTED syscall.Errno = 995
|
|
||||||
ERROR_IO_PENDING syscall.Errno = 997
|
|
||||||
ERROR_SERVICE_SPECIFIC_ERROR syscall.Errno = 1066
|
|
||||||
ERROR_NOT_FOUND syscall.Errno = 1168
|
|
||||||
ERROR_PRIVILEGE_NOT_HELD syscall.Errno = 1314
|
|
||||||
WSAEACCES syscall.Errno = 10013
|
|
||||||
WSAEMSGSIZE syscall.Errno = 10040
|
|
||||||
WSAECONNRESET syscall.Errno = 10054
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// Invented values to support what package os expects.
|
// Invented values to support what package os expects.
|
||||||
O_RDONLY = 0x00000
|
O_RDONLY = 0x00000
|
||||||
@@ -177,7 +150,6 @@ const (
|
|||||||
IGNORE = 0
|
IGNORE = 0
|
||||||
INFINITE = 0xffffffff
|
INFINITE = 0xffffffff
|
||||||
|
|
||||||
WAIT_TIMEOUT = 258
|
|
||||||
WAIT_ABANDONED = 0x00000080
|
WAIT_ABANDONED = 0x00000080
|
||||||
WAIT_OBJECT_0 = 0x00000000
|
WAIT_OBJECT_0 = 0x00000000
|
||||||
WAIT_FAILED = 0xFFFFFFFF
|
WAIT_FAILED = 0xFFFFFFFF
|
||||||
@@ -412,12 +384,6 @@ const (
|
|||||||
CERT_CHAIN_POLICY_EV = 8
|
CERT_CHAIN_POLICY_EV = 8
|
||||||
CERT_CHAIN_POLICY_SSL_F12 = 9
|
CERT_CHAIN_POLICY_SSL_F12 = 9
|
||||||
|
|
||||||
CERT_E_EXPIRED = 0x800B0101
|
|
||||||
CERT_E_ROLE = 0x800B0103
|
|
||||||
CERT_E_PURPOSE = 0x800B0106
|
|
||||||
CERT_E_UNTRUSTEDROOT = 0x800B0109
|
|
||||||
CERT_E_CN_NO_MATCH = 0x800B010F
|
|
||||||
|
|
||||||
/* AuthType values for SSLExtraCertChainPolicyPara struct */
|
/* AuthType values for SSLExtraCertChainPolicyPara struct */
|
||||||
AUTHTYPE_CLIENT = 1
|
AUTHTYPE_CLIENT = 1
|
||||||
AUTHTYPE_SERVER = 2
|
AUTHTYPE_SERVER = 2
|
||||||
@@ -859,10 +825,6 @@ const (
|
|||||||
DNS_TYPE_NBSTAT = 0xff01
|
DNS_TYPE_NBSTAT = 0xff01
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
DNS_INFO_NO_RECORDS = 0x251D
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// flags inside DNSRecord.Dw
|
// flags inside DNSRecord.Dw
|
||||||
DnsSectionQuestion = 0x0000
|
DnsSectionQuestion = 0x0000
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user