From a6429b5410062cb8067e6dbbc9999d7d579a751d Mon Sep 17 00:00:00 2001 From: kim Date: Mon, 8 Sep 2025 20:53:25 +0200 Subject: [PATCH] [chore] update dependencies (#4422) - github.com/jackc/pgx/v5 v5.7.5 -> v5.7.6 - github.com/ncruces/go-sqlite3 v0.28.0 -> v0.29.0 - github.com/tdewolff/minify/v2 v2.24.2 -> v2.24.3 - golang.org/x/oauth2 v0.30.0 -> v0.31.0 - golang.org/x/sys v0.35.0 -> v0.36.0 - golang.org/x/text v0.28.0 -> v0.29.0 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4422 Co-authored-by: kim Co-committed-by: kim --- go.mod | 18 +- go.sum | 36 +- vendor/github.com/jackc/pgx/v5/.golangci.yml | 21 + vendor/github.com/jackc/pgx/v5/CHANGELOG.md | 11 + vendor/github.com/jackc/pgx/v5/README.md | 5 + vendor/github.com/jackc/pgx/v5/batch.go | 32 +- vendor/github.com/jackc/pgx/v5/conn.go | 6 +- .../pgx/v5/internal/stmtcache/lru_cache.go | 1 - .../jackc/pgx/v5/pgconn/auth_scram.go | 2 +- .../github.com/jackc/pgx/v5/pgconn/config.go | 22 +- .../github.com/jackc/pgx/v5/pgconn/errors.go | 10 +- vendor/github.com/jackc/pgx/v5/pgconn/krb5.go | 2 +- .../github.com/jackc/pgx/v5/pgconn/pgconn.go | 26 +- .../authentication_cleartext_password.go | 3 +- .../pgx/v5/pgproto3/authentication_ok.go | 3 +- .../jackc/pgx/v5/pgproto3/copy_done.go | 3 +- .../jackc/pgx/v5/pgproto3/gss_enc_request.go | 3 +- .../jackc/pgx/v5/pgproto3/row_description.go | 1 - .../jackc/pgx/v5/pgproto3/ssl_request.go | 3 +- .../github.com/jackc/pgx/v5/pgtype/array.go | 8 +- vendor/github.com/jackc/pgx/v5/pgtype/bits.go | 7 +- vendor/github.com/jackc/pgx/v5/pgtype/bool.go | 11 +- vendor/github.com/jackc/pgx/v5/pgtype/box.go | 7 +- .../jackc/pgx/v5/pgtype/builtin_wrappers.go | 2 +- .../github.com/jackc/pgx/v5/pgtype/bytea.go | 1 - .../github.com/jackc/pgx/v5/pgtype/circle.go | 6 +- .../jackc/pgx/v5/pgtype/composite.go | 1 - vendor/github.com/jackc/pgx/v5/pgtype/date.go | 9 +- .../github.com/jackc/pgx/v5/pgtype/float4.go | 12 +- .../github.com/jackc/pgx/v5/pgtype/float8.go | 12 +- .../github.com/jackc/pgx/v5/pgtype/hstore.go | 11 +- vendor/github.com/jackc/pgx/v5/pgtype/inet.go | 3 +- vendor/github.com/jackc/pgx/v5/pgtype/int.go | 27 +- .../github.com/jackc/pgx/v5/pgtype/int.go.erb | 9 +- .../jackc/pgx/v5/pgtype/interval.go | 7 +- vendor/github.com/jackc/pgx/v5/pgtype/line.go | 7 +- vendor/github.com/jackc/pgx/v5/pgtype/lseg.go | 7 +- .../jackc/pgx/v5/pgtype/multirange.go | 5 +- .../github.com/jackc/pgx/v5/pgtype/numeric.go | 34 +- vendor/github.com/jackc/pgx/v5/pgtype/path.go | 7 +- .../github.com/jackc/pgx/v5/pgtype/pgtype.go | 2 +- .../github.com/jackc/pgx/v5/pgtype/point.go | 9 +- .../github.com/jackc/pgx/v5/pgtype/polygon.go | 7 +- .../github.com/jackc/pgx/v5/pgtype/range.go | 13 +- .../jackc/pgx/v5/pgtype/record_codec.go | 1 - vendor/github.com/jackc/pgx/v5/pgtype/text.go | 9 +- vendor/github.com/jackc/pgx/v5/pgtype/tid.go | 7 +- vendor/github.com/jackc/pgx/v5/pgtype/time.go | 7 +- .../jackc/pgx/v5/pgtype/timestamp.go | 14 +- .../jackc/pgx/v5/pgtype/timestamptz.go | 19 +- .../github.com/jackc/pgx/v5/pgtype/uint32.go | 33 +- .../github.com/jackc/pgx/v5/pgtype/uint64.go | 7 +- vendor/github.com/jackc/pgx/v5/pgtype/uuid.go | 8 +- .../github.com/jackc/pgx/v5/pgxpool/pool.go | 115 ++- vendor/github.com/jackc/pgx/v5/rows.go | 23 +- vendor/github.com/jackc/pgx/v5/stdlib/sql.go | 30 +- .../ncruces/go-sqlite3/embed/build.sh | 7 +- .../ncruces/go-sqlite3/embed/sqlite3.wasm | Bin 1404349 -> 1403811 bytes .../go-sqlite3/internal/alloc/alloc_unix.go | 32 +- .../internal/alloc/alloc_windows.go | 34 +- .../util/sql3util/wasm/sql3parse_table.wasm | Bin 16007 -> 15997 bytes .../github.com/tdewolff/minify/v2/README.md | 2 +- .../golang.org/x/sys/unix/affinity_linux.go | 4 +- .../golang.org/x/sys/unix/syscall_solaris.go | 2 +- .../x/sys/unix/zsyscall_solaris_amd64.go | 8 +- vendor/golang.org/x/sys/unix/ztypes_linux.go | 41 + .../sys/windows/registry/zsyscall_windows.go | 16 +- .../golang.org/x/sys/windows/types_windows.go | 6 + .../x/sys/windows/zsyscall_windows.go | 966 +++++++++--------- .../x/tools/go/ast/astutil/enclosing.go | 2 +- vendor/golang.org/x/tools/go/packages/doc.go | 2 + .../tools/internal/imports/source_modindex.go | 47 +- .../x/tools/internal/modindex/directories.go | 160 ++- .../x/tools/internal/modindex/index.go | 251 ++--- .../x/tools/internal/modindex/modindex.go | 217 ++-- .../x/tools/internal/modindex/symbols.go | 73 +- .../x/tools/internal/modindex/types.go | 25 - vendor/modules.txt | 28 +- 78 files changed, 1439 insertions(+), 1189 deletions(-) create mode 100644 vendor/github.com/jackc/pgx/v5/.golangci.yml delete mode 100644 vendor/golang.org/x/tools/internal/modindex/types.go diff --git a/go.mod b/go.mod index 1b95f5364..d1a0278fa 100644 --- a/go.mod +++ b/go.mod @@ -48,13 +48,13 @@ require ( github.com/google/uuid v1.6.0 github.com/gorilla/feeds v1.2.0 github.com/gorilla/websocket v1.5.3 - github.com/jackc/pgx/v5 v5.7.5 + github.com/jackc/pgx/v5 v5.7.6 github.com/k3a/html2text v1.2.1 github.com/microcosm-cc/bluemonday v1.0.27 github.com/miekg/dns v1.1.68 github.com/minio/minio-go/v7 v7.0.95 github.com/mitchellh/mapstructure v1.5.0 - github.com/ncruces/go-sqlite3 v0.28.0 + github.com/ncruces/go-sqlite3 v0.29.0 github.com/oklog/ulid v1.3.1 github.com/pquerna/otp v1.5.0 github.com/rivo/uniseg v0.4.7 @@ -63,7 +63,7 @@ require ( github.com/spf13/pflag v1.0.10 github.com/spf13/viper v1.20.1 github.com/stretchr/testify v1.11.1 - github.com/tdewolff/minify/v2 v2.24.2 + github.com/tdewolff/minify/v2 v2.24.3 github.com/technologize/otel-go-contrib v1.1.1 github.com/temoto/robotstxt v1.1.2 github.com/tetratelabs/wazero v1.9.0 @@ -86,9 +86,9 @@ require ( golang.org/x/crypto v0.41.0 golang.org/x/image v0.30.0 golang.org/x/net v0.43.0 - golang.org/x/oauth2 v0.30.0 - golang.org/x/sys v0.35.0 - golang.org/x/text v0.28.0 + golang.org/x/oauth2 v0.31.0 + golang.org/x/sys v0.36.0 + golang.org/x/text v0.29.0 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 gopkg.in/yaml.v3 v3.0.1 modernc.org/sqlite v1.38.2 @@ -231,9 +231,9 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/arch v0.18.0 // indirect golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect - golang.org/x/mod v0.26.0 // indirect - golang.org/x/sync v0.16.0 // indirect - golang.org/x/tools v0.35.0 // indirect + golang.org/x/mod v0.27.0 // indirect + golang.org/x/sync v0.17.0 // indirect + golang.org/x/tools v0.36.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250825161204-c5933d9347a5 // indirect google.golang.org/grpc v1.75.0 // indirect diff --git a/go.sum b/go.sum index cb95a60b9..30703a9c3 100644 --- a/go.sum +++ b/go.sum @@ -273,8 +273,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo= github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.7.5 h1:JHGfMnQY+IEtGM63d+NGMjoRpysB2JBwDr5fsngwmJs= -github.com/jackc/pgx/v5 v5.7.5/go.mod h1:aruU7o91Tc2q2cFp5h4uP3f6ztExVpyVv88Xl/8Vl8M= +github.com/jackc/pgx/v5 v5.7.6 h1:rWQc5FwZSPX58r1OQmkuaNicxdmExaEz5A2DO2hUuTk= +github.com/jackc/pgx/v5 v5.7.6/go.mod h1:aruU7o91Tc2q2cFp5h4uP3f6ztExVpyVv88Xl/8Vl8M= github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo= github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -340,8 +340,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/ncruces/go-sqlite3 v0.28.0 h1:AQVTUPgfamONl09LS+4rGFbHmLKM8/QrJJJi1UukjEQ= -github.com/ncruces/go-sqlite3 v0.28.0/go.mod h1:WqvLhYwtEiZzg1H8BIeahUv/DxbmR+3xG5jDHDiBAGk= +github.com/ncruces/go-sqlite3 v0.29.0 h1:1tsLiagCoqZEfcHDeKsNSv5jvrY/Iu393pAnw2wLNJU= +github.com/ncruces/go-sqlite3 v0.29.0/go.mod h1:r1hSvYKPNJ+OlUA1O3r8o9LAawzPAlqeZiIdxTBBBJ0= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M= @@ -431,8 +431,8 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/tdewolff/minify/v2 v2.24.2 h1:vnY3nTulEAbCAAlxTxPPDkzG24rsq31SOzp63yT+7mo= -github.com/tdewolff/minify/v2 v2.24.2/go.mod h1:1JrCtoZXaDbqioQZfk3Jdmr0GPJKiU7c1Apmb+7tCeE= +github.com/tdewolff/minify/v2 v2.24.3 h1:BaKgWSFLKbKDiUskbeRgbe2n5d1Ci1x3cN/eXna8zOA= +github.com/tdewolff/minify/v2 v2.24.3/go.mod h1:1JrCtoZXaDbqioQZfk3Jdmr0GPJKiU7c1Apmb+7tCeE= github.com/tdewolff/parse/v2 v2.8.3 h1:5VbvtJ83cfb289A1HzRA9sf02iT8YyUwN84ezjkdY1I= github.com/tdewolff/parse/v2 v2.8.3/go.mod h1:Hwlni2tiVNKyzR1o6nUs4FOF07URA+JLBLd6dlIXYqo= github.com/tdewolff/test v1.0.11 h1:FdLbwQVHxqG16SlkGveC0JVyrJN62COWTRyUFzfbtBE= @@ -588,8 +588,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= -golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= +golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -607,8 +607,8 @@ golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= -golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= -golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo= +golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -616,8 +616,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -633,8 +633,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= +golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -657,8 +657,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= -golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= +golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= +golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -666,8 +666,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= -golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= +golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= +golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= diff --git a/vendor/github.com/jackc/pgx/v5/.golangci.yml b/vendor/github.com/jackc/pgx/v5/.golangci.yml new file mode 100644 index 000000000..ca74c703a --- /dev/null +++ b/vendor/github.com/jackc/pgx/v5/.golangci.yml @@ -0,0 +1,21 @@ +# See for configurations: https://golangci-lint.run/usage/configuration/ +version: 2 + +# See: https://golangci-lint.run/usage/formatters/ +formatters: + default: none + enable: + - gofmt # https://pkg.go.dev/cmd/gofmt + - gofumpt # https://github.com/mvdan/gofumpt + + settings: + gofmt: + simplify: true # Simplify code: gofmt with `-s` option. + + gofumpt: + # Module path which contains the source code being formatted. + # Default: "" + module-path: github.com/jackc/pgx/v5 # Should match with module in go.mod + # Choose whether to use the extra rules. + # Default: false + extra-rules: true diff --git a/vendor/github.com/jackc/pgx/v5/CHANGELOG.md b/vendor/github.com/jackc/pgx/v5/CHANGELOG.md index 1e56878e8..6c9c99b5e 100644 --- a/vendor/github.com/jackc/pgx/v5/CHANGELOG.md +++ b/vendor/github.com/jackc/pgx/v5/CHANGELOG.md @@ -1,3 +1,14 @@ +# 5.7.6 (September 8, 2025) + +* Use ParseConfigError in pgx.ParseConfig and pgxpool.ParseConfig (Yurasov Ilia) +* Add PrepareConn hook to pgxpool (Jonathan Hall) +* Reduce allocations in QueryContext (Dominique Lefevre) +* Add MarshalJSON and UnmarshalJSON for pgtype.Uint32 (Panos Koutsovasilis) +* Configure ping behavior on pgxpool with ShouldPing (Christian Kiely) +* zeronull int types implement Int64Valuer and Int64Scanner (Li Zeghong) +* Fix panic when receiving terminate connection message during CopyFrom (Michal Drausowski) +* Fix statement cache not being invalidated on error during batch (Muhammadali Nazarov) + # 5.7.5 (May 17, 2025) * Support sslnegotiation connection option (divyam234) diff --git a/vendor/github.com/jackc/pgx/v5/README.md b/vendor/github.com/jackc/pgx/v5/README.md index 0138c2c76..cb709e217 100644 --- a/vendor/github.com/jackc/pgx/v5/README.md +++ b/vendor/github.com/jackc/pgx/v5/README.md @@ -127,6 +127,7 @@ pgerrcode contains constants for the PostgreSQL error codes. ## Adapters for 3rd Party Tracers * [github.com/jackhopner/pgx-xray-tracer](https://github.com/jackhopner/pgx-xray-tracer) +* [github.com/exaring/otelpgx](https://github.com/exaring/otelpgx) ## Adapters for 3rd Party Loggers @@ -184,3 +185,7 @@ Simple Golang implementation for transactional outbox pattern for PostgreSQL usi ### [https://github.com/Arlandaren/pgxWrappy](https://github.com/Arlandaren/pgxWrappy) Simplifies working with the pgx library, providing convenient scanning of nested structures. + +## [https://github.com/KoNekoD/pgx-colon-query-rewriter](https://github.com/KoNekoD/pgx-colon-query-rewriter) + +Implementation of the pgx query rewriter to use ':' instead of '@' in named query parameters. diff --git a/vendor/github.com/jackc/pgx/v5/batch.go b/vendor/github.com/jackc/pgx/v5/batch.go index c3c2834f2..1b1cbd849 100644 --- a/vendor/github.com/jackc/pgx/v5/batch.go +++ b/vendor/github.com/jackc/pgx/v5/batch.go @@ -43,6 +43,10 @@ func (qq *QueuedQuery) QueryRow(fn func(row Row) error) { } // Exec sets fn to be called when the response to qq is received. +// +// Note: for simple batch insert uses where it is not required to handle +// each potential error individually, it's sufficient to not set any callbacks, +// and just handle the return value of BatchResults.Close. func (qq *QueuedQuery) Exec(fn func(ct pgconn.CommandTag) error) { qq.Fn = func(br BatchResults) error { ct, err := br.Exec() @@ -83,7 +87,7 @@ func (b *Batch) Len() int { type BatchResults interface { // Exec reads the results from the next query in the batch as if the query has been sent with Conn.Exec. Prefer - // calling Exec on the QueuedQuery. + // calling Exec on the QueuedQuery, or just calling Close. Exec() (pgconn.CommandTag, error) // Query reads the results from the next query in the batch as if the query has been sent with Conn.Query. Prefer @@ -98,6 +102,9 @@ type BatchResults interface { // QueuedQuery.Query, QueuedQuery.QueryRow, or QueuedQuery.Exec will be called. If a callback function returns an // error or the batch encounters an error subsequent callback functions will not be called. // + // For simple batch inserts inside a transaction or similar queries, it's sufficient to not set any callbacks, + // and just handle the return value of Close. + // // Close must be called before the underlying connection can be used again. Any error that occurred during a batch // operation may have made it impossible to resyncronize the connection with the server. In this case the underlying // connection will have been closed. @@ -207,7 +214,6 @@ func (br *batchResults) Query() (Rows, error) { func (br *batchResults) QueryRow() Row { rows, _ := br.Query() return (*connRow)(rows.(*baseRows)) - } // Close closes the batch operation. Any error that occurred during a batch operation may have made it impossible to @@ -220,6 +226,8 @@ func (br *batchResults) Close() error { } br.endTraced = true } + + invalidateCachesOnBatchResultsError(br.conn, br.b, br.err) }() if br.err != nil { @@ -378,7 +386,6 @@ func (br *pipelineBatchResults) Query() (Rows, error) { func (br *pipelineBatchResults) QueryRow() Row { rows, _ := br.Query() return (*connRow)(rows.(*baseRows)) - } // Close closes the batch operation. Any error that occurred during a batch operation may have made it impossible to @@ -391,6 +398,8 @@ func (br *pipelineBatchResults) Close() error { } br.endTraced = true } + + invalidateCachesOnBatchResultsError(br.conn, br.b, br.err) }() if br.err == nil && br.lastRows != nil && br.lastRows.err != nil { @@ -441,3 +450,20 @@ func (br *pipelineBatchResults) nextQueryAndArgs() (query string, args []any, er br.qqIdx++ return bi.SQL, bi.Arguments, nil } + +// invalidates statement and description caches on batch results error +func invalidateCachesOnBatchResultsError(conn *Conn, b *Batch, err error) { + if err != nil && conn != nil && b != nil { + if sc := conn.statementCache; sc != nil { + for _, bi := range b.QueuedQueries { + sc.Invalidate(bi.SQL) + } + } + + if sc := conn.descriptionCache; sc != nil { + for _, bi := range b.QueuedQueries { + sc.Invalidate(bi.SQL) + } + } + } +} diff --git a/vendor/github.com/jackc/pgx/v5/conn.go b/vendor/github.com/jackc/pgx/v5/conn.go index 93e2e7182..67b225293 100644 --- a/vendor/github.com/jackc/pgx/v5/conn.go +++ b/vendor/github.com/jackc/pgx/v5/conn.go @@ -172,7 +172,7 @@ func ParseConfigWithOptions(connString string, options ParseConfigOptions) (*Con delete(config.RuntimeParams, "statement_cache_capacity") n, err := strconv.ParseInt(s, 10, 32) if err != nil { - return nil, fmt.Errorf("cannot parse statement_cache_capacity: %w", err) + return nil, pgconn.NewParseConfigError(connString, "cannot parse statement_cache_capacity", err) } statementCacheCapacity = int(n) } @@ -182,7 +182,7 @@ func ParseConfigWithOptions(connString string, options ParseConfigOptions) (*Con delete(config.RuntimeParams, "description_cache_capacity") n, err := strconv.ParseInt(s, 10, 32) if err != nil { - return nil, fmt.Errorf("cannot parse description_cache_capacity: %w", err) + return nil, pgconn.NewParseConfigError(connString, "cannot parse description_cache_capacity", err) } descriptionCacheCapacity = int(n) } @@ -202,7 +202,7 @@ func ParseConfigWithOptions(connString string, options ParseConfigOptions) (*Con case "simple_protocol": defaultQueryExecMode = QueryExecModeSimpleProtocol default: - return nil, fmt.Errorf("invalid default_query_exec_mode: %s", s) + return nil, pgconn.NewParseConfigError(connString, "invalid default_query_exec_mode", err) } } diff --git a/vendor/github.com/jackc/pgx/v5/internal/stmtcache/lru_cache.go b/vendor/github.com/jackc/pgx/v5/internal/stmtcache/lru_cache.go index dec83f47b..17fec937b 100644 --- a/vendor/github.com/jackc/pgx/v5/internal/stmtcache/lru_cache.go +++ b/vendor/github.com/jackc/pgx/v5/internal/stmtcache/lru_cache.go @@ -31,7 +31,6 @@ func (c *LRUCache) Get(key string) *pgconn.StatementDescription { } return nil - } // Put stores sd in the cache. Put panics if sd.SQL is "". Put does nothing if sd.SQL already exists in the cache or diff --git a/vendor/github.com/jackc/pgx/v5/pgconn/auth_scram.go b/vendor/github.com/jackc/pgx/v5/pgconn/auth_scram.go index 064983615..f846ba810 100644 --- a/vendor/github.com/jackc/pgx/v5/pgconn/auth_scram.go +++ b/vendor/github.com/jackc/pgx/v5/pgconn/auth_scram.go @@ -263,7 +263,7 @@ func computeClientProof(saltedPassword, authMessage []byte) []byte { return buf } -func computeServerSignature(saltedPassword []byte, authMessage []byte) []byte { +func computeServerSignature(saltedPassword, authMessage []byte) []byte { serverKey := computeHMAC(saltedPassword, []byte("Server Key")) serverSignature := computeHMAC(serverKey, authMessage) buf := make([]byte, base64.StdEncoding.EncodedLen(len(serverSignature))) diff --git a/vendor/github.com/jackc/pgx/v5/pgconn/config.go b/vendor/github.com/jackc/pgx/v5/pgconn/config.go index 1c28c4079..3937dc407 100644 --- a/vendor/github.com/jackc/pgx/v5/pgconn/config.go +++ b/vendor/github.com/jackc/pgx/v5/pgconn/config.go @@ -23,9 +23,11 @@ import ( "github.com/jackc/pgx/v5/pgproto3" ) -type AfterConnectFunc func(ctx context.Context, pgconn *PgConn) error -type ValidateConnectFunc func(ctx context.Context, pgconn *PgConn) error -type GetSSLPasswordFunc func(ctx context.Context) string +type ( + AfterConnectFunc func(ctx context.Context, pgconn *PgConn) error + ValidateConnectFunc func(ctx context.Context, pgconn *PgConn) error + GetSSLPasswordFunc func(ctx context.Context) string +) // Config is the settings used to establish a connection to a PostgreSQL server. It must be created by [ParseConfig]. A // manually initialized Config will cause ConnectConfig to panic. @@ -179,7 +181,7 @@ func NetworkAddress(host string, port uint16) (network, address string) { // // ParseConfig supports specifying multiple hosts in similar manner to libpq. Host and port may include comma separated // values that will be tried in order. This can be used as part of a high availability system. See -// https://www.postgresql.org/docs/11/libpq-connect.html#LIBPQ-MULTIPLE-HOSTS for more information. +// https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-MULTIPLE-HOSTS for more information. // // # Example URL // postgres://jack:secret@foo.example.com:5432,bar.example.com:5432/mydb @@ -206,9 +208,9 @@ func NetworkAddress(host string, port uint16) (network, address string) { // PGTARGETSESSIONATTRS // PGTZ // -// See http://www.postgresql.org/docs/11/static/libpq-envars.html for details on the meaning of environment variables. +// See http://www.postgresql.org/docs/current/static/libpq-envars.html for details on the meaning of environment variables. // -// See https://www.postgresql.org/docs/11/libpq-connect.html#LIBPQ-PARAMKEYWORDS for parameter key word names. They are +// See https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS for parameter key word names. They are // usually but not always the environment variable name downcased and without the "PG" prefix. // // Important Security Notes: @@ -216,7 +218,7 @@ func NetworkAddress(host string, port uint16) (network, address string) { // ParseConfig tries to match libpq behavior with regard to PGSSLMODE. This includes defaulting to "prefer" behavior if // not set. // -// See http://www.postgresql.org/docs/11/static/libpq-ssl.html#LIBPQ-SSL-PROTECTION for details on what level of +// See http://www.postgresql.org/docs/current/static/libpq-ssl.html#LIBPQ-SSL-PROTECTION for details on what level of // security each sslmode provides. // // The sslmode "prefer" (the default), sslmode "allow", and multiple hosts are implemented via the Fallbacks field of @@ -713,7 +715,7 @@ func configTLS(settings map[string]string, thisHost string, parseConfigOptions P // According to PostgreSQL documentation, if a root CA file exists, // the behavior of sslmode=require should be the same as that of verify-ca // - // See https://www.postgresql.org/docs/12/libpq-ssl.html + // See https://www.postgresql.org/docs/current/libpq-ssl.html if sslrootcert != "" { goto nextCase } @@ -784,8 +786,8 @@ func configTLS(settings map[string]string, thisHost string, parseConfigOptions P if sslpassword != "" { decryptedKey, decryptedError = x509.DecryptPEMBlock(block, []byte(sslpassword)) } - //if sslpassword not provided or has decryption error when use it - //try to find sslpassword with callback function + // if sslpassword not provided or has decryption error when use it + // try to find sslpassword with callback function if sslpassword == "" || decryptedError != nil { if parseConfigOptions.GetSSLPassword != nil { sslpassword = parseConfigOptions.GetSSLPassword(context.Background()) diff --git a/vendor/github.com/jackc/pgx/v5/pgconn/errors.go b/vendor/github.com/jackc/pgx/v5/pgconn/errors.go index ec4a6d47c..d968d3f03 100644 --- a/vendor/github.com/jackc/pgx/v5/pgconn/errors.go +++ b/vendor/github.com/jackc/pgx/v5/pgconn/errors.go @@ -27,7 +27,7 @@ func Timeout(err error) bool { } // PgError represents an error reported by the PostgreSQL server. See -// http://www.postgresql.org/docs/11/static/protocol-error-fields.html for +// http://www.postgresql.org/docs/current/static/protocol-error-fields.html for // detailed field description. type PgError struct { Severity string @@ -112,6 +112,14 @@ type ParseConfigError struct { err error } +func NewParseConfigError(conn, msg string, err error) error { + return &ParseConfigError{ + ConnString: conn, + msg: msg, + err: err, + } +} + func (e *ParseConfigError) Error() string { // Now that ParseConfigError is public and ConnString is available to the developer, perhaps it would be better only // return a static string. That would ensure that the error message cannot leak a password. The ConnString field would diff --git a/vendor/github.com/jackc/pgx/v5/pgconn/krb5.go b/vendor/github.com/jackc/pgx/v5/pgconn/krb5.go index 3c1af3477..efb0d61b8 100644 --- a/vendor/github.com/jackc/pgx/v5/pgconn/krb5.go +++ b/vendor/github.com/jackc/pgx/v5/pgconn/krb5.go @@ -28,7 +28,7 @@ func RegisterGSSProvider(newGSSArg NewGSSFunc) { // GSS provides GSSAPI authentication (e.g., Kerberos). type GSS interface { - GetInitToken(host string, service string) ([]byte, error) + GetInitToken(host, service string) ([]byte, error) GetInitTokenFromSPN(spn string) ([]byte, error) Continue(inToken []byte) (done bool, outToken []byte, err error) } diff --git a/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go b/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go index bf3eaec60..97141c649 100644 --- a/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go +++ b/vendor/github.com/jackc/pgx/v5/pgconn/pgconn.go @@ -135,7 +135,7 @@ func ConnectWithOptions(ctx context.Context, connString string, parseConfigOptio // // If config.Fallbacks are present they will sequentially be tried in case of error establishing network connection. An // authentication error will terminate the chain of attempts (like libpq: -// https://www.postgresql.org/docs/11/libpq-connect.html#LIBPQ-MULTIPLE-HOSTS) and be returned as the error. +// https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-MULTIPLE-HOSTS) and be returned as the error. func ConnectConfig(ctx context.Context, config *Config) (*PgConn, error) { // Default values are set in ParseConfig. Enforce initial creation by ParseConfig rather than setting defaults from // zero values. @@ -991,7 +991,8 @@ func noticeResponseToNotice(msg *pgproto3.NoticeResponse) *Notice { // CancelRequest sends a cancel request to the PostgreSQL server. It returns an error if unable to deliver the cancel // request, but lack of an error does not ensure that the query was canceled. As specified in the documentation, there -// is no way to be sure a query was canceled. See https://www.postgresql.org/docs/11/protocol-flow.html#id-1.10.5.7.9 +// is no way to be sure a query was canceled. +// See https://www.postgresql.org/docs/current/protocol-flow.html#PROTOCOL-FLOW-CANCELING-REQUESTS func (pgConn *PgConn) CancelRequest(ctx context.Context) error { // Open a cancellation request to the same server. The address is taken from the net.Conn directly instead of reusing // the connection config. This is important in high availability configurations where fallback connections may be @@ -1140,7 +1141,7 @@ func (pgConn *PgConn) Exec(ctx context.Context, sql string) *MultiResultReader { // binary format. If resultFormats is nil all results will be in text format. // // ResultReader must be closed before PgConn can be used again. -func (pgConn *PgConn) ExecParams(ctx context.Context, sql string, paramValues [][]byte, paramOIDs []uint32, paramFormats []int16, resultFormats []int16) *ResultReader { +func (pgConn *PgConn) ExecParams(ctx context.Context, sql string, paramValues [][]byte, paramOIDs []uint32, paramFormats, resultFormats []int16) *ResultReader { result := pgConn.execExtendedPrefix(ctx, paramValues) if result.closed { return result @@ -1166,7 +1167,7 @@ func (pgConn *PgConn) ExecParams(ctx context.Context, sql string, paramValues [] // binary format. If resultFormats is nil all results will be in text format. // // ResultReader must be closed before PgConn can be used again. -func (pgConn *PgConn) ExecPrepared(ctx context.Context, stmtName string, paramValues [][]byte, paramFormats []int16, resultFormats []int16) *ResultReader { +func (pgConn *PgConn) ExecPrepared(ctx context.Context, stmtName string, paramValues [][]byte, paramFormats, resultFormats []int16) *ResultReader { result := pgConn.execExtendedPrefix(ctx, paramValues) if result.closed { return result @@ -1373,7 +1374,14 @@ func (pgConn *PgConn) CopyFrom(ctx context.Context, r io.Reader, sql string) (Co close(pgConn.cleanupDone) return CommandTag{}, normalizeTimeoutError(ctx, err) } - msg, _ := pgConn.receiveMessage() + // peekMessage never returns err in the bufferingReceive mode - it only forwards the bufferingReceive variables. + // Therefore, the only case for receiveMessage to return err is during handling of the ErrorResponse message type + // and using pgOnError handler to determine the connection is no longer valid (and thus closing the conn). + msg, serverError := pgConn.receiveMessage() + if serverError != nil { + close(abortCopyChan) + return CommandTag{}, serverError + } switch msg := msg.(type) { case *pgproto3.ErrorResponse: @@ -1712,7 +1720,7 @@ type Batch struct { } // ExecParams appends an ExecParams command to the batch. See PgConn.ExecParams for parameter descriptions. -func (batch *Batch) ExecParams(sql string, paramValues [][]byte, paramOIDs []uint32, paramFormats []int16, resultFormats []int16) { +func (batch *Batch) ExecParams(sql string, paramValues [][]byte, paramOIDs []uint32, paramFormats, resultFormats []int16) { if batch.err != nil { return } @@ -1725,7 +1733,7 @@ func (batch *Batch) ExecParams(sql string, paramValues [][]byte, paramOIDs []uin } // ExecPrepared appends an ExecPrepared e command to the batch. See PgConn.ExecPrepared for parameter descriptions. -func (batch *Batch) ExecPrepared(stmtName string, paramValues [][]byte, paramFormats []int16, resultFormats []int16) { +func (batch *Batch) ExecPrepared(stmtName string, paramValues [][]byte, paramFormats, resultFormats []int16) { if batch.err != nil { return } @@ -2201,7 +2209,7 @@ func (p *Pipeline) SendDeallocate(name string) { } // SendQueryParams is the pipeline version of *PgConn.QueryParams. -func (p *Pipeline) SendQueryParams(sql string, paramValues [][]byte, paramOIDs []uint32, paramFormats []int16, resultFormats []int16) { +func (p *Pipeline) SendQueryParams(sql string, paramValues [][]byte, paramOIDs []uint32, paramFormats, resultFormats []int16) { if p.closed { return } @@ -2214,7 +2222,7 @@ func (p *Pipeline) SendQueryParams(sql string, paramValues [][]byte, paramOIDs [ } // SendQueryPrepared is the pipeline version of *PgConn.QueryPrepared. -func (p *Pipeline) SendQueryPrepared(stmtName string, paramValues [][]byte, paramFormats []int16, resultFormats []int16) { +func (p *Pipeline) SendQueryPrepared(stmtName string, paramValues [][]byte, paramFormats, resultFormats []int16) { if p.closed { return } diff --git a/vendor/github.com/jackc/pgx/v5/pgproto3/authentication_cleartext_password.go b/vendor/github.com/jackc/pgx/v5/pgproto3/authentication_cleartext_password.go index ac2962e9e..415e1a24a 100644 --- a/vendor/github.com/jackc/pgx/v5/pgproto3/authentication_cleartext_password.go +++ b/vendor/github.com/jackc/pgx/v5/pgproto3/authentication_cleartext_password.go @@ -9,8 +9,7 @@ import ( ) // AuthenticationCleartextPassword is a message sent from the backend indicating that a clear-text password is required. -type AuthenticationCleartextPassword struct { -} +type AuthenticationCleartextPassword struct{} // Backend identifies this message as sendable by the PostgreSQL backend. func (*AuthenticationCleartextPassword) Backend() {} diff --git a/vendor/github.com/jackc/pgx/v5/pgproto3/authentication_ok.go b/vendor/github.com/jackc/pgx/v5/pgproto3/authentication_ok.go index ec11d39f1..98c0b2d66 100644 --- a/vendor/github.com/jackc/pgx/v5/pgproto3/authentication_ok.go +++ b/vendor/github.com/jackc/pgx/v5/pgproto3/authentication_ok.go @@ -9,8 +9,7 @@ import ( ) // AuthenticationOk is a message sent from the backend indicating that authentication was successful. -type AuthenticationOk struct { -} +type AuthenticationOk struct{} // Backend identifies this message as sendable by the PostgreSQL backend. func (*AuthenticationOk) Backend() {} diff --git a/vendor/github.com/jackc/pgx/v5/pgproto3/copy_done.go b/vendor/github.com/jackc/pgx/v5/pgproto3/copy_done.go index 040814dbd..c3421a9b5 100644 --- a/vendor/github.com/jackc/pgx/v5/pgproto3/copy_done.go +++ b/vendor/github.com/jackc/pgx/v5/pgproto3/copy_done.go @@ -4,8 +4,7 @@ import ( "encoding/json" ) -type CopyDone struct { -} +type CopyDone struct{} // Backend identifies this message as sendable by the PostgreSQL backend. func (*CopyDone) Backend() {} diff --git a/vendor/github.com/jackc/pgx/v5/pgproto3/gss_enc_request.go b/vendor/github.com/jackc/pgx/v5/pgproto3/gss_enc_request.go index 70cb20cd5..122d1341c 100644 --- a/vendor/github.com/jackc/pgx/v5/pgproto3/gss_enc_request.go +++ b/vendor/github.com/jackc/pgx/v5/pgproto3/gss_enc_request.go @@ -10,8 +10,7 @@ import ( const gssEncReqNumber = 80877104 -type GSSEncRequest struct { -} +type GSSEncRequest struct{} // Frontend identifies this message as sendable by a PostgreSQL frontend. func (*GSSEncRequest) Frontend() {} diff --git a/vendor/github.com/jackc/pgx/v5/pgproto3/row_description.go b/vendor/github.com/jackc/pgx/v5/pgproto3/row_description.go index dc2a4ddf2..c40a2261b 100644 --- a/vendor/github.com/jackc/pgx/v5/pgproto3/row_description.go +++ b/vendor/github.com/jackc/pgx/v5/pgproto3/row_description.go @@ -56,7 +56,6 @@ func (*RowDescription) Backend() {} // Decode decodes src into dst. src must contain the complete message with the exception of the initial 1 byte message // type identifier and 4 byte message length. func (dst *RowDescription) Decode(src []byte) error { - if len(src) < 2 { return &invalidMessageFormatErr{messageType: "RowDescription"} } diff --git a/vendor/github.com/jackc/pgx/v5/pgproto3/ssl_request.go b/vendor/github.com/jackc/pgx/v5/pgproto3/ssl_request.go index b0fc28476..bdfc7c427 100644 --- a/vendor/github.com/jackc/pgx/v5/pgproto3/ssl_request.go +++ b/vendor/github.com/jackc/pgx/v5/pgproto3/ssl_request.go @@ -10,8 +10,7 @@ import ( const sslRequestNumber = 80877103 -type SSLRequest struct { -} +type SSLRequest struct{} // Frontend identifies this message as sendable by a PostgreSQL frontend. func (*SSLRequest) Frontend() {} diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/array.go b/vendor/github.com/jackc/pgx/v5/pgtype/array.go index 06b824ad0..872a08891 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/array.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/array.go @@ -374,8 +374,8 @@ func quoteArrayElementIfNeeded(src string) string { return src } -// Array represents a PostgreSQL array for T. It implements the ArrayGetter and ArraySetter interfaces. It preserves -// PostgreSQL dimensions and custom lower bounds. Use FlatArray if these are not needed. +// Array represents a PostgreSQL array for T. It implements the [ArrayGetter] and [ArraySetter] interfaces. It preserves +// PostgreSQL dimensions and custom lower bounds. Use [FlatArray] if these are not needed. type Array[T any] struct { Elements []T Dims []ArrayDimension @@ -419,8 +419,8 @@ func (a Array[T]) ScanIndexType() any { return new(T) } -// FlatArray implements the ArrayGetter and ArraySetter interfaces for any slice of T. It ignores PostgreSQL dimensions -// and custom lower bounds. Use Array to preserve these. +// FlatArray implements the [ArrayGetter] and [ArraySetter] interfaces for any slice of T. It ignores PostgreSQL dimensions +// and custom lower bounds. Use [Array] to preserve these. type FlatArray[T any] []T func (a FlatArray[T]) Dimensions() []ArrayDimension { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/bits.go b/vendor/github.com/jackc/pgx/v5/pgtype/bits.go index e7a1d016d..2a48e3549 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/bits.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/bits.go @@ -23,16 +23,18 @@ type Bits struct { Valid bool } +// ScanBits implements the [BitsScanner] interface. func (b *Bits) ScanBits(v Bits) error { *b = v return nil } +// BitsValue implements the [BitsValuer] interface. func (b Bits) BitsValue() (Bits, error) { return b, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Bits) Scan(src any) error { if src == nil { *dst = Bits{} @@ -47,7 +49,7 @@ func (dst *Bits) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Bits) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -127,7 +129,6 @@ func (encodePlanBitsCodecText) Encode(value any, buf []byte) (newBuf []byte, err } func (BitsCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/bool.go b/vendor/github.com/jackc/pgx/v5/pgtype/bool.go index 71caffa74..955f01fe8 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/bool.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/bool.go @@ -22,16 +22,18 @@ type Bool struct { Valid bool } +// ScanBool implements the [BoolScanner] interface. func (b *Bool) ScanBool(v Bool) error { *b = v return nil } +// BoolValue implements the [BoolValuer] interface. func (b Bool) BoolValue() (Bool, error) { return b, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Bool) Scan(src any) error { if src == nil { *dst = Bool{} @@ -61,7 +63,7 @@ func (dst *Bool) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Bool) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -70,6 +72,7 @@ func (src Bool) Value() (driver.Value, error) { return src.Bool, nil } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (src Bool) MarshalJSON() ([]byte, error) { if !src.Valid { return []byte("null"), nil @@ -82,6 +85,7 @@ func (src Bool) MarshalJSON() ([]byte, error) { } } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (dst *Bool) UnmarshalJSON(b []byte) error { var v *bool err := json.Unmarshal(b, &v) @@ -200,7 +204,6 @@ func (encodePlanBoolCodecTextBool) Encode(value any, buf []byte) (newBuf []byte, } func (BoolCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { @@ -328,7 +331,7 @@ func (scanPlanTextAnyToBoolScanner) Scan(src []byte, dst any) error { return s.ScanBool(Bool{Bool: v, Valid: true}) } -// https://www.postgresql.org/docs/11/datatype-boolean.html +// https://www.postgresql.org/docs/current/datatype-boolean.html func planTextToBool(src []byte) (bool, error) { s := string(bytes.ToLower(bytes.TrimSpace(src))) diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/box.go b/vendor/github.com/jackc/pgx/v5/pgtype/box.go index 887d268bc..d243f58e3 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/box.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/box.go @@ -24,16 +24,18 @@ type Box struct { Valid bool } +// ScanBox implements the [BoxScanner] interface. func (b *Box) ScanBox(v Box) error { *b = v return nil } +// BoxValue implements the [BoxValuer] interface. func (b Box) BoxValue() (Box, error) { return b, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Box) Scan(src any) error { if src == nil { *dst = Box{} @@ -48,7 +50,7 @@ func (dst *Box) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Box) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -127,7 +129,6 @@ func (encodePlanBoxCodecText) Encode(value any, buf []byte) (newBuf []byte, err } func (BoxCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/builtin_wrappers.go b/vendor/github.com/jackc/pgx/v5/pgtype/builtin_wrappers.go index b39d3fa10..84964425b 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/builtin_wrappers.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/builtin_wrappers.go @@ -527,6 +527,7 @@ func (w *netIPNetWrapper) ScanNetipPrefix(v netip.Prefix) error { return nil } + func (w netIPNetWrapper) NetipPrefixValue() (netip.Prefix, error) { ip, ok := netip.AddrFromSlice(w.IP) if !ok { @@ -881,7 +882,6 @@ func (a *anyMultiDimSliceArray) SetDimensions(dimensions []ArrayDimension) error return nil } - } func (a *anyMultiDimSliceArray) makeMultidimensionalSlice(sliceType reflect.Type, dimensions []ArrayDimension, flatSlice reflect.Value, flatSliceIdx int) reflect.Value { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/bytea.go b/vendor/github.com/jackc/pgx/v5/pgtype/bytea.go index a247705e9..6c4f0c5ea 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/bytea.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/bytea.go @@ -148,7 +148,6 @@ func (encodePlanBytesCodecTextBytesValuer) Encode(value any, buf []byte) (newBuf } func (ByteaCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/circle.go b/vendor/github.com/jackc/pgx/v5/pgtype/circle.go index e8f118cc9..fb9b4c11d 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/circle.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/circle.go @@ -25,16 +25,18 @@ type Circle struct { Valid bool } +// ScanCircle implements the [CircleScanner] interface. func (c *Circle) ScanCircle(v Circle) error { *c = v return nil } +// CircleValue implements the [CircleValuer] interface. func (c Circle) CircleValue() (Circle, error) { return c, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Circle) Scan(src any) error { if src == nil { *dst = Circle{} @@ -49,7 +51,7 @@ func (dst *Circle) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Circle) Value() (driver.Value, error) { if !src.Valid { return nil, nil diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/composite.go b/vendor/github.com/jackc/pgx/v5/pgtype/composite.go index fb372325b..598cf7af9 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/composite.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/composite.go @@ -276,7 +276,6 @@ func (c *CompositeCodec) DecodeValue(m *Map, oid uint32, format int16, src []byt default: return nil, fmt.Errorf("unknown format code %d", format) } - } type CompositeBinaryScanner struct { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/date.go b/vendor/github.com/jackc/pgx/v5/pgtype/date.go index 784b16deb..447056860 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/date.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/date.go @@ -26,11 +26,13 @@ type Date struct { Valid bool } +// ScanDate implements the [DateScanner] interface. func (d *Date) ScanDate(v Date) error { *d = v return nil } +// DateValue implements the [DateValuer] interface. func (d Date) DateValue() (Date, error) { return d, nil } @@ -40,7 +42,7 @@ const ( infinityDayOffset = 2147483647 ) -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Date) Scan(src any) error { if src == nil { *dst = Date{} @@ -58,7 +60,7 @@ func (dst *Date) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Date) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -70,6 +72,7 @@ func (src Date) Value() (driver.Value, error) { return src.Time, nil } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (src Date) MarshalJSON() ([]byte, error) { if !src.Valid { return []byte("null"), nil @@ -89,6 +92,7 @@ func (src Date) MarshalJSON() ([]byte, error) { return json.Marshal(s) } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (dst *Date) UnmarshalJSON(b []byte) error { var s *string err := json.Unmarshal(b, &s) @@ -223,7 +227,6 @@ func (encodePlanDateCodecText) Encode(value any, buf []byte) (newBuf []byte, err } func (DateCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/float4.go b/vendor/github.com/jackc/pgx/v5/pgtype/float4.go index 8646d9d22..241a25add 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/float4.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/float4.go @@ -16,26 +16,29 @@ type Float4 struct { Valid bool } -// ScanFloat64 implements the Float64Scanner interface. +// ScanFloat64 implements the [Float64Scanner] interface. func (f *Float4) ScanFloat64(n Float8) error { *f = Float4{Float32: float32(n.Float64), Valid: n.Valid} return nil } +// Float64Value implements the [Float64Valuer] interface. func (f Float4) Float64Value() (Float8, error) { return Float8{Float64: float64(f.Float32), Valid: f.Valid}, nil } +// ScanInt64 implements the [Int64Scanner] interface. func (f *Float4) ScanInt64(n Int8) error { *f = Float4{Float32: float32(n.Int64), Valid: n.Valid} return nil } +// Int64Value implements the [Int64Valuer] interface. func (f Float4) Int64Value() (Int8, error) { return Int8{Int64: int64(f.Float32), Valid: f.Valid}, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (f *Float4) Scan(src any) error { if src == nil { *f = Float4{} @@ -58,7 +61,7 @@ func (f *Float4) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (f Float4) Value() (driver.Value, error) { if !f.Valid { return nil, nil @@ -66,6 +69,7 @@ func (f Float4) Value() (driver.Value, error) { return float64(f.Float32), nil } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (f Float4) MarshalJSON() ([]byte, error) { if !f.Valid { return []byte("null"), nil @@ -73,6 +77,7 @@ func (f Float4) MarshalJSON() ([]byte, error) { return json.Marshal(f.Float32) } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (f *Float4) UnmarshalJSON(b []byte) error { var n *float32 err := json.Unmarshal(b, &n) @@ -170,7 +175,6 @@ func (encodePlanFloat4CodecBinaryInt64Valuer) Encode(value any, buf []byte) (new } func (Float4Codec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/float8.go b/vendor/github.com/jackc/pgx/v5/pgtype/float8.go index 9c923c9a3..54d6781ec 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/float8.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/float8.go @@ -24,26 +24,29 @@ type Float8 struct { Valid bool } -// ScanFloat64 implements the Float64Scanner interface. +// ScanFloat64 implements the [Float64Scanner] interface. func (f *Float8) ScanFloat64(n Float8) error { *f = n return nil } +// Float64Value implements the [Float64Valuer] interface. func (f Float8) Float64Value() (Float8, error) { return f, nil } +// ScanInt64 implements the [Int64Scanner] interface. func (f *Float8) ScanInt64(n Int8) error { *f = Float8{Float64: float64(n.Int64), Valid: n.Valid} return nil } +// Int64Value implements the [Int64Valuer] interface. func (f Float8) Int64Value() (Int8, error) { return Int8{Int64: int64(f.Float64), Valid: f.Valid}, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (f *Float8) Scan(src any) error { if src == nil { *f = Float8{} @@ -66,7 +69,7 @@ func (f *Float8) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (f Float8) Value() (driver.Value, error) { if !f.Valid { return nil, nil @@ -74,6 +77,7 @@ func (f Float8) Value() (driver.Value, error) { return f.Float64, nil } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (f Float8) MarshalJSON() ([]byte, error) { if !f.Valid { return []byte("null"), nil @@ -81,6 +85,7 @@ func (f Float8) MarshalJSON() ([]byte, error) { return json.Marshal(f.Float64) } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (f *Float8) UnmarshalJSON(b []byte) error { var n *float64 err := json.Unmarshal(b, &n) @@ -208,7 +213,6 @@ func (encodePlanTextInt64Valuer) Encode(value any, buf []byte) (newBuf []byte, e } func (Float8Codec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/hstore.go b/vendor/github.com/jackc/pgx/v5/pgtype/hstore.go index 2f34f4c9e..ef864928f 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/hstore.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/hstore.go @@ -22,16 +22,18 @@ type HstoreValuer interface { // associated with its keys. type Hstore map[string]*string +// ScanHstore implements the [HstoreScanner] interface. func (h *Hstore) ScanHstore(v Hstore) error { *h = v return nil } +// HstoreValue implements the [HstoreValuer] interface. func (h Hstore) HstoreValue() (Hstore, error) { return h, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (h *Hstore) Scan(src any) error { if src == nil { *h = nil @@ -46,7 +48,7 @@ func (h *Hstore) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (h Hstore) Value() (driver.Value, error) { if h == nil { return nil, nil @@ -162,7 +164,6 @@ func (encodePlanHstoreCodecText) Encode(value any, buf []byte) (newBuf []byte, e } func (HstoreCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { @@ -298,7 +299,7 @@ func (p *hstoreParser) consume() (b byte, end bool) { return b, false } -func unexpectedByteErr(actualB byte, expectedB byte) error { +func unexpectedByteErr(actualB, expectedB byte) error { return fmt.Errorf("expected '%c' ('%#v'); found '%c' ('%#v')", expectedB, expectedB, actualB, actualB) } @@ -316,7 +317,7 @@ func (p *hstoreParser) consumeExpectedByte(expectedB byte) error { // consumeExpected2 consumes two expected bytes or returns an error. // This was a bit faster than using a string argument (better inlining? Not sure). -func (p *hstoreParser) consumeExpected2(one byte, two byte) error { +func (p *hstoreParser) consumeExpected2(one, two byte) error { if p.pos+2 > len(p.str) { return errors.New("unexpected end of string") } diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/inet.go b/vendor/github.com/jackc/pgx/v5/pgtype/inet.go index 6ca10ea07..b92edb239 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/inet.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/inet.go @@ -24,7 +24,7 @@ type NetipPrefixValuer interface { NetipPrefixValue() (netip.Prefix, error) } -// InetCodec handles both inet and cidr PostgreSQL types. The preferred Go types are netip.Prefix and netip.Addr. If +// InetCodec handles both inet and cidr PostgreSQL types. The preferred Go types are [netip.Prefix] and [netip.Addr]. If // IsValid() is false then they are treated as SQL NULL. type InetCodec struct{} @@ -107,7 +107,6 @@ func (encodePlanInetCodecText) Encode(value any, buf []byte) (newBuf []byte, err } func (InetCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/int.go b/vendor/github.com/jackc/pgx/v5/pgtype/int.go index 7a2f8cb24..d1b8eb612 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/int.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/int.go @@ -26,7 +26,7 @@ type Int2 struct { Valid bool } -// ScanInt64 implements the Int64Scanner interface. +// ScanInt64 implements the [Int64Scanner] interface. func (dst *Int2) ScanInt64(n Int8) error { if !n.Valid { *dst = Int2{} @@ -44,11 +44,12 @@ func (dst *Int2) ScanInt64(n Int8) error { return nil } +// Int64Value implements the [Int64Valuer] interface. func (n Int2) Int64Value() (Int8, error) { return Int8{Int64: int64(n.Int16), Valid: n.Valid}, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Int2) Scan(src any) error { if src == nil { *dst = Int2{} @@ -87,7 +88,7 @@ func (dst *Int2) Scan(src any) error { return nil } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Int2) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -95,6 +96,7 @@ func (src Int2) Value() (driver.Value, error) { return int64(src.Int16), nil } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (src Int2) MarshalJSON() ([]byte, error) { if !src.Valid { return []byte("null"), nil @@ -102,6 +104,7 @@ func (src Int2) MarshalJSON() ([]byte, error) { return []byte(strconv.FormatInt(int64(src.Int16), 10)), nil } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (dst *Int2) UnmarshalJSON(b []byte) error { var n *int16 err := json.Unmarshal(b, &n) @@ -586,7 +589,7 @@ type Int4 struct { Valid bool } -// ScanInt64 implements the Int64Scanner interface. +// ScanInt64 implements the [Int64Scanner] interface. func (dst *Int4) ScanInt64(n Int8) error { if !n.Valid { *dst = Int4{} @@ -604,11 +607,12 @@ func (dst *Int4) ScanInt64(n Int8) error { return nil } +// Int64Value implements the [Int64Valuer] interface. func (n Int4) Int64Value() (Int8, error) { return Int8{Int64: int64(n.Int32), Valid: n.Valid}, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Int4) Scan(src any) error { if src == nil { *dst = Int4{} @@ -647,7 +651,7 @@ func (dst *Int4) Scan(src any) error { return nil } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Int4) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -655,6 +659,7 @@ func (src Int4) Value() (driver.Value, error) { return int64(src.Int32), nil } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (src Int4) MarshalJSON() ([]byte, error) { if !src.Valid { return []byte("null"), nil @@ -662,6 +667,7 @@ func (src Int4) MarshalJSON() ([]byte, error) { return []byte(strconv.FormatInt(int64(src.Int32), 10)), nil } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (dst *Int4) UnmarshalJSON(b []byte) error { var n *int32 err := json.Unmarshal(b, &n) @@ -1157,7 +1163,7 @@ type Int8 struct { Valid bool } -// ScanInt64 implements the Int64Scanner interface. +// ScanInt64 implements the [Int64Scanner] interface. func (dst *Int8) ScanInt64(n Int8) error { if !n.Valid { *dst = Int8{} @@ -1175,11 +1181,12 @@ func (dst *Int8) ScanInt64(n Int8) error { return nil } +// Int64Value implements the [Int64Valuer] interface. func (n Int8) Int64Value() (Int8, error) { return Int8{Int64: int64(n.Int64), Valid: n.Valid}, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Int8) Scan(src any) error { if src == nil { *dst = Int8{} @@ -1218,7 +1225,7 @@ func (dst *Int8) Scan(src any) error { return nil } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Int8) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -1226,6 +1233,7 @@ func (src Int8) Value() (driver.Value, error) { return int64(src.Int64), nil } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (src Int8) MarshalJSON() ([]byte, error) { if !src.Valid { return []byte("null"), nil @@ -1233,6 +1241,7 @@ func (src Int8) MarshalJSON() ([]byte, error) { return []byte(strconv.FormatInt(int64(src.Int64), 10)), nil } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (dst *Int8) UnmarshalJSON(b []byte) error { var n *int64 err := json.Unmarshal(b, &n) diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/int.go.erb b/vendor/github.com/jackc/pgx/v5/pgtype/int.go.erb index e0c8b7a3f..c2d40f60b 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/int.go.erb +++ b/vendor/github.com/jackc/pgx/v5/pgtype/int.go.erb @@ -27,7 +27,7 @@ type Int<%= pg_byte_size %> struct { Valid bool } -// ScanInt64 implements the Int64Scanner interface. +// ScanInt64 implements the [Int64Scanner] interface. func (dst *Int<%= pg_byte_size %>) ScanInt64(n Int8) error { if !n.Valid { *dst = Int<%= pg_byte_size %>{} @@ -45,11 +45,12 @@ func (dst *Int<%= pg_byte_size %>) ScanInt64(n Int8) error { return nil } +// Int64Value implements the [Int64Valuer] interface. func (n Int<%= pg_byte_size %>) Int64Value() (Int8, error) { return Int8{Int64: int64(n.Int<%= pg_bit_size %>), Valid: n.Valid}, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Int<%= pg_byte_size %>) Scan(src any) error { if src == nil { *dst = Int<%= pg_byte_size %>{} @@ -88,7 +89,7 @@ func (dst *Int<%= pg_byte_size %>) Scan(src any) error { return nil } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Int<%= pg_byte_size %>) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -96,6 +97,7 @@ func (src Int<%= pg_byte_size %>) Value() (driver.Value, error) { return int64(src.Int<%= pg_bit_size %>), nil } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (src Int<%= pg_byte_size %>) MarshalJSON() ([]byte, error) { if !src.Valid { return []byte("null"), nil @@ -103,6 +105,7 @@ func (src Int<%= pg_byte_size %>) MarshalJSON() ([]byte, error) { return []byte(strconv.FormatInt(int64(src.Int<%= pg_bit_size %>), 10)), nil } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (dst *Int<%= pg_byte_size %>) UnmarshalJSON(b []byte) error { var n *int<%= pg_bit_size %> err := json.Unmarshal(b, &n) diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/interval.go b/vendor/github.com/jackc/pgx/v5/pgtype/interval.go index 4b5116295..ba5e818f0 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/interval.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/interval.go @@ -33,16 +33,18 @@ type Interval struct { Valid bool } +// ScanInterval implements the [IntervalScanner] interface. func (interval *Interval) ScanInterval(v Interval) error { *interval = v return nil } +// IntervalValue implements the [IntervalValuer] interface. func (interval Interval) IntervalValue() (Interval, error) { return interval, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (interval *Interval) Scan(src any) error { if src == nil { *interval = Interval{} @@ -57,7 +59,7 @@ func (interval *Interval) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (interval Interval) Value() (driver.Value, error) { if !interval.Valid { return nil, nil @@ -157,7 +159,6 @@ func (encodePlanIntervalCodecText) Encode(value any, buf []byte) (newBuf []byte, } func (IntervalCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/line.go b/vendor/github.com/jackc/pgx/v5/pgtype/line.go index 4ae8003e8..10efc8ce7 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/line.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/line.go @@ -24,11 +24,13 @@ type Line struct { Valid bool } +// ScanLine implements the [LineScanner] interface. func (line *Line) ScanLine(v Line) error { *line = v return nil } +// LineValue implements the [LineValuer] interface. func (line Line) LineValue() (Line, error) { return line, nil } @@ -37,7 +39,7 @@ func (line *Line) Set(src any) error { return fmt.Errorf("cannot convert %v to Line", src) } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (line *Line) Scan(src any) error { if src == nil { *line = Line{} @@ -52,7 +54,7 @@ func (line *Line) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (line Line) Value() (driver.Value, error) { if !line.Valid { return nil, nil @@ -129,7 +131,6 @@ func (encodePlanLineCodecText) Encode(value any, buf []byte) (newBuf []byte, err } func (LineCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/lseg.go b/vendor/github.com/jackc/pgx/v5/pgtype/lseg.go index 05a86e1c8..ed0d40d2a 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/lseg.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/lseg.go @@ -24,16 +24,18 @@ type Lseg struct { Valid bool } +// ScanLseg implements the [LsegScanner] interface. func (lseg *Lseg) ScanLseg(v Lseg) error { *lseg = v return nil } +// LsegValue implements the [LsegValuer] interface. func (lseg Lseg) LsegValue() (Lseg, error) { return lseg, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (lseg *Lseg) Scan(src any) error { if src == nil { *lseg = Lseg{} @@ -48,7 +50,7 @@ func (lseg *Lseg) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (lseg Lseg) Value() (driver.Value, error) { if !lseg.Valid { return nil, nil @@ -127,7 +129,6 @@ func (encodePlanLsegCodecText) Encode(value any, buf []byte) (newBuf []byte, err } func (LsegCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/multirange.go b/vendor/github.com/jackc/pgx/v5/pgtype/multirange.go index e57637880..4fe6dd40d 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/multirange.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/multirange.go @@ -374,7 +374,6 @@ parseValueLoop: } return elements, nil - } func parseRange(buf *bytes.Buffer) (string, error) { @@ -403,8 +402,8 @@ func parseRange(buf *bytes.Buffer) (string, error) { // Multirange is a generic multirange type. // -// T should implement RangeValuer and *T should implement RangeScanner. However, there does not appear to be a way to -// enforce the RangeScanner constraint. +// T should implement [RangeValuer] and *T should implement [RangeScanner]. However, there does not appear to be a way to +// enforce the [RangeScanner] constraint. type Multirange[T RangeValuer] []T func (r Multirange[T]) IsNull() bool { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/numeric.go b/vendor/github.com/jackc/pgx/v5/pgtype/numeric.go index 4dbec7861..7d236902d 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/numeric.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/numeric.go @@ -27,16 +27,20 @@ const ( pgNumericNegInfSign = 0xf000 ) -var big0 *big.Int = big.NewInt(0) -var big1 *big.Int = big.NewInt(1) -var big10 *big.Int = big.NewInt(10) -var big100 *big.Int = big.NewInt(100) -var big1000 *big.Int = big.NewInt(1000) +var ( + big0 *big.Int = big.NewInt(0) + big1 *big.Int = big.NewInt(1) + big10 *big.Int = big.NewInt(10) + big100 *big.Int = big.NewInt(100) + big1000 *big.Int = big.NewInt(1000) +) -var bigNBase *big.Int = big.NewInt(nbase) -var bigNBaseX2 *big.Int = big.NewInt(nbase * nbase) -var bigNBaseX3 *big.Int = big.NewInt(nbase * nbase * nbase) -var bigNBaseX4 *big.Int = big.NewInt(nbase * nbase * nbase * nbase) +var ( + bigNBase *big.Int = big.NewInt(nbase) + bigNBaseX2 *big.Int = big.NewInt(nbase * nbase) + bigNBaseX3 *big.Int = big.NewInt(nbase * nbase * nbase) + bigNBaseX4 *big.Int = big.NewInt(nbase * nbase * nbase * nbase) +) type NumericScanner interface { ScanNumeric(v Numeric) error @@ -54,15 +58,18 @@ type Numeric struct { Valid bool } +// ScanNumeric implements the [NumericScanner] interface. func (n *Numeric) ScanNumeric(v Numeric) error { *n = v return nil } +// NumericValue implements the [NumericValuer] interface. func (n Numeric) NumericValue() (Numeric, error) { return n, nil } +// Float64Value implements the [Float64Valuer] interface. func (n Numeric) Float64Value() (Float8, error) { if !n.Valid { return Float8{}, nil @@ -92,6 +99,7 @@ func (n Numeric) Float64Value() (Float8, error) { return Float8{Float64: f, Valid: true}, nil } +// ScanInt64 implements the [Int64Scanner] interface. func (n *Numeric) ScanInt64(v Int8) error { if !v.Valid { *n = Numeric{} @@ -102,6 +110,7 @@ func (n *Numeric) ScanInt64(v Int8) error { return nil } +// Int64Value implements the [Int64Valuer] interface. func (n Numeric) Int64Value() (Int8, error) { if !n.Valid { return Int8{}, nil @@ -203,7 +212,7 @@ func nbaseDigitsToInt64(src []byte) (accum int64, bytesRead, digitsRead int) { return accum, rp, digits } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (n *Numeric) Scan(src any) error { if src == nil { *n = Numeric{} @@ -218,7 +227,7 @@ func (n *Numeric) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (n Numeric) Value() (driver.Value, error) { if !n.Valid { return nil, nil @@ -231,6 +240,7 @@ func (n Numeric) Value() (driver.Value, error) { return string(buf), err } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (n Numeric) MarshalJSON() ([]byte, error) { if !n.Valid { return []byte("null"), nil @@ -243,6 +253,7 @@ func (n Numeric) MarshalJSON() ([]byte, error) { return n.numberTextBytes(), nil } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (n *Numeric) UnmarshalJSON(src []byte) error { if bytes.Equal(src, []byte(`null`)) { *n = Numeric{} @@ -553,7 +564,6 @@ func encodeNumericText(n Numeric, buf []byte) (newBuf []byte, err error) { } func (NumericCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/path.go b/vendor/github.com/jackc/pgx/v5/pgtype/path.go index 73e0ec52f..81dc1e5b5 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/path.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/path.go @@ -25,16 +25,18 @@ type Path struct { Valid bool } +// ScanPath implements the [PathScanner] interface. func (path *Path) ScanPath(v Path) error { *path = v return nil } +// PathValue implements the [PathValuer] interface. func (path Path) PathValue() (Path, error) { return path, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (path *Path) Scan(src any) error { if src == nil { *path = Path{} @@ -49,7 +51,7 @@ func (path *Path) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (path Path) Value() (driver.Value, error) { if !path.Valid { return nil, nil @@ -154,7 +156,6 @@ func (encodePlanPathCodecText) Encode(value any, buf []byte) (newBuf []byte, err } func (PathCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/pgtype.go b/vendor/github.com/jackc/pgx/v5/pgtype/pgtype.go index 22cf66d84..b3ef32078 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/pgtype.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/pgtype.go @@ -2010,7 +2010,7 @@ var valuerReflectType = reflect.TypeFor[driver.Valuer]() // isNilDriverValuer returns true if value is any type of nil unless it implements driver.Valuer. *T is not considered to implement // driver.Valuer if it is only implemented by T. -func isNilDriverValuer(value any) (isNil bool, callNilDriverValuer bool) { +func isNilDriverValuer(value any) (isNil, callNilDriverValuer bool) { if value == nil { return true, false } diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/point.go b/vendor/github.com/jackc/pgx/v5/pgtype/point.go index 09b19bb53..b701513dc 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/point.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/point.go @@ -30,11 +30,13 @@ type Point struct { Valid bool } +// ScanPoint implements the [PointScanner] interface. func (p *Point) ScanPoint(v Point) error { *p = v return nil } +// PointValue implements the [PointValuer] interface. func (p Point) PointValue() (Point, error) { return p, nil } @@ -68,7 +70,7 @@ func parsePoint(src []byte) (*Point, error) { return &Point{P: Vec2{x, y}, Valid: true}, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Point) Scan(src any) error { if src == nil { *dst = Point{} @@ -83,7 +85,7 @@ func (dst *Point) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Point) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -96,6 +98,7 @@ func (src Point) Value() (driver.Value, error) { return string(buf), err } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (src Point) MarshalJSON() ([]byte, error) { if !src.Valid { return []byte("null"), nil @@ -108,6 +111,7 @@ func (src Point) MarshalJSON() ([]byte, error) { return buff.Bytes(), nil } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (dst *Point) UnmarshalJSON(point []byte) error { p, err := parsePoint(point) if err != nil { @@ -178,7 +182,6 @@ func (encodePlanPointCodecText) Encode(value any, buf []byte) (newBuf []byte, er } func (PointCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/polygon.go b/vendor/github.com/jackc/pgx/v5/pgtype/polygon.go index 04b0ba6b0..a84b25fe3 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/polygon.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/polygon.go @@ -24,16 +24,18 @@ type Polygon struct { Valid bool } +// ScanPolygon implements the [PolygonScanner] interface. func (p *Polygon) ScanPolygon(v Polygon) error { *p = v return nil } +// PolygonValue implements the [PolygonValuer] interface. func (p Polygon) PolygonValue() (Polygon, error) { return p, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (p *Polygon) Scan(src any) error { if src == nil { *p = Polygon{} @@ -48,7 +50,7 @@ func (p *Polygon) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (p Polygon) Value() (driver.Value, error) { if !p.Valid { return nil, nil @@ -139,7 +141,6 @@ func (encodePlanPolygonCodecText) Encode(value any, buf []byte) (newBuf []byte, } func (PolygonCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/range.go b/vendor/github.com/jackc/pgx/v5/pgtype/range.go index 16427cccd..62d699905 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/range.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/range.go @@ -191,11 +191,13 @@ type untypedBinaryRange struct { // 18 = [ = 10010 // 24 = = 11000 -const emptyMask = 1 -const lowerInclusiveMask = 2 -const upperInclusiveMask = 4 -const lowerUnboundedMask = 8 -const upperUnboundedMask = 16 +const ( + emptyMask = 1 + lowerInclusiveMask = 2 + upperInclusiveMask = 4 + lowerUnboundedMask = 8 + upperUnboundedMask = 16 +) func parseUntypedBinaryRange(src []byte) (*untypedBinaryRange, error) { ubr := &untypedBinaryRange{} @@ -273,7 +275,6 @@ func parseUntypedBinaryRange(src []byte) (*untypedBinaryRange, error) { } return ubr, nil - } // Range is a generic range type. diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/record_codec.go b/vendor/github.com/jackc/pgx/v5/pgtype/record_codec.go index b3b166045..90b9bd4bb 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/record_codec.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/record_codec.go @@ -121,5 +121,4 @@ func (RecordCodec) DecodeValue(m *Map, oid uint32, format int16, src []byte) (an default: return nil, fmt.Errorf("unknown format code %d", format) } - } diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/text.go b/vendor/github.com/jackc/pgx/v5/pgtype/text.go index 021ee331b..e08b12549 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/text.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/text.go @@ -19,16 +19,18 @@ type Text struct { Valid bool } +// ScanText implements the [TextScanner] interface. func (t *Text) ScanText(v Text) error { *t = v return nil } +// TextValue implements the [TextValuer] interface. func (t Text) TextValue() (Text, error) { return t, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Text) Scan(src any) error { if src == nil { *dst = Text{} @@ -47,7 +49,7 @@ func (dst *Text) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Text) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -55,6 +57,7 @@ func (src Text) Value() (driver.Value, error) { return src.String, nil } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (src Text) MarshalJSON() ([]byte, error) { if !src.Valid { return []byte("null"), nil @@ -63,6 +66,7 @@ func (src Text) MarshalJSON() ([]byte, error) { return json.Marshal(src.String) } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (dst *Text) UnmarshalJSON(b []byte) error { var s *string err := json.Unmarshal(b, &s) @@ -146,7 +150,6 @@ func (encodePlanTextCodecTextValuer) Encode(value any, buf []byte) (newBuf []byt } func (TextCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case TextFormatCode, BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/tid.go b/vendor/github.com/jackc/pgx/v5/pgtype/tid.go index 9bc2c2a14..05c9e6d98 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/tid.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/tid.go @@ -35,16 +35,18 @@ type TID struct { Valid bool } +// ScanTID implements the [TIDScanner] interface. func (b *TID) ScanTID(v TID) error { *b = v return nil } +// TIDValue implements the [TIDValuer] interface. func (b TID) TIDValue() (TID, error) { return b, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *TID) Scan(src any) error { if src == nil { *dst = TID{} @@ -59,7 +61,7 @@ func (dst *TID) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src TID) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -131,7 +133,6 @@ func (encodePlanTIDCodecText) Encode(value any, buf []byte) (newBuf []byte, err } func (TIDCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/time.go b/vendor/github.com/jackc/pgx/v5/pgtype/time.go index f8fd94891..4b8f69083 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/time.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/time.go @@ -29,16 +29,18 @@ type Time struct { Valid bool } +// ScanTime implements the [TimeScanner] interface. func (t *Time) ScanTime(v Time) error { *t = v return nil } +// TimeValue implements the [TimeValuer] interface. func (t Time) TimeValue() (Time, error) { return t, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (t *Time) Scan(src any) error { if src == nil { *t = Time{} @@ -58,7 +60,7 @@ func (t *Time) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (t Time) Value() (driver.Value, error) { if !t.Valid { return nil, nil @@ -137,7 +139,6 @@ func (encodePlanTimeCodecText) Encode(value any, buf []byte) (newBuf []byte, err } func (TimeCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/timestamp.go b/vendor/github.com/jackc/pgx/v5/pgtype/timestamp.go index c31f2ac53..861fa8838 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/timestamp.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/timestamp.go @@ -11,8 +11,10 @@ import ( "github.com/jackc/pgx/v5/internal/pgio" ) -const pgTimestampFormat = "2006-01-02 15:04:05.999999999" -const jsonISO8601 = "2006-01-02T15:04:05.999999999" +const ( + pgTimestampFormat = "2006-01-02 15:04:05.999999999" + jsonISO8601 = "2006-01-02T15:04:05.999999999" +) type TimestampScanner interface { ScanTimestamp(v Timestamp) error @@ -29,16 +31,18 @@ type Timestamp struct { Valid bool } +// ScanTimestamp implements the [TimestampScanner] interface. func (ts *Timestamp) ScanTimestamp(v Timestamp) error { *ts = v return nil } +// TimestampValue implements the [TimestampValuer] interface. func (ts Timestamp) TimestampValue() (Timestamp, error) { return ts, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (ts *Timestamp) Scan(src any) error { if src == nil { *ts = Timestamp{} @@ -56,7 +60,7 @@ func (ts *Timestamp) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (ts Timestamp) Value() (driver.Value, error) { if !ts.Valid { return nil, nil @@ -68,6 +72,7 @@ func (ts Timestamp) Value() (driver.Value, error) { return ts.Time, nil } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (ts Timestamp) MarshalJSON() ([]byte, error) { if !ts.Valid { return []byte("null"), nil @@ -87,6 +92,7 @@ func (ts Timestamp) MarshalJSON() ([]byte, error) { return json.Marshal(s) } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (ts *Timestamp) UnmarshalJSON(b []byte) error { var s *string err := json.Unmarshal(b, &s) diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/timestamptz.go b/vendor/github.com/jackc/pgx/v5/pgtype/timestamptz.go index 7efbcffd2..5d67e47f8 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/timestamptz.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/timestamptz.go @@ -11,10 +11,12 @@ import ( "github.com/jackc/pgx/v5/internal/pgio" ) -const pgTimestamptzHourFormat = "2006-01-02 15:04:05.999999999Z07" -const pgTimestamptzMinuteFormat = "2006-01-02 15:04:05.999999999Z07:00" -const pgTimestamptzSecondFormat = "2006-01-02 15:04:05.999999999Z07:00:00" -const microsecFromUnixEpochToY2K = 946684800 * 1000000 +const ( + pgTimestamptzHourFormat = "2006-01-02 15:04:05.999999999Z07" + pgTimestamptzMinuteFormat = "2006-01-02 15:04:05.999999999Z07:00" + pgTimestamptzSecondFormat = "2006-01-02 15:04:05.999999999Z07:00:00" + microsecFromUnixEpochToY2K = 946684800 * 1000000 +) const ( negativeInfinityMicrosecondOffset = -9223372036854775808 @@ -36,16 +38,18 @@ type Timestamptz struct { Valid bool } +// ScanTimestamptz implements the [TimestamptzScanner] interface. func (tstz *Timestamptz) ScanTimestamptz(v Timestamptz) error { *tstz = v return nil } +// TimestamptzValue implements the [TimestamptzValuer] interface. func (tstz Timestamptz) TimestamptzValue() (Timestamptz, error) { return tstz, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (tstz *Timestamptz) Scan(src any) error { if src == nil { *tstz = Timestamptz{} @@ -63,7 +67,7 @@ func (tstz *Timestamptz) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (tstz Timestamptz) Value() (driver.Value, error) { if !tstz.Valid { return nil, nil @@ -75,6 +79,7 @@ func (tstz Timestamptz) Value() (driver.Value, error) { return tstz.Time, nil } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (tstz Timestamptz) MarshalJSON() ([]byte, error) { if !tstz.Valid { return []byte("null"), nil @@ -94,6 +99,7 @@ func (tstz Timestamptz) MarshalJSON() ([]byte, error) { return json.Marshal(s) } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (tstz *Timestamptz) UnmarshalJSON(b []byte) error { var s *string err := json.Unmarshal(b, &s) @@ -225,7 +231,6 @@ func (encodePlanTimestamptzCodecText) Encode(value any, buf []byte) (newBuf []by } func (c *TimestamptzCodec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/uint32.go b/vendor/github.com/jackc/pgx/v5/pgtype/uint32.go index f2b2fa6d4..e6d4b1cf6 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/uint32.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/uint32.go @@ -3,6 +3,7 @@ package pgtype import ( "database/sql/driver" "encoding/binary" + "encoding/json" "fmt" "math" "strconv" @@ -24,16 +25,18 @@ type Uint32 struct { Valid bool } +// ScanUint32 implements the [Uint32Scanner] interface. func (n *Uint32) ScanUint32(v Uint32) error { *n = v return nil } +// Uint32Value implements the [Uint32Valuer] interface. func (n Uint32) Uint32Value() (Uint32, error) { return n, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Uint32) Scan(src any) error { if src == nil { *dst = Uint32{} @@ -67,7 +70,7 @@ func (dst *Uint32) Scan(src any) error { return nil } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Uint32) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -75,6 +78,31 @@ func (src Uint32) Value() (driver.Value, error) { return int64(src.Uint32), nil } +// MarshalJSON implements the [encoding/json.Marshaler] interface. +func (src Uint32) MarshalJSON() ([]byte, error) { + if !src.Valid { + return []byte("null"), nil + } + return json.Marshal(src.Uint32) +} + +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. +func (dst *Uint32) UnmarshalJSON(b []byte) error { + var n *uint32 + err := json.Unmarshal(b, &n) + if err != nil { + return err + } + + if n == nil { + *dst = Uint32{} + } else { + *dst = Uint32{Uint32: *n, Valid: true} + } + + return nil +} + type Uint32Codec struct{} func (Uint32Codec) FormatSupported(format int16) bool { @@ -197,7 +225,6 @@ func (encodePlanUint32CodecTextInt64Valuer) Encode(value any, buf []byte) (newBu } func (Uint32Codec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/uint64.go b/vendor/github.com/jackc/pgx/v5/pgtype/uint64.go index dd2130ebc..68fd16613 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/uint64.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/uint64.go @@ -24,16 +24,18 @@ type Uint64 struct { Valid bool } +// ScanUint64 implements the [Uint64Scanner] interface. func (n *Uint64) ScanUint64(v Uint64) error { *n = v return nil } +// Uint64Value implements the [Uint64Valuer] interface. func (n Uint64) Uint64Value() (Uint64, error) { return n, nil } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *Uint64) Scan(src any) error { if src == nil { *dst = Uint64{} @@ -63,7 +65,7 @@ func (dst *Uint64) Scan(src any) error { return nil } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src Uint64) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -194,7 +196,6 @@ func (encodePlanUint64CodecTextInt64Valuer) Encode(value any, buf []byte) (newBu } func (Uint64Codec) PlanScan(m *Map, oid uint32, format int16, target any) ScanPlan { - switch format { case BinaryFormatCode: switch target.(type) { diff --git a/vendor/github.com/jackc/pgx/v5/pgtype/uuid.go b/vendor/github.com/jackc/pgx/v5/pgtype/uuid.go index 0628f193f..83d0c4127 100644 --- a/vendor/github.com/jackc/pgx/v5/pgtype/uuid.go +++ b/vendor/github.com/jackc/pgx/v5/pgtype/uuid.go @@ -20,11 +20,13 @@ type UUID struct { Valid bool } +// ScanUUID implements the [UUIDScanner] interface. func (b *UUID) ScanUUID(v UUID) error { *b = v return nil } +// UUIDValue implements the [UUIDValuer] interface. func (b UUID) UUIDValue() (UUID, error) { return b, nil } @@ -67,7 +69,7 @@ func encodeUUID(src [16]byte) string { return string(buf[:]) } -// Scan implements the database/sql Scanner interface. +// Scan implements the [database/sql.Scanner] interface. func (dst *UUID) Scan(src any) error { if src == nil { *dst = UUID{} @@ -87,7 +89,7 @@ func (dst *UUID) Scan(src any) error { return fmt.Errorf("cannot scan %T", src) } -// Value implements the database/sql/driver Valuer interface. +// Value implements the [database/sql/driver.Valuer] interface. func (src UUID) Value() (driver.Value, error) { if !src.Valid { return nil, nil @@ -104,6 +106,7 @@ func (src UUID) String() string { return encodeUUID(src.Bytes) } +// MarshalJSON implements the [encoding/json.Marshaler] interface. func (src UUID) MarshalJSON() ([]byte, error) { if !src.Valid { return []byte("null"), nil @@ -116,6 +119,7 @@ func (src UUID) MarshalJSON() ([]byte, error) { return buff.Bytes(), nil } +// UnmarshalJSON implements the [encoding/json.Unmarshaler] interface. func (dst *UUID) UnmarshalJSON(src []byte) error { if bytes.Equal(src, []byte("null")) { *dst = UUID{} diff --git a/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go b/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go index e22ed289a..addfb412f 100644 --- a/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go +++ b/vendor/github.com/jackc/pgx/v5/pgxpool/pool.go @@ -2,7 +2,7 @@ package pgxpool import ( "context" - "fmt" + "errors" "math/rand" "runtime" "strconv" @@ -15,12 +15,14 @@ import ( "github.com/jackc/puddle/v2" ) -var defaultMaxConns = int32(4) -var defaultMinConns = int32(0) -var defaultMinIdleConns = int32(0) -var defaultMaxConnLifetime = time.Hour -var defaultMaxConnIdleTime = time.Minute * 30 -var defaultHealthCheckPeriod = time.Minute +var ( + defaultMaxConns = int32(4) + defaultMinConns = int32(0) + defaultMinIdleConns = int32(0) + defaultMaxConnLifetime = time.Hour + defaultMaxConnIdleTime = time.Minute * 30 + defaultHealthCheckPeriod = time.Minute +) type connResource struct { conn *pgx.Conn @@ -84,9 +86,10 @@ type Pool struct { config *Config beforeConnect func(context.Context, *pgx.ConnConfig) error afterConnect func(context.Context, *pgx.Conn) error - beforeAcquire func(context.Context, *pgx.Conn) bool + prepareConn func(context.Context, *pgx.Conn) (bool, error) afterRelease func(*pgx.Conn) bool beforeClose func(*pgx.Conn) + shouldPing func(context.Context, ShouldPingParams) bool minConns int32 minIdleConns int32 maxConns int32 @@ -104,6 +107,12 @@ type Pool struct { closeChan chan struct{} } +// ShouldPingParams are the parameters passed to ShouldPing. +type ShouldPingParams struct { + Conn *pgx.Conn + IdleDuration time.Duration +} + // Config is the configuration struct for creating a pool. It must be created by [ParseConfig] and then it can be // modified. type Config struct { @@ -119,8 +128,23 @@ type Config struct { // BeforeAcquire is called before a connection is acquired from the pool. It must return true to allow the // acquisition or false to indicate that the connection should be destroyed and a different connection should be // acquired. + // + // Deprecated: Use PrepareConn instead. If both PrepareConn and BeforeAcquire are set, PrepareConn will take + // precedence, ignoring BeforeAcquire. BeforeAcquire func(context.Context, *pgx.Conn) bool + // PrepareConn is called before a connection is acquired from the pool. If this function returns true, the connection + // is considered valid, otherwise the connection is destroyed. If the function returns a non-nil error, the instigating + // query will fail with the returned error. + // + // Specifically, this means that: + // + // - If it returns true and a nil error, the query proceeds as normal. + // - If it returns true and an error, the connection will be returned to the pool, and the instigating query will fail with the returned error. + // - If it returns false, and an error, the connection will be destroyed, and the query will fail with the returned error. + // - If it returns false and a nil error, the connection will be destroyed, and the instigating query will be retried on a new connection. + PrepareConn func(context.Context, *pgx.Conn) (bool, error) + // AfterRelease is called after a connection is released, but before it is returned to the pool. It must return true to // return the connection to the pool or false to destroy the connection. AfterRelease func(*pgx.Conn) bool @@ -128,6 +152,10 @@ type Config struct { // BeforeClose is called right before a connection is closed and removed from the pool. BeforeClose func(*pgx.Conn) + // ShouldPing is called after a connection is acquired from the pool. If it returns true, the connection is pinged to check for liveness. + // If this func is not set, the default behavior is to ping connections that have been idle for at least 1 second. + ShouldPing func(context.Context, ShouldPingParams) bool + // MaxConnLifetime is the duration since creation after which a connection will be automatically closed. MaxConnLifetime time.Duration @@ -190,11 +218,18 @@ func NewWithConfig(ctx context.Context, config *Config) (*Pool, error) { panic("config must be created by ParseConfig") } + prepareConn := config.PrepareConn + if prepareConn == nil && config.BeforeAcquire != nil { + prepareConn = func(ctx context.Context, conn *pgx.Conn) (bool, error) { + return config.BeforeAcquire(ctx, conn), nil + } + } + p := &Pool{ config: config, beforeConnect: config.BeforeConnect, afterConnect: config.AfterConnect, - beforeAcquire: config.BeforeAcquire, + prepareConn: prepareConn, afterRelease: config.AfterRelease, beforeClose: config.BeforeClose, minConns: config.MinConns, @@ -216,6 +251,14 @@ func NewWithConfig(ctx context.Context, config *Config) (*Pool, error) { p.releaseTracer = t } + if config.ShouldPing != nil { + p.shouldPing = config.ShouldPing + } else { + p.shouldPing = func(ctx context.Context, params ShouldPingParams) bool { + return params.IdleDuration > time.Second + } + } + var err error p.p, err = puddle.NewPool( &puddle.Config[*connResource]{ @@ -321,10 +364,10 @@ func ParseConfig(connString string) (*Config, error) { delete(connConfig.Config.RuntimeParams, "pool_max_conns") n, err := strconv.ParseInt(s, 10, 32) if err != nil { - return nil, fmt.Errorf("cannot parse pool_max_conns: %w", err) + return nil, pgconn.NewParseConfigError(connString, "cannot parse pool_max_conns", err) } if n < 1 { - return nil, fmt.Errorf("pool_max_conns too small: %d", n) + return nil, pgconn.NewParseConfigError(connString, "pool_max_conns too small", err) } config.MaxConns = int32(n) } else { @@ -338,7 +381,7 @@ func ParseConfig(connString string) (*Config, error) { delete(connConfig.Config.RuntimeParams, "pool_min_conns") n, err := strconv.ParseInt(s, 10, 32) if err != nil { - return nil, fmt.Errorf("cannot parse pool_min_conns: %w", err) + return nil, pgconn.NewParseConfigError(connString, "cannot parse pool_min_conns", err) } config.MinConns = int32(n) } else { @@ -349,7 +392,7 @@ func ParseConfig(connString string) (*Config, error) { delete(connConfig.Config.RuntimeParams, "pool_min_idle_conns") n, err := strconv.ParseInt(s, 10, 32) if err != nil { - return nil, fmt.Errorf("cannot parse pool_min_idle_conns: %w", err) + return nil, pgconn.NewParseConfigError(connString, "cannot parse pool_min_idle_conns", err) } config.MinIdleConns = int32(n) } else { @@ -360,7 +403,7 @@ func ParseConfig(connString string) (*Config, error) { delete(connConfig.Config.RuntimeParams, "pool_max_conn_lifetime") d, err := time.ParseDuration(s) if err != nil { - return nil, fmt.Errorf("invalid pool_max_conn_lifetime: %w", err) + return nil, pgconn.NewParseConfigError(connString, "cannot parse pool_max_conn_lifetime", err) } config.MaxConnLifetime = d } else { @@ -371,7 +414,7 @@ func ParseConfig(connString string) (*Config, error) { delete(connConfig.Config.RuntimeParams, "pool_max_conn_idle_time") d, err := time.ParseDuration(s) if err != nil { - return nil, fmt.Errorf("invalid pool_max_conn_idle_time: %w", err) + return nil, pgconn.NewParseConfigError(connString, "cannot parse pool_max_conn_idle_time", err) } config.MaxConnIdleTime = d } else { @@ -382,7 +425,7 @@ func ParseConfig(connString string) (*Config, error) { delete(connConfig.Config.RuntimeParams, "pool_health_check_period") d, err := time.ParseDuration(s) if err != nil { - return nil, fmt.Errorf("invalid pool_health_check_period: %w", err) + return nil, pgconn.NewParseConfigError(connString, "cannot parse pool_health_check_period", err) } config.HealthCheckPeriod = d } else { @@ -393,7 +436,7 @@ func ParseConfig(connString string) (*Config, error) { delete(connConfig.Config.RuntimeParams, "pool_max_conn_lifetime_jitter") d, err := time.ParseDuration(s) if err != nil { - return nil, fmt.Errorf("invalid pool_max_conn_lifetime_jitter: %w", err) + return nil, pgconn.NewParseConfigError(connString, "cannot parse pool_max_conn_lifetime_jitter", err) } config.MaxConnLifetimeJitter = d } @@ -545,7 +588,10 @@ func (p *Pool) Acquire(ctx context.Context) (c *Conn, err error) { }() } - for { + // Try to acquire from the connection pool up to maxConns + 1 times, so that + // any that fatal errors would empty the pool and still at least try 1 fresh + // connection. + for range p.maxConns + 1 { res, err := p.p.Acquire(ctx) if err != nil { return nil, err @@ -553,7 +599,8 @@ func (p *Pool) Acquire(ctx context.Context) (c *Conn, err error) { cr := res.Value() - if res.IdleDuration() > time.Second { + shouldPingParams := ShouldPingParams{Conn: cr.conn, IdleDuration: res.IdleDuration()} + if p.shouldPing(ctx, shouldPingParams) { err := cr.conn.Ping(ctx) if err != nil { res.Destroy() @@ -561,12 +608,25 @@ func (p *Pool) Acquire(ctx context.Context) (c *Conn, err error) { } } - if p.beforeAcquire == nil || p.beforeAcquire(ctx, cr.conn) { - return cr.getConn(p, res), nil + if p.prepareConn != nil { + ok, err := p.prepareConn(ctx, cr.conn) + if !ok { + res.Destroy() + } + if err != nil { + if ok { + res.Release() + } + return nil, err + } + if !ok { + continue + } } - res.Destroy() + return cr.getConn(p, res), nil } + return nil, errors.New("pgxpool: detected infinite loop acquiring connection; likely bug in PrepareConn or BeforeAcquire hook") } // AcquireFunc acquires a *Conn and calls f with that *Conn. ctx will only affect the Acquire. It has no effect on the @@ -589,11 +649,14 @@ func (p *Pool) AcquireAllIdle(ctx context.Context) []*Conn { conns := make([]*Conn, 0, len(resources)) for _, res := range resources { cr := res.Value() - if p.beforeAcquire == nil || p.beforeAcquire(ctx, cr.conn) { - conns = append(conns, cr.getConn(p, res)) - } else { - res.Destroy() + if p.prepareConn != nil { + ok, err := p.prepareConn(ctx, cr.conn) + if !ok || err != nil { + res.Destroy() + continue + } } + conns = append(conns, cr.getConn(p, res)) } return conns diff --git a/vendor/github.com/jackc/pgx/v5/rows.go b/vendor/github.com/jackc/pgx/v5/rows.go index 3e64a3adb..a5725fdd4 100644 --- a/vendor/github.com/jackc/pgx/v5/rows.go +++ b/vendor/github.com/jackc/pgx/v5/rows.go @@ -41,22 +41,19 @@ type Rows interface { // when there was an error executing the query. FieldDescriptions() []pgconn.FieldDescription - // Next prepares the next row for reading. It returns true if there is another - // row and false if no more rows are available or a fatal error has occurred. - // It automatically closes rows when all rows are read. + // Next prepares the next row for reading. It returns true if there is another row and false if no more rows are + // available or a fatal error has occurred. It automatically closes rows upon returning false (whether due to all rows + // having been read or due to an error). // - // Callers should check rows.Err() after rows.Next() returns false to detect - // whether result-set reading ended prematurely due to an error. See - // Conn.Query for details. + // Callers should check rows.Err() after rows.Next() returns false to detect whether result-set reading ended + // prematurely due to an error. See Conn.Query for details. // - // For simpler error handling, consider using the higher-level pgx v5 - // CollectRows() and ForEachRow() helpers instead. + // For simpler error handling, consider using the higher-level pgx v5 CollectRows() and ForEachRow() helpers instead. Next() bool - // Scan reads the values from the current row into dest values positionally. - // dest can include pointers to core types, values implementing the Scanner - // interface, and nil. nil will skip the value entirely. It is an error to - // call Scan without first calling Next() and checking that it returned true. + // Scan reads the values from the current row into dest values positionally. dest can include pointers to core types, + // values implementing the Scanner interface, and nil. nil will skip the value entirely. It is an error to call Scan + // without first calling Next() and checking that it returned true. Rows is automatically closed upon error. Scan(dest ...any) error // Values returns the decoded row values. As with Scan(), it is an error to @@ -563,7 +560,7 @@ func (rs *mapRowScanner) ScanRow(rows Rows) error { return nil } -// RowToStructByPos returns a T scanned from row. T must be a struct. T must have the same number a public fields as row +// RowToStructByPos returns a T scanned from row. T must be a struct. T must have the same number of public fields as row // has fields. The row and T fields will be matched by position. If the "db" struct tag is "-" then the field will be // ignored. func RowToStructByPos[T any](row CollectableRow) (T, error) { diff --git a/vendor/github.com/jackc/pgx/v5/stdlib/sql.go b/vendor/github.com/jackc/pgx/v5/stdlib/sql.go index 4924fe41a..939b9636d 100644 --- a/vendor/github.com/jackc/pgx/v5/stdlib/sql.go +++ b/vendor/github.com/jackc/pgx/v5/stdlib/sql.go @@ -471,7 +471,8 @@ func (c *Conn) ExecContext(ctx context.Context, query string, argsV []driver.Nam return nil, driver.ErrBadConn } - args := namedValueToInterface(argsV) + args := make([]any, len(argsV)) + convertNamedArguments(args, argsV) commandTag, err := c.conn.Exec(ctx, query, args...) // if we got a network error before we had a chance to send the query, retry @@ -488,8 +489,9 @@ func (c *Conn) QueryContext(ctx context.Context, query string, argsV []driver.Na return nil, driver.ErrBadConn } - args := []any{databaseSQLResultFormats} - args = append(args, namedValueToInterface(argsV)...) + args := make([]any, 1+len(argsV)) + args[0] = databaseSQLResultFormats + convertNamedArguments(args[1:], argsV) rows, err := c.conn.Query(ctx, query, args...) if err != nil { @@ -848,28 +850,14 @@ func (r *Rows) Next(dest []driver.Value) error { return nil } -func valueToInterface(argsV []driver.Value) []any { - args := make([]any, 0, len(argsV)) - for _, v := range argsV { - if v != nil { - args = append(args, v.(any)) - } else { - args = append(args, nil) - } - } - return args -} - -func namedValueToInterface(argsV []driver.NamedValue) []any { - args := make([]any, 0, len(argsV)) - for _, v := range argsV { +func convertNamedArguments(args []any, argsV []driver.NamedValue) { + for i, v := range argsV { if v.Value != nil { - args = append(args, v.Value.(any)) + args[i] = v.Value.(any) } else { - args = append(args, nil) + args[i] = nil } } - return args } type wrapTx struct { diff --git a/vendor/github.com/ncruces/go-sqlite3/embed/build.sh b/vendor/github.com/ncruces/go-sqlite3/embed/build.sh index e078c1065..85a9e4de9 100644 --- a/vendor/github.com/ncruces/go-sqlite3/embed/build.sh +++ b/vendor/github.com/ncruces/go-sqlite3/embed/build.sh @@ -27,8 +27,9 @@ trap 'rm -f sqlite3.tmp' EXIT $(awk '{print "-Wl,--export="$0}' exports.txt) "$BINARYEN/wasm-ctor-eval" -g -c _initialize sqlite3.wasm -o sqlite3.tmp -"$BINARYEN/wasm-opt" -g --strip --strip-producers -c -O3 \ - sqlite3.tmp -o sqlite3.wasm --low-memory-unused \ +"$BINARYEN/wasm-opt" -g sqlite3.tmp -o sqlite3.wasm \ + --low-memory-unused --gufa --generate-global-effects --converge -O3 \ --enable-mutable-globals --enable-nontrapping-float-to-int \ --enable-simd --enable-bulk-memory --enable-sign-ext \ - --enable-reference-types --enable-multivalue \ No newline at end of file + --enable-reference-types --enable-multivalue \ + --strip --strip-producers \ No newline at end of file diff --git a/vendor/github.com/ncruces/go-sqlite3/embed/sqlite3.wasm b/vendor/github.com/ncruces/go-sqlite3/embed/sqlite3.wasm index f8c8f5f8655047ed15018f69103fedfe1c5bdcde..e44b2cc9f5893fe9c5a3bb5ff30cf2f5d4f3e10d 100644 GIT binary patch delta 248347 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

_$SD+AQ}%#VWu;V29tUQ?w3v8}_?mjw+Pd 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

~`2&>$bdLiQxsg{dmyZc?=g5Os$eV;X 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

kIbxf6UmudeZ^^MQpYH>Vf_`_O_mPkbg9L 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 diff --git a/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_unix.go b/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_unix.go index a00dbbf24..203d8471a 100644 --- a/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_unix.go +++ b/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_unix.go @@ -9,24 +9,31 @@ import ( "golang.org/x/sys/unix" ) -func NewMemory(_, max uint64) experimental.LinearMemory { +func NewMemory(cap, max uint64) experimental.LinearMemory { // Round up to the page size. rnd := uint64(unix.Getpagesize() - 1) - max = (max + rnd) &^ rnd + res := (max + rnd) &^ rnd - if max > math.MaxInt { - // This ensures int(max) overflows to a negative value, + if res > math.MaxInt { + // This ensures int(res) overflows to a negative value, // and unix.Mmap returns EINVAL. - max = math.MaxUint64 + res = math.MaxUint64 } - // Reserve max bytes of address space, to ensure we won't need to move it. + com := res + prot := unix.PROT_READ | unix.PROT_WRITE + if cap < max { // Commit memory only if cap=max. + com = 0 + prot = unix.PROT_NONE + } + + // Reserve res bytes of address space, to ensure we won't need to move it. // A protected, private, anonymous mapping should not commit memory. - b, err := unix.Mmap(-1, 0, int(max), unix.PROT_NONE, unix.MAP_PRIVATE|unix.MAP_ANON) + b, err := unix.Mmap(-1, 0, int(res), prot, unix.MAP_PRIVATE|unix.MAP_ANON) if err != nil { panic(err) } - return &mmappedMemory{buf: b[:0]} + return &mmappedMemory{buf: b[:com]} } // The slice covers the entire mmapped memory: @@ -40,9 +47,11 @@ func (m *mmappedMemory) Reallocate(size uint64) []byte { com := uint64(len(m.buf)) res := uint64(cap(m.buf)) if com < size && size <= res { - // Round up to the page size. + // Grow geometrically, round up to the page size. rnd := uint64(unix.Getpagesize() - 1) - new := (size + rnd) &^ rnd + new := com + com>>3 + new = min(max(size, new), res) + new = (new + rnd) &^ rnd // Commit additional memory up to new bytes. err := unix.Mprotect(m.buf[com:new], unix.PROT_READ|unix.PROT_WRITE) @@ -50,8 +59,7 @@ func (m *mmappedMemory) Reallocate(size uint64) []byte { return nil } - // Update committed memory. - m.buf = m.buf[:new] + m.buf = m.buf[:new] // Update committed memory. } // Limit returned capacity because bytes beyond // len(m.buf) have not yet been committed. diff --git a/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_windows.go b/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_windows.go index 6bfc73a0c..ef83f0184 100644 --- a/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_windows.go +++ b/vendor/github.com/ncruces/go-sqlite3/internal/alloc/alloc_windows.go @@ -9,20 +9,26 @@ import ( "golang.org/x/sys/windows" ) -func NewMemory(_, max uint64) experimental.LinearMemory { +func NewMemory(cap, max uint64) experimental.LinearMemory { // Round up to the page size. rnd := uint64(windows.Getpagesize() - 1) - max = (max + rnd) &^ rnd + res := (max + rnd) &^ rnd - if max > math.MaxInt { - // This ensures uintptr(max) overflows to a large value, + if res > math.MaxInt { + // This ensures uintptr(res) overflows to a large value, // and windows.VirtualAlloc returns an error. - max = math.MaxUint64 + res = math.MaxUint64 } - // Reserve max bytes of address space, to ensure we won't need to move it. - // This does not commit memory. - r, err := windows.VirtualAlloc(0, uintptr(max), windows.MEM_RESERVE, windows.PAGE_READWRITE) + com := res + kind := windows.MEM_COMMIT + if cap < max { // Commit memory only if cap=max. + com = 0 + kind = windows.MEM_RESERVE + } + + // Reserve res bytes of address space, to ensure we won't need to move it. + r, err := windows.VirtualAlloc(0, uintptr(res), uint32(kind), windows.PAGE_READWRITE) if err != nil { panic(err) } @@ -30,8 +36,9 @@ func NewMemory(_, max uint64) experimental.LinearMemory { mem := virtualMemory{addr: r} // SliceHeader, although deprecated, avoids a go vet warning. sh := (*reflect.SliceHeader)(unsafe.Pointer(&mem.buf)) - sh.Cap = int(max) sh.Data = r + sh.Len = int(com) + sh.Cap = int(res) return &mem } @@ -47,9 +54,11 @@ func (m *virtualMemory) Reallocate(size uint64) []byte { com := uint64(len(m.buf)) res := uint64(cap(m.buf)) if com < size && size <= res { - // Round up to the page size. + // Grow geometrically, round up to the page size. rnd := uint64(windows.Getpagesize() - 1) - new := (size + rnd) &^ rnd + new := com + com>>3 + new = min(max(size, new), res) + new = (new + rnd) &^ rnd // Commit additional memory up to new bytes. _, err := windows.VirtualAlloc(m.addr, uintptr(new), windows.MEM_COMMIT, windows.PAGE_READWRITE) @@ -57,8 +66,7 @@ func (m *virtualMemory) Reallocate(size uint64) []byte { return nil } - // Update committed memory. - m.buf = m.buf[:new] + m.buf = m.buf[:new] // Update committed memory. } // Limit returned capacity because bytes beyond // len(m.buf) have not yet been committed. diff --git a/vendor/github.com/ncruces/go-sqlite3/util/sql3util/wasm/sql3parse_table.wasm b/vendor/github.com/ncruces/go-sqlite3/util/sql3util/wasm/sql3parse_table.wasm index 996541e7648aafcf9e5f0a9b6dec9c2d1cf2a9f2..824a7bf9782bedc75aebe874480832c85cd43ecd 100644 GIT binary patch delta 189 zcmZp#{aZ63pYig>0&`Kucbiv;`Z3CzF)=vyG_yD!_`wWjwzD`MgfKhWSrpkf3yL#| zGJf4GqQl3^=rCE?P!G1_g#c+zi|bjGJSPCUXm~W#lhOEJ{x;iBC&SEGaEYE#{ic gY}X>8EtZ^^lcSrNmy%hOnp~orUzS>wlb@Fk08yPYwg3PC delta 199 zcmexc(_T9vpYiL)0&`KuSDROe`Y}o?v70e5IQBHNI3D=H3}&{oI35HuH;alhi8B7) zETO~4%2+>H-B6v)Q9_Z)kz=x-VK_I4slcen;>f{0d4pk`uP+m0J!2h{g95`^C8p&{ zjE?mRj0#Ln3LVR(6&M^DiyRvoSUjbb7zOy07+iT76c`*?vUM349GMGU6&PKMz#~&0mYP^nT9jJMIr*V&3joVeGSUD5 diff --git a/vendor/github.com/tdewolff/minify/v2/README.md b/vendor/github.com/tdewolff/minify/v2/README.md index df1aa93dc..e8838f263 100644 --- a/vendor/github.com/tdewolff/minify/v2/README.md +++ b/vendor/github.com/tdewolff/minify/v2/README.md @@ -255,8 +255,8 @@ There are a couple of comparison tables online, such as [CSS Minifier Comparison Options: -- `KeepCSS2` prohibits using CSS3 syntax (such as exponents in numbers, or `rgba(` → `rgb(`), might be incomplete - `Precision` number of significant digits to preserve for numbers, `0` means no trimming +- `Version` CSS version to use for output, `0` is the latest ## JS diff --git a/vendor/golang.org/x/sys/unix/affinity_linux.go b/vendor/golang.org/x/sys/unix/affinity_linux.go index 6e5c81acd..3c7a6d6e2 100644 --- a/vendor/golang.org/x/sys/unix/affinity_linux.go +++ b/vendor/golang.org/x/sys/unix/affinity_linux.go @@ -38,9 +38,7 @@ func SchedSetaffinity(pid int, set *CPUSet) error { // Zero clears the set s, so that it contains no CPUs. func (s *CPUSet) Zero() { - for i := range s { - s[i] = 0 - } + clear(s[:]) } func cpuBitsIndex(cpu int) int { diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go index abc395547..18a3d9bda 100644 --- a/vendor/golang.org/x/sys/unix/syscall_solaris.go +++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -629,7 +629,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e //sys Kill(pid int, signum syscall.Signal) (err error) //sys Lchown(path string, uid int, gid int) (err error) //sys Link(path string, link string) (err error) -//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_llisten +//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_listen //sys Lstat(path string, stat *Stat_t) (err error) //sys Madvise(b []byte, advice int) (err error) //sys Mkdir(path string, mode uint32) (err error) diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go index c6545413c..b4609c20c 100644 --- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go @@ -72,7 +72,7 @@ import ( //go:cgo_import_dynamic libc_kill kill "libc.so" //go:cgo_import_dynamic libc_lchown lchown "libc.so" //go:cgo_import_dynamic libc_link link "libc.so" -//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten "libsocket.so" +//go:cgo_import_dynamic libc___xnet_listen __xnet_listen "libsocket.so" //go:cgo_import_dynamic libc_lstat lstat "libc.so" //go:cgo_import_dynamic libc_madvise madvise "libc.so" //go:cgo_import_dynamic libc_mkdir mkdir "libc.so" @@ -221,7 +221,7 @@ import ( //go:linkname procKill libc_kill //go:linkname procLchown libc_lchown //go:linkname procLink libc_link -//go:linkname proc__xnet_llisten libc___xnet_llisten +//go:linkname proc__xnet_listen libc___xnet_listen //go:linkname procLstat libc_lstat //go:linkname procMadvise libc_madvise //go:linkname procMkdir libc_mkdir @@ -371,7 +371,7 @@ var ( procKill, procLchown, procLink, - proc__xnet_llisten, + proc__xnet_listen, procLstat, procMadvise, procMkdir, @@ -1178,7 +1178,7 @@ func Link(path string, link string) (err error) { // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT func Listen(s int, backlog int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0) + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_listen)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0) if e1 != 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go index cd236443f..944e75a11 100644 --- a/vendor/golang.org/x/sys/unix/ztypes_linux.go +++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -632,6 +632,8 @@ const ( IFA_FLAGS = 0x8 IFA_RT_PRIORITY = 0x9 IFA_TARGET_NETNSID = 0xa + IFAL_LABEL = 0x2 + IFAL_ADDRESS = 0x1 RT_SCOPE_UNIVERSE = 0x0 RT_SCOPE_SITE = 0xc8 RT_SCOPE_LINK = 0xfd @@ -689,6 +691,7 @@ const ( SizeofRtAttr = 0x4 SizeofIfInfomsg = 0x10 SizeofIfAddrmsg = 0x8 + SizeofIfAddrlblmsg = 0xc SizeofIfaCacheinfo = 0x10 SizeofRtMsg = 0xc SizeofRtNexthop = 0x8 @@ -740,6 +743,15 @@ type IfAddrmsg struct { Index uint32 } +type IfAddrlblmsg struct { + Family uint8 + _ uint8 + Prefixlen uint8 + Flags uint8 + Index uint32 + Seq uint32 +} + type IfaCacheinfo struct { Prefered uint32 Valid uint32 @@ -3052,6 +3064,23 @@ const ( ) const ( + TCA_UNSPEC = 0x0 + TCA_KIND = 0x1 + TCA_OPTIONS = 0x2 + TCA_STATS = 0x3 + TCA_XSTATS = 0x4 + TCA_RATE = 0x5 + TCA_FCNT = 0x6 + TCA_STATS2 = 0x7 + TCA_STAB = 0x8 + TCA_PAD = 0x9 + TCA_DUMP_INVISIBLE = 0xa + TCA_CHAIN = 0xb + TCA_HW_OFFLOAD = 0xc + TCA_INGRESS_BLOCK = 0xd + TCA_EGRESS_BLOCK = 0xe + TCA_DUMP_FLAGS = 0xf + TCA_EXT_WARN_MSG = 0x10 RTNLGRP_NONE = 0x0 RTNLGRP_LINK = 0x1 RTNLGRP_NOTIFY = 0x2 @@ -3086,6 +3115,18 @@ const ( RTNLGRP_IPV6_MROUTE_R = 0x1f RTNLGRP_NEXTHOP = 0x20 RTNLGRP_BRVLAN = 0x21 + RTNLGRP_MCTP_IFADDR = 0x22 + RTNLGRP_TUNNEL = 0x23 + RTNLGRP_STATS = 0x24 + RTNLGRP_IPV4_MCADDR = 0x25 + RTNLGRP_IPV6_MCADDR = 0x26 + RTNLGRP_IPV6_ACADDR = 0x27 + TCA_ROOT_UNSPEC = 0x0 + TCA_ROOT_TAB = 0x1 + TCA_ROOT_FLAGS = 0x2 + TCA_ROOT_COUNT = 0x3 + TCA_ROOT_TIME_DELTA = 0x4 + TCA_ROOT_EXT_WARN_MSG = 0x5 ) type CapUserHeader struct { diff --git a/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go index fc1835d8a..bc1ce4360 100644 --- a/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go @@ -52,7 +52,7 @@ var ( ) func regConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall.Handle) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegConnectRegistryW.Addr(), 3, uintptr(unsafe.Pointer(machinename)), uintptr(key), uintptr(unsafe.Pointer(result))) + r0, _, _ := syscall.SyscallN(procRegConnectRegistryW.Addr(), uintptr(unsafe.Pointer(machinename)), uintptr(key), uintptr(unsafe.Pointer(result))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -60,7 +60,7 @@ func regConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall } func regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegCreateKeyExW.Addr(), 9, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(reserved), uintptr(unsafe.Pointer(class)), uintptr(options), uintptr(desired), uintptr(unsafe.Pointer(sa)), uintptr(unsafe.Pointer(result)), uintptr(unsafe.Pointer(disposition))) + r0, _, _ := syscall.SyscallN(procRegCreateKeyExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(reserved), uintptr(unsafe.Pointer(class)), uintptr(options), uintptr(desired), uintptr(unsafe.Pointer(sa)), uintptr(unsafe.Pointer(result)), uintptr(unsafe.Pointer(disposition))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -68,7 +68,7 @@ func regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class * } func regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegDeleteKeyW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(subkey)), 0) + r0, _, _ := syscall.SyscallN(procRegDeleteKeyW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -76,7 +76,7 @@ func regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) { } func regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegDeleteValueW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(name)), 0) + r0, _, _ := syscall.SyscallN(procRegDeleteValueW.Addr(), uintptr(key), uintptr(unsafe.Pointer(name))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -84,7 +84,7 @@ func regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) { } func regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegEnumValueW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)), 0) + r0, _, _ := syscall.SyscallN(procRegEnumValueW.Addr(), uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -92,7 +92,7 @@ func regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint3 } func regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegLoadMUIStringW.Addr(), 7, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(unsafe.Pointer(buflenCopied)), uintptr(flags), uintptr(unsafe.Pointer(dir)), 0, 0) + r0, _, _ := syscall.SyscallN(procRegLoadMUIStringW.Addr(), uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(unsafe.Pointer(buflenCopied)), uintptr(flags), uintptr(unsafe.Pointer(dir))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -100,7 +100,7 @@ func regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint } func regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegSetValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(valueName)), uintptr(reserved), uintptr(vtype), uintptr(unsafe.Pointer(buf)), uintptr(bufsize)) + r0, _, _ := syscall.SyscallN(procRegSetValueExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(valueName)), uintptr(reserved), uintptr(vtype), uintptr(unsafe.Pointer(buf)), uintptr(bufsize)) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -108,7 +108,7 @@ func regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype } func expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) + r0, _, e1 := syscall.SyscallN(procExpandEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) n = uint32(r0) if n == 0 { err = errnoErr(e1) diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index 958bcf47a..993a2297d 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -1976,6 +1976,12 @@ const ( SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1 ) +// FILE_ZERO_DATA_INFORMATION from winioctl.h +type FileZeroDataInformation struct { + FileOffset int64 + BeyondFinalZero int64 +} + const ( ComputerNameNetBIOS = 0 ComputerNameDnsHostname = 1 diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index a58bc48b8..641a5f4b7 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -546,25 +546,25 @@ var ( ) func cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_Status.Addr(), 4, uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags), 0, 0) + r0, _, _ := syscall.SyscallN(procCM_Get_DevNode_Status.Addr(), uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags)) ret = CONFIGRET(r0) return } func cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_ListW.Addr(), 5, uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags), 0) + r0, _, _ := syscall.SyscallN(procCM_Get_Device_Interface_ListW.Addr(), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags)) ret = CONFIGRET(r0) return } func cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) { - r0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_List_SizeW.Addr(), 4, uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags), 0, 0) + r0, _, _ := syscall.SyscallN(procCM_Get_Device_Interface_List_SizeW.Addr(), uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags)) ret = CONFIGRET(r0) return } func cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) { - r0, _, _ := syscall.Syscall(procCM_MapCrToWin32Err.Addr(), 2, uintptr(configRet), uintptr(defaultWin32Error), 0) + r0, _, _ := syscall.SyscallN(procCM_MapCrToWin32Err.Addr(), uintptr(configRet), uintptr(defaultWin32Error)) ret = Errno(r0) return } @@ -574,7 +574,7 @@ func AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, if resetToDefault { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + r1, _, e1 := syscall.SyscallN(procAdjustTokenGroups.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) if r1 == 0 { err = errnoErr(e1) } @@ -586,7 +586,7 @@ func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tok if disableAllPrivileges { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) + r1, _, e1 := syscall.SyscallN(procAdjustTokenPrivileges.Addr(), uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen))) if r1 == 0 { err = errnoErr(e1) } @@ -594,7 +594,7 @@ func AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tok } func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0) + r1, _, e1 := syscall.SyscallN(procAllocateAndInitializeSid.Addr(), uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid))) if r1 == 0 { err = errnoErr(e1) } @@ -602,7 +602,7 @@ func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, s } func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procBuildSecurityDescriptorW.Addr(), 9, uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor))) + r0, _, _ := syscall.SyscallN(procBuildSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -610,7 +610,7 @@ func buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries } func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) + r1, _, e1 := syscall.SyscallN(procChangeServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) if r1 == 0 { err = errnoErr(e1) } @@ -618,7 +618,7 @@ func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err err } func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) { - r1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0) + r1, _, e1 := syscall.SyscallN(procChangeServiceConfigW.Addr(), uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName))) if r1 == 0 { err = errnoErr(e1) } @@ -626,7 +626,7 @@ func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, e } func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) { - r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) + r1, _, e1 := syscall.SyscallN(procCheckTokenMembership.Addr(), uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) if r1 == 0 { err = errnoErr(e1) } @@ -634,7 +634,7 @@ func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) ( } func CloseServiceHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procCloseServiceHandle.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -642,7 +642,7 @@ func CloseServiceHandle(handle Handle) (err error) { } func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) + r1, _, e1 := syscall.SyscallN(procControlService.Addr(), uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) if r1 == 0 { err = errnoErr(e1) } @@ -650,7 +650,7 @@ func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err } func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0) + r1, _, e1 := syscall.SyscallN(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen))) if r1 == 0 { err = errnoErr(e1) } @@ -658,7 +658,7 @@ func convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR } func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) + r1, _, e1 := syscall.SyscallN(procConvertSidToStringSidW.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid))) if r1 == 0 { err = errnoErr(e1) } @@ -675,7 +675,7 @@ func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision ui } func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0) + r1, _, e1 := syscall.SyscallN(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size))) if r1 == 0 { err = errnoErr(e1) } @@ -683,7 +683,7 @@ func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision } func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { - r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) + r1, _, e1 := syscall.SyscallN(procConvertStringSidToSidW.Addr(), uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid))) if r1 == 0 { err = errnoErr(e1) } @@ -691,7 +691,7 @@ func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { } func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) + r1, _, e1 := syscall.SyscallN(procCopySid.Addr(), uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) if r1 == 0 { err = errnoErr(e1) } @@ -703,7 +703,7 @@ func CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, proc if inheritHandles { _p0 = 1 } - r1, _, e1 := syscall.Syscall12(procCreateProcessAsUserW.Addr(), 11, uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0) + r1, _, e1 := syscall.SyscallN(procCreateProcessAsUserW.Addr(), uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo))) if r1 == 0 { err = errnoErr(e1) } @@ -711,7 +711,7 @@ func CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, proc } func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateServiceW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -720,7 +720,7 @@ func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access } func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCreateWellKnownSid.Addr(), uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid))) if r1 == 0 { err = errnoErr(e1) } @@ -728,7 +728,7 @@ func createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, s } func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procCryptAcquireContextW.Addr(), uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -736,7 +736,7 @@ func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16 } func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { - r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) + r1, _, e1 := syscall.SyscallN(procCryptGenRandom.Addr(), uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) if r1 == 0 { err = errnoErr(e1) } @@ -744,7 +744,7 @@ func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { } func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procCryptReleaseContext.Addr(), uintptr(provhandle), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -752,7 +752,7 @@ func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { } func DeleteService(service Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0) + r1, _, e1 := syscall.SyscallN(procDeleteService.Addr(), uintptr(service)) if r1 == 0 { err = errnoErr(e1) } @@ -760,7 +760,7 @@ func DeleteService(service Handle) (err error) { } func DeregisterEventSource(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procDeregisterEventSource.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -768,7 +768,7 @@ func DeregisterEventSource(handle Handle) (err error) { } func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) { - r1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) + r1, _, e1 := syscall.SyscallN(procDuplicateTokenEx.Addr(), uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken))) if r1 == 0 { err = errnoErr(e1) } @@ -776,7 +776,7 @@ func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes } func EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumDependentServicesW.Addr(), 6, uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) + r1, _, e1 := syscall.SyscallN(procEnumDependentServicesW.Addr(), uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) if r1 == 0 { err = errnoErr(e1) } @@ -784,7 +784,7 @@ func EnumDependentServices(service Handle, activityState uint32, services *ENUM_ } func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) { - r1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)), 0, 0) + r1, _, e1 := syscall.SyscallN(procEnumServicesStatusExW.Addr(), uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName))) if r1 == 0 { err = errnoErr(e1) } @@ -792,13 +792,13 @@ func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serv } func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { - r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0) + r0, _, _ := syscall.SyscallN(procEqualSid.Addr(), uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2))) isEqual = r0 != 0 return } func FreeSid(sid *SID) (err error) { - r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r1, _, e1 := syscall.SyscallN(procFreeSid.Addr(), uintptr(unsafe.Pointer(sid))) if r1 != 0 { err = errnoErr(e1) } @@ -806,7 +806,7 @@ func FreeSid(sid *SID) (err error) { } func GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) { - r1, _, e1 := syscall.Syscall(procGetAce.Addr(), 3, uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce))) + r1, _, e1 := syscall.SyscallN(procGetAce.Addr(), uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce))) if r1 == 0 { err = errnoErr(e1) } @@ -814,7 +814,7 @@ func GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) { } func GetLengthSid(sid *SID) (len uint32) { - r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetLengthSid.Addr(), uintptr(unsafe.Pointer(sid))) len = uint32(r0) return } @@ -829,7 +829,7 @@ func getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, security } func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procGetNamedSecurityInfoW.Addr(), 8, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) + r0, _, _ := syscall.SyscallN(procGetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -837,7 +837,7 @@ func _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securi } func getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision))) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision))) if r1 == 0 { err = errnoErr(e1) } @@ -853,7 +853,7 @@ func getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl if *daclDefaulted { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1))) *daclPresent = _p0 != 0 *daclDefaulted = _p1 != 0 if r1 == 0 { @@ -867,7 +867,7 @@ func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefau if *groupDefaulted { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0))) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorGroup.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0))) *groupDefaulted = _p0 != 0 if r1 == 0 { err = errnoErr(e1) @@ -876,7 +876,7 @@ func getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefau } func getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) { - r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetSecurityDescriptorLength.Addr(), uintptr(unsafe.Pointer(sd))) len = uint32(r0) return } @@ -886,7 +886,7 @@ func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefau if *ownerDefaulted { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0))) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorOwner.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0))) *ownerDefaulted = _p0 != 0 if r1 == 0 { err = errnoErr(e1) @@ -895,7 +895,7 @@ func getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefau } func getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) { - r0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) + r0, _, _ := syscall.SyscallN(procGetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -911,7 +911,7 @@ func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl if *saclDefaulted { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1))) *saclPresent = _p0 != 0 *saclDefaulted = _p1 != 0 if r1 == 0 { @@ -921,7 +921,7 @@ func getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl } func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) { - r0, _, _ := syscall.Syscall9(procGetSecurityInfo.Addr(), 8, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0) + r0, _, _ := syscall.SyscallN(procGetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -929,25 +929,25 @@ func getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformati } func getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) { - r0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetSidIdentifierAuthority.Addr(), uintptr(unsafe.Pointer(sid))) authority = (*SidIdentifierAuthority)(unsafe.Pointer(r0)) return } func getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0) + r0, _, _ := syscall.SyscallN(procGetSidSubAuthority.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(index)) subAuthority = (*uint32)(unsafe.Pointer(r0)) return } func getSidSubAuthorityCount(sid *SID) (count *uint8) { - r0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetSidSubAuthorityCount.Addr(), uintptr(unsafe.Pointer(sid))) count = (*uint8)(unsafe.Pointer(r0)) return } func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) + r1, _, e1 := syscall.SyscallN(procGetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen))) if r1 == 0 { err = errnoErr(e1) } @@ -955,7 +955,7 @@ func GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint } func ImpersonateSelf(impersonationlevel uint32) (err error) { - r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0) + r1, _, e1 := syscall.SyscallN(procImpersonateSelf.Addr(), uintptr(impersonationlevel)) if r1 == 0 { err = errnoErr(e1) } @@ -963,7 +963,7 @@ func ImpersonateSelf(impersonationlevel uint32) (err error) { } func initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) { - r1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0) + r1, _, e1 := syscall.SyscallN(procInitializeSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision)) if r1 == 0 { err = errnoErr(e1) } @@ -979,7 +979,7 @@ func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint if rebootAfterShutdown { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason)) + r1, _, e1 := syscall.SyscallN(procInitiateSystemShutdownExW.Addr(), uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason)) if r1 == 0 { err = errnoErr(e1) } @@ -987,7 +987,7 @@ func InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint } func isTokenRestricted(tokenHandle Token) (ret bool, err error) { - r0, _, e1 := syscall.Syscall(procIsTokenRestricted.Addr(), 1, uintptr(tokenHandle), 0, 0) + r0, _, e1 := syscall.SyscallN(procIsTokenRestricted.Addr(), uintptr(tokenHandle)) ret = r0 != 0 if !ret { err = errnoErr(e1) @@ -996,25 +996,25 @@ func isTokenRestricted(tokenHandle Token) (ret bool, err error) { } func isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0) + r0, _, _ := syscall.SyscallN(procIsValidSecurityDescriptor.Addr(), uintptr(unsafe.Pointer(sd))) isValid = r0 != 0 return } func isValidSid(sid *SID) (isValid bool) { - r0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + r0, _, _ := syscall.SyscallN(procIsValidSid.Addr(), uintptr(unsafe.Pointer(sid))) isValid = r0 != 0 return } func isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) { - r0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0) + r0, _, _ := syscall.SyscallN(procIsWellKnownSid.Addr(), uintptr(unsafe.Pointer(sid)), uintptr(sidType)) isWellKnown = r0 != 0 return } func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) + r1, _, e1 := syscall.SyscallN(procLookupAccountNameW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use))) if r1 == 0 { err = errnoErr(e1) } @@ -1022,7 +1022,7 @@ func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen } func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) + r1, _, e1 := syscall.SyscallN(procLookupAccountSidW.Addr(), uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use))) if r1 == 0 { err = errnoErr(e1) } @@ -1030,7 +1030,7 @@ func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint3 } func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) { - r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) + r1, _, e1 := syscall.SyscallN(procLookupPrivilegeValueW.Addr(), uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) if r1 == 0 { err = errnoErr(e1) } @@ -1038,7 +1038,7 @@ func LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err err } func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall12(procMakeAbsoluteSD.Addr(), 11, uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)), 0) + r1, _, e1 := syscall.SyscallN(procMakeAbsoluteSD.Addr(), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize))) if r1 == 0 { err = errnoErr(e1) } @@ -1046,7 +1046,7 @@ func makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DE } func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize))) + r1, _, e1 := syscall.SyscallN(procMakeSelfRelativeSD.Addr(), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize))) if r1 == 0 { err = errnoErr(e1) } @@ -1054,7 +1054,7 @@ func makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURIT } func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) { - r0, _, _ := syscall.Syscall(procNotifyServiceStatusChangeW.Addr(), 3, uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier))) + r0, _, _ := syscall.SyscallN(procNotifyServiceStatusChangeW.Addr(), uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1062,7 +1062,7 @@ func NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERV } func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) + r1, _, e1 := syscall.SyscallN(procOpenProcessToken.Addr(), uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token))) if r1 == 0 { err = errnoErr(e1) } @@ -1070,7 +1070,7 @@ func OpenProcessToken(process Handle, access uint32, token *Token) (err error) { } func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) + r0, _, e1 := syscall.SyscallN(procOpenSCManagerW.Addr(), uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1079,7 +1079,7 @@ func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (ha } func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) + r0, _, e1 := syscall.SyscallN(procOpenServiceW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1092,7 +1092,7 @@ func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token if openAsSelf { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) + r1, _, e1 := syscall.SyscallN(procOpenThreadToken.Addr(), uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token))) if r1 == 0 { err = errnoErr(e1) } @@ -1100,7 +1100,7 @@ func OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token } func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceConfig2W.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -1108,7 +1108,7 @@ func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize } func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceConfigW.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -1120,7 +1120,7 @@ func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInf if err != nil { return } - r1, _, e1 := syscall.Syscall(procQueryServiceDynamicInformation.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo)) + r1, _, e1 := syscall.SyscallN(procQueryServiceDynamicInformation.Addr(), uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo)) if r1 == 0 { err = errnoErr(e1) } @@ -1128,7 +1128,7 @@ func QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInf } func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceLockStatusW.Addr(), uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -1136,7 +1136,7 @@ func QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, b } func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(status))) if r1 == 0 { err = errnoErr(e1) } @@ -1144,7 +1144,7 @@ func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { } func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryServiceStatusEx.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) + r1, _, e1 := syscall.SyscallN(procQueryServiceStatusEx.Addr(), uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -1152,7 +1152,7 @@ func QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize } func RegCloseKey(key Handle) (regerrno error) { - r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0) + r0, _, _ := syscall.SyscallN(procRegCloseKey.Addr(), uintptr(key)) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1160,7 +1160,7 @@ func RegCloseKey(key Handle) (regerrno error) { } func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0) + r0, _, _ := syscall.SyscallN(procRegEnumKeyExW.Addr(), uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1176,7 +1176,7 @@ func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, if asynchronous { _p1 = 1 } - r0, _, _ := syscall.Syscall6(procRegNotifyChangeKeyValue.Addr(), 5, uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1), 0) + r0, _, _ := syscall.SyscallN(procRegNotifyChangeKeyValue.Addr(), uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1)) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1184,7 +1184,7 @@ func RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, } func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0) + r0, _, _ := syscall.SyscallN(procRegOpenKeyExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1192,7 +1192,7 @@ func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint } func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) { - r0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) + r0, _, _ := syscall.SyscallN(procRegQueryInfoKeyW.Addr(), uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1200,7 +1200,7 @@ func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint } func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { - r0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) + r0, _, _ := syscall.SyscallN(procRegQueryValueExW.Addr(), uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) if r0 != 0 { regerrno = syscall.Errno(r0) } @@ -1208,7 +1208,7 @@ func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32 } func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0) + r0, _, e1 := syscall.SyscallN(procRegisterEventSourceW.Addr(), uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1217,7 +1217,7 @@ func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Hand } func RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procRegisterServiceCtrlHandlerExW.Addr(), 3, uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context)) + r0, _, e1 := syscall.SyscallN(procRegisterServiceCtrlHandlerExW.Addr(), uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1226,7 +1226,7 @@ func RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, cont } func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) + r1, _, e1 := syscall.SyscallN(procReportEventW.Addr(), uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) if r1 == 0 { err = errnoErr(e1) } @@ -1234,7 +1234,7 @@ func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrS } func RevertToSelf() (err error) { - r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) + r1, _, e1 := syscall.SyscallN(procRevertToSelf.Addr()) if r1 == 0 { err = errnoErr(e1) } @@ -1242,7 +1242,7 @@ func RevertToSelf() (err error) { } func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) { - r0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0) + r0, _, _ := syscall.SyscallN(procSetEntriesInAclW.Addr(), uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1250,7 +1250,7 @@ func setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCE } func SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) { - r1, _, e1 := syscall.Syscall(procSetKernelObjectSecurity.Addr(), 3, uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor))) + r1, _, e1 := syscall.SyscallN(procSetKernelObjectSecurity.Addr(), uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor))) if r1 == 0 { err = errnoErr(e1) } @@ -1267,7 +1267,7 @@ func SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, security } func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - r0, _, _ := syscall.Syscall9(procSetNamedSecurityInfoW.Addr(), 7, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) + r0, _, _ := syscall.SyscallN(procSetNamedSecurityInfoW.Addr(), uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1275,7 +1275,7 @@ func _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securi } func setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) { - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet)) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet)) if r1 == 0 { err = errnoErr(e1) } @@ -1291,7 +1291,7 @@ func setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl * if daclDefaulted { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorDacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1)) if r1 == 0 { err = errnoErr(e1) } @@ -1303,7 +1303,7 @@ func setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaul if groupDefaulted { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0)) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorGroup.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -1315,7 +1315,7 @@ func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaul if ownerDefaulted { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0)) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorOwner.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -1323,7 +1323,7 @@ func setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaul } func setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) { - syscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0) + syscall.SyscallN(procSetSecurityDescriptorRMControl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl))) return } @@ -1336,7 +1336,7 @@ func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl * if saclDefaulted { _p1 = 1 } - r1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetSecurityDescriptorSacl.Addr(), uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1)) if r1 == 0 { err = errnoErr(e1) } @@ -1344,7 +1344,7 @@ func setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl * } func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) { - r0, _, _ := syscall.Syscall9(procSetSecurityInfo.Addr(), 7, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0) + r0, _, _ := syscall.SyscallN(procSetSecurityInfo.Addr(), uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1352,7 +1352,7 @@ func SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformati } func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) { - r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0) + r1, _, e1 := syscall.SyscallN(procSetServiceStatus.Addr(), uintptr(service), uintptr(unsafe.Pointer(serviceStatus))) if r1 == 0 { err = errnoErr(e1) } @@ -1360,7 +1360,7 @@ func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) } func SetThreadToken(thread *Handle, token Token) (err error) { - r1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0) + r1, _, e1 := syscall.SyscallN(procSetThreadToken.Addr(), uintptr(unsafe.Pointer(thread)), uintptr(token)) if r1 == 0 { err = errnoErr(e1) } @@ -1368,7 +1368,7 @@ func SetThreadToken(thread *Handle, token Token) (err error) { } func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetTokenInformation.Addr(), uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen)) if r1 == 0 { err = errnoErr(e1) } @@ -1376,7 +1376,7 @@ func SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint } func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) + r1, _, e1 := syscall.SyscallN(procStartServiceCtrlDispatcherW.Addr(), uintptr(unsafe.Pointer(serviceTable))) if r1 == 0 { err = errnoErr(e1) } @@ -1384,7 +1384,7 @@ func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { } func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) + r1, _, e1 := syscall.SyscallN(procStartServiceW.Addr(), uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) if r1 == 0 { err = errnoErr(e1) } @@ -1392,7 +1392,7 @@ func StartService(service Handle, numArgs uint32, argVectors **uint16) (err erro } func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { - r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCertAddCertificateContextToStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext))) if r1 == 0 { err = errnoErr(e1) } @@ -1400,7 +1400,7 @@ func CertAddCertificateContextToStore(store Handle, certContext *CertContext, ad } func CertCloseStore(store Handle, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procCertCloseStore.Addr(), uintptr(store), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -1408,7 +1408,7 @@ func CertCloseStore(store Handle, flags uint32) (err error) { } func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) + r0, _, e1 := syscall.SyscallN(procCertCreateCertificateContext.Addr(), uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) context = (*CertContext)(unsafe.Pointer(r0)) if context == nil { err = errnoErr(e1) @@ -1417,7 +1417,7 @@ func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, en } func CertDeleteCertificateFromStore(certContext *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCertDeleteCertificateFromStore.Addr(), uintptr(unsafe.Pointer(certContext))) if r1 == 0 { err = errnoErr(e1) } @@ -1425,13 +1425,13 @@ func CertDeleteCertificateFromStore(certContext *CertContext) (err error) { } func CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) { - r0, _, _ := syscall.Syscall(procCertDuplicateCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0) + r0, _, _ := syscall.SyscallN(procCertDuplicateCertificateContext.Addr(), uintptr(unsafe.Pointer(certContext))) dupContext = (*CertContext)(unsafe.Pointer(r0)) return } func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { - r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0) + r0, _, e1 := syscall.SyscallN(procCertEnumCertificatesInStore.Addr(), uintptr(store), uintptr(unsafe.Pointer(prevContext))) context = (*CertContext)(unsafe.Pointer(r0)) if context == nil { err = errnoErr(e1) @@ -1440,7 +1440,7 @@ func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (contex } func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) { - r0, _, e1 := syscall.Syscall6(procCertFindCertificateInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext))) + r0, _, e1 := syscall.SyscallN(procCertFindCertificateInStore.Addr(), uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext))) cert = (*CertContext)(unsafe.Pointer(r0)) if cert == nil { err = errnoErr(e1) @@ -1449,7 +1449,7 @@ func CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags } func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) { - r0, _, e1 := syscall.Syscall6(procCertFindChainInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext))) + r0, _, e1 := syscall.SyscallN(procCertFindChainInStore.Addr(), uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext))) certchain = (*CertChainContext)(unsafe.Pointer(r0)) if certchain == nil { err = errnoErr(e1) @@ -1458,18 +1458,18 @@ func CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint3 } func CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) { - r0, _, _ := syscall.Syscall(procCertFindExtension.Addr(), 3, uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions))) + r0, _, _ := syscall.SyscallN(procCertFindExtension.Addr(), uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions))) ret = (*CertExtension)(unsafe.Pointer(r0)) return } func CertFreeCertificateChain(ctx *CertChainContext) { - syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + syscall.SyscallN(procCertFreeCertificateChain.Addr(), uintptr(unsafe.Pointer(ctx))) return } func CertFreeCertificateContext(ctx *CertContext) (err error) { - r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCertFreeCertificateContext.Addr(), uintptr(unsafe.Pointer(ctx))) if r1 == 0 { err = errnoErr(e1) } @@ -1477,7 +1477,7 @@ func CertFreeCertificateContext(ctx *CertContext) (err error) { } func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { - r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) + r1, _, e1 := syscall.SyscallN(procCertGetCertificateChain.Addr(), uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx))) if r1 == 0 { err = errnoErr(e1) } @@ -1485,13 +1485,13 @@ func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, a } func CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) { - r0, _, _ := syscall.Syscall6(procCertGetNameStringW.Addr(), 6, uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size)) + r0, _, _ := syscall.SyscallN(procCertGetNameStringW.Addr(), uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size)) chars = uint32(r0) return } func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) + r0, _, e1 := syscall.SyscallN(procCertOpenStore.Addr(), uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1500,7 +1500,7 @@ func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptPr } func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { - r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) + r0, _, e1 := syscall.SyscallN(procCertOpenSystemStoreW.Addr(), uintptr(hprov), uintptr(unsafe.Pointer(name))) store = Handle(r0) if store == 0 { err = errnoErr(e1) @@ -1509,7 +1509,7 @@ func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { } func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { - r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCertVerifyCertificateChainPolicy.Addr(), uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status))) if r1 == 0 { err = errnoErr(e1) } @@ -1521,7 +1521,7 @@ func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, paramete if *callerFreeProvOrNCryptKey { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) + r1, _, e1 := syscall.SyscallN(procCryptAcquireCertificatePrivateKey.Addr(), uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0))) *callerFreeProvOrNCryptKey = _p0 != 0 if r1 == 0 { err = errnoErr(e1) @@ -1530,7 +1530,7 @@ func CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, paramete } func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procCryptDecodeObject.Addr(), 7, uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCryptDecodeObject.Addr(), uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen))) if r1 == 0 { err = errnoErr(e1) } @@ -1538,7 +1538,7 @@ func CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte } func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { - r1, _, e1 := syscall.Syscall9(procCryptProtectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCryptProtectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut))) if r1 == 0 { err = errnoErr(e1) } @@ -1546,7 +1546,7 @@ func CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, } func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall12(procCryptQueryObject.Addr(), 11, uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)), 0) + r1, _, e1 := syscall.SyscallN(procCryptQueryObject.Addr(), uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context))) if r1 == 0 { err = errnoErr(e1) } @@ -1554,7 +1554,7 @@ func CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentT } func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) { - r1, _, e1 := syscall.Syscall9(procCryptUnprotectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCryptUnprotectData.Addr(), uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut))) if r1 == 0 { err = errnoErr(e1) } @@ -1562,7 +1562,7 @@ func CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBl } func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) { - r0, _, e1 := syscall.Syscall(procPFXImportCertStore.Addr(), 3, uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags)) + r0, _, e1 := syscall.SyscallN(procPFXImportCertStore.Addr(), uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags)) store = Handle(r0) if store == 0 { err = errnoErr(e1) @@ -1571,7 +1571,7 @@ func PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (sto } func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { - r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) + r0, _, _ := syscall.SyscallN(procDnsNameCompare_W.Addr(), uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2))) same = r0 != 0 return } @@ -1586,7 +1586,7 @@ func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSR } func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { - r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) + r0, _, _ := syscall.SyscallN(procDnsQuery_W.Addr(), uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) if r0 != 0 { status = syscall.Errno(r0) } @@ -1594,12 +1594,12 @@ func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DN } func DnsRecordListFree(rl *DNSRecord, freetype uint32) { - syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) + syscall.SyscallN(procDnsRecordListFree.Addr(), uintptr(unsafe.Pointer(rl)), uintptr(freetype)) return } func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { - r0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + r0, _, _ := syscall.SyscallN(procDwmGetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size)) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1607,7 +1607,7 @@ func DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, si } func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) { - r0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0) + r0, _, _ := syscall.SyscallN(procDwmSetWindowAttribute.Addr(), uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size)) if r0 != 0 { ret = syscall.Errno(r0) } @@ -1615,7 +1615,7 @@ func DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, si } func CancelMibChangeNotify2(notificationHandle Handle) (errcode error) { - r0, _, _ := syscall.Syscall(procCancelMibChangeNotify2.Addr(), 1, uintptr(notificationHandle), 0, 0) + r0, _, _ := syscall.SyscallN(procCancelMibChangeNotify2.Addr(), uintptr(notificationHandle)) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1623,7 +1623,7 @@ func CancelMibChangeNotify2(notificationHandle Handle) (errcode error) { } func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { - r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) + r0, _, _ := syscall.SyscallN(procGetAdaptersAddresses.Addr(), uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1631,7 +1631,7 @@ func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapter } func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { - r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) + r0, _, _ := syscall.SyscallN(procGetAdaptersInfo.Addr(), uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1639,7 +1639,7 @@ func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { } func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) { - r0, _, _ := syscall.Syscall(procGetBestInterfaceEx.Addr(), 2, uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)), 0) + r0, _, _ := syscall.SyscallN(procGetBestInterfaceEx.Addr(), uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1647,7 +1647,7 @@ func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcod } func GetIfEntry(pIfRow *MibIfRow) (errcode error) { - r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetIfEntry.Addr(), uintptr(unsafe.Pointer(pIfRow))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1655,7 +1655,7 @@ func GetIfEntry(pIfRow *MibIfRow) (errcode error) { } func GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) { - r0, _, _ := syscall.Syscall(procGetIfEntry2Ex.Addr(), 2, uintptr(level), uintptr(unsafe.Pointer(row)), 0) + r0, _, _ := syscall.SyscallN(procGetIfEntry2Ex.Addr(), uintptr(level), uintptr(unsafe.Pointer(row))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1663,7 +1663,7 @@ func GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) { } func GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) { - r0, _, _ := syscall.Syscall(procGetUnicastIpAddressEntry.Addr(), 1, uintptr(unsafe.Pointer(row)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetUnicastIpAddressEntry.Addr(), uintptr(unsafe.Pointer(row))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1675,7 +1675,7 @@ func NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsa if initialNotification { _p0 = 1 } - r0, _, _ := syscall.Syscall6(procNotifyIpInterfaceChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0) + r0, _, _ := syscall.SyscallN(procNotifyIpInterfaceChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1687,7 +1687,7 @@ func NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext if initialNotification { _p0 = 1 } - r0, _, _ := syscall.Syscall6(procNotifyUnicastIpAddressChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0) + r0, _, _ := syscall.SyscallN(procNotifyUnicastIpAddressChange.Addr(), uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle))) if r0 != 0 { errcode = syscall.Errno(r0) } @@ -1695,7 +1695,7 @@ func NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext } func AddDllDirectory(path *uint16) (cookie uintptr, err error) { - r0, _, e1 := syscall.Syscall(procAddDllDirectory.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r0, _, e1 := syscall.SyscallN(procAddDllDirectory.Addr(), uintptr(unsafe.Pointer(path))) cookie = uintptr(r0) if cookie == 0 { err = errnoErr(e1) @@ -1704,7 +1704,7 @@ func AddDllDirectory(path *uint16) (cookie uintptr, err error) { } func AssignProcessToJobObject(job Handle, process Handle) (err error) { - r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) + r1, _, e1 := syscall.SyscallN(procAssignProcessToJobObject.Addr(), uintptr(job), uintptr(process)) if r1 == 0 { err = errnoErr(e1) } @@ -1712,7 +1712,7 @@ func AssignProcessToJobObject(job Handle, process Handle) (err error) { } func CancelIo(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) + r1, _, e1 := syscall.SyscallN(procCancelIo.Addr(), uintptr(s)) if r1 == 0 { err = errnoErr(e1) } @@ -1720,7 +1720,7 @@ func CancelIo(s Handle) (err error) { } func CancelIoEx(s Handle, o *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) + r1, _, e1 := syscall.SyscallN(procCancelIoEx.Addr(), uintptr(s), uintptr(unsafe.Pointer(o))) if r1 == 0 { err = errnoErr(e1) } @@ -1728,7 +1728,7 @@ func CancelIoEx(s Handle, o *Overlapped) (err error) { } func ClearCommBreak(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procClearCommBreak.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procClearCommBreak.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -1736,7 +1736,7 @@ func ClearCommBreak(handle Handle) (err error) { } func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) { - r1, _, e1 := syscall.Syscall(procClearCommError.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat))) + r1, _, e1 := syscall.SyscallN(procClearCommError.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat))) if r1 == 0 { err = errnoErr(e1) } @@ -1744,7 +1744,7 @@ func ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error } func CloseHandle(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procCloseHandle.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -1752,12 +1752,12 @@ func CloseHandle(handle Handle) (err error) { } func ClosePseudoConsole(console Handle) { - syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(console), 0, 0) + syscall.SyscallN(procClosePseudoConsole.Addr(), uintptr(console)) return } func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procConnectNamedPipe.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -1765,7 +1765,7 @@ func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { } func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { - r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) + r1, _, e1 := syscall.SyscallN(procCreateDirectoryW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa))) if r1 == 0 { err = errnoErr(e1) } @@ -1773,7 +1773,7 @@ func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { } func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateEventExW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess)) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1782,7 +1782,7 @@ func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, d } func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateEventW.Addr(), uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1791,7 +1791,7 @@ func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialStat } func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.SyscallN(procCreateFileMappingW.Addr(), uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1800,7 +1800,7 @@ func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxS } func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -1809,7 +1809,7 @@ func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes } func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) + r1, _, e1 := syscall.SyscallN(procCreateHardLinkW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) if r1&0xff == 0 { err = errnoErr(e1) } @@ -1817,7 +1817,7 @@ func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr } func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateIoCompletionPort.Addr(), uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1826,7 +1826,7 @@ func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, thr } func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0) + r0, _, e1 := syscall.SyscallN(procCreateJobObjectW.Addr(), uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -1835,7 +1835,7 @@ func CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, } func CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + r0, _, e1 := syscall.SyscallN(procCreateMutexExW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess)) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1848,7 +1848,7 @@ func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16 if initialOwner { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.SyscallN(procCreateMutexW.Addr(), uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 || e1 == ERROR_ALREADY_EXISTS { err = errnoErr(e1) @@ -1857,7 +1857,7 @@ func CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16 } func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0) + r0, _, e1 := syscall.SyscallN(procCreateNamedPipeW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa))) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -1866,7 +1866,7 @@ func CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances u } func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) + r1, _, e1 := syscall.SyscallN(procCreatePipe.Addr(), uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size)) if r1 == 0 { err = errnoErr(e1) } @@ -1878,7 +1878,7 @@ func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityA if inheritHandles { _p0 = 1 } - r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0) + r1, _, e1 := syscall.SyscallN(procCreateProcessW.Addr(), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo))) if r1 == 0 { err = errnoErr(e1) } @@ -1886,7 +1886,7 @@ func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityA } func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) { - r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)), 0) + r0, _, _ := syscall.SyscallN(procCreatePseudoConsole.Addr(), uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole))) if r0 != 0 { hr = syscall.Errno(r0) } @@ -1894,7 +1894,7 @@ func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pcons } func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) + r1, _, e1 := syscall.SyscallN(procCreateSymbolicLinkW.Addr(), uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) if r1&0xff == 0 { err = errnoErr(e1) } @@ -1902,7 +1902,7 @@ func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags u } func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) + r0, _, e1 := syscall.SyscallN(procCreateToolhelp32Snapshot.Addr(), uintptr(flags), uintptr(processId)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -1911,7 +1911,7 @@ func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, er } 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))) + r1, _, e1 := syscall.SyscallN(procDefineDosDeviceW.Addr(), uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) if r1 == 0 { err = errnoErr(e1) } @@ -1919,7 +1919,7 @@ func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err } func DeleteFile(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r1, _, e1 := syscall.SyscallN(procDeleteFileW.Addr(), uintptr(unsafe.Pointer(path))) if r1 == 0 { err = errnoErr(e1) } @@ -1927,12 +1927,12 @@ func DeleteFile(path *uint16) (err error) { } func deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) { - syscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0) + syscall.SyscallN(procDeleteProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist))) return } func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) + r1, _, e1 := syscall.SyscallN(procDeleteVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint))) if r1 == 0 { err = errnoErr(e1) } @@ -1940,7 +1940,7 @@ func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { } func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procDeviceIoControl.Addr(), uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -1948,7 +1948,7 @@ func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBuff } func DisconnectNamedPipe(pipe Handle) (err error) { - r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0) + r1, _, e1 := syscall.SyscallN(procDisconnectNamedPipe.Addr(), uintptr(pipe)) if r1 == 0 { err = errnoErr(e1) } @@ -1960,7 +1960,7 @@ func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetP if bInheritHandle { _p0 = 1 } - r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) + r1, _, e1 := syscall.SyscallN(procDuplicateHandle.Addr(), uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions)) if r1 == 0 { err = errnoErr(e1) } @@ -1968,7 +1968,7 @@ func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetP } func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) { - r1, _, e1 := syscall.Syscall(procEscapeCommFunction.Addr(), 2, uintptr(handle), uintptr(dwFunc), 0) + r1, _, e1 := syscall.SyscallN(procEscapeCommFunction.Addr(), uintptr(handle), uintptr(dwFunc)) if r1 == 0 { err = errnoErr(e1) } @@ -1976,12 +1976,12 @@ func EscapeCommFunction(handle Handle, dwFunc uint32) (err error) { } func ExitProcess(exitcode uint32) { - syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) + syscall.SyscallN(procExitProcess.Addr(), uintptr(exitcode)) return } func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) + r0, _, e1 := syscall.SyscallN(procExpandEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -1990,7 +1990,7 @@ func ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, } func FindClose(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindClose.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -1998,7 +1998,7 @@ func FindClose(handle Handle) (err error) { } func FindCloseChangeNotification(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindCloseChangeNotification.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -2019,7 +2019,7 @@ func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter if watchSubtree { _p1 = 1 } - r0, _, e1 := syscall.Syscall(procFindFirstChangeNotificationW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter)) + r0, _, e1 := syscall.SyscallN(procFindFirstChangeNotificationW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2028,7 +2028,7 @@ func _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter } func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) + r0, _, e1 := syscall.SyscallN(procFindFirstFileW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data))) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2037,7 +2037,7 @@ func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err erro } func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + r0, _, e1 := syscall.SyscallN(procFindFirstVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2046,7 +2046,7 @@ func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, b } func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0) + r0, _, e1 := syscall.SyscallN(procFindFirstVolumeW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2055,7 +2055,7 @@ func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, er } func FindNextChangeNotification(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindNextChangeNotification.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -2063,7 +2063,7 @@ func FindNextChangeNotification(handle Handle) (err error) { } func findNextFile1(handle Handle, data *win32finddata1) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + r1, _, e1 := syscall.SyscallN(procFindNextFileW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data))) if r1 == 0 { err = errnoErr(e1) } @@ -2071,7 +2071,7 @@ func findNextFile1(handle Handle, data *win32finddata1) (err error) { } func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + r1, _, e1 := syscall.SyscallN(procFindNextVolumeMountPointW.Addr(), uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) if r1 == 0 { err = errnoErr(e1) } @@ -2079,7 +2079,7 @@ func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uin } func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) + r1, _, e1 := syscall.SyscallN(procFindNextVolumeW.Addr(), uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) if r1 == 0 { err = errnoErr(e1) } @@ -2087,7 +2087,7 @@ func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) } func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) { - r0, _, e1 := syscall.Syscall(procFindResourceW.Addr(), 3, uintptr(module), uintptr(name), uintptr(resType)) + r0, _, e1 := syscall.SyscallN(procFindResourceW.Addr(), uintptr(module), uintptr(name), uintptr(resType)) resInfo = Handle(r0) if resInfo == 0 { err = errnoErr(e1) @@ -2096,7 +2096,7 @@ func findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, } func FindVolumeClose(findVolume Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindVolumeClose.Addr(), uintptr(findVolume)) if r1 == 0 { err = errnoErr(e1) } @@ -2104,7 +2104,7 @@ func FindVolumeClose(findVolume Handle) (err error) { } func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0) + r1, _, e1 := syscall.SyscallN(procFindVolumeMountPointClose.Addr(), uintptr(findVolumeMountPoint)) if r1 == 0 { err = errnoErr(e1) } @@ -2112,7 +2112,7 @@ func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { } func FlushFileBuffers(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFlushFileBuffers.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -2120,7 +2120,7 @@ func FlushFileBuffers(handle Handle) (err error) { } func FlushViewOfFile(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) + r1, _, e1 := syscall.SyscallN(procFlushViewOfFile.Addr(), uintptr(addr), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -2132,7 +2132,7 @@ func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, bu if len(buf) > 0 { _p0 = &buf[0] } - r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0) + r0, _, e1 := syscall.SyscallN(procFormatMessageW.Addr(), uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2141,7 +2141,7 @@ func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, bu } func FreeEnvironmentStrings(envs *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) + r1, _, e1 := syscall.SyscallN(procFreeEnvironmentStringsW.Addr(), uintptr(unsafe.Pointer(envs))) if r1 == 0 { err = errnoErr(e1) } @@ -2149,7 +2149,7 @@ func FreeEnvironmentStrings(envs *uint16) (err error) { } func FreeLibrary(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procFreeLibrary.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -2157,7 +2157,7 @@ func FreeLibrary(handle Handle) (err error) { } func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0) + r1, _, e1 := syscall.SyscallN(procGenerateConsoleCtrlEvent.Addr(), uintptr(ctrlEvent), uintptr(processGroupID)) if r1 == 0 { err = errnoErr(e1) } @@ -2165,19 +2165,19 @@ func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err erro } func GetACP() (acp uint32) { - r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetACP.Addr()) acp = uint32(r0) return } func GetActiveProcessorCount(groupNumber uint16) (ret uint32) { - r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) + r0, _, _ := syscall.SyscallN(procGetActiveProcessorCount.Addr(), uintptr(groupNumber)) ret = uint32(r0) return } func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetCommModemStatus.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)), 0) + r1, _, e1 := syscall.SyscallN(procGetCommModemStatus.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpModemStat))) if r1 == 0 { err = errnoErr(e1) } @@ -2185,7 +2185,7 @@ func GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) { } func GetCommState(handle Handle, lpDCB *DCB) (err error) { - r1, _, e1 := syscall.Syscall(procGetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) + r1, _, e1 := syscall.SyscallN(procGetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB))) if r1 == 0 { err = errnoErr(e1) } @@ -2193,7 +2193,7 @@ func GetCommState(handle Handle, lpDCB *DCB) (err error) { } func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { - r1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + r1, _, e1 := syscall.SyscallN(procGetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts))) if r1 == 0 { err = errnoErr(e1) } @@ -2201,13 +2201,13 @@ func GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { } func GetCommandLine() (cmd *uint16) { - r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetCommandLineW.Addr()) cmd = (*uint16)(unsafe.Pointer(r0)) return } func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) + r1, _, e1 := syscall.SyscallN(procGetComputerNameExW.Addr(), uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) if r1 == 0 { err = errnoErr(e1) } @@ -2215,7 +2215,7 @@ func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { } func GetComputerName(buf *uint16, n *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) + r1, _, e1 := syscall.SyscallN(procGetComputerNameW.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) if r1 == 0 { err = errnoErr(e1) } @@ -2223,7 +2223,7 @@ func GetComputerName(buf *uint16, n *uint32) (err error) { } func GetConsoleCP() (cp uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetConsoleCP.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetConsoleCP.Addr()) cp = uint32(r0) if cp == 0 { err = errnoErr(e1) @@ -2232,7 +2232,7 @@ func GetConsoleCP() (cp uint32, err error) { } func GetConsoleMode(console Handle, mode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) + r1, _, e1 := syscall.SyscallN(procGetConsoleMode.Addr(), uintptr(console), uintptr(unsafe.Pointer(mode))) if r1 == 0 { err = errnoErr(e1) } @@ -2240,7 +2240,7 @@ func GetConsoleMode(console Handle, mode *uint32) (err error) { } func GetConsoleOutputCP() (cp uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetConsoleOutputCP.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetConsoleOutputCP.Addr()) cp = uint32(r0) if cp == 0 { err = errnoErr(e1) @@ -2249,7 +2249,7 @@ func GetConsoleOutputCP() (cp uint32, err error) { } func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) + r1, _, e1 := syscall.SyscallN(procGetConsoleScreenBufferInfo.Addr(), uintptr(console), uintptr(unsafe.Pointer(info))) if r1 == 0 { err = errnoErr(e1) } @@ -2257,7 +2257,7 @@ func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) ( } func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + r0, _, e1 := syscall.SyscallN(procGetCurrentDirectoryW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2266,19 +2266,19 @@ func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { } func GetCurrentProcessId() (pid uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetCurrentProcessId.Addr()) pid = uint32(r0) return } func GetCurrentThreadId() (id uint32) { - r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetCurrentThreadId.Addr()) id = uint32(r0) return } func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) { - r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetDiskFreeSpaceExW.Addr(), uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes))) if r1 == 0 { err = errnoErr(e1) } @@ -2286,13 +2286,13 @@ func GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint6 } func GetDriveType(rootPathName *uint16) (driveType uint32) { - r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetDriveTypeW.Addr(), uintptr(unsafe.Pointer(rootPathName))) driveType = uint32(r0) return } func GetEnvironmentStrings() (envs *uint16, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetEnvironmentStringsW.Addr()) envs = (*uint16)(unsafe.Pointer(r0)) if envs == nil { err = errnoErr(e1) @@ -2301,7 +2301,7 @@ func GetEnvironmentStrings() (envs *uint16, err error) { } func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) + r0, _, e1 := syscall.SyscallN(procGetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2310,7 +2310,7 @@ func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32 } func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) + r1, _, e1 := syscall.SyscallN(procGetExitCodeProcess.Addr(), uintptr(handle), uintptr(unsafe.Pointer(exitcode))) if r1 == 0 { err = errnoErr(e1) } @@ -2318,7 +2318,7 @@ func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { } func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) + r1, _, e1 := syscall.SyscallN(procGetFileAttributesExW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) if r1 == 0 { err = errnoErr(e1) } @@ -2326,7 +2326,7 @@ func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { } func GetFileAttributes(name *uint16) (attrs uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name))) attrs = uint32(r0) if attrs == INVALID_FILE_ATTRIBUTES { err = errnoErr(e1) @@ -2335,7 +2335,7 @@ func GetFileAttributes(name *uint16) (attrs uint32, err error) { } func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { - r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + r1, _, e1 := syscall.SyscallN(procGetFileInformationByHandle.Addr(), uintptr(handle), uintptr(unsafe.Pointer(data))) if r1 == 0 { err = errnoErr(e1) } @@ -2343,7 +2343,7 @@ func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (e } func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetFileInformationByHandleEx.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen)) if r1 == 0 { err = errnoErr(e1) } @@ -2351,7 +2351,7 @@ func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, } func GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime))) if r1 == 0 { err = errnoErr(e1) } @@ -2359,7 +2359,7 @@ func GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetim } func GetFileType(filehandle Handle) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetFileType.Addr(), uintptr(filehandle)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2368,7 +2368,7 @@ func GetFileType(filehandle Handle) (n uint32, err error) { } func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetFinalPathNameByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2377,7 +2377,7 @@ func GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32 } func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetFullPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2386,13 +2386,13 @@ func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) ( } func GetLargePageMinimum() (size uintptr) { - r0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetLargePageMinimum.Addr()) size = uintptr(r0) return } func GetLastError() (lasterr error) { - r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetLastError.Addr()) if r0 != 0 { lasterr = syscall.Errno(r0) } @@ -2400,7 +2400,7 @@ func GetLastError() (lasterr error) { } func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0) + r0, _, e1 := syscall.SyscallN(procGetLogicalDriveStringsW.Addr(), uintptr(bufferLength), uintptr(unsafe.Pointer(buffer))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2409,7 +2409,7 @@ func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err } func GetLogicalDrives() (drivesBitMask uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetLogicalDrives.Addr()) drivesBitMask = uint32(r0) if drivesBitMask == 0 { err = errnoErr(e1) @@ -2418,7 +2418,7 @@ func GetLogicalDrives() (drivesBitMask uint32, err error) { } func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) + r0, _, e1 := syscall.SyscallN(procGetLongPathNameW.Addr(), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2427,13 +2427,13 @@ func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err er } func GetMaximumProcessorCount(groupNumber uint16) (ret uint32) { - r0, _, _ := syscall.Syscall(procGetMaximumProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) + r0, _, _ := syscall.SyscallN(procGetMaximumProcessorCount.Addr(), uintptr(groupNumber)) ret = uint32(r0) return } func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) + r0, _, e1 := syscall.SyscallN(procGetModuleFileNameW.Addr(), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2442,7 +2442,7 @@ func GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, } func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) { - r1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module))) + r1, _, e1 := syscall.SyscallN(procGetModuleHandleExW.Addr(), uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module))) if r1 == 0 { err = errnoErr(e1) } @@ -2450,7 +2450,7 @@ func GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err er } func GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetNamedPipeClientProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID)), 0) + r1, _, e1 := syscall.SyscallN(procGetNamedPipeClientProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID))) if r1 == 0 { err = errnoErr(e1) } @@ -2458,7 +2458,7 @@ func GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err erro } func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetNamedPipeHandleStateW.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize)) if r1 == 0 { err = errnoErr(e1) } @@ -2466,7 +2466,7 @@ func GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, m } func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0) + r1, _, e1 := syscall.SyscallN(procGetNamedPipeInfo.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances))) if r1 == 0 { err = errnoErr(e1) } @@ -2474,7 +2474,7 @@ func GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint3 } func GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetNamedPipeServerProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID)), 0) + r1, _, e1 := syscall.SyscallN(procGetNamedPipeServerProcessId.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID))) if r1 == 0 { err = errnoErr(e1) } @@ -2486,7 +2486,7 @@ func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wa if wait { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetOverlappedResult.Addr(), uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -2494,7 +2494,7 @@ func GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wa } func GetPriorityClass(process Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetPriorityClass.Addr(), uintptr(process)) ret = uint32(r0) if ret == 0 { err = errnoErr(e1) @@ -2512,7 +2512,7 @@ func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { } func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { - r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0) + r0, _, e1 := syscall.SyscallN(procGetProcAddress.Addr(), uintptr(module), uintptr(unsafe.Pointer(procname))) proc = uintptr(r0) if proc == 0 { err = errnoErr(e1) @@ -2521,7 +2521,7 @@ func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { } func GetProcessId(process Handle) (id uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetProcessId.Addr(), uintptr(process)) id = uint32(r0) if id == 0 { err = errnoErr(e1) @@ -2530,7 +2530,7 @@ func GetProcessId(process Handle) (id uint32, err error) { } func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetProcessPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -2538,7 +2538,7 @@ func getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uin } func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0) + r1, _, e1 := syscall.SyscallN(procGetProcessShutdownParameters.Addr(), uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags))) if r1 == 0 { err = errnoErr(e1) } @@ -2546,7 +2546,7 @@ func GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) { } func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) + r1, _, e1 := syscall.SyscallN(procGetProcessTimes.Addr(), uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime))) if r1 == 0 { err = errnoErr(e1) } @@ -2554,12 +2554,12 @@ func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, } 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) + syscall.SyscallN(procGetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags))) return } func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) + r1, _, e1 := syscall.SyscallN(procGetQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout)) if r1 == 0 { err = errnoErr(e1) } @@ -2567,7 +2567,7 @@ func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overl } func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) + r0, _, e1 := syscall.SyscallN(procGetShortPathNameW.Addr(), uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2576,12 +2576,12 @@ func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uin } func getStartupInfo(startupInfo *StartupInfo) { - syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) + syscall.SyscallN(procGetStartupInfoW.Addr(), uintptr(unsafe.Pointer(startupInfo))) return } func GetStdHandle(stdhandle uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetStdHandle.Addr(), uintptr(stdhandle)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -2590,7 +2590,7 @@ func GetStdHandle(stdhandle uint32) (handle Handle, err error) { } func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + r0, _, e1 := syscall.SyscallN(procGetSystemDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen)) len = uint32(r0) if len == 0 { err = errnoErr(e1) @@ -2599,7 +2599,7 @@ func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { } func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetSystemPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -2607,17 +2607,17 @@ func getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint } func GetSystemTimeAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + syscall.SyscallN(procGetSystemTimeAsFileTime.Addr(), uintptr(unsafe.Pointer(time))) return } func GetSystemTimePreciseAsFileTime(time *Filetime) { - syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + syscall.SyscallN(procGetSystemTimePreciseAsFileTime.Addr(), uintptr(unsafe.Pointer(time))) return } func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + r0, _, e1 := syscall.SyscallN(procGetSystemWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen)) len = uint32(r0) if len == 0 { err = errnoErr(e1) @@ -2626,7 +2626,7 @@ func getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err erro } func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + r0, _, e1 := syscall.SyscallN(procGetTempPathW.Addr(), uintptr(buflen), uintptr(unsafe.Pointer(buf))) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2635,7 +2635,7 @@ func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { } func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetThreadPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -2643,13 +2643,13 @@ func getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint } func getTickCount64() (ms uint64) { - r0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetTickCount64.Addr()) ms = uint64(r0) return } func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) + r0, _, e1 := syscall.SyscallN(procGetTimeZoneInformation.Addr(), uintptr(unsafe.Pointer(tzi))) rc = uint32(r0) if rc == 0xffffffff { err = errnoErr(e1) @@ -2658,7 +2658,7 @@ func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { } func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetUserPreferredUILanguages.Addr(), uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -2666,7 +2666,7 @@ func getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16 } func GetVersion() (ver uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) + r0, _, e1 := syscall.SyscallN(procGetVersion.Addr()) ver = uint32(r0) if ver == 0 { err = errnoErr(e1) @@ -2675,7 +2675,7 @@ func GetVersion() (ver uint32, err error) { } func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + r1, _, e1 := syscall.SyscallN(procGetVolumeInformationByHandleW.Addr(), uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize)) if r1 == 0 { err = errnoErr(e1) } @@ -2683,7 +2683,7 @@ func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeN } func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + r1, _, e1 := syscall.SyscallN(procGetVolumeInformationW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize)) if r1 == 0 { err = errnoErr(e1) } @@ -2691,7 +2691,7 @@ func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volume } func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) + r1, _, e1 := syscall.SyscallN(procGetVolumeNameForVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) if r1 == 0 { err = errnoErr(e1) } @@ -2699,7 +2699,7 @@ func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint } func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) + r1, _, e1 := syscall.SyscallN(procGetVolumePathNameW.Addr(), uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) if r1 == 0 { err = errnoErr(e1) } @@ -2707,7 +2707,7 @@ func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength ui } func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetVolumePathNamesForVolumeNameW.Addr(), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength))) if r1 == 0 { err = errnoErr(e1) } @@ -2715,7 +2715,7 @@ func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16 } func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0) + r0, _, e1 := syscall.SyscallN(procGetWindowsDirectoryW.Addr(), uintptr(unsafe.Pointer(dir)), uintptr(dirLen)) len = uint32(r0) if len == 0 { err = errnoErr(e1) @@ -2724,7 +2724,7 @@ func getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) { } func initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procInitializeProcThreadAttributeList.Addr(), 4, uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)), 0, 0) + r1, _, e1 := syscall.SyscallN(procInitializeProcThreadAttributeList.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size))) if r1 == 0 { err = errnoErr(e1) } @@ -2736,7 +2736,7 @@ func IsWow64Process(handle Handle, isWow64 *bool) (err error) { if *isWow64 { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0) + r1, _, e1 := syscall.SyscallN(procIsWow64Process.Addr(), uintptr(handle), uintptr(unsafe.Pointer(&_p0))) *isWow64 = _p0 != 0 if r1 == 0 { err = errnoErr(e1) @@ -2749,7 +2749,7 @@ func IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint1 if err != nil { return } - r1, _, e1 := syscall.Syscall(procIsWow64Process2.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine))) + r1, _, e1 := syscall.SyscallN(procIsWow64Process2.Addr(), uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine))) if r1 == 0 { err = errnoErr(e1) } @@ -2766,7 +2766,7 @@ func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, e } func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) + r0, _, e1 := syscall.SyscallN(procLoadLibraryExW.Addr(), uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2784,7 +2784,7 @@ func LoadLibrary(libname string) (handle Handle, err error) { } func _LoadLibrary(libname *uint16) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0) + r0, _, e1 := syscall.SyscallN(procLoadLibraryW.Addr(), uintptr(unsafe.Pointer(libname))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2793,7 +2793,7 @@ func _LoadLibrary(libname *uint16) (handle Handle, err error) { } func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + r0, _, e1 := syscall.SyscallN(procLoadResource.Addr(), uintptr(module), uintptr(resInfo)) resData = Handle(r0) if resData == 0 { err = errnoErr(e1) @@ -2802,7 +2802,7 @@ func LoadResource(module Handle, resInfo Handle) (resData Handle, err error) { } func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) { - r0, _, e1 := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(length), 0) + r0, _, e1 := syscall.SyscallN(procLocalAlloc.Addr(), uintptr(flags), uintptr(length)) ptr = uintptr(r0) if ptr == 0 { err = errnoErr(e1) @@ -2811,7 +2811,7 @@ func LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) { } func LocalFree(hmem Handle) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) + r0, _, e1 := syscall.SyscallN(procLocalFree.Addr(), uintptr(hmem)) handle = Handle(r0) if handle != 0 { err = errnoErr(e1) @@ -2820,7 +2820,7 @@ func LocalFree(hmem Handle) (handle Handle, err error) { } func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) + r1, _, e1 := syscall.SyscallN(procLockFileEx.Addr(), uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -2828,7 +2828,7 @@ func LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, byt } func LockResource(resData Handle) (addr uintptr, err error) { - r0, _, e1 := syscall.Syscall(procLockResource.Addr(), 1, uintptr(resData), 0, 0) + r0, _, e1 := syscall.SyscallN(procLockResource.Addr(), uintptr(resData)) addr = uintptr(r0) if addr == 0 { err = errnoErr(e1) @@ -2837,7 +2837,7 @@ func LockResource(resData Handle) (addr uintptr, err error) { } func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) + r0, _, e1 := syscall.SyscallN(procMapViewOfFile.Addr(), uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length)) addr = uintptr(r0) if addr == 0 { err = errnoErr(e1) @@ -2846,7 +2846,7 @@ func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow ui } func Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procModule32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) + r1, _, e1 := syscall.SyscallN(procModule32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -2854,7 +2854,7 @@ func Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { } func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procModule32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0) + r1, _, e1 := syscall.SyscallN(procModule32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -2862,7 +2862,7 @@ func Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) { } func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) + r1, _, e1 := syscall.SyscallN(procMoveFileExW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -2870,7 +2870,7 @@ func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { } func MoveFile(from *uint16, to *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) + r1, _, e1 := syscall.SyscallN(procMoveFileW.Addr(), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to))) if r1 == 0 { err = errnoErr(e1) } @@ -2878,7 +2878,7 @@ func MoveFile(from *uint16, to *uint16) (err error) { } func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) { - r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) + r0, _, e1 := syscall.SyscallN(procMultiByteToWideChar.Addr(), uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) nwrite = int32(r0) if nwrite == 0 { err = errnoErr(e1) @@ -2891,7 +2891,7 @@ func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle H if inheritHandle { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.SyscallN(procOpenEventW.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2904,7 +2904,7 @@ func OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle H if inheritHandle { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + r0, _, e1 := syscall.SyscallN(procOpenMutexW.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2917,7 +2917,7 @@ func OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (ha if inheritHandle { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) + r0, _, e1 := syscall.SyscallN(procOpenProcess.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(processId)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2930,7 +2930,7 @@ func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (hand if inheritHandle { _p0 = 1 } - r0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) + r0, _, e1 := syscall.SyscallN(procOpenThread.Addr(), uintptr(desiredAccess), uintptr(_p0), uintptr(threadId)) handle = Handle(r0) if handle == 0 { err = errnoErr(e1) @@ -2939,7 +2939,7 @@ func OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (hand } func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) + r1, _, e1 := syscall.SyscallN(procPostQueuedCompletionStatus.Addr(), uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -2947,7 +2947,7 @@ func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overla } func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + r1, _, e1 := syscall.SyscallN(procProcess32FirstW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -2955,7 +2955,7 @@ func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { } func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + r1, _, e1 := syscall.SyscallN(procProcess32NextW.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(procEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -2963,7 +2963,7 @@ func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { } func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procProcessIdToSessionId.Addr(), 2, uintptr(pid), uintptr(unsafe.Pointer(sessionid)), 0) + r1, _, e1 := syscall.SyscallN(procProcessIdToSessionId.Addr(), uintptr(pid), uintptr(unsafe.Pointer(sessionid))) if r1 == 0 { err = errnoErr(e1) } @@ -2971,7 +2971,7 @@ func ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) { } func PulseEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0) + r1, _, e1 := syscall.SyscallN(procPulseEvent.Addr(), uintptr(event)) if r1 == 0 { err = errnoErr(e1) } @@ -2979,7 +2979,7 @@ func PulseEvent(event Handle) (err error) { } func PurgeComm(handle Handle, dwFlags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(dwFlags), 0) + r1, _, e1 := syscall.SyscallN(procPurgeComm.Addr(), uintptr(handle), uintptr(dwFlags)) if r1 == 0 { err = errnoErr(e1) } @@ -2987,7 +2987,7 @@ func PurgeComm(handle Handle, dwFlags uint32) (err error) { } func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) + r0, _, e1 := syscall.SyscallN(procQueryDosDeviceW.Addr(), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) n = uint32(r0) if n == 0 { err = errnoErr(e1) @@ -2996,7 +2996,7 @@ func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint3 } func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryFullProcessImageNameW.Addr(), 4, uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)), 0, 0) + r1, _, e1 := syscall.SyscallN(procQueryFullProcessImageNameW.Addr(), uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size))) if r1 == 0 { err = errnoErr(e1) } @@ -3004,7 +3004,7 @@ func QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size } func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0) + r1, _, e1 := syscall.SyscallN(procQueryInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen))) if r1 == 0 { err = errnoErr(e1) } @@ -3012,7 +3012,7 @@ func QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobO } func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) + r1, _, e1 := syscall.SyscallN(procReadConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl))) if r1 == 0 { err = errnoErr(e1) } @@ -3024,7 +3024,7 @@ func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree if watchSubTree { _p0 = 1 } - r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) + r1, _, e1 := syscall.SyscallN(procReadDirectoryChangesW.Addr(), uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) if r1 == 0 { err = errnoErr(e1) } @@ -3036,7 +3036,7 @@ func readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) ( if len(buf) > 0 { _p0 = &buf[0] } - r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procReadFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3044,7 +3044,7 @@ func readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) ( } func ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procReadProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)), 0) + r1, _, e1 := syscall.SyscallN(procReadProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead))) if r1 == 0 { err = errnoErr(e1) } @@ -3052,7 +3052,7 @@ func ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size u } func ReleaseMutex(mutex Handle) (err error) { - r1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0) + r1, _, e1 := syscall.SyscallN(procReleaseMutex.Addr(), uintptr(mutex)) if r1 == 0 { err = errnoErr(e1) } @@ -3060,7 +3060,7 @@ func ReleaseMutex(mutex Handle) (err error) { } func RemoveDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r1, _, e1 := syscall.SyscallN(procRemoveDirectoryW.Addr(), uintptr(unsafe.Pointer(path))) if r1 == 0 { err = errnoErr(e1) } @@ -3068,7 +3068,7 @@ func RemoveDirectory(path *uint16) (err error) { } func RemoveDllDirectory(cookie uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procRemoveDllDirectory.Addr(), 1, uintptr(cookie), 0, 0) + r1, _, e1 := syscall.SyscallN(procRemoveDllDirectory.Addr(), uintptr(cookie)) if r1 == 0 { err = errnoErr(e1) } @@ -3076,7 +3076,7 @@ func RemoveDllDirectory(cookie uintptr) (err error) { } func ResetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) + r1, _, e1 := syscall.SyscallN(procResetEvent.Addr(), uintptr(event)) if r1 == 0 { err = errnoErr(e1) } @@ -3084,7 +3084,7 @@ func ResetEvent(event Handle) (err error) { } func resizePseudoConsole(pconsole Handle, size uint32) (hr error) { - r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(pconsole), uintptr(size), 0) + r0, _, _ := syscall.SyscallN(procResizePseudoConsole.Addr(), uintptr(pconsole), uintptr(size)) if r0 != 0 { hr = syscall.Errno(r0) } @@ -3092,7 +3092,7 @@ func resizePseudoConsole(pconsole Handle, size uint32) (hr error) { } func ResumeThread(thread Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0) + r0, _, e1 := syscall.SyscallN(procResumeThread.Addr(), uintptr(thread)) ret = uint32(r0) if ret == 0xffffffff { err = errnoErr(e1) @@ -3101,7 +3101,7 @@ func ResumeThread(thread Handle) (ret uint32, err error) { } func SetCommBreak(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommBreak.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetCommBreak.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -3109,7 +3109,7 @@ func SetCommBreak(handle Handle) (err error) { } func SetCommMask(handle Handle, dwEvtMask uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommMask.Addr(), 2, uintptr(handle), uintptr(dwEvtMask), 0) + r1, _, e1 := syscall.SyscallN(procSetCommMask.Addr(), uintptr(handle), uintptr(dwEvtMask)) if r1 == 0 { err = errnoErr(e1) } @@ -3117,7 +3117,7 @@ func SetCommMask(handle Handle, dwEvtMask uint32) (err error) { } func SetCommState(handle Handle, lpDCB *DCB) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0) + r1, _, e1 := syscall.SyscallN(procSetCommState.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpDCB))) if r1 == 0 { err = errnoErr(e1) } @@ -3125,7 +3125,7 @@ func SetCommState(handle Handle, lpDCB *DCB) (err error) { } func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { - r1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0) + r1, _, e1 := syscall.SyscallN(procSetCommTimeouts.Addr(), uintptr(handle), uintptr(unsafe.Pointer(timeouts))) if r1 == 0 { err = errnoErr(e1) } @@ -3133,7 +3133,7 @@ func SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) { } func SetConsoleCP(cp uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleCP.Addr(), 1, uintptr(cp), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetConsoleCP.Addr(), uintptr(cp)) if r1 == 0 { err = errnoErr(e1) } @@ -3141,7 +3141,7 @@ func SetConsoleCP(cp uint32) (err error) { } func setConsoleCursorPosition(console Handle, position uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0) + r1, _, e1 := syscall.SyscallN(procSetConsoleCursorPosition.Addr(), uintptr(console), uintptr(position)) if r1 == 0 { err = errnoErr(e1) } @@ -3149,7 +3149,7 @@ func setConsoleCursorPosition(console Handle, position uint32) (err error) { } func SetConsoleMode(console Handle, mode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0) + r1, _, e1 := syscall.SyscallN(procSetConsoleMode.Addr(), uintptr(console), uintptr(mode)) if r1 == 0 { err = errnoErr(e1) } @@ -3157,7 +3157,7 @@ func SetConsoleMode(console Handle, mode uint32) (err error) { } func SetConsoleOutputCP(cp uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetConsoleOutputCP.Addr(), 1, uintptr(cp), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetConsoleOutputCP.Addr(), uintptr(cp)) if r1 == 0 { err = errnoErr(e1) } @@ -3165,7 +3165,7 @@ func SetConsoleOutputCP(cp uint32) (err error) { } func SetCurrentDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetCurrentDirectoryW.Addr(), uintptr(unsafe.Pointer(path))) if r1 == 0 { err = errnoErr(e1) } @@ -3173,7 +3173,7 @@ func SetCurrentDirectory(path *uint16) (err error) { } func SetDefaultDllDirectories(directoryFlags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetDefaultDllDirectories.Addr(), 1, uintptr(directoryFlags), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetDefaultDllDirectories.Addr(), uintptr(directoryFlags)) if r1 == 0 { err = errnoErr(e1) } @@ -3190,7 +3190,7 @@ func SetDllDirectory(path string) (err error) { } func _SetDllDirectory(path *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetDllDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetDllDirectoryW.Addr(), uintptr(unsafe.Pointer(path))) if r1 == 0 { err = errnoErr(e1) } @@ -3198,7 +3198,7 @@ func _SetDllDirectory(path *uint16) (err error) { } func SetEndOfFile(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetEndOfFile.Addr(), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -3206,7 +3206,7 @@ func SetEndOfFile(handle Handle) (err error) { } func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) + r1, _, e1 := syscall.SyscallN(procSetEnvironmentVariableW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value))) if r1 == 0 { err = errnoErr(e1) } @@ -3214,13 +3214,13 @@ func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { } func SetErrorMode(mode uint32) (ret uint32) { - r0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0) + r0, _, _ := syscall.SyscallN(procSetErrorMode.Addr(), uintptr(mode)) ret = uint32(r0) return } func SetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetEvent.Addr(), uintptr(event)) if r1 == 0 { err = errnoErr(e1) } @@ -3228,7 +3228,7 @@ func SetEvent(event Handle) (err error) { } func SetFileAttributes(name *uint16, attrs uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) + r1, _, e1 := syscall.SyscallN(procSetFileAttributesW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(attrs)) if r1 == 0 { err = errnoErr(e1) } @@ -3236,7 +3236,7 @@ func SetFileAttributes(name *uint16, attrs uint32) (err error) { } func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procSetFileCompletionNotificationModes.Addr(), uintptr(handle), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3244,7 +3244,7 @@ func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) } func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetFileInformationByHandle.Addr(), uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen)) if r1 == 0 { err = errnoErr(e1) } @@ -3252,7 +3252,7 @@ func SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inB } func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { - r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) + r0, _, e1 := syscall.SyscallN(procSetFilePointer.Addr(), uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence)) newlowoffset = uint32(r0) if newlowoffset == 0xffffffff { err = errnoErr(e1) @@ -3261,7 +3261,7 @@ func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence } func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { - r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetFileTime.Addr(), uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime))) if r1 == 0 { err = errnoErr(e1) } @@ -3269,7 +3269,7 @@ func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetim } func SetFileValidData(handle Handle, validDataLength int64) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) + r1, _, e1 := syscall.SyscallN(procSetFileValidData.Addr(), uintptr(handle), uintptr(validDataLength)) if r1 == 0 { err = errnoErr(e1) } @@ -3277,7 +3277,7 @@ func SetFileValidData(handle Handle, validDataLength int64) (err error) { } func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) + r1, _, e1 := syscall.SyscallN(procSetHandleInformation.Addr(), uintptr(handle), uintptr(mask), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3285,7 +3285,7 @@ func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) } func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) { - r0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0) + r0, _, e1 := syscall.SyscallN(procSetInformationJobObject.Addr(), uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength)) ret = int(r0) if ret == 0 { err = errnoErr(e1) @@ -3294,7 +3294,7 @@ func SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobOb } func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetNamedPipeHandleState.Addr(), 4, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetNamedPipeHandleState.Addr(), uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout))) if r1 == 0 { err = errnoErr(e1) } @@ -3302,7 +3302,7 @@ func SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uin } func SetPriorityClass(process Handle, priorityClass uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0) + r1, _, e1 := syscall.SyscallN(procSetPriorityClass.Addr(), uintptr(process), uintptr(priorityClass)) if r1 == 0 { err = errnoErr(e1) } @@ -3314,7 +3314,7 @@ func SetProcessPriorityBoost(process Handle, disable bool) (err error) { if disable { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0) + r1, _, e1 := syscall.SyscallN(procSetProcessPriorityBoost.Addr(), uintptr(process), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -3322,7 +3322,7 @@ func SetProcessPriorityBoost(process Handle, disable bool) (err error) { } func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procSetProcessShutdownParameters.Addr(), uintptr(level), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3330,7 +3330,7 @@ func SetProcessShutdownParameters(level uint32, flags uint32) (err error) { } 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) + r1, _, e1 := syscall.SyscallN(procSetProcessWorkingSetSizeEx.Addr(), uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3338,7 +3338,7 @@ func SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr } func SetStdHandle(stdhandle uint32, handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) + r1, _, e1 := syscall.SyscallN(procSetStdHandle.Addr(), uintptr(stdhandle), uintptr(handle)) if r1 == 0 { err = errnoErr(e1) } @@ -3346,7 +3346,7 @@ func SetStdHandle(stdhandle uint32, handle Handle) (err error) { } func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0) + r1, _, e1 := syscall.SyscallN(procSetVolumeLabelW.Addr(), uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName))) if r1 == 0 { err = errnoErr(e1) } @@ -3354,7 +3354,7 @@ func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { } func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0) + r1, _, e1 := syscall.SyscallN(procSetVolumeMountPointW.Addr(), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName))) if r1 == 0 { err = errnoErr(e1) } @@ -3362,7 +3362,7 @@ func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err erro } func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) { - r1, _, e1 := syscall.Syscall(procSetupComm.Addr(), 3, uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue)) + r1, _, e1 := syscall.SyscallN(procSetupComm.Addr(), uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue)) if r1 == 0 { err = errnoErr(e1) } @@ -3370,7 +3370,7 @@ func SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) { } func SizeofResource(module Handle, resInfo Handle) (size uint32, err error) { - r0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0) + r0, _, e1 := syscall.SyscallN(procSizeofResource.Addr(), uintptr(module), uintptr(resInfo)) size = uint32(r0) if size == 0 { err = errnoErr(e1) @@ -3383,13 +3383,13 @@ func SleepEx(milliseconds uint32, alertable bool) (ret uint32) { if alertable { _p0 = 1 } - r0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0) + r0, _, _ := syscall.SyscallN(procSleepEx.Addr(), uintptr(milliseconds), uintptr(_p0)) ret = uint32(r0) return } func TerminateJobObject(job Handle, exitCode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0) + r1, _, e1 := syscall.SyscallN(procTerminateJobObject.Addr(), uintptr(job), uintptr(exitCode)) if r1 == 0 { err = errnoErr(e1) } @@ -3397,7 +3397,7 @@ func TerminateJobObject(job Handle, exitCode uint32) (err error) { } func TerminateProcess(handle Handle, exitcode uint32) (err error) { - r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) + r1, _, e1 := syscall.SyscallN(procTerminateProcess.Addr(), uintptr(handle), uintptr(exitcode)) if r1 == 0 { err = errnoErr(e1) } @@ -3405,7 +3405,7 @@ func TerminateProcess(handle Handle, exitcode uint32) (err error) { } func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + r1, _, e1 := syscall.SyscallN(procThread32First.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -3413,7 +3413,7 @@ func Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) { } func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { - r1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0) + r1, _, e1 := syscall.SyscallN(procThread32Next.Addr(), uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry))) if r1 == 0 { err = errnoErr(e1) } @@ -3421,7 +3421,7 @@ func Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) { } func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procUnlockFileEx.Addr(), uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3429,7 +3429,7 @@ func UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint3 } func UnmapViewOfFile(addr uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) + r1, _, e1 := syscall.SyscallN(procUnmapViewOfFile.Addr(), uintptr(addr)) if r1 == 0 { err = errnoErr(e1) } @@ -3437,7 +3437,7 @@ func UnmapViewOfFile(addr uintptr) (err error) { } func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) { - r1, _, e1 := syscall.Syscall9(procUpdateProcThreadAttribute.Addr(), 7, uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procUpdateProcThreadAttribute.Addr(), uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize))) if r1 == 0 { err = errnoErr(e1) } @@ -3445,7 +3445,7 @@ func updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, } func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) { - r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0) + r0, _, e1 := syscall.SyscallN(procVirtualAlloc.Addr(), uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect)) value = uintptr(r0) if value == 0 { err = errnoErr(e1) @@ -3454,7 +3454,7 @@ func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint3 } func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype)) + r1, _, e1 := syscall.SyscallN(procVirtualFree.Addr(), uintptr(address), uintptr(size), uintptr(freetype)) if r1 == 0 { err = errnoErr(e1) } @@ -3462,7 +3462,7 @@ func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { } func VirtualLock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) + r1, _, e1 := syscall.SyscallN(procVirtualLock.Addr(), uintptr(addr), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -3470,7 +3470,7 @@ func VirtualLock(addr uintptr, length uintptr) (err error) { } func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0) + r1, _, e1 := syscall.SyscallN(procVirtualProtect.Addr(), uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect))) if r1 == 0 { err = errnoErr(e1) } @@ -3478,7 +3478,7 @@ func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect } func VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualProtectEx.Addr(), 5, uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)), 0) + r1, _, e1 := syscall.SyscallN(procVirtualProtectEx.Addr(), uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect))) if r1 == 0 { err = errnoErr(e1) } @@ -3486,7 +3486,7 @@ func VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect } func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualQuery.Addr(), 3, uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) + r1, _, e1 := syscall.SyscallN(procVirtualQuery.Addr(), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -3494,7 +3494,7 @@ func VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintpt } func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procVirtualQueryEx.Addr(), 4, uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length), 0, 0) + r1, _, e1 := syscall.SyscallN(procVirtualQueryEx.Addr(), uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -3502,7 +3502,7 @@ func VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformat } func VirtualUnlock(addr uintptr, length uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) + r1, _, e1 := syscall.SyscallN(procVirtualUnlock.Addr(), uintptr(addr), uintptr(length)) if r1 == 0 { err = errnoErr(e1) } @@ -3510,13 +3510,13 @@ func VirtualUnlock(addr uintptr, length uintptr) (err error) { } func WTSGetActiveConsoleSessionId() (sessionID uint32) { - r0, _, _ := syscall.Syscall(procWTSGetActiveConsoleSessionId.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procWTSGetActiveConsoleSessionId.Addr()) sessionID = uint32(r0) return } func WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procWaitCommEvent.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped))) + r1, _, e1 := syscall.SyscallN(procWaitCommEvent.Addr(), uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3528,7 +3528,7 @@ func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMil if waitAll { _p0 = 1 } - r0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0) + r0, _, e1 := syscall.SyscallN(procWaitForMultipleObjects.Addr(), uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds)) event = uint32(r0) if event == 0xffffffff { err = errnoErr(e1) @@ -3537,7 +3537,7 @@ func waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMil } func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { - r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) + r0, _, e1 := syscall.SyscallN(procWaitForSingleObject.Addr(), uintptr(handle), uintptr(waitMilliseconds)) event = uint32(r0) if event == 0xffffffff { err = errnoErr(e1) @@ -3546,7 +3546,7 @@ func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, } func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { - r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) + r1, _, e1 := syscall.SyscallN(procWriteConsoleW.Addr(), uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved))) if r1 == 0 { err = errnoErr(e1) } @@ -3558,7 +3558,7 @@ func writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) if len(buf) > 0 { _p0 = &buf[0] } - r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procWriteFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3566,7 +3566,7 @@ func writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) } func WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procWriteProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)), 0) + r1, _, e1 := syscall.SyscallN(procWriteProcessMemory.Addr(), uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten))) if r1 == 0 { err = errnoErr(e1) } @@ -3574,7 +3574,7 @@ func WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size } func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) + r1, _, e1 := syscall.SyscallN(procAcceptEx.Addr(), uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped))) if r1 == 0 { err = errnoErr(e1) } @@ -3582,12 +3582,12 @@ func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32 } func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { - syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0) + syscall.SyscallN(procGetAcceptExSockaddrs.Addr(), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen))) return } func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) + r1, _, e1 := syscall.SyscallN(procTransmitFile.Addr(), uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -3595,7 +3595,7 @@ func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint } func NetApiBufferFree(buf *byte) (neterr error) { - r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) + r0, _, _ := syscall.SyscallN(procNetApiBufferFree.Addr(), uintptr(unsafe.Pointer(buf))) if r0 != 0 { neterr = syscall.Errno(r0) } @@ -3603,7 +3603,7 @@ func NetApiBufferFree(buf *byte) (neterr error) { } func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { - r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) + r0, _, _ := syscall.SyscallN(procNetGetJoinInformation.Addr(), uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) if r0 != 0 { neterr = syscall.Errno(r0) } @@ -3611,7 +3611,7 @@ func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (nete } func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) { - r0, _, _ := syscall.Syscall9(procNetUserEnum.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)), 0) + r0, _, _ := syscall.SyscallN(procNetUserEnum.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle))) if r0 != 0 { neterr = syscall.Errno(r0) } @@ -3619,7 +3619,7 @@ func NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, pr } func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { - r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) + r0, _, _ := syscall.SyscallN(procNetUserGetInfo.Addr(), uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf))) if r0 != 0 { neterr = syscall.Errno(r0) } @@ -3627,7 +3627,7 @@ func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **by } func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength), 0) + r0, _, _ := syscall.SyscallN(procNtCreateFile.Addr(), uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength)) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3635,7 +3635,7 @@ func NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO } func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) { - r0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0) + r0, _, _ := syscall.SyscallN(procNtCreateNamedPipeFile.Addr(), uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3643,7 +3643,7 @@ func NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, i } func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)), 0) + r0, _, _ := syscall.SyscallN(procNtQueryInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3651,7 +3651,7 @@ func NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe } func NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)), 0, 0) + r0, _, _ := syscall.SyscallN(procNtQuerySystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3659,7 +3659,7 @@ func NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInf } func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class), 0) + r0, _, _ := syscall.SyscallN(procNtSetInformationFile.Addr(), uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class)) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3667,7 +3667,7 @@ func NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, } func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procNtSetInformationProcess.Addr(), 4, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), 0, 0) + r0, _, _ := syscall.SyscallN(procNtSetInformationProcess.Addr(), uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen)) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3675,7 +3675,7 @@ func NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.P } func NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) { - r0, _, _ := syscall.Syscall(procNtSetSystemInformation.Addr(), 3, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen)) + r0, _, _ := syscall.SyscallN(procNtSetSystemInformation.Addr(), uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen)) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3683,13 +3683,13 @@ func NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoL } func RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) { - r0, _, _ := syscall.Syscall(procRtlAddFunctionTable.Addr(), 3, uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress)) + r0, _, _ := syscall.SyscallN(procRtlAddFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress)) ret = r0 != 0 return } func RtlDefaultNpAcl(acl **ACL) (ntstatus error) { - r0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(acl)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlDefaultNpAcl.Addr(), uintptr(unsafe.Pointer(acl))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3697,13 +3697,13 @@ func RtlDefaultNpAcl(acl **ACL) (ntstatus error) { } func RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) { - r0, _, _ := syscall.Syscall(procRtlDeleteFunctionTable.Addr(), 1, uintptr(unsafe.Pointer(functionTable)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlDeleteFunctionTable.Addr(), uintptr(unsafe.Pointer(functionTable))) ret = r0 != 0 return } func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3711,7 +3711,7 @@ func RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFile } func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) { - r0, _, _ := syscall.Syscall6(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3719,18 +3719,18 @@ func RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString } func RtlGetCurrentPeb() (peb *PEB) { - r0, _, _ := syscall.Syscall(procRtlGetCurrentPeb.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procRtlGetCurrentPeb.Addr()) peb = (*PEB)(unsafe.Pointer(r0)) return } func rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) { - syscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) + syscall.SyscallN(procRtlGetNtVersionNumbers.Addr(), uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber))) return } func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) { - r0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlGetVersion.Addr(), uintptr(unsafe.Pointer(info))) if r0 != 0 { ntstatus = NTStatus(r0) } @@ -3738,23 +3738,23 @@ func rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) { } func RtlInitString(destinationString *NTString, sourceString *byte) { - syscall.Syscall(procRtlInitString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) + syscall.SyscallN(procRtlInitString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString))) return } func RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) { - syscall.Syscall(procRtlInitUnicodeString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0) + syscall.SyscallN(procRtlInitUnicodeString.Addr(), uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString))) return } func rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) { - r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(ntstatus), 0, 0) + r0, _, _ := syscall.SyscallN(procRtlNtStatusToDosErrorNoTeb.Addr(), uintptr(ntstatus)) ret = syscall.Errno(r0) return } func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { - r0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0) + r0, _, _ := syscall.SyscallN(procCLSIDFromString.Addr(), uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3762,7 +3762,7 @@ func clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) { } func coCreateGuid(pguid *GUID) (ret error) { - r0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0) + r0, _, _ := syscall.SyscallN(procCoCreateGuid.Addr(), uintptr(unsafe.Pointer(pguid))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3770,7 +3770,7 @@ func coCreateGuid(pguid *GUID) (ret error) { } func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) { - r0, _, _ := syscall.Syscall6(procCoGetObject.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)), 0, 0) + r0, _, _ := syscall.SyscallN(procCoGetObject.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3778,7 +3778,7 @@ func CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable * } func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) { - r0, _, _ := syscall.Syscall(procCoInitializeEx.Addr(), 2, uintptr(reserved), uintptr(coInit), 0) + r0, _, _ := syscall.SyscallN(procCoInitializeEx.Addr(), uintptr(reserved), uintptr(coInit)) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3786,23 +3786,23 @@ func CoInitializeEx(reserved uintptr, coInit uint32) (ret error) { } func CoTaskMemFree(address unsafe.Pointer) { - syscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0) + syscall.SyscallN(procCoTaskMemFree.Addr(), uintptr(address)) return } func CoUninitialize() { - syscall.Syscall(procCoUninitialize.Addr(), 0, 0, 0, 0) + syscall.SyscallN(procCoUninitialize.Addr()) return } func stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) { - r0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) + r0, _, _ := syscall.SyscallN(procStringFromGUID2.Addr(), uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax)) chars = int32(r0) return } func EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumProcessModules.Addr(), 4, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), 0, 0) + r1, _, e1 := syscall.SyscallN(procEnumProcessModules.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded))) if r1 == 0 { err = errnoErr(e1) } @@ -3810,7 +3810,7 @@ func EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uin } func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procEnumProcessModulesEx.Addr(), 5, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag), 0) + r1, _, e1 := syscall.SyscallN(procEnumProcessModulesEx.Addr(), uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag)) if r1 == 0 { err = errnoErr(e1) } @@ -3818,7 +3818,7 @@ func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *u } func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) + r1, _, e1 := syscall.SyscallN(procEnumProcesses.Addr(), uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) if r1 == 0 { err = errnoErr(e1) } @@ -3826,7 +3826,7 @@ func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err } func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleBaseNameW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetModuleBaseNameW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size)) if r1 == 0 { err = errnoErr(e1) } @@ -3834,7 +3834,7 @@ func GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uin } func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleFileNameExW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetModuleFileNameExW.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size)) if r1 == 0 { err = errnoErr(e1) } @@ -3842,7 +3842,7 @@ func GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size u } func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetModuleInformation.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetModuleInformation.Addr(), uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb)) if r1 == 0 { err = errnoErr(e1) } @@ -3850,7 +3850,7 @@ func GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb } func QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) { - r1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb)) + r1, _, e1 := syscall.SyscallN(procQueryWorkingSetEx.Addr(), uintptr(process), uintptr(pv), uintptr(cb)) if r1 == 0 { err = errnoErr(e1) } @@ -3862,7 +3862,7 @@ func SubscribeServiceChangeNotifications(service Handle, eventType uint32, callb if ret != nil { return } - r0, _, _ := syscall.Syscall6(procSubscribeServiceChangeNotifications.Addr(), 5, uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)), 0) + r0, _, _ := syscall.SyscallN(procSubscribeServiceChangeNotifications.Addr(), uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -3874,12 +3874,12 @@ func UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) { if err != nil { return } - syscall.Syscall(procUnsubscribeServiceChangeNotifications.Addr(), 1, uintptr(subscription), 0, 0) + syscall.SyscallN(procUnsubscribeServiceChangeNotifications.Addr(), uintptr(subscription)) return } func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) + r1, _, e1 := syscall.SyscallN(procGetUserNameExW.Addr(), uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) if r1&0xff == 0 { err = errnoErr(e1) } @@ -3887,7 +3887,7 @@ func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err er } func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) + r1, _, e1 := syscall.SyscallN(procTranslateNameW.Addr(), uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize))) if r1&0xff == 0 { err = errnoErr(e1) } @@ -3895,7 +3895,7 @@ func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint } func SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiBuildDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) + r1, _, e1 := syscall.SyscallN(procSetupDiBuildDriverInfoList.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) if r1 == 0 { err = errnoErr(e1) } @@ -3903,7 +3903,7 @@ func SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoDa } func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiCallClassInstaller.Addr(), 3, uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) + r1, _, e1 := syscall.SyscallN(procSetupDiCallClassInstaller.Addr(), uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -3911,7 +3911,7 @@ func SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInf } func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiCancelDriverInfoSearch.Addr(), 1, uintptr(deviceInfoSet), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiCancelDriverInfoSearch.Addr(), uintptr(deviceInfoSet)) if r1 == 0 { err = errnoErr(e1) } @@ -3919,7 +3919,7 @@ func SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) { } func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiClassGuidsFromNameExW.Addr(), 6, uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) + r1, _, e1 := syscall.SyscallN(procSetupDiClassGuidsFromNameExW.Addr(), uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) if r1 == 0 { err = errnoErr(e1) } @@ -3927,7 +3927,7 @@ func setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGu } func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiClassNameFromGuidExW.Addr(), 6, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) + r1, _, e1 := syscall.SyscallN(procSetupDiClassNameFromGuidExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) if r1 == 0 { err = errnoErr(e1) } @@ -3935,7 +3935,7 @@ func setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSiz } func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { - r0, _, e1 := syscall.Syscall6(procSetupDiCreateDeviceInfoListExW.Addr(), 4, uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) + r0, _, e1 := syscall.SyscallN(procSetupDiCreateDeviceInfoListExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) handle = DevInfo(r0) if handle == DevInfo(InvalidHandle) { err = errnoErr(e1) @@ -3944,7 +3944,7 @@ func setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineN } func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiCreateDeviceInfoW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiCreateDeviceInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -3952,7 +3952,7 @@ func setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUI } func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiDestroyDeviceInfoList.Addr(), 1, uintptr(deviceInfoSet), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiDestroyDeviceInfoList.Addr(), uintptr(deviceInfoSet)) if r1 == 0 { err = errnoErr(e1) } @@ -3960,7 +3960,7 @@ func SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) { } func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiDestroyDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) + r1, _, e1 := syscall.SyscallN(procSetupDiDestroyDriverInfoList.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType)) if r1 == 0 { err = errnoErr(e1) } @@ -3968,7 +3968,7 @@ func SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfo } func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiEnumDeviceInfo.Addr(), 3, uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData))) + r1, _, e1 := syscall.SyscallN(procSetupDiEnumDeviceInfo.Addr(), uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -3976,7 +3976,7 @@ func setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfo } func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiEnumDriverInfoW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiEnumDriverInfoW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -3984,7 +3984,7 @@ func setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, d } func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) { - r0, _, e1 := syscall.Syscall9(procSetupDiGetClassDevsExW.Addr(), 7, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0) + r0, _, e1 := syscall.SyscallN(procSetupDiGetClassDevsExW.Addr(), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved)) handle = DevInfo(r0) if handle == DevInfo(InvalidHandle) { err = errnoErr(e1) @@ -3993,7 +3993,7 @@ func setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintp } func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetClassInstallParamsW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4001,7 +4001,7 @@ func SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfo } func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInfoListDetailW.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInfoListDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData))) if r1 == 0 { err = errnoErr(e1) } @@ -4009,7 +4009,7 @@ func setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailDa } func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) if r1 == 0 { err = errnoErr(e1) } @@ -4017,7 +4017,7 @@ func setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInf } func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetDeviceInstanceIdW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceInstanceIdW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4025,7 +4025,7 @@ func setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoDa } func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiGetDevicePropertyW.Addr(), 8, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDevicePropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags)) if r1 == 0 { err = errnoErr(e1) } @@ -4033,7 +4033,7 @@ func setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procSetupDiGetDeviceRegistryPropertyW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4041,7 +4041,7 @@ func setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *Dev } func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiGetDriverInfoDetailW.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize))) + r1, _, e1 := syscall.SyscallN(procSetupDiGetDriverInfoDetailW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4049,7 +4049,7 @@ func setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoDa } func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiGetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -4057,7 +4057,7 @@ func setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) + r1, _, e1 := syscall.SyscallN(procSetupDiGetSelectedDriverW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -4065,7 +4065,7 @@ func setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) { - r0, _, e1 := syscall.Syscall6(procSetupDiOpenDevRegKey.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired)) + r0, _, e1 := syscall.SyscallN(procSetupDiOpenDevRegKey.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired)) key = Handle(r0) if key == InvalidHandle { err = errnoErr(e1) @@ -4074,7 +4074,7 @@ func SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Sc } func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiSetClassInstallParamsW.Addr(), 4, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), 0, 0) + r1, _, e1 := syscall.SyscallN(procSetupDiSetClassInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize)) if r1 == 0 { err = errnoErr(e1) } @@ -4082,7 +4082,7 @@ func SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfo } func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) + r1, _, e1 := syscall.SyscallN(procSetupDiSetDeviceInstallParamsW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams))) if r1 == 0 { err = errnoErr(e1) } @@ -4090,7 +4090,7 @@ func SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInf } func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procSetupDiSetDeviceRegistryPropertyW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiSetDeviceRegistryPropertyW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize)) if r1 == 0 { err = errnoErr(e1) } @@ -4098,7 +4098,7 @@ func setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *Dev } func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0) + r1, _, e1 := syscall.SyscallN(procSetupDiSetSelectedDevice.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -4106,7 +4106,7 @@ func SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) { - r1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) + r1, _, e1 := syscall.SyscallN(procSetupDiSetSelectedDriverW.Addr(), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData))) if r1 == 0 { err = errnoErr(e1) } @@ -4114,7 +4114,7 @@ func SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData } func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) { - r1, _, e1 := syscall.Syscall(procSetupUninstallOEMInfW.Addr(), 3, uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved)) + r1, _, e1 := syscall.SyscallN(procSetupUninstallOEMInfW.Addr(), uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved)) if r1 == 0 { err = errnoErr(e1) } @@ -4122,7 +4122,7 @@ func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (er } func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) { - r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) + r0, _, e1 := syscall.SyscallN(procCommandLineToArgvW.Addr(), uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc))) argv = (**uint16)(unsafe.Pointer(r0)) if argv == nil { err = errnoErr(e1) @@ -4131,7 +4131,7 @@ func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) { } func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) { - r0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0) + r0, _, _ := syscall.SyscallN(procSHGetKnownFolderPath.Addr(), uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -4139,7 +4139,7 @@ func shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **u } func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) { - r1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) + r1, _, e1 := syscall.SyscallN(procShellExecuteW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd)) if r1 <= 32 { err = errnoErr(e1) } @@ -4147,12 +4147,12 @@ func ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *ui } func EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) { - syscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param)) + syscall.SyscallN(procEnumChildWindows.Addr(), uintptr(hwnd), uintptr(enumFunc), uintptr(param)) return } func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0) + r1, _, e1 := syscall.SyscallN(procEnumWindows.Addr(), uintptr(enumFunc), uintptr(param)) if r1 == 0 { err = errnoErr(e1) } @@ -4160,7 +4160,7 @@ func EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) { } func ExitWindowsEx(flags uint32, reason uint32) (err error) { - r1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0) + r1, _, e1 := syscall.SyscallN(procExitWindowsEx.Addr(), uintptr(flags), uintptr(reason)) if r1 == 0 { err = errnoErr(e1) } @@ -4168,7 +4168,7 @@ func ExitWindowsEx(flags uint32, reason uint32) (err error) { } func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) { - r0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) + r0, _, e1 := syscall.SyscallN(procGetClassNameW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount)) copied = int32(r0) if copied == 0 { err = errnoErr(e1) @@ -4177,19 +4177,19 @@ func GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, e } func GetDesktopWindow() (hwnd HWND) { - r0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetDesktopWindow.Addr()) hwnd = HWND(r0) return } func GetForegroundWindow() (hwnd HWND) { - r0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetForegroundWindow.Addr()) hwnd = HWND(r0) return } func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { - r1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0) + r1, _, e1 := syscall.SyscallN(procGetGUIThreadInfo.Addr(), uintptr(thread), uintptr(unsafe.Pointer(info))) if r1 == 0 { err = errnoErr(e1) } @@ -4197,19 +4197,19 @@ func GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) { } func GetKeyboardLayout(tid uint32) (hkl Handle) { - r0, _, _ := syscall.Syscall(procGetKeyboardLayout.Addr(), 1, uintptr(tid), 0, 0) + r0, _, _ := syscall.SyscallN(procGetKeyboardLayout.Addr(), uintptr(tid)) hkl = Handle(r0) return } func GetShellWindow() (shellWindow HWND) { - r0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0) + r0, _, _ := syscall.SyscallN(procGetShellWindow.Addr()) shellWindow = HWND(r0) return } func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetWindowThreadProcessId.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(pid)), 0) + r0, _, e1 := syscall.SyscallN(procGetWindowThreadProcessId.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(pid))) tid = uint32(r0) if tid == 0 { err = errnoErr(e1) @@ -4218,25 +4218,25 @@ func GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) { } func IsWindow(hwnd HWND) (isWindow bool) { - r0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0) + r0, _, _ := syscall.SyscallN(procIsWindow.Addr(), uintptr(hwnd)) isWindow = r0 != 0 return } func IsWindowUnicode(hwnd HWND) (isUnicode bool) { - r0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0) + r0, _, _ := syscall.SyscallN(procIsWindowUnicode.Addr(), uintptr(hwnd)) isUnicode = r0 != 0 return } func IsWindowVisible(hwnd HWND) (isVisible bool) { - r0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0) + r0, _, _ := syscall.SyscallN(procIsWindowVisible.Addr(), uintptr(hwnd)) isVisible = r0 != 0 return } func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) { - r0, _, e1 := syscall.Syscall(procLoadKeyboardLayoutW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(flags), 0) + r0, _, e1 := syscall.SyscallN(procLoadKeyboardLayoutW.Addr(), uintptr(unsafe.Pointer(name)), uintptr(flags)) hkl = Handle(r0) if hkl == 0 { err = errnoErr(e1) @@ -4245,7 +4245,7 @@ func LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) { } func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) { - r0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0) + r0, _, e1 := syscall.SyscallN(procMessageBoxW.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype)) ret = int32(r0) if ret == 0 { err = errnoErr(e1) @@ -4254,13 +4254,13 @@ func MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret i } func ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) { - r0, _, _ := syscall.Syscall9(procToUnicodeEx.Addr(), 7, uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl), 0, 0) + r0, _, _ := syscall.SyscallN(procToUnicodeEx.Addr(), uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl)) ret = int32(r0) return } func UnloadKeyboardLayout(hkl Handle) (err error) { - r1, _, e1 := syscall.Syscall(procUnloadKeyboardLayout.Addr(), 1, uintptr(hkl), 0, 0) + r1, _, e1 := syscall.SyscallN(procUnloadKeyboardLayout.Addr(), uintptr(hkl)) if r1 == 0 { err = errnoErr(e1) } @@ -4272,7 +4272,7 @@ func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) ( if inheritExisting { _p0 = 1 } - r1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) + r1, _, e1 := syscall.SyscallN(procCreateEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0)) if r1 == 0 { err = errnoErr(e1) } @@ -4280,7 +4280,7 @@ func CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) ( } func DestroyEnvironmentBlock(block *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0) + r1, _, e1 := syscall.SyscallN(procDestroyEnvironmentBlock.Addr(), uintptr(unsafe.Pointer(block))) if r1 == 0 { err = errnoErr(e1) } @@ -4288,7 +4288,7 @@ func DestroyEnvironmentBlock(block *uint16) (err error) { } func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) + r1, _, e1 := syscall.SyscallN(procGetUserProfileDirectoryW.Addr(), uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) if r1 == 0 { err = errnoErr(e1) } @@ -4305,7 +4305,7 @@ func GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32 } func _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileVersionInfoSizeW.Addr(), 2, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)), 0) + r0, _, e1 := syscall.SyscallN(procGetFileVersionInfoSizeW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle))) bufSize = uint32(r0) if bufSize == 0 { err = errnoErr(e1) @@ -4323,7 +4323,7 @@ func GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer u } func _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) { - r1, _, e1 := syscall.Syscall6(procGetFileVersionInfoW.Addr(), 4, uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer), 0, 0) + r1, _, e1 := syscall.SyscallN(procGetFileVersionInfoW.Addr(), uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer)) if r1 == 0 { err = errnoErr(e1) } @@ -4340,7 +4340,7 @@ func VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer } func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procVerQueryValueW.Addr(), 4, uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)), 0, 0) + r1, _, e1 := syscall.SyscallN(procVerQueryValueW.Addr(), uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize))) if r1 == 0 { err = errnoErr(e1) } @@ -4348,7 +4348,7 @@ func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPoint } func TimeBeginPeriod(period uint32) (err error) { - r1, _, e1 := syscall.Syscall(proctimeBeginPeriod.Addr(), 1, uintptr(period), 0, 0) + r1, _, e1 := syscall.SyscallN(proctimeBeginPeriod.Addr(), uintptr(period)) if r1 != 0 { err = errnoErr(e1) } @@ -4356,7 +4356,7 @@ func TimeBeginPeriod(period uint32) (err error) { } func TimeEndPeriod(period uint32) (err error) { - r1, _, e1 := syscall.Syscall(proctimeEndPeriod.Addr(), 1, uintptr(period), 0, 0) + r1, _, e1 := syscall.SyscallN(proctimeEndPeriod.Addr(), uintptr(period)) if r1 != 0 { err = errnoErr(e1) } @@ -4364,7 +4364,7 @@ func TimeEndPeriod(period uint32) (err error) { } func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) { - r0, _, _ := syscall.Syscall(procWinVerifyTrustEx.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) + r0, _, _ := syscall.SyscallN(procWinVerifyTrustEx.Addr(), uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) if r0 != 0 { ret = syscall.Errno(r0) } @@ -4372,12 +4372,12 @@ func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) } func FreeAddrInfoW(addrinfo *AddrinfoW) { - syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) + syscall.SyscallN(procFreeAddrInfoW.Addr(), uintptr(unsafe.Pointer(addrinfo))) return } func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { - r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) + r0, _, _ := syscall.SyscallN(procGetAddrInfoW.Addr(), uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result))) if r0 != 0 { sockerr = syscall.Errno(r0) } @@ -4385,7 +4385,7 @@ func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, resul } func WSACleanup() (err error) { - r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) + r1, _, e1 := syscall.SyscallN(procWSACleanup.Addr()) if r1 == socket_error { err = errnoErr(e1) } @@ -4393,7 +4393,7 @@ func WSACleanup() (err error) { } func WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) { - r1, _, e1 := syscall.Syscall(procWSADuplicateSocketW.Addr(), 3, uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info))) + r1, _, e1 := syscall.SyscallN(procWSADuplicateSocketW.Addr(), uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info))) if r1 != 0 { err = errnoErr(e1) } @@ -4401,7 +4401,7 @@ func WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err } func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { - r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) + r0, _, e1 := syscall.SyscallN(procWSAEnumProtocolsW.Addr(), uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) n = int32(r0) if n == -1 { err = errnoErr(e1) @@ -4414,7 +4414,7 @@ func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, f if wait { _p0 = 1 } - r1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0) + r1, _, e1 := syscall.SyscallN(procWSAGetOverlappedResult.Addr(), uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags))) if r1 == 0 { err = errnoErr(e1) } @@ -4422,7 +4422,7 @@ func WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, f } func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { - r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) + r1, _, e1 := syscall.SyscallN(procWSAIoctl.Addr(), uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) if r1 == socket_error { err = errnoErr(e1) } @@ -4430,7 +4430,7 @@ func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbo } func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) { - r1, _, e1 := syscall.Syscall(procWSALookupServiceBeginW.Addr(), 3, uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle))) + r1, _, e1 := syscall.SyscallN(procWSALookupServiceBeginW.Addr(), uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle))) if r1 == socket_error { err = errnoErr(e1) } @@ -4438,7 +4438,7 @@ func WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) } func WSALookupServiceEnd(handle Handle) (err error) { - r1, _, e1 := syscall.Syscall(procWSALookupServiceEnd.Addr(), 1, uintptr(handle), 0, 0) + r1, _, e1 := syscall.SyscallN(procWSALookupServiceEnd.Addr(), uintptr(handle)) if r1 == socket_error { err = errnoErr(e1) } @@ -4446,7 +4446,7 @@ func WSALookupServiceEnd(handle Handle) (err error) { } func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) { - r1, _, e1 := syscall.Syscall6(procWSALookupServiceNextW.Addr(), 4, uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)), 0, 0) + r1, _, e1 := syscall.SyscallN(procWSALookupServiceNextW.Addr(), uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet))) if r1 == socket_error { err = errnoErr(e1) } @@ -4454,7 +4454,7 @@ func WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WS } func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + r1, _, e1 := syscall.SyscallN(procWSARecv.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { err = errnoErr(e1) } @@ -4462,7 +4462,7 @@ func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32 } func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + r1, _, e1 := syscall.SyscallN(procWSARecvFrom.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { err = errnoErr(e1) } @@ -4470,7 +4470,7 @@ func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *ui } func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + r1, _, e1 := syscall.SyscallN(procWSASend.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { err = errnoErr(e1) } @@ -4478,7 +4478,7 @@ func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, } func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { - r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + r1, _, e1 := syscall.SyscallN(procWSASendTo.Addr(), uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) if r1 == socket_error { err = errnoErr(e1) } @@ -4486,7 +4486,7 @@ func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32 } func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall6(procWSASocketW.Addr(), 6, uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags)) + r0, _, e1 := syscall.SyscallN(procWSASocketW.Addr(), uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -4495,7 +4495,7 @@ func WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, } func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { - r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) + r0, _, _ := syscall.SyscallN(procWSAStartup.Addr(), uintptr(verreq), uintptr(unsafe.Pointer(data))) if r0 != 0 { sockerr = syscall.Errno(r0) } @@ -4503,7 +4503,7 @@ func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { } func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + r1, _, e1 := syscall.SyscallN(procbind.Addr(), uintptr(s), uintptr(name), uintptr(namelen)) if r1 == socket_error { err = errnoErr(e1) } @@ -4511,7 +4511,7 @@ func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { } func Closesocket(s Handle) (err error) { - r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) + r1, _, e1 := syscall.SyscallN(procclosesocket.Addr(), uintptr(s)) if r1 == socket_error { err = errnoErr(e1) } @@ -4519,7 +4519,7 @@ func Closesocket(s Handle) (err error) { } func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + r1, _, e1 := syscall.SyscallN(procconnect.Addr(), uintptr(s), uintptr(name), uintptr(namelen)) if r1 == socket_error { err = errnoErr(e1) } @@ -4536,7 +4536,7 @@ func GetHostByName(name string) (h *Hostent, err error) { } func _GetHostByName(name *byte) (h *Hostent, err error) { - r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + r0, _, e1 := syscall.SyscallN(procgethostbyname.Addr(), uintptr(unsafe.Pointer(name))) h = (*Hostent)(unsafe.Pointer(r0)) if h == nil { err = errnoErr(e1) @@ -4545,7 +4545,7 @@ func _GetHostByName(name *byte) (h *Hostent, err error) { } func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r1, _, e1 := syscall.SyscallN(procgetpeername.Addr(), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if r1 == socket_error { err = errnoErr(e1) } @@ -4562,7 +4562,7 @@ func GetProtoByName(name string) (p *Protoent, err error) { } func _GetProtoByName(name *byte) (p *Protoent, err error) { - r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + r0, _, e1 := syscall.SyscallN(procgetprotobyname.Addr(), uintptr(unsafe.Pointer(name))) p = (*Protoent)(unsafe.Pointer(r0)) if p == nil { err = errnoErr(e1) @@ -4585,7 +4585,7 @@ func GetServByName(name string, proto string) (s *Servent, err error) { } func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { - r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) + r0, _, e1 := syscall.SyscallN(procgetservbyname.Addr(), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto))) s = (*Servent)(unsafe.Pointer(r0)) if s == nil { err = errnoErr(e1) @@ -4594,7 +4594,7 @@ func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { } func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + r1, _, e1 := syscall.SyscallN(procgetsockname.Addr(), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) if r1 == socket_error { err = errnoErr(e1) } @@ -4602,7 +4602,7 @@ func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { } func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { - r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) + r1, _, e1 := syscall.SyscallN(procgetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen))) if r1 == socket_error { err = errnoErr(e1) } @@ -4610,7 +4610,7 @@ func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int3 } func listen(s Handle, backlog int32) (err error) { - r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) + r1, _, e1 := syscall.SyscallN(proclisten.Addr(), uintptr(s), uintptr(backlog)) if r1 == socket_error { err = errnoErr(e1) } @@ -4618,7 +4618,7 @@ func listen(s Handle, backlog int32) (err error) { } func Ntohs(netshort uint16) (u uint16) { - r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) + r0, _, _ := syscall.SyscallN(procntohs.Addr(), uintptr(netshort)) u = uint16(r0) return } @@ -4628,7 +4628,7 @@ func recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen * if len(buf) > 0 { _p0 = &buf[0] } - r0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + r0, _, e1 := syscall.SyscallN(procrecvfrom.Addr(), uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) n = int32(r0) if n == -1 { err = errnoErr(e1) @@ -4641,7 +4641,7 @@ func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) ( if len(buf) > 0 { _p0 = &buf[0] } - r1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) + r1, _, e1 := syscall.SyscallN(procsendto.Addr(), uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen)) if r1 == socket_error { err = errnoErr(e1) } @@ -4649,7 +4649,7 @@ func sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) ( } func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { - r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) + r1, _, e1 := syscall.SyscallN(procsetsockopt.Addr(), uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen)) if r1 == socket_error { err = errnoErr(e1) } @@ -4657,7 +4657,7 @@ func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32 } func shutdown(s Handle, how int32) (err error) { - r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) + r1, _, e1 := syscall.SyscallN(procshutdown.Addr(), uintptr(s), uintptr(how)) if r1 == socket_error { err = errnoErr(e1) } @@ -4665,7 +4665,7 @@ func shutdown(s Handle, how int32) (err error) { } func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { - r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) + r0, _, e1 := syscall.SyscallN(procsocket.Addr(), uintptr(af), uintptr(typ), uintptr(protocol)) handle = Handle(r0) if handle == InvalidHandle { err = errnoErr(e1) @@ -4674,7 +4674,7 @@ func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { } func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0) + r1, _, e1 := syscall.SyscallN(procWTSEnumerateSessionsW.Addr(), uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count))) if r1 == 0 { err = errnoErr(e1) } @@ -4682,12 +4682,12 @@ func WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessio } func WTSFreeMemory(ptr uintptr) { - syscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0) + syscall.SyscallN(procWTSFreeMemory.Addr(), uintptr(ptr)) return } func WTSQueryUserToken(session uint32, token *Token) (err error) { - r1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0) + r1, _, e1 := syscall.SyscallN(procWTSQueryUserToken.Addr(), uintptr(session), uintptr(unsafe.Pointer(token))) if r1 == 0 { err = errnoErr(e1) } diff --git a/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go index 89f5097be..0fb4e7eea 100644 --- a/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go +++ b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go @@ -113,7 +113,7 @@ func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Nod // childrenOf elides the FuncType node beneath FuncDecl. // Add it back here for TypeParams, Params, Results, // all FieldLists). But we don't add it back for the "func" token - // even though it is is the tree at FuncDecl.Type.Func. + // even though it is the tree at FuncDecl.Type.Func. if decl, ok := node.(*ast.FuncDecl); ok { if fields, ok := child.(*ast.FieldList); ok && fields != decl.Recv { path = append(path, decl.Type) diff --git a/vendor/golang.org/x/tools/go/packages/doc.go b/vendor/golang.org/x/tools/go/packages/doc.go index f1931d10e..366aab6b2 100644 --- a/vendor/golang.org/x/tools/go/packages/doc.go +++ b/vendor/golang.org/x/tools/go/packages/doc.go @@ -76,6 +76,8 @@ uninterpreted to Load, so that it can interpret them according to the conventions of the underlying build system. See the Example function for typical usage. +See also [golang.org/x/tools/go/packages/internal/linecount] +for an example application. # The driver protocol diff --git a/vendor/golang.org/x/tools/internal/imports/source_modindex.go b/vendor/golang.org/x/tools/internal/imports/source_modindex.go index 05229f06c..ca745d4a1 100644 --- a/vendor/golang.org/x/tools/internal/imports/source_modindex.go +++ b/vendor/golang.org/x/tools/internal/imports/source_modindex.go @@ -15,6 +15,10 @@ import ( // This code is here rather than in the modindex package // to avoid import loops +// TODO(adonovan): this code is only used by a test in this package. +// Can we delete it? Or is there a plan to call NewIndexSource from +// cmd/goimports? + // implements Source using modindex, so only for module cache. // // this is perhaps over-engineered. A new Index is read at first use. @@ -22,8 +26,8 @@ import ( // is read if the index changed. It is not clear the Mutex is needed. type IndexSource struct { modcachedir string - mutex sync.Mutex - ix *modindex.Index + mu sync.Mutex + index *modindex.Index // (access via getIndex) expires time.Time } @@ -39,13 +43,14 @@ func (s *IndexSource) LoadPackageNames(ctx context.Context, srcDir string, paths } func (s *IndexSource) ResolveReferences(ctx context.Context, filename string, missing References) ([]*Result, error) { - if err := s.maybeReadIndex(); err != nil { + index, err := s.getIndex() + if err != nil { return nil, err } var cs []modindex.Candidate for pkg, nms := range missing { for nm := range nms { - x := s.ix.Lookup(pkg, nm, false) + x := index.Lookup(pkg, nm, false) cs = append(cs, x...) } } @@ -74,30 +79,22 @@ func (s *IndexSource) ResolveReferences(ctx context.Context, filename string, mi return ans, nil } -func (s *IndexSource) maybeReadIndex() error { - s.mutex.Lock() - defer s.mutex.Unlock() +func (s *IndexSource) getIndex() (*modindex.Index, error) { + s.mu.Lock() + defer s.mu.Unlock() - var readIndex bool - if time.Now().After(s.expires) { - ok, err := modindex.Update(s.modcachedir) + // (s.index = nil => s.expires is zero, + // so the first condition is strictly redundant. + // But it makes the postcondition very clear.) + if s.index == nil || time.Now().After(s.expires) { + index, err := modindex.Update(s.modcachedir) if err != nil { - return err - } - if ok { - readIndex = true + return nil, err } + s.index = index + s.expires = index.ValidAt.Add(15 * time.Minute) // (refresh period) } + // Inv: s.index != nil - if readIndex || s.ix == nil { - ix, err := modindex.ReadIndex(s.modcachedir) - if err != nil { - return err - } - s.ix = ix - // for now refresh every 15 minutes - s.expires = time.Now().Add(time.Minute * 15) - } - - return nil + return s.index, nil } diff --git a/vendor/golang.org/x/tools/internal/modindex/directories.go b/vendor/golang.org/x/tools/internal/modindex/directories.go index 2faa6ce0b..9a963744b 100644 --- a/vendor/golang.org/x/tools/internal/modindex/directories.go +++ b/vendor/golang.org/x/tools/internal/modindex/directories.go @@ -10,7 +10,6 @@ import ( "os" "path/filepath" "regexp" - "slices" "strings" "sync" "time" @@ -20,50 +19,48 @@ import ( ) type directory struct { - path Relpath + path string // relative to GOMODCACHE importPath string version string // semantic version - syms []symbol } -// byImportPath groups the directories by import path, -// sorting the ones with the same import path by semantic version, -// most recent first. -func byImportPath(dirs []Relpath) (map[string][]*directory, error) { - ans := make(map[string][]*directory) // key is import path - for _, d := range dirs { - ip, sv, err := DirToImportPathVersion(d) +// bestDirByImportPath returns the best directory for each import +// path, where "best" means most recent semantic version. These import +// paths are inferred from the GOMODCACHE-relative dir names in dirs. +func bestDirByImportPath(dirs []string) (map[string]directory, error) { + dirsByPath := make(map[string]directory) + for _, dir := range dirs { + importPath, version, err := dirToImportPathVersion(dir) if err != nil { return nil, err } - ans[ip] = append(ans[ip], &directory{ - path: d, - importPath: ip, - version: sv, - }) + new := directory{ + path: dir, + importPath: importPath, + version: version, + } + if old, ok := dirsByPath[importPath]; !ok || compareDirectory(new, old) < 0 { + dirsByPath[importPath] = new + } } - for k, v := range ans { - semanticSort(v) - ans[k] = v - } - return ans, nil + return dirsByPath, nil } -// sort the directories by semantic version, latest first -func semanticSort(v []*directory) { - slices.SortFunc(v, func(l, r *directory) int { - if n := semver.Compare(l.version, r.version); n != 0 { - return -n // latest first - } - return strings.Compare(string(l.path), string(r.path)) - }) +// compareDirectory defines an ordering of path@version directories, +// by descending version, then by ascending path. +func compareDirectory(x, y directory) int { + if sign := -semver.Compare(x.version, y.version); sign != 0 { + return sign // latest first + } + return strings.Compare(string(x.path), string(y.path)) } // modCacheRegexp splits a relpathpath into module, module version, and package. var modCacheRegexp = regexp.MustCompile(`(.*)@([^/\\]*)(.*)`) -// DirToImportPathVersion computes import path and semantic version -func DirToImportPathVersion(dir Relpath) (string, string, error) { +// dirToImportPathVersion computes import path and semantic version +// from a GOMODCACHE-relative directory name. +func dirToImportPathVersion(dir string) (string, string, error) { m := modCacheRegexp.FindStringSubmatch(string(dir)) // m[1] is the module path // m[2] is the version major.minor.patch(-

 that contains the name
+// Package modindex contains code for building and searching an
+// [Index] of the Go module cache.
+package modindex
+
+// The directory containing the index, returned by
+// [IndexDir], contains a file index-name- that contains the name
 // of the current index. We believe writing that short file is atomic.
-// ReadIndex reads that file to get the file name of the index.
+// [Read] reads that file to get the file name of the index.
 // WriteIndex writes an index with a unique name and then
 // writes that name into a new version of index-name-.
 // ( stands for the CurrentVersion of the index format.)
-package modindex
 
 import (
+	"maps"
+	"os"
 	"path/filepath"
 	"slices"
 	"strings"
@@ -21,144 +25,95 @@ import (
 	"golang.org/x/mod/semver"
 )
 
-// Create always creates a new index for the go module cache that is in cachedir.
-func Create(cachedir string) error {
-	_, err := indexModCache(cachedir, true)
-	return err
-}
-
-// Update the index for the go module cache that is in cachedir,
-// If there is no existing index it will build one.
-// If there are changed directories since the last index, it will
-// write a new one and return true. Otherwise it returns false.
-func Update(cachedir string) (bool, error) {
-	return indexModCache(cachedir, false)
-}
-
-// indexModCache writes an index current as of when it is called.
-// If clear is true the index is constructed from all of GOMODCACHE
-// otherwise the index is constructed from the last previous index
-// and the updates to the cache. It returns true if it wrote an index,
-// false otherwise.
-func indexModCache(cachedir string, clear bool) (bool, error) {
-	cachedir, err := filepath.Abs(cachedir)
+// Update updates the index for the specified Go
+// module cache directory, creating it as needed.
+// On success it returns the current index.
+func Update(gomodcache string) (*Index, error) {
+	prev, err := Read(gomodcache)
 	if err != nil {
-		return false, err
-	}
-	cd := Abspath(cachedir)
-	future := time.Now().Add(24 * time.Hour) // safely in the future
-	ok, err := modindexTimed(future, cd, clear)
-	if err != nil {
-		return false, err
-	}
-	return ok, nil
-}
-
-// modindexTimed writes an index current as of onlyBefore.
-// If clear is true the index is constructed from all of GOMODCACHE
-// otherwise the index is constructed from the last previous index
-// and all the updates to the cache before onlyBefore.
-// It returns true if it wrote a new index, false if it wrote nothing.
-func modindexTimed(onlyBefore time.Time, cachedir Abspath, clear bool) (bool, error) {
-	var curIndex *Index
-	if !clear {
-		var err error
-		curIndex, err = ReadIndex(string(cachedir))
-		if clear && err != nil {
-			return false, err
+		if !os.IsNotExist(err) {
+			return nil, err
 		}
-		// TODO(pjw): check that most of those directories still exist
+		prev = nil
 	}
-	cfg := &work{
-		onlyBefore: onlyBefore,
-		oldIndex:   curIndex,
-		cacheDir:   cachedir,
-	}
-	if curIndex != nil {
-		cfg.onlyAfter = curIndex.Changed
-	}
-	if err := cfg.buildIndex(); err != nil {
-		return false, err
-	}
-	if len(cfg.newIndex.Entries) == 0 && curIndex != nil {
-		// no changes from existing curIndex, don't write a new index
-		return false, nil
-	}
-	if err := cfg.writeIndex(); err != nil {
-		return false, err
-	}
-	return true, nil
+	return update(gomodcache, prev)
 }
 
-type work struct {
-	onlyBefore time.Time // do not use directories later than this
-	onlyAfter  time.Time // only interested in directories after this
-	// directories from before onlyAfter come from oldIndex
-	oldIndex *Index
-	newIndex *Index
-	cacheDir Abspath
-}
-
-func (w *work) buildIndex() error {
-	// The effective date of the new index should be at least
-	// slightly earlier than when the directories are scanned
-	// so set it now.
-	w.newIndex = &Index{Changed: time.Now(), Cachedir: w.cacheDir}
-	dirs := findDirs(string(w.cacheDir), w.onlyAfter, w.onlyBefore)
-	if len(dirs) == 0 {
-		return nil
-	}
-	newdirs, err := byImportPath(dirs)
+// update builds, writes, and returns the current index.
+//
+// If old is nil, the new index is built from all of GOMODCACHE;
+// otherwise it is built from the old index plus cache updates
+// since the previous index's time.
+func update(gomodcache string, old *Index) (*Index, error) {
+	gomodcache, err := filepath.Abs(gomodcache)
 	if err != nil {
-		return err
+		return nil, err
 	}
-	// for each import path it might occur only in newdirs,
-	// only in w.oldIndex, or in both.
-	// If it occurs in both, use the semantically later one
-	if w.oldIndex != nil {
-		for _, e := range w.oldIndex.Entries {
-			found, ok := newdirs[e.ImportPath]
-			if !ok {
-				w.newIndex.Entries = append(w.newIndex.Entries, e)
-				continue // use this one, there is no new one
-			}
-			if semver.Compare(found[0].version, e.Version) > 0 {
-				// use the new one
-			} else {
-				// use the old one, forget the new one
-				w.newIndex.Entries = append(w.newIndex.Entries, e)
-				delete(newdirs, e.ImportPath)
+	new, changed, err := build(gomodcache, old)
+	if err != nil {
+		return nil, err
+	}
+	if old == nil || changed {
+		if err := write(gomodcache, new); err != nil {
+			return nil, err
+		}
+	}
+	return new, nil
+}
+
+// build returns a new index for the specified Go module cache (an
+// absolute path).
+//
+// If an old index is provided, only directories more recent than it
+// that it are scanned; older directories are provided by the old
+// Index.
+//
+// The boolean result indicates whether new entries were found.
+func build(gomodcache string, old *Index) (*Index, bool, error) {
+	// Set the time window.
+	var start time.Time // = dawn of time
+	if old != nil {
+		start = old.ValidAt
+	}
+	now := time.Now()
+	end := now.Add(24 * time.Hour) // safely in the future
+
+	// Enumerate GOMODCACHE package directories.
+	// Choose the best (latest) package for each import path.
+	pkgDirs := findDirs(gomodcache, start, end)
+	dirByPath, err := bestDirByImportPath(pkgDirs)
+	if err != nil {
+		return nil, false, err
+	}
+
+	// For each import path it might occur only in
+	// dirByPath, only in old, or in both.
+	// If both, use the semantically later one.
+	var entries []Entry
+	if old != nil {
+		for _, entry := range old.Entries {
+			dir, ok := dirByPath[entry.ImportPath]
+			if !ok || semver.Compare(dir.version, entry.Version) <= 0 {
+				// New dir is missing or not more recent; use old entry.
+				entries = append(entries, entry)
+				delete(dirByPath, entry.ImportPath)
 			}
 		}
 	}
-	// get symbol information for all the new diredtories
-	getSymbols(w.cacheDir, newdirs)
-	// assemble the new index entries
-	for k, v := range newdirs {
-		d := v[0]
-		pkg, names := processSyms(d.syms)
-		if pkg == "" {
-			continue // PJW: does this ever happen?
-		}
-		entry := Entry{
-			PkgName:    pkg,
-			Dir:        d.path,
-			ImportPath: k,
-			Version:    d.version,
-			Names:      names,
-		}
-		w.newIndex.Entries = append(w.newIndex.Entries, entry)
-	}
-	// sort the entries in the new index
-	slices.SortFunc(w.newIndex.Entries, func(l, r Entry) int {
-		if n := strings.Compare(l.PkgName, r.PkgName); n != 0 {
+
+	// Extract symbol information for all the new directories.
+	newEntries := extractSymbols(gomodcache, maps.Values(dirByPath))
+	entries = append(entries, newEntries...)
+	slices.SortFunc(entries, func(x, y Entry) int {
+		if n := strings.Compare(x.PkgName, y.PkgName); n != 0 {
 			return n
 		}
-		return strings.Compare(l.ImportPath, r.ImportPath)
+		return strings.Compare(x.ImportPath, y.ImportPath)
 	})
-	return nil
-}
 
-func (w *work) writeIndex() error {
-	return writeIndex(w.cacheDir, w.newIndex)
+	return &Index{
+		GOMODCACHE: gomodcache,
+		ValidAt:    now, // time before the directories were scanned
+		Entries:    entries,
+	}, len(newEntries) > 0, nil
 }
diff --git a/vendor/golang.org/x/tools/internal/modindex/symbols.go b/vendor/golang.org/x/tools/internal/modindex/symbols.go
index 31a502c58..fe24db9b1 100644
--- a/vendor/golang.org/x/tools/internal/modindex/symbols.go
+++ b/vendor/golang.org/x/tools/internal/modindex/symbols.go
@@ -10,11 +10,13 @@ import (
 	"go/parser"
 	"go/token"
 	"go/types"
+	"iter"
 	"os"
 	"path/filepath"
 	"runtime"
 	"slices"
 	"strings"
+	"sync"
 
 	"golang.org/x/sync/errgroup"
 )
@@ -34,41 +36,65 @@ type symbol struct {
 	sig  string // signature information, for F
 }
 
-// find the symbols for the best directories
-func getSymbols(cd Abspath, dirs map[string][]*directory) {
+// extractSymbols returns a (new, unordered) array of Entries, one for
+// each provided package directory, describing its exported symbols.
+func extractSymbols(cwd string, dirs iter.Seq[directory]) []Entry {
+	var (
+		mu      sync.Mutex
+		entries []Entry
+	)
+
 	var g errgroup.Group
 	g.SetLimit(max(2, runtime.GOMAXPROCS(0)/2))
-	for _, vv := range dirs {
-		// throttling some day?
-		d := vv[0]
+	for dir := range dirs {
 		g.Go(func() error {
-			thedir := filepath.Join(string(cd), string(d.path))
+			thedir := filepath.Join(cwd, string(dir.path))
 			mode := parser.SkipObjectResolution | parser.ParseComments
 
-			fi, err := os.ReadDir(thedir)
+			// Parse all Go files in dir and extract symbols.
+			dirents, err := os.ReadDir(thedir)
 			if err != nil {
 				return nil // log this someday?
 			}
-			for _, fx := range fi {
-				if !strings.HasSuffix(fx.Name(), ".go") || strings.HasSuffix(fx.Name(), "_test.go") {
+			var syms []symbol
+			for _, dirent := range dirents {
+				if !strings.HasSuffix(dirent.Name(), ".go") ||
+					strings.HasSuffix(dirent.Name(), "_test.go") {
 					continue
 				}
-				fname := filepath.Join(thedir, fx.Name())
+				fname := filepath.Join(thedir, dirent.Name())
 				tr, err := parser.ParseFile(token.NewFileSet(), fname, nil, mode)
 				if err != nil {
 					continue // ignore errors, someday log them?
 				}
-				d.syms = append(d.syms, getFileExports(tr)...)
+				syms = append(syms, getFileExports(tr)...)
 			}
+
+			// Create an entry for the package.
+			pkg, names := processSyms(syms)
+			if pkg != "" {
+				mu.Lock()
+				defer mu.Unlock()
+				entries = append(entries, Entry{
+					PkgName:    pkg,
+					Dir:        dir.path,
+					ImportPath: dir.importPath,
+					Version:    dir.version,
+					Names:      names,
+				})
+			}
+
 			return nil
 		})
 	}
-	g.Wait()
+	g.Wait() // ignore error
+
+	return entries
 }
 
 func getFileExports(f *ast.File) []symbol {
 	pkg := f.Name.Name
-	if pkg == "main" {
+	if pkg == "main" || pkg == "" {
 		return nil
 	}
 	var ans []symbol
@@ -202,17 +228,18 @@ func processSyms(syms []symbol) (string, []string) {
 	pkg := syms[0].pkg
 	var names []string
 	for _, s := range syms {
-		var nx string
-		if s.pkg == pkg {
-			if s.sig != "" {
-				nx = fmt.Sprintf("%s %s %s", s.name, s.kind, s.sig)
-			} else {
-				nx = fmt.Sprintf("%s %s", s.name, s.kind)
-			}
-			names = append(names, nx)
-		} else {
-			continue // PJW: do we want to keep track of these?
+		if s.pkg != pkg {
+			// Symbols came from two files in same dir
+			// with different package declarations.
+			continue
 		}
+		var nx string
+		if s.sig != "" {
+			nx = fmt.Sprintf("%s %s %s", s.name, s.kind, s.sig)
+		} else {
+			nx = fmt.Sprintf("%s %s", s.name, s.kind)
+		}
+		names = append(names, nx)
 	}
 	return pkg, names
 }
diff --git a/vendor/golang.org/x/tools/internal/modindex/types.go b/vendor/golang.org/x/tools/internal/modindex/types.go
deleted file mode 100644
index ece448863..000000000
--- a/vendor/golang.org/x/tools/internal/modindex/types.go
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2024 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 modindex
-
-import (
-	"strings"
-)
-
-// some special types to avoid confusions
-
-// distinguish various types of directory names. It's easy to get confused.
-type Abspath string // absolute paths
-type Relpath string // paths with GOMODCACHE prefix removed
-
-func toRelpath(cachedir Abspath, s string) Relpath {
-	if strings.HasPrefix(s, string(cachedir)) {
-		if s == string(cachedir) {
-			return Relpath("")
-		}
-		return Relpath(s[len(cachedir)+1:])
-	}
-	return Relpath(s)
-}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 8d2b2c522..fa53c8a79 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -619,7 +619,7 @@ github.com/jackc/pgpassfile
 # github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761
 ## explicit; go 1.14
 github.com/jackc/pgservicefile
-# github.com/jackc/pgx/v5 v5.7.5
+# github.com/jackc/pgx/v5 v5.7.6
 ## explicit; go 1.23.0
 github.com/jackc/pgx/v5
 github.com/jackc/pgx/v5/internal/iobufpool
@@ -727,8 +727,8 @@ github.com/modern-go/reflect2
 # github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
 ## explicit
 github.com/munnerz/goautoneg
-# github.com/ncruces/go-sqlite3 v0.28.0
-## explicit; go 1.23.0
+# github.com/ncruces/go-sqlite3 v0.29.0
+## explicit; go 1.24.0
 github.com/ncruces/go-sqlite3
 github.com/ncruces/go-sqlite3/driver
 github.com/ncruces/go-sqlite3/embed
@@ -858,7 +858,7 @@ github.com/stretchr/testify/suite
 # github.com/subosito/gotenv v1.6.0
 ## explicit; go 1.18
 github.com/subosito/gotenv
-# github.com/tdewolff/minify/v2 v2.24.2
+# github.com/tdewolff/minify/v2 v2.24.3
 ## explicit; go 1.17
 github.com/tdewolff/minify/v2
 github.com/tdewolff/minify/v2/html
@@ -1190,7 +1190,7 @@ golang.org/x/image/riff
 golang.org/x/image/vp8
 golang.org/x/image/vp8l
 golang.org/x/image/webp
-# golang.org/x/mod v0.26.0
+# golang.org/x/mod v0.27.0
 ## explicit; go 1.23.0
 golang.org/x/mod/internal/lazyregexp
 golang.org/x/mod/module
@@ -1214,22 +1214,22 @@ golang.org/x/net/ipv4
 golang.org/x/net/ipv6
 golang.org/x/net/publicsuffix
 golang.org/x/net/trace
-# golang.org/x/oauth2 v0.30.0
-## explicit; go 1.23.0
+# golang.org/x/oauth2 v0.31.0
+## explicit; go 1.24.0
 golang.org/x/oauth2
 golang.org/x/oauth2/internal
-# golang.org/x/sync v0.16.0
-## explicit; go 1.23.0
+# golang.org/x/sync v0.17.0
+## explicit; go 1.24.0
 golang.org/x/sync/errgroup
 golang.org/x/sync/semaphore
-# golang.org/x/sys v0.35.0
-## explicit; go 1.23.0
+# golang.org/x/sys v0.36.0
+## explicit; go 1.24.0
 golang.org/x/sys/cpu
 golang.org/x/sys/unix
 golang.org/x/sys/windows
 golang.org/x/sys/windows/registry
-# golang.org/x/text v0.28.0
-## explicit; go 1.23.0
+# golang.org/x/text v0.29.0
+## explicit; go 1.24.0
 golang.org/x/text/cases
 golang.org/x/text/encoding
 golang.org/x/text/encoding/internal
@@ -1250,7 +1250,7 @@ golang.org/x/text/transform
 golang.org/x/text/unicode/bidi
 golang.org/x/text/unicode/norm
 golang.org/x/text/width
-# golang.org/x/tools v0.35.0
+# golang.org/x/tools v0.36.0
 ## explicit; go 1.23.0
 golang.org/x/tools/go/ast/astutil
 golang.org/x/tools/go/gcexportdata