mirror of
https://github.com/golang/go
synced 2024-11-24 17:00:01 -07:00
syscall: rearrange windows code so 386 and amd64 can share files
R=golang-dev, r CC=golang-dev, vcc.163 https://golang.org/cl/4641093
This commit is contained in:
parent
ae19943e2b
commit
e71fc0c1fe
@ -84,5 +84,5 @@ include ../../Make.pkg
|
|||||||
signal_unix.go: ../syscall/zerrors_$(GOOS)_$(GOARCH).go
|
signal_unix.go: ../syscall/zerrors_$(GOOS)_$(GOARCH).go
|
||||||
./mkunixsignals.sh $< > $@ || rm -f $@
|
./mkunixsignals.sh $< > $@ || rm -f $@
|
||||||
|
|
||||||
signal_windows.go: ../syscall/ztypes_$(GOOS)_$(GOARCH).go
|
signal_windows.go: ../syscall/ztypes_$(GOOS).go
|
||||||
./mkunixsignals.sh $< > $@ || rm -f $@
|
./mkunixsignals.sh $< > $@ || rm -f $@
|
||||||
|
@ -41,6 +41,8 @@ GOFILES_linux=\
|
|||||||
|
|
||||||
GOFILES_windows=\
|
GOFILES_windows=\
|
||||||
exec_windows.go\
|
exec_windows.go\
|
||||||
|
zerrors_windows.go\
|
||||||
|
ztypes_windows.go\
|
||||||
|
|
||||||
GOFILES_plan9=\
|
GOFILES_plan9=\
|
||||||
exec_plan9.go\
|
exec_plan9.go\
|
||||||
|
@ -3,5 +3,5 @@
|
|||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
//
|
//
|
||||||
// System calls for 386, Windows are implemented in ../runtime/windows/syscall.cgo
|
// System calls for 386, Windows are implemented in ../runtime/windows/syscall.goc
|
||||||
//
|
//
|
||||||
|
7
src/pkg/syscall/asm_windows_amd64.s
Normal file
7
src/pkg/syscall/asm_windows_amd64.s
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
// Copyright 2009 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.
|
||||||
|
|
||||||
|
//
|
||||||
|
// System calls for amd64, Windows are implemented in ../runtime/windows/syscall.goc
|
||||||
|
//
|
@ -78,6 +78,7 @@ GOOSARCH="${GOOS}_${GOARCH}"
|
|||||||
# defaults
|
# defaults
|
||||||
mksyscall="./mksyscall.pl"
|
mksyscall="./mksyscall.pl"
|
||||||
mkerrors="./mkerrors.sh"
|
mkerrors="./mkerrors.sh"
|
||||||
|
zerrors="zerrors_$GOOSARCH.go"
|
||||||
run="sh"
|
run="sh"
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@ -150,6 +151,14 @@ windows_386)
|
|||||||
mksysnum=
|
mksysnum=
|
||||||
mktypes=
|
mktypes=
|
||||||
mkerrors="./mkerrors_windows.sh -f -m32"
|
mkerrors="./mkerrors_windows.sh -f -m32"
|
||||||
|
zerrors="zerrors_windows.go"
|
||||||
|
;;
|
||||||
|
windows_amd64)
|
||||||
|
mksyscall="./mksyscall_windows.pl"
|
||||||
|
mksysnum=
|
||||||
|
mktypes=
|
||||||
|
mkerrors="./mkerrors_windows.sh -f -m32"
|
||||||
|
zerrors="zerrors_windows.go"
|
||||||
;;
|
;;
|
||||||
plan9_386)
|
plan9_386)
|
||||||
mkerrors=
|
mkerrors=
|
||||||
@ -164,7 +173,7 @@ plan9_386)
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
(
|
(
|
||||||
if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >zerrors_$GOOSARCH.go"; fi
|
if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi
|
||||||
syscall_goos="syscall_$GOOS.go"
|
syscall_goos="syscall_$GOOS.go"
|
||||||
case "$GOOS" in
|
case "$GOOS" in
|
||||||
darwin | freebsd)
|
darwin | freebsd)
|
||||||
|
@ -100,6 +100,8 @@ func getSysProcAddr(m uintptr, pname string) uintptr {
|
|||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Getpagesize() int { return 4096 }
|
||||||
|
|
||||||
// Converts a Go function to a function pointer conforming
|
// Converts a Go function to a function pointer conforming
|
||||||
// to the stdcall calling convention. This is useful when
|
// to the stdcall calling convention. This is useful when
|
||||||
// interoperating with Windows code requiring callbacks.
|
// interoperating with Windows code requiring callbacks.
|
||||||
|
@ -3,5 +3,3 @@
|
|||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
package syscall
|
package syscall
|
||||||
|
|
||||||
func Getpagesize() int { return 4096 }
|
|
||||||
|
5
src/pkg/syscall/syscall_windows_amd64.go
Normal file
5
src/pkg/syscall/syscall_windows_amd64.go
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// Copyright 2009 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 syscall
|
283
src/pkg/syscall/zerrors_windows.go
Normal file
283
src/pkg/syscall/zerrors_windows.go
Normal file
@ -0,0 +1,283 @@
|
|||||||
|
// mkerrors_windows.sh -f -m32
|
||||||
|
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
|
||||||
|
|
||||||
|
package syscall
|
||||||
|
|
||||||
|
// Go names for Windows errors.
|
||||||
|
const (
|
||||||
|
ENOENT = ERROR_FILE_NOT_FOUND
|
||||||
|
ENOTDIR = ERROR_DIRECTORY
|
||||||
|
)
|
||||||
|
|
||||||
|
// Windows reserves errors >= 1<<29 for application use.
|
||||||
|
const APPLICATION_ERROR = 1 << 29
|
||||||
|
|
||||||
|
// Invented values to support what package os and others expects.
|
||||||
|
const (
|
||||||
|
E2BIG = APPLICATION_ERROR + iota
|
||||||
|
EACCES
|
||||||
|
EADDRINUSE
|
||||||
|
EADDRNOTAVAIL
|
||||||
|
EADV
|
||||||
|
EAFNOSUPPORT
|
||||||
|
EAGAIN
|
||||||
|
EALREADY
|
||||||
|
EBADE
|
||||||
|
EBADF
|
||||||
|
EBADFD
|
||||||
|
EBADMSG
|
||||||
|
EBADR
|
||||||
|
EBADRQC
|
||||||
|
EBADSLT
|
||||||
|
EBFONT
|
||||||
|
EBUSY
|
||||||
|
ECANCELED
|
||||||
|
ECHILD
|
||||||
|
ECHRNG
|
||||||
|
ECOMM
|
||||||
|
ECONNABORTED
|
||||||
|
ECONNREFUSED
|
||||||
|
ECONNRESET
|
||||||
|
EDEADLK
|
||||||
|
EDEADLOCK
|
||||||
|
EDESTADDRREQ
|
||||||
|
EDOM
|
||||||
|
EDOTDOT
|
||||||
|
EDQUOT
|
||||||
|
EEXIST
|
||||||
|
EFAULT
|
||||||
|
EFBIG
|
||||||
|
EHOSTDOWN
|
||||||
|
EHOSTUNREACH
|
||||||
|
EIDRM
|
||||||
|
EILSEQ
|
||||||
|
EINPROGRESS
|
||||||
|
EINTR
|
||||||
|
EINVAL
|
||||||
|
EIO
|
||||||
|
EISCONN
|
||||||
|
EISDIR
|
||||||
|
EISNAM
|
||||||
|
EKEYEXPIRED
|
||||||
|
EKEYREJECTED
|
||||||
|
EKEYREVOKED
|
||||||
|
EL2HLT
|
||||||
|
EL2NSYNC
|
||||||
|
EL3HLT
|
||||||
|
EL3RST
|
||||||
|
ELIBACC
|
||||||
|
ELIBBAD
|
||||||
|
ELIBEXEC
|
||||||
|
ELIBMAX
|
||||||
|
ELIBSCN
|
||||||
|
ELNRNG
|
||||||
|
ELOOP
|
||||||
|
EMEDIUMTYPE
|
||||||
|
EMFILE
|
||||||
|
EMLINK
|
||||||
|
EMSGSIZE
|
||||||
|
EMULTIHOP
|
||||||
|
ENAMETOOLONG
|
||||||
|
ENAVAIL
|
||||||
|
ENETDOWN
|
||||||
|
ENETRESET
|
||||||
|
ENETUNREACH
|
||||||
|
ENFILE
|
||||||
|
ENOANO
|
||||||
|
ENOBUFS
|
||||||
|
ENOCSI
|
||||||
|
ENODATA
|
||||||
|
ENODEV
|
||||||
|
ENOEXEC
|
||||||
|
ENOKEY
|
||||||
|
ENOLCK
|
||||||
|
ENOLINK
|
||||||
|
ENOMEDIUM
|
||||||
|
ENOMEM
|
||||||
|
ENOMSG
|
||||||
|
ENONET
|
||||||
|
ENOPKG
|
||||||
|
ENOPROTOOPT
|
||||||
|
ENOSPC
|
||||||
|
ENOSR
|
||||||
|
ENOSTR
|
||||||
|
ENOSYS
|
||||||
|
ENOTBLK
|
||||||
|
ENOTCONN
|
||||||
|
ENOTEMPTY
|
||||||
|
ENOTNAM
|
||||||
|
ENOTRECOVERABLE
|
||||||
|
ENOTSOCK
|
||||||
|
ENOTSUP
|
||||||
|
ENOTTY
|
||||||
|
ENOTUNIQ
|
||||||
|
ENXIO
|
||||||
|
EOPNOTSUPP
|
||||||
|
EOVERFLOW
|
||||||
|
EOWNERDEAD
|
||||||
|
EPERM
|
||||||
|
EPFNOSUPPORT
|
||||||
|
EPIPE
|
||||||
|
EPROTO
|
||||||
|
EPROTONOSUPPORT
|
||||||
|
EPROTOTYPE
|
||||||
|
ERANGE
|
||||||
|
EREMCHG
|
||||||
|
EREMOTE
|
||||||
|
EREMOTEIO
|
||||||
|
ERESTART
|
||||||
|
EROFS
|
||||||
|
ESHUTDOWN
|
||||||
|
ESOCKTNOSUPPORT
|
||||||
|
ESPIPE
|
||||||
|
ESRCH
|
||||||
|
ESRMNT
|
||||||
|
ESTALE
|
||||||
|
ESTRPIPE
|
||||||
|
ETIME
|
||||||
|
ETIMEDOUT
|
||||||
|
ETOOMANYREFS
|
||||||
|
ETXTBSY
|
||||||
|
EUCLEAN
|
||||||
|
EUNATCH
|
||||||
|
EUSERS
|
||||||
|
EWOULDBLOCK
|
||||||
|
EXDEV
|
||||||
|
EXFULL
|
||||||
|
EWINDOWS
|
||||||
|
)
|
||||||
|
|
||||||
|
// Error strings for invented errors
|
||||||
|
var errors = [...]string{
|
||||||
|
E2BIG - APPLICATION_ERROR: "argument list too long",
|
||||||
|
EACCES - APPLICATION_ERROR: "permission denied",
|
||||||
|
EADDRINUSE - APPLICATION_ERROR: "address already in use",
|
||||||
|
EADDRNOTAVAIL - APPLICATION_ERROR: "cannot assign requested address",
|
||||||
|
EADV - APPLICATION_ERROR: "advertise error",
|
||||||
|
EAFNOSUPPORT - APPLICATION_ERROR: "address family not supported by protocol",
|
||||||
|
EAGAIN - APPLICATION_ERROR: "resource temporarily unavailable",
|
||||||
|
EALREADY - APPLICATION_ERROR: "operation already in progress",
|
||||||
|
EBADE - APPLICATION_ERROR: "invalid exchange",
|
||||||
|
EBADF - APPLICATION_ERROR: "bad file descriptor",
|
||||||
|
EBADFD - APPLICATION_ERROR: "file descriptor in bad state",
|
||||||
|
EBADMSG - APPLICATION_ERROR: "bad message",
|
||||||
|
EBADR - APPLICATION_ERROR: "invalid request descriptor",
|
||||||
|
EBADRQC - APPLICATION_ERROR: "invalid request code",
|
||||||
|
EBADSLT - APPLICATION_ERROR: "invalid slot",
|
||||||
|
EBFONT - APPLICATION_ERROR: "bad font file format",
|
||||||
|
EBUSY - APPLICATION_ERROR: "device or resource busy",
|
||||||
|
ECANCELED - APPLICATION_ERROR: "operation canceled",
|
||||||
|
ECHILD - APPLICATION_ERROR: "no child processes",
|
||||||
|
ECHRNG - APPLICATION_ERROR: "channel number out of range",
|
||||||
|
ECOMM - APPLICATION_ERROR: "communication error on send",
|
||||||
|
ECONNABORTED - APPLICATION_ERROR: "software caused connection abort",
|
||||||
|
ECONNREFUSED - APPLICATION_ERROR: "connection refused",
|
||||||
|
ECONNRESET - APPLICATION_ERROR: "connection reset by peer",
|
||||||
|
EDEADLK - APPLICATION_ERROR: "resource deadlock avoided",
|
||||||
|
EDEADLOCK - APPLICATION_ERROR: "resource deadlock avoided",
|
||||||
|
EDESTADDRREQ - APPLICATION_ERROR: "destination address required",
|
||||||
|
EDOM - APPLICATION_ERROR: "numerical argument out of domain",
|
||||||
|
EDOTDOT - APPLICATION_ERROR: "RFS specific error",
|
||||||
|
EDQUOT - APPLICATION_ERROR: "disk quota exceeded",
|
||||||
|
EEXIST - APPLICATION_ERROR: "file exists",
|
||||||
|
EFAULT - APPLICATION_ERROR: "bad address",
|
||||||
|
EFBIG - APPLICATION_ERROR: "file too large",
|
||||||
|
EHOSTDOWN - APPLICATION_ERROR: "host is down",
|
||||||
|
EHOSTUNREACH - APPLICATION_ERROR: "no route to host",
|
||||||
|
EIDRM - APPLICATION_ERROR: "identifier removed",
|
||||||
|
EILSEQ - APPLICATION_ERROR: "invalid or incomplete multibyte or wide character",
|
||||||
|
EINPROGRESS - APPLICATION_ERROR: "operation now in progress",
|
||||||
|
EINTR - APPLICATION_ERROR: "interrupted system call",
|
||||||
|
EINVAL - APPLICATION_ERROR: "invalid argument",
|
||||||
|
EIO - APPLICATION_ERROR: "input/output error",
|
||||||
|
EISCONN - APPLICATION_ERROR: "transport endpoint is already connected",
|
||||||
|
EISDIR - APPLICATION_ERROR: "is a directory",
|
||||||
|
EISNAM - APPLICATION_ERROR: "is a named type file",
|
||||||
|
EKEYEXPIRED - APPLICATION_ERROR: "key has expired",
|
||||||
|
EKEYREJECTED - APPLICATION_ERROR: "key was rejected by service",
|
||||||
|
EKEYREVOKED - APPLICATION_ERROR: "key has been revoked",
|
||||||
|
EL2HLT - APPLICATION_ERROR: "level 2 halted",
|
||||||
|
EL2NSYNC - APPLICATION_ERROR: "level 2 not synchronized",
|
||||||
|
EL3HLT - APPLICATION_ERROR: "level 3 halted",
|
||||||
|
EL3RST - APPLICATION_ERROR: "level 3 reset",
|
||||||
|
ELIBACC - APPLICATION_ERROR: "can not access a needed shared library",
|
||||||
|
ELIBBAD - APPLICATION_ERROR: "accessing a corrupted shared library",
|
||||||
|
ELIBEXEC - APPLICATION_ERROR: "cannot exec a shared library directly",
|
||||||
|
ELIBMAX - APPLICATION_ERROR: "attempting to link in too many shared libraries",
|
||||||
|
ELIBSCN - APPLICATION_ERROR: ".lib section in a.out corrupted",
|
||||||
|
ELNRNG - APPLICATION_ERROR: "link number out of range",
|
||||||
|
ELOOP - APPLICATION_ERROR: "too many levels of symbolic links",
|
||||||
|
EMEDIUMTYPE - APPLICATION_ERROR: "wrong medium type",
|
||||||
|
EMFILE - APPLICATION_ERROR: "too many open files",
|
||||||
|
EMLINK - APPLICATION_ERROR: "too many links",
|
||||||
|
EMSGSIZE - APPLICATION_ERROR: "message too long",
|
||||||
|
EMULTIHOP - APPLICATION_ERROR: "multihop attempted",
|
||||||
|
ENAMETOOLONG - APPLICATION_ERROR: "file name too long",
|
||||||
|
ENAVAIL - APPLICATION_ERROR: "no XENIX semaphores available",
|
||||||
|
ENETDOWN - APPLICATION_ERROR: "network is down",
|
||||||
|
ENETRESET - APPLICATION_ERROR: "network dropped connection on reset",
|
||||||
|
ENETUNREACH - APPLICATION_ERROR: "network is unreachable",
|
||||||
|
ENFILE - APPLICATION_ERROR: "too many open files in system",
|
||||||
|
ENOANO - APPLICATION_ERROR: "no anode",
|
||||||
|
ENOBUFS - APPLICATION_ERROR: "no buffer space available",
|
||||||
|
ENOCSI - APPLICATION_ERROR: "no CSI structure available",
|
||||||
|
ENODATA - APPLICATION_ERROR: "no data available",
|
||||||
|
ENODEV - APPLICATION_ERROR: "no such device",
|
||||||
|
ENOEXEC - APPLICATION_ERROR: "exec format error",
|
||||||
|
ENOKEY - APPLICATION_ERROR: "required key not available",
|
||||||
|
ENOLCK - APPLICATION_ERROR: "no locks available",
|
||||||
|
ENOLINK - APPLICATION_ERROR: "link has been severed",
|
||||||
|
ENOMEDIUM - APPLICATION_ERROR: "no medium found",
|
||||||
|
ENOMEM - APPLICATION_ERROR: "cannot allocate memory",
|
||||||
|
ENOMSG - APPLICATION_ERROR: "no message of desired type",
|
||||||
|
ENONET - APPLICATION_ERROR: "machine is not on the network",
|
||||||
|
ENOPKG - APPLICATION_ERROR: "package not installed",
|
||||||
|
ENOPROTOOPT - APPLICATION_ERROR: "protocol not available",
|
||||||
|
ENOSPC - APPLICATION_ERROR: "no space left on device",
|
||||||
|
ENOSR - APPLICATION_ERROR: "out of streams resources",
|
||||||
|
ENOSTR - APPLICATION_ERROR: "device not a stream",
|
||||||
|
ENOSYS - APPLICATION_ERROR: "function not implemented",
|
||||||
|
ENOTBLK - APPLICATION_ERROR: "block device required",
|
||||||
|
ENOTCONN - APPLICATION_ERROR: "transport endpoint is not connected",
|
||||||
|
ENOTEMPTY - APPLICATION_ERROR: "directory not empty",
|
||||||
|
ENOTNAM - APPLICATION_ERROR: "not a XENIX named type file",
|
||||||
|
ENOTRECOVERABLE - APPLICATION_ERROR: "state not recoverable",
|
||||||
|
ENOTSOCK - APPLICATION_ERROR: "socket operation on non-socket",
|
||||||
|
ENOTSUP - APPLICATION_ERROR: "operation not supported",
|
||||||
|
ENOTTY - APPLICATION_ERROR: "inappropriate ioctl for device",
|
||||||
|
ENOTUNIQ - APPLICATION_ERROR: "name not unique on network",
|
||||||
|
ENXIO - APPLICATION_ERROR: "no such device or address",
|
||||||
|
EOPNOTSUPP - APPLICATION_ERROR: "operation not supported",
|
||||||
|
EOVERFLOW - APPLICATION_ERROR: "value too large for defined data type",
|
||||||
|
EOWNERDEAD - APPLICATION_ERROR: "owner died",
|
||||||
|
EPERM - APPLICATION_ERROR: "operation not permitted",
|
||||||
|
EPFNOSUPPORT - APPLICATION_ERROR: "protocol family not supported",
|
||||||
|
EPIPE - APPLICATION_ERROR: "broken pipe",
|
||||||
|
EPROTO - APPLICATION_ERROR: "protocol error",
|
||||||
|
EPROTONOSUPPORT - APPLICATION_ERROR: "protocol not supported",
|
||||||
|
EPROTOTYPE - APPLICATION_ERROR: "protocol wrong type for socket",
|
||||||
|
ERANGE - APPLICATION_ERROR: "numerical result out of range",
|
||||||
|
EREMCHG - APPLICATION_ERROR: "remote address changed",
|
||||||
|
EREMOTE - APPLICATION_ERROR: "object is remote",
|
||||||
|
EREMOTEIO - APPLICATION_ERROR: "remote I/O error",
|
||||||
|
ERESTART - APPLICATION_ERROR: "interrupted system call should be restarted",
|
||||||
|
EROFS - APPLICATION_ERROR: "read-only file system",
|
||||||
|
ESHUTDOWN - APPLICATION_ERROR: "cannot send after transport endpoint shutdown",
|
||||||
|
ESOCKTNOSUPPORT - APPLICATION_ERROR: "socket type not supported",
|
||||||
|
ESPIPE - APPLICATION_ERROR: "illegal seek",
|
||||||
|
ESRCH - APPLICATION_ERROR: "no such process",
|
||||||
|
ESRMNT - APPLICATION_ERROR: "srmount error",
|
||||||
|
ESTALE - APPLICATION_ERROR: "stale NFS file handle",
|
||||||
|
ESTRPIPE - APPLICATION_ERROR: "streams pipe error",
|
||||||
|
ETIME - APPLICATION_ERROR: "timer expired",
|
||||||
|
ETIMEDOUT - APPLICATION_ERROR: "connection timed out",
|
||||||
|
ETOOMANYREFS - APPLICATION_ERROR: "too many references: cannot splice",
|
||||||
|
ETXTBSY - APPLICATION_ERROR: "text file busy",
|
||||||
|
EUCLEAN - APPLICATION_ERROR: "structure needs cleaning",
|
||||||
|
EUNATCH - APPLICATION_ERROR: "protocol driver not attached",
|
||||||
|
EUSERS - APPLICATION_ERROR: "too many users",
|
||||||
|
EWOULDBLOCK - APPLICATION_ERROR: "resource temporarily unavailable",
|
||||||
|
EXDEV - APPLICATION_ERROR: "invalid cross-device link",
|
||||||
|
EXFULL - APPLICATION_ERROR: "exchange full",
|
||||||
|
EWINDOWS - APPLICATION_ERROR: "not supported by windows",
|
||||||
|
}
|
@ -1,283 +1,5 @@
|
|||||||
// mkerrors_windows.sh -f -m32
|
// Copyright 2011 The Go Authors. All rights reserved.
|
||||||
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
package syscall
|
package syscall
|
||||||
|
|
||||||
// Go names for Windows errors.
|
|
||||||
const (
|
|
||||||
ENOENT = ERROR_FILE_NOT_FOUND
|
|
||||||
ENOTDIR = ERROR_DIRECTORY
|
|
||||||
)
|
|
||||||
|
|
||||||
// Windows reserves errors >= 1<<29 for application use.
|
|
||||||
const APPLICATION_ERROR = 1 << 29
|
|
||||||
|
|
||||||
// Invented values to support what package os and others expects.
|
|
||||||
const (
|
|
||||||
E2BIG = APPLICATION_ERROR + iota
|
|
||||||
EACCES
|
|
||||||
EADDRINUSE
|
|
||||||
EADDRNOTAVAIL
|
|
||||||
EADV
|
|
||||||
EAFNOSUPPORT
|
|
||||||
EAGAIN
|
|
||||||
EALREADY
|
|
||||||
EBADE
|
|
||||||
EBADF
|
|
||||||
EBADFD
|
|
||||||
EBADMSG
|
|
||||||
EBADR
|
|
||||||
EBADRQC
|
|
||||||
EBADSLT
|
|
||||||
EBFONT
|
|
||||||
EBUSY
|
|
||||||
ECANCELED
|
|
||||||
ECHILD
|
|
||||||
ECHRNG
|
|
||||||
ECOMM
|
|
||||||
ECONNABORTED
|
|
||||||
ECONNREFUSED
|
|
||||||
ECONNRESET
|
|
||||||
EDEADLK
|
|
||||||
EDEADLOCK
|
|
||||||
EDESTADDRREQ
|
|
||||||
EDOM
|
|
||||||
EDOTDOT
|
|
||||||
EDQUOT
|
|
||||||
EEXIST
|
|
||||||
EFAULT
|
|
||||||
EFBIG
|
|
||||||
EHOSTDOWN
|
|
||||||
EHOSTUNREACH
|
|
||||||
EIDRM
|
|
||||||
EILSEQ
|
|
||||||
EINPROGRESS
|
|
||||||
EINTR
|
|
||||||
EINVAL
|
|
||||||
EIO
|
|
||||||
EISCONN
|
|
||||||
EISDIR
|
|
||||||
EISNAM
|
|
||||||
EKEYEXPIRED
|
|
||||||
EKEYREJECTED
|
|
||||||
EKEYREVOKED
|
|
||||||
EL2HLT
|
|
||||||
EL2NSYNC
|
|
||||||
EL3HLT
|
|
||||||
EL3RST
|
|
||||||
ELIBACC
|
|
||||||
ELIBBAD
|
|
||||||
ELIBEXEC
|
|
||||||
ELIBMAX
|
|
||||||
ELIBSCN
|
|
||||||
ELNRNG
|
|
||||||
ELOOP
|
|
||||||
EMEDIUMTYPE
|
|
||||||
EMFILE
|
|
||||||
EMLINK
|
|
||||||
EMSGSIZE
|
|
||||||
EMULTIHOP
|
|
||||||
ENAMETOOLONG
|
|
||||||
ENAVAIL
|
|
||||||
ENETDOWN
|
|
||||||
ENETRESET
|
|
||||||
ENETUNREACH
|
|
||||||
ENFILE
|
|
||||||
ENOANO
|
|
||||||
ENOBUFS
|
|
||||||
ENOCSI
|
|
||||||
ENODATA
|
|
||||||
ENODEV
|
|
||||||
ENOEXEC
|
|
||||||
ENOKEY
|
|
||||||
ENOLCK
|
|
||||||
ENOLINK
|
|
||||||
ENOMEDIUM
|
|
||||||
ENOMEM
|
|
||||||
ENOMSG
|
|
||||||
ENONET
|
|
||||||
ENOPKG
|
|
||||||
ENOPROTOOPT
|
|
||||||
ENOSPC
|
|
||||||
ENOSR
|
|
||||||
ENOSTR
|
|
||||||
ENOSYS
|
|
||||||
ENOTBLK
|
|
||||||
ENOTCONN
|
|
||||||
ENOTEMPTY
|
|
||||||
ENOTNAM
|
|
||||||
ENOTRECOVERABLE
|
|
||||||
ENOTSOCK
|
|
||||||
ENOTSUP
|
|
||||||
ENOTTY
|
|
||||||
ENOTUNIQ
|
|
||||||
ENXIO
|
|
||||||
EOPNOTSUPP
|
|
||||||
EOVERFLOW
|
|
||||||
EOWNERDEAD
|
|
||||||
EPERM
|
|
||||||
EPFNOSUPPORT
|
|
||||||
EPIPE
|
|
||||||
EPROTO
|
|
||||||
EPROTONOSUPPORT
|
|
||||||
EPROTOTYPE
|
|
||||||
ERANGE
|
|
||||||
EREMCHG
|
|
||||||
EREMOTE
|
|
||||||
EREMOTEIO
|
|
||||||
ERESTART
|
|
||||||
EROFS
|
|
||||||
ESHUTDOWN
|
|
||||||
ESOCKTNOSUPPORT
|
|
||||||
ESPIPE
|
|
||||||
ESRCH
|
|
||||||
ESRMNT
|
|
||||||
ESTALE
|
|
||||||
ESTRPIPE
|
|
||||||
ETIME
|
|
||||||
ETIMEDOUT
|
|
||||||
ETOOMANYREFS
|
|
||||||
ETXTBSY
|
|
||||||
EUCLEAN
|
|
||||||
EUNATCH
|
|
||||||
EUSERS
|
|
||||||
EWOULDBLOCK
|
|
||||||
EXDEV
|
|
||||||
EXFULL
|
|
||||||
EWINDOWS
|
|
||||||
)
|
|
||||||
|
|
||||||
// Error strings for invented errors
|
|
||||||
var errors = [...]string{
|
|
||||||
E2BIG - APPLICATION_ERROR: "argument list too long",
|
|
||||||
EACCES - APPLICATION_ERROR: "permission denied",
|
|
||||||
EADDRINUSE - APPLICATION_ERROR: "address already in use",
|
|
||||||
EADDRNOTAVAIL - APPLICATION_ERROR: "cannot assign requested address",
|
|
||||||
EADV - APPLICATION_ERROR: "advertise error",
|
|
||||||
EAFNOSUPPORT - APPLICATION_ERROR: "address family not supported by protocol",
|
|
||||||
EAGAIN - APPLICATION_ERROR: "resource temporarily unavailable",
|
|
||||||
EALREADY - APPLICATION_ERROR: "operation already in progress",
|
|
||||||
EBADE - APPLICATION_ERROR: "invalid exchange",
|
|
||||||
EBADF - APPLICATION_ERROR: "bad file descriptor",
|
|
||||||
EBADFD - APPLICATION_ERROR: "file descriptor in bad state",
|
|
||||||
EBADMSG - APPLICATION_ERROR: "bad message",
|
|
||||||
EBADR - APPLICATION_ERROR: "invalid request descriptor",
|
|
||||||
EBADRQC - APPLICATION_ERROR: "invalid request code",
|
|
||||||
EBADSLT - APPLICATION_ERROR: "invalid slot",
|
|
||||||
EBFONT - APPLICATION_ERROR: "bad font file format",
|
|
||||||
EBUSY - APPLICATION_ERROR: "device or resource busy",
|
|
||||||
ECANCELED - APPLICATION_ERROR: "operation canceled",
|
|
||||||
ECHILD - APPLICATION_ERROR: "no child processes",
|
|
||||||
ECHRNG - APPLICATION_ERROR: "channel number out of range",
|
|
||||||
ECOMM - APPLICATION_ERROR: "communication error on send",
|
|
||||||
ECONNABORTED - APPLICATION_ERROR: "software caused connection abort",
|
|
||||||
ECONNREFUSED - APPLICATION_ERROR: "connection refused",
|
|
||||||
ECONNRESET - APPLICATION_ERROR: "connection reset by peer",
|
|
||||||
EDEADLK - APPLICATION_ERROR: "resource deadlock avoided",
|
|
||||||
EDEADLOCK - APPLICATION_ERROR: "resource deadlock avoided",
|
|
||||||
EDESTADDRREQ - APPLICATION_ERROR: "destination address required",
|
|
||||||
EDOM - APPLICATION_ERROR: "numerical argument out of domain",
|
|
||||||
EDOTDOT - APPLICATION_ERROR: "RFS specific error",
|
|
||||||
EDQUOT - APPLICATION_ERROR: "disk quota exceeded",
|
|
||||||
EEXIST - APPLICATION_ERROR: "file exists",
|
|
||||||
EFAULT - APPLICATION_ERROR: "bad address",
|
|
||||||
EFBIG - APPLICATION_ERROR: "file too large",
|
|
||||||
EHOSTDOWN - APPLICATION_ERROR: "host is down",
|
|
||||||
EHOSTUNREACH - APPLICATION_ERROR: "no route to host",
|
|
||||||
EIDRM - APPLICATION_ERROR: "identifier removed",
|
|
||||||
EILSEQ - APPLICATION_ERROR: "invalid or incomplete multibyte or wide character",
|
|
||||||
EINPROGRESS - APPLICATION_ERROR: "operation now in progress",
|
|
||||||
EINTR - APPLICATION_ERROR: "interrupted system call",
|
|
||||||
EINVAL - APPLICATION_ERROR: "invalid argument",
|
|
||||||
EIO - APPLICATION_ERROR: "input/output error",
|
|
||||||
EISCONN - APPLICATION_ERROR: "transport endpoint is already connected",
|
|
||||||
EISDIR - APPLICATION_ERROR: "is a directory",
|
|
||||||
EISNAM - APPLICATION_ERROR: "is a named type file",
|
|
||||||
EKEYEXPIRED - APPLICATION_ERROR: "key has expired",
|
|
||||||
EKEYREJECTED - APPLICATION_ERROR: "key was rejected by service",
|
|
||||||
EKEYREVOKED - APPLICATION_ERROR: "key has been revoked",
|
|
||||||
EL2HLT - APPLICATION_ERROR: "level 2 halted",
|
|
||||||
EL2NSYNC - APPLICATION_ERROR: "level 2 not synchronized",
|
|
||||||
EL3HLT - APPLICATION_ERROR: "level 3 halted",
|
|
||||||
EL3RST - APPLICATION_ERROR: "level 3 reset",
|
|
||||||
ELIBACC - APPLICATION_ERROR: "can not access a needed shared library",
|
|
||||||
ELIBBAD - APPLICATION_ERROR: "accessing a corrupted shared library",
|
|
||||||
ELIBEXEC - APPLICATION_ERROR: "cannot exec a shared library directly",
|
|
||||||
ELIBMAX - APPLICATION_ERROR: "attempting to link in too many shared libraries",
|
|
||||||
ELIBSCN - APPLICATION_ERROR: ".lib section in a.out corrupted",
|
|
||||||
ELNRNG - APPLICATION_ERROR: "link number out of range",
|
|
||||||
ELOOP - APPLICATION_ERROR: "too many levels of symbolic links",
|
|
||||||
EMEDIUMTYPE - APPLICATION_ERROR: "wrong medium type",
|
|
||||||
EMFILE - APPLICATION_ERROR: "too many open files",
|
|
||||||
EMLINK - APPLICATION_ERROR: "too many links",
|
|
||||||
EMSGSIZE - APPLICATION_ERROR: "message too long",
|
|
||||||
EMULTIHOP - APPLICATION_ERROR: "multihop attempted",
|
|
||||||
ENAMETOOLONG - APPLICATION_ERROR: "file name too long",
|
|
||||||
ENAVAIL - APPLICATION_ERROR: "no XENIX semaphores available",
|
|
||||||
ENETDOWN - APPLICATION_ERROR: "network is down",
|
|
||||||
ENETRESET - APPLICATION_ERROR: "network dropped connection on reset",
|
|
||||||
ENETUNREACH - APPLICATION_ERROR: "network is unreachable",
|
|
||||||
ENFILE - APPLICATION_ERROR: "too many open files in system",
|
|
||||||
ENOANO - APPLICATION_ERROR: "no anode",
|
|
||||||
ENOBUFS - APPLICATION_ERROR: "no buffer space available",
|
|
||||||
ENOCSI - APPLICATION_ERROR: "no CSI structure available",
|
|
||||||
ENODATA - APPLICATION_ERROR: "no data available",
|
|
||||||
ENODEV - APPLICATION_ERROR: "no such device",
|
|
||||||
ENOEXEC - APPLICATION_ERROR: "exec format error",
|
|
||||||
ENOKEY - APPLICATION_ERROR: "required key not available",
|
|
||||||
ENOLCK - APPLICATION_ERROR: "no locks available",
|
|
||||||
ENOLINK - APPLICATION_ERROR: "link has been severed",
|
|
||||||
ENOMEDIUM - APPLICATION_ERROR: "no medium found",
|
|
||||||
ENOMEM - APPLICATION_ERROR: "cannot allocate memory",
|
|
||||||
ENOMSG - APPLICATION_ERROR: "no message of desired type",
|
|
||||||
ENONET - APPLICATION_ERROR: "machine is not on the network",
|
|
||||||
ENOPKG - APPLICATION_ERROR: "package not installed",
|
|
||||||
ENOPROTOOPT - APPLICATION_ERROR: "protocol not available",
|
|
||||||
ENOSPC - APPLICATION_ERROR: "no space left on device",
|
|
||||||
ENOSR - APPLICATION_ERROR: "out of streams resources",
|
|
||||||
ENOSTR - APPLICATION_ERROR: "device not a stream",
|
|
||||||
ENOSYS - APPLICATION_ERROR: "function not implemented",
|
|
||||||
ENOTBLK - APPLICATION_ERROR: "block device required",
|
|
||||||
ENOTCONN - APPLICATION_ERROR: "transport endpoint is not connected",
|
|
||||||
ENOTEMPTY - APPLICATION_ERROR: "directory not empty",
|
|
||||||
ENOTNAM - APPLICATION_ERROR: "not a XENIX named type file",
|
|
||||||
ENOTRECOVERABLE - APPLICATION_ERROR: "state not recoverable",
|
|
||||||
ENOTSOCK - APPLICATION_ERROR: "socket operation on non-socket",
|
|
||||||
ENOTSUP - APPLICATION_ERROR: "operation not supported",
|
|
||||||
ENOTTY - APPLICATION_ERROR: "inappropriate ioctl for device",
|
|
||||||
ENOTUNIQ - APPLICATION_ERROR: "name not unique on network",
|
|
||||||
ENXIO - APPLICATION_ERROR: "no such device or address",
|
|
||||||
EOPNOTSUPP - APPLICATION_ERROR: "operation not supported",
|
|
||||||
EOVERFLOW - APPLICATION_ERROR: "value too large for defined data type",
|
|
||||||
EOWNERDEAD - APPLICATION_ERROR: "owner died",
|
|
||||||
EPERM - APPLICATION_ERROR: "operation not permitted",
|
|
||||||
EPFNOSUPPORT - APPLICATION_ERROR: "protocol family not supported",
|
|
||||||
EPIPE - APPLICATION_ERROR: "broken pipe",
|
|
||||||
EPROTO - APPLICATION_ERROR: "protocol error",
|
|
||||||
EPROTONOSUPPORT - APPLICATION_ERROR: "protocol not supported",
|
|
||||||
EPROTOTYPE - APPLICATION_ERROR: "protocol wrong type for socket",
|
|
||||||
ERANGE - APPLICATION_ERROR: "numerical result out of range",
|
|
||||||
EREMCHG - APPLICATION_ERROR: "remote address changed",
|
|
||||||
EREMOTE - APPLICATION_ERROR: "object is remote",
|
|
||||||
EREMOTEIO - APPLICATION_ERROR: "remote I/O error",
|
|
||||||
ERESTART - APPLICATION_ERROR: "interrupted system call should be restarted",
|
|
||||||
EROFS - APPLICATION_ERROR: "read-only file system",
|
|
||||||
ESHUTDOWN - APPLICATION_ERROR: "cannot send after transport endpoint shutdown",
|
|
||||||
ESOCKTNOSUPPORT - APPLICATION_ERROR: "socket type not supported",
|
|
||||||
ESPIPE - APPLICATION_ERROR: "illegal seek",
|
|
||||||
ESRCH - APPLICATION_ERROR: "no such process",
|
|
||||||
ESRMNT - APPLICATION_ERROR: "srmount error",
|
|
||||||
ESTALE - APPLICATION_ERROR: "stale NFS file handle",
|
|
||||||
ESTRPIPE - APPLICATION_ERROR: "streams pipe error",
|
|
||||||
ETIME - APPLICATION_ERROR: "timer expired",
|
|
||||||
ETIMEDOUT - APPLICATION_ERROR: "connection timed out",
|
|
||||||
ETOOMANYREFS - APPLICATION_ERROR: "too many references: cannot splice",
|
|
||||||
ETXTBSY - APPLICATION_ERROR: "text file busy",
|
|
||||||
EUCLEAN - APPLICATION_ERROR: "structure needs cleaning",
|
|
||||||
EUNATCH - APPLICATION_ERROR: "protocol driver not attached",
|
|
||||||
EUSERS - APPLICATION_ERROR: "too many users",
|
|
||||||
EWOULDBLOCK - APPLICATION_ERROR: "resource temporarily unavailable",
|
|
||||||
EXDEV - APPLICATION_ERROR: "invalid cross-device link",
|
|
||||||
EXFULL - APPLICATION_ERROR: "exchange full",
|
|
||||||
EWINDOWS - APPLICATION_ERROR: "not supported by windows",
|
|
||||||
}
|
|
||||||
|
5
src/pkg/syscall/zerrors_windows_amd64.go
Normal file
5
src/pkg/syscall/zerrors_windows_amd64.go
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// Copyright 2011 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 syscall
|
@ -1,4 +1,4 @@
|
|||||||
// mksyscall_windows.pl
|
// mksyscall_windows.pl -l32 syscall_windows.go syscall_windows_386.go
|
||||||
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
|
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
|
||||||
|
|
||||||
package syscall
|
package syscall
|
||||||
|
1323
src/pkg/syscall/zsyscall_windows_amd64.go
Normal file
1323
src/pkg/syscall/zsyscall_windows_amd64.go
Normal file
File diff suppressed because it is too large
Load Diff
3
src/pkg/syscall/zsysnum_windows_amd64.go
Normal file
3
src/pkg/syscall/zsysnum_windows_amd64.go
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// nothing to see here
|
||||||
|
|
||||||
|
package syscall
|
656
src/pkg/syscall/ztypes_windows.go
Normal file
656
src/pkg/syscall/ztypes_windows.go
Normal file
@ -0,0 +1,656 @@
|
|||||||
|
package syscall
|
||||||
|
|
||||||
|
// TODO(brainman): autogenerate types in ztypes_windows_386.go
|
||||||
|
|
||||||
|
//import "unsafe"
|
||||||
|
|
||||||
|
// Constants
|
||||||
|
const (
|
||||||
|
sizeofPtr = 0x4
|
||||||
|
sizeofShort = 0x2
|
||||||
|
sizeofInt = 0x4
|
||||||
|
sizeofLong = 0x4
|
||||||
|
sizeofLongLong = 0x8
|
||||||
|
PathMax = 0x1000
|
||||||
|
SizeofLinger = 0x8
|
||||||
|
SizeofMsghdr = 0x1c
|
||||||
|
SizeofCmsghdr = 0xc
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Windows errors.
|
||||||
|
ERROR_FILE_NOT_FOUND = 2
|
||||||
|
ERROR_PATH_NOT_FOUND = 3
|
||||||
|
ERROR_NO_MORE_FILES = 18
|
||||||
|
ERROR_BROKEN_PIPE = 109
|
||||||
|
ERROR_BUFFER_OVERFLOW = 111
|
||||||
|
ERROR_INSUFFICIENT_BUFFER = 122
|
||||||
|
ERROR_MOD_NOT_FOUND = 126
|
||||||
|
ERROR_PROC_NOT_FOUND = 127
|
||||||
|
ERROR_ENVVAR_NOT_FOUND = 203
|
||||||
|
ERROR_DIRECTORY = 267
|
||||||
|
ERROR_OPERATION_ABORTED = 995
|
||||||
|
ERROR_IO_PENDING = 997
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Invented values to support what package os expects.
|
||||||
|
O_RDONLY = 0x00000
|
||||||
|
O_WRONLY = 0x00001
|
||||||
|
O_RDWR = 0x00002
|
||||||
|
O_CREAT = 0x00040
|
||||||
|
O_EXCL = 0x00080
|
||||||
|
O_NOCTTY = 0x00100
|
||||||
|
O_TRUNC = 0x00200
|
||||||
|
O_NONBLOCK = 0x00800
|
||||||
|
O_APPEND = 0x00400
|
||||||
|
O_SYNC = 0x01000
|
||||||
|
O_ASYNC = 0x02000
|
||||||
|
O_CLOEXEC = 0x80000
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// More invented values for signals
|
||||||
|
SIGHUP = 0x1
|
||||||
|
SIGINT = 0x2
|
||||||
|
SIGQUIT = 0x3
|
||||||
|
SIGILL = 0x4
|
||||||
|
SIGTRAP = 0x5
|
||||||
|
SIGABRT = 0x6
|
||||||
|
SIGBUS = 0x7
|
||||||
|
SIGFPE = 0x8
|
||||||
|
SIGKILL = 0x9
|
||||||
|
SIGSEGV = 0xb
|
||||||
|
SIGPIPE = 0xd
|
||||||
|
SIGALRM = 0xe
|
||||||
|
SIGTERM = 0xf
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
GENERIC_READ = 0x80000000
|
||||||
|
GENERIC_WRITE = 0x40000000
|
||||||
|
GENERIC_EXECUTE = 0x20000000
|
||||||
|
GENERIC_ALL = 0x10000000
|
||||||
|
|
||||||
|
FILE_APPEND_DATA = 0x00000004
|
||||||
|
FILE_WRITE_ATTRIBUTES = 0x00000100
|
||||||
|
|
||||||
|
FILE_SHARE_READ = 0x00000001
|
||||||
|
FILE_SHARE_WRITE = 0x00000002
|
||||||
|
FILE_SHARE_DELETE = 0x00000004
|
||||||
|
FILE_ATTRIBUTE_READONLY = 0x00000001
|
||||||
|
FILE_ATTRIBUTE_HIDDEN = 0x00000002
|
||||||
|
FILE_ATTRIBUTE_SYSTEM = 0x00000004
|
||||||
|
FILE_ATTRIBUTE_DIRECTORY = 0x00000010
|
||||||
|
FILE_ATTRIBUTE_ARCHIVE = 0x00000020
|
||||||
|
FILE_ATTRIBUTE_NORMAL = 0x00000080
|
||||||
|
|
||||||
|
INVALID_FILE_ATTRIBUTES = 0xffffffff
|
||||||
|
|
||||||
|
CREATE_NEW = 1
|
||||||
|
CREATE_ALWAYS = 2
|
||||||
|
OPEN_EXISTING = 3
|
||||||
|
OPEN_ALWAYS = 4
|
||||||
|
TRUNCATE_EXISTING = 5
|
||||||
|
|
||||||
|
HANDLE_FLAG_INHERIT = 0x00000001
|
||||||
|
STARTF_USESTDHANDLES = 0x00000100
|
||||||
|
STARTF_USESHOWWINDOW = 0x00000001
|
||||||
|
DUPLICATE_CLOSE_SOURCE = 0x00000001
|
||||||
|
DUPLICATE_SAME_ACCESS = 0x00000002
|
||||||
|
|
||||||
|
STD_INPUT_HANDLE = -10
|
||||||
|
STD_OUTPUT_HANDLE = -11
|
||||||
|
STD_ERROR_HANDLE = -12
|
||||||
|
|
||||||
|
FILE_BEGIN = 0
|
||||||
|
FILE_CURRENT = 1
|
||||||
|
FILE_END = 2
|
||||||
|
|
||||||
|
FORMAT_MESSAGE_ALLOCATE_BUFFER = 256
|
||||||
|
FORMAT_MESSAGE_IGNORE_INSERTS = 512
|
||||||
|
FORMAT_MESSAGE_FROM_STRING = 1024
|
||||||
|
FORMAT_MESSAGE_FROM_HMODULE = 2048
|
||||||
|
FORMAT_MESSAGE_FROM_SYSTEM = 4096
|
||||||
|
FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192
|
||||||
|
FORMAT_MESSAGE_MAX_WIDTH_MASK = 255
|
||||||
|
|
||||||
|
MAX_PATH = 260
|
||||||
|
MAX_LONG_PATH = 32768
|
||||||
|
|
||||||
|
MAX_COMPUTERNAME_LENGTH = 15
|
||||||
|
|
||||||
|
TIME_ZONE_ID_UNKNOWN = 0
|
||||||
|
TIME_ZONE_ID_STANDARD = 1
|
||||||
|
|
||||||
|
TIME_ZONE_ID_DAYLIGHT = 2
|
||||||
|
IGNORE = 0
|
||||||
|
INFINITE = 0xffffffff
|
||||||
|
|
||||||
|
WAIT_TIMEOUT = 258
|
||||||
|
WAIT_ABANDONED = 0x00000080
|
||||||
|
WAIT_OBJECT_0 = 0x00000000
|
||||||
|
WAIT_FAILED = 0xFFFFFFFF
|
||||||
|
|
||||||
|
CREATE_UNICODE_ENVIRONMENT = 0x00000400
|
||||||
|
|
||||||
|
STANDARD_RIGHTS_READ = 0x00020000
|
||||||
|
PROCESS_QUERY_INFORMATION = 0x00000400
|
||||||
|
SYNCHRONIZE = 0x00100000
|
||||||
|
|
||||||
|
PAGE_READONLY = 0x02
|
||||||
|
PAGE_READWRITE = 0x04
|
||||||
|
PAGE_WRITECOPY = 0x08
|
||||||
|
PAGE_EXECUTE_READ = 0x20
|
||||||
|
PAGE_EXECUTE_READWRITE = 0x40
|
||||||
|
PAGE_EXECUTE_WRITECOPY = 0x80
|
||||||
|
|
||||||
|
FILE_MAP_COPY = 0x01
|
||||||
|
FILE_MAP_WRITE = 0x02
|
||||||
|
FILE_MAP_READ = 0x04
|
||||||
|
FILE_MAP_EXECUTE = 0x20
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// wincrypt.h
|
||||||
|
PROV_RSA_FULL = 1
|
||||||
|
PROV_RSA_SIG = 2
|
||||||
|
PROV_DSS = 3
|
||||||
|
PROV_FORTEZZA = 4
|
||||||
|
PROV_MS_EXCHANGE = 5
|
||||||
|
PROV_SSL = 6
|
||||||
|
PROV_RSA_SCHANNEL = 12
|
||||||
|
PROV_DSS_DH = 13
|
||||||
|
PROV_EC_ECDSA_SIG = 14
|
||||||
|
PROV_EC_ECNRA_SIG = 15
|
||||||
|
PROV_EC_ECDSA_FULL = 16
|
||||||
|
PROV_EC_ECNRA_FULL = 17
|
||||||
|
PROV_DH_SCHANNEL = 18
|
||||||
|
PROV_SPYRUS_LYNKS = 20
|
||||||
|
PROV_RNG = 21
|
||||||
|
PROV_INTEL_SEC = 22
|
||||||
|
PROV_REPLACE_OWF = 23
|
||||||
|
PROV_RSA_AES = 24
|
||||||
|
CRYPT_VERIFYCONTEXT = 0xF0000000
|
||||||
|
CRYPT_NEWKEYSET = 0x00000008
|
||||||
|
CRYPT_DELETEKEYSET = 0x00000010
|
||||||
|
CRYPT_MACHINE_KEYSET = 0x00000020
|
||||||
|
CRYPT_SILENT = 0x00000040
|
||||||
|
CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080
|
||||||
|
)
|
||||||
|
|
||||||
|
// Types
|
||||||
|
|
||||||
|
type _C_short int16
|
||||||
|
|
||||||
|
type _C_int int32
|
||||||
|
|
||||||
|
type _C_long int32
|
||||||
|
|
||||||
|
type _C_long_long int64
|
||||||
|
|
||||||
|
// Invented values to support what package os expects.
|
||||||
|
type Timeval struct {
|
||||||
|
Sec int32
|
||||||
|
Usec int32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (tv *Timeval) Nanoseconds() int64 {
|
||||||
|
return (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3
|
||||||
|
}
|
||||||
|
|
||||||
|
func NsecToTimeval(nsec int64) (tv Timeval) {
|
||||||
|
tv.Sec = int32(nsec / 1e9)
|
||||||
|
tv.Usec = int32(nsec % 1e9 / 1e3)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
type SecurityAttributes struct {
|
||||||
|
Length uint32
|
||||||
|
SecurityDescriptor uintptr
|
||||||
|
InheritHandle uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Overlapped struct {
|
||||||
|
Internal uint32
|
||||||
|
InternalHigh uint32
|
||||||
|
Offset uint32
|
||||||
|
OffsetHigh uint32
|
||||||
|
HEvent Handle
|
||||||
|
}
|
||||||
|
|
||||||
|
type Filetime struct {
|
||||||
|
LowDateTime uint32
|
||||||
|
HighDateTime uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ft *Filetime) Nanoseconds() int64 {
|
||||||
|
// 100-nanosecond intervals since January 1, 1601
|
||||||
|
nsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime)
|
||||||
|
// change starting time to the Epoch (00:00:00 UTC, January 1, 1970)
|
||||||
|
nsec -= 116444736000000000
|
||||||
|
// convert into nanoseconds
|
||||||
|
nsec *= 100
|
||||||
|
return nsec
|
||||||
|
}
|
||||||
|
|
||||||
|
func NsecToFiletime(nsec int64) (ft Filetime) {
|
||||||
|
// convert into 100-nanosecond
|
||||||
|
nsec /= 100
|
||||||
|
// change starting time to January 1, 1601
|
||||||
|
nsec += 116444736000000000
|
||||||
|
// split into high / low
|
||||||
|
ft.LowDateTime = uint32(nsec & 0xffffffff)
|
||||||
|
ft.HighDateTime = uint32(nsec >> 32 & 0xffffffff)
|
||||||
|
return ft
|
||||||
|
}
|
||||||
|
|
||||||
|
type Win32finddata struct {
|
||||||
|
FileAttributes uint32
|
||||||
|
CreationTime Filetime
|
||||||
|
LastAccessTime Filetime
|
||||||
|
LastWriteTime Filetime
|
||||||
|
FileSizeHigh uint32
|
||||||
|
FileSizeLow uint32
|
||||||
|
Reserved0 uint32
|
||||||
|
Reserved1 uint32
|
||||||
|
FileName [MAX_PATH - 1]uint16
|
||||||
|
AlternateFileName [13]uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type ByHandleFileInformation struct {
|
||||||
|
FileAttributes uint32
|
||||||
|
CreationTime Filetime
|
||||||
|
LastAccessTime Filetime
|
||||||
|
LastWriteTime Filetime
|
||||||
|
VolumeSerialNumber uint32
|
||||||
|
FileSizeHigh uint32
|
||||||
|
FileSizeLow uint32
|
||||||
|
NumberOfLinks uint32
|
||||||
|
FileIndexHigh uint32
|
||||||
|
FileIndexLow uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
// ShowWindow constants
|
||||||
|
const (
|
||||||
|
// winuser.h
|
||||||
|
SW_HIDE = 0
|
||||||
|
SW_NORMAL = 1
|
||||||
|
SW_SHOWNORMAL = 1
|
||||||
|
SW_SHOWMINIMIZED = 2
|
||||||
|
SW_SHOWMAXIMIZED = 3
|
||||||
|
SW_MAXIMIZE = 3
|
||||||
|
SW_SHOWNOACTIVATE = 4
|
||||||
|
SW_SHOW = 5
|
||||||
|
SW_MINIMIZE = 6
|
||||||
|
SW_SHOWMINNOACTIVE = 7
|
||||||
|
SW_SHOWNA = 8
|
||||||
|
SW_RESTORE = 9
|
||||||
|
SW_SHOWDEFAULT = 10
|
||||||
|
SW_FORCEMINIMIZE = 11
|
||||||
|
)
|
||||||
|
|
||||||
|
type StartupInfo struct {
|
||||||
|
Cb uint32
|
||||||
|
_ *uint16
|
||||||
|
Desktop *uint16
|
||||||
|
Title *uint16
|
||||||
|
X uint32
|
||||||
|
Y uint32
|
||||||
|
XSize uint32
|
||||||
|
YSize uint32
|
||||||
|
XCountChars uint32
|
||||||
|
YCountChars uint32
|
||||||
|
FillAttribute uint32
|
||||||
|
Flags uint32
|
||||||
|
ShowWindow uint16
|
||||||
|
_ uint16
|
||||||
|
_ *byte
|
||||||
|
StdInput Handle
|
||||||
|
StdOutput Handle
|
||||||
|
StdErr Handle
|
||||||
|
}
|
||||||
|
|
||||||
|
type ProcessInformation struct {
|
||||||
|
Process Handle
|
||||||
|
Thread Handle
|
||||||
|
ProcessId uint32
|
||||||
|
ThreadId uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
// Invented values to support what package os expects.
|
||||||
|
type Stat_t struct {
|
||||||
|
Windata Win32finddata
|
||||||
|
Mode uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
type Systemtime struct {
|
||||||
|
Year uint16
|
||||||
|
Month uint16
|
||||||
|
DayOfWeek uint16
|
||||||
|
Day uint16
|
||||||
|
Hour uint16
|
||||||
|
Minute uint16
|
||||||
|
Second uint16
|
||||||
|
Milliseconds uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type Timezoneinformation struct {
|
||||||
|
Bias int32
|
||||||
|
StandardName [32]uint16
|
||||||
|
StandardDate Systemtime
|
||||||
|
StandardBias int32
|
||||||
|
DaylightName [32]uint16
|
||||||
|
DaylightDate Systemtime
|
||||||
|
DaylightBias int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// Socket related.
|
||||||
|
|
||||||
|
const (
|
||||||
|
AF_UNSPEC = 0
|
||||||
|
AF_UNIX = 1
|
||||||
|
AF_INET = 2
|
||||||
|
AF_INET6 = 23
|
||||||
|
AF_NETBIOS = 17
|
||||||
|
|
||||||
|
SOCK_STREAM = 1
|
||||||
|
SOCK_DGRAM = 2
|
||||||
|
SOCK_RAW = 3
|
||||||
|
SOCK_SEQPACKET = 5
|
||||||
|
|
||||||
|
IPPROTO_IP = 0
|
||||||
|
IPPROTO_TCP = 6
|
||||||
|
IPPROTO_UDP = 17
|
||||||
|
|
||||||
|
SOL_SOCKET = 0xffff
|
||||||
|
SO_REUSEADDR = 4
|
||||||
|
SO_KEEPALIVE = 8
|
||||||
|
SO_DONTROUTE = 16
|
||||||
|
SO_BROADCAST = 32
|
||||||
|
SO_LINGER = 128
|
||||||
|
SO_RCVBUF = 0x1002
|
||||||
|
SO_SNDBUF = 0x1001
|
||||||
|
SO_UPDATE_ACCEPT_CONTEXT = 0x700b
|
||||||
|
|
||||||
|
IPPROTO_IPV6 = 0x29
|
||||||
|
IPV6_V6ONLY = 0x1b
|
||||||
|
|
||||||
|
SOMAXCONN = 5
|
||||||
|
|
||||||
|
TCP_NODELAY = 1
|
||||||
|
|
||||||
|
SHUT_RD = 0
|
||||||
|
SHUT_WR = 1
|
||||||
|
SHUT_RDWR = 2
|
||||||
|
|
||||||
|
WSADESCRIPTION_LEN = 256
|
||||||
|
WSASYS_STATUS_LEN = 128
|
||||||
|
)
|
||||||
|
|
||||||
|
type WSAData struct {
|
||||||
|
Version uint16
|
||||||
|
HighVersion uint16
|
||||||
|
Description [WSADESCRIPTION_LEN + 1]byte
|
||||||
|
SystemStatus [WSASYS_STATUS_LEN + 1]byte
|
||||||
|
MaxSockets uint16
|
||||||
|
MaxUdpDg uint16
|
||||||
|
VendorInfo *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type WSABuf struct {
|
||||||
|
Len uint32
|
||||||
|
Buf *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO(brainman): fix all needed for os
|
||||||
|
|
||||||
|
const (
|
||||||
|
PROT_READ = 0x1
|
||||||
|
PROT_WRITE = 0x2
|
||||||
|
MAP_SHARED = 0x1
|
||||||
|
SYS_FORK = 0
|
||||||
|
SYS_PTRACE = 0
|
||||||
|
SYS_CHDIR = 0
|
||||||
|
SYS_DUP2 = 0
|
||||||
|
SYS_FCNTL = 0
|
||||||
|
SYS_EXECVE = 0
|
||||||
|
F_GETFD = 0x1
|
||||||
|
F_SETFD = 0x2
|
||||||
|
F_GETFL = 0x3
|
||||||
|
F_SETFL = 0x4
|
||||||
|
FD_CLOEXEC = 0
|
||||||
|
S_IFMT = 0x1f000
|
||||||
|
S_IFIFO = 0x1000
|
||||||
|
S_IFCHR = 0x2000
|
||||||
|
S_IFDIR = 0x4000
|
||||||
|
S_IFBLK = 0x6000
|
||||||
|
S_IFREG = 0x8000
|
||||||
|
S_IFLNK = 0xa000
|
||||||
|
S_IFSOCK = 0xc000
|
||||||
|
S_ISUID = 0x800
|
||||||
|
S_ISGID = 0x400
|
||||||
|
S_ISVTX = 0x200
|
||||||
|
S_IRUSR = 0x100
|
||||||
|
S_IWRITE = 0x80
|
||||||
|
S_IWUSR = 0x80
|
||||||
|
S_IXUSR = 0x40
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
FILE_TYPE_CHAR = 0x0002
|
||||||
|
FILE_TYPE_DISK = 0x0001
|
||||||
|
FILE_TYPE_PIPE = 0x0003
|
||||||
|
FILE_TYPE_REMOTE = 0x8000
|
||||||
|
FILE_TYPE_UNKNOWN = 0x0000
|
||||||
|
)
|
||||||
|
|
||||||
|
type Hostent struct {
|
||||||
|
Name *byte
|
||||||
|
Aliases **byte
|
||||||
|
AddrType uint16
|
||||||
|
Length uint16
|
||||||
|
AddrList **byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type Servent struct {
|
||||||
|
Name *byte
|
||||||
|
Aliases **byte
|
||||||
|
Port uint16
|
||||||
|
Proto *byte
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
DNS_TYPE_A = 0x0001
|
||||||
|
DNS_TYPE_NS = 0x0002
|
||||||
|
DNS_TYPE_MD = 0x0003
|
||||||
|
DNS_TYPE_MF = 0x0004
|
||||||
|
DNS_TYPE_CNAME = 0x0005
|
||||||
|
DNS_TYPE_SOA = 0x0006
|
||||||
|
DNS_TYPE_MB = 0x0007
|
||||||
|
DNS_TYPE_MG = 0x0008
|
||||||
|
DNS_TYPE_MR = 0x0009
|
||||||
|
DNS_TYPE_NULL = 0x000a
|
||||||
|
DNS_TYPE_WKS = 0x000b
|
||||||
|
DNS_TYPE_PTR = 0x000c
|
||||||
|
DNS_TYPE_HINFO = 0x000d
|
||||||
|
DNS_TYPE_MINFO = 0x000e
|
||||||
|
DNS_TYPE_MX = 0x000f
|
||||||
|
DNS_TYPE_TEXT = 0x0010
|
||||||
|
DNS_TYPE_RP = 0x0011
|
||||||
|
DNS_TYPE_AFSDB = 0x0012
|
||||||
|
DNS_TYPE_X25 = 0x0013
|
||||||
|
DNS_TYPE_ISDN = 0x0014
|
||||||
|
DNS_TYPE_RT = 0x0015
|
||||||
|
DNS_TYPE_NSAP = 0x0016
|
||||||
|
DNS_TYPE_NSAPPTR = 0x0017
|
||||||
|
DNS_TYPE_SIG = 0x0018
|
||||||
|
DNS_TYPE_KEY = 0x0019
|
||||||
|
DNS_TYPE_PX = 0x001a
|
||||||
|
DNS_TYPE_GPOS = 0x001b
|
||||||
|
DNS_TYPE_AAAA = 0x001c
|
||||||
|
DNS_TYPE_LOC = 0x001d
|
||||||
|
DNS_TYPE_NXT = 0x001e
|
||||||
|
DNS_TYPE_EID = 0x001f
|
||||||
|
DNS_TYPE_NIMLOC = 0x0020
|
||||||
|
DNS_TYPE_SRV = 0x0021
|
||||||
|
DNS_TYPE_ATMA = 0x0022
|
||||||
|
DNS_TYPE_NAPTR = 0x0023
|
||||||
|
DNS_TYPE_KX = 0x0024
|
||||||
|
DNS_TYPE_CERT = 0x0025
|
||||||
|
DNS_TYPE_A6 = 0x0026
|
||||||
|
DNS_TYPE_DNAME = 0x0027
|
||||||
|
DNS_TYPE_SINK = 0x0028
|
||||||
|
DNS_TYPE_OPT = 0x0029
|
||||||
|
DNS_TYPE_DS = 0x002B
|
||||||
|
DNS_TYPE_RRSIG = 0x002E
|
||||||
|
DNS_TYPE_NSEC = 0x002F
|
||||||
|
DNS_TYPE_DNSKEY = 0x0030
|
||||||
|
DNS_TYPE_DHCID = 0x0031
|
||||||
|
DNS_TYPE_UINFO = 0x0064
|
||||||
|
DNS_TYPE_UID = 0x0065
|
||||||
|
DNS_TYPE_GID = 0x0066
|
||||||
|
DNS_TYPE_UNSPEC = 0x0067
|
||||||
|
DNS_TYPE_ADDRS = 0x00f8
|
||||||
|
DNS_TYPE_TKEY = 0x00f9
|
||||||
|
DNS_TYPE_TSIG = 0x00fa
|
||||||
|
DNS_TYPE_IXFR = 0x00fb
|
||||||
|
DNS_TYPE_AXFR = 0x00fc
|
||||||
|
DNS_TYPE_MAILB = 0x00fd
|
||||||
|
DNS_TYPE_MAILA = 0x00fe
|
||||||
|
DNS_TYPE_ALL = 0x00ff
|
||||||
|
DNS_TYPE_ANY = 0x00ff
|
||||||
|
DNS_TYPE_WINS = 0xff01
|
||||||
|
DNS_TYPE_WINSR = 0xff02
|
||||||
|
DNS_TYPE_NBSTAT = 0xff01
|
||||||
|
)
|
||||||
|
|
||||||
|
type DNSSRVData struct {
|
||||||
|
Target *uint16
|
||||||
|
Priority uint16
|
||||||
|
Weight uint16
|
||||||
|
Port uint16
|
||||||
|
Pad uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type DNSPTRData struct {
|
||||||
|
Host *uint16
|
||||||
|
}
|
||||||
|
|
||||||
|
type DNSRecord struct {
|
||||||
|
Next *DNSRecord
|
||||||
|
Name *uint16
|
||||||
|
Type uint16
|
||||||
|
Length uint16
|
||||||
|
Dw uint32
|
||||||
|
Ttl uint32
|
||||||
|
Reserved uint32
|
||||||
|
Data [40]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
TF_DISCONNECT = 1
|
||||||
|
TF_REUSE_SOCKET = 2
|
||||||
|
TF_WRITE_BEHIND = 4
|
||||||
|
TF_USE_DEFAULT_WORKER = 0
|
||||||
|
TF_USE_SYSTEM_THREAD = 16
|
||||||
|
TF_USE_KERNEL_APC = 32
|
||||||
|
)
|
||||||
|
|
||||||
|
type TransmitFileBuffers struct {
|
||||||
|
Head uintptr
|
||||||
|
HeadLength uint32
|
||||||
|
Tail uintptr
|
||||||
|
TailLength uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
IFF_UP = 1
|
||||||
|
IFF_BROADCAST = 2
|
||||||
|
IFF_LOOPBACK = 4
|
||||||
|
IFF_POINTTOPOINT = 8
|
||||||
|
IFF_MULTICAST = 16
|
||||||
|
)
|
||||||
|
|
||||||
|
const SIO_GET_INTERFACE_LIST = 0x4004747F
|
||||||
|
|
||||||
|
// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old.
|
||||||
|
// will be fixed to change variable type as suitable.
|
||||||
|
|
||||||
|
type SockaddrGen [24]byte
|
||||||
|
|
||||||
|
type InterfaceInfo struct {
|
||||||
|
Flags uint32
|
||||||
|
Address SockaddrGen
|
||||||
|
BroadcastAddress SockaddrGen
|
||||||
|
Netmask SockaddrGen
|
||||||
|
}
|
||||||
|
|
||||||
|
type IpAddressString struct {
|
||||||
|
String [16]byte
|
||||||
|
}
|
||||||
|
|
||||||
|
type IpMaskString IpAddressString
|
||||||
|
|
||||||
|
type IpAddrString struct {
|
||||||
|
Next *IpAddrString
|
||||||
|
IpAddress IpAddressString
|
||||||
|
IpMask IpMaskString
|
||||||
|
Context uint32
|
||||||
|
}
|
||||||
|
|
||||||
|
const MAX_ADAPTER_NAME_LENGTH = 256
|
||||||
|
const MAX_ADAPTER_DESCRIPTION_LENGTH = 128
|
||||||
|
const MAX_ADAPTER_ADDRESS_LENGTH = 8
|
||||||
|
|
||||||
|
type IpAdapterInfo struct {
|
||||||
|
Next *IpAdapterInfo
|
||||||
|
ComboIndex uint32
|
||||||
|
AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte
|
||||||
|
Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte
|
||||||
|
AddressLength uint32
|
||||||
|
Address [MAX_ADAPTER_ADDRESS_LENGTH]byte
|
||||||
|
Index uint32
|
||||||
|
Type uint32
|
||||||
|
DhcpEnabled uint32
|
||||||
|
CurrentIpAddress *IpAddrString
|
||||||
|
IpAddressList IpAddrString
|
||||||
|
GatewayList IpAddrString
|
||||||
|
DhcpServer IpAddrString
|
||||||
|
HaveWins bool
|
||||||
|
PrimaryWinsServer IpAddrString
|
||||||
|
SecondaryWinsServer IpAddrString
|
||||||
|
LeaseObtained int64
|
||||||
|
LeaseExpires int64
|
||||||
|
}
|
||||||
|
|
||||||
|
const MAXLEN_PHYSADDR = 8
|
||||||
|
const MAX_INTERFACE_NAME_LEN = 256
|
||||||
|
const MAXLEN_IFDESCR = 256
|
||||||
|
|
||||||
|
type MibIfRow struct {
|
||||||
|
Name [MAX_INTERFACE_NAME_LEN]uint16
|
||||||
|
Index uint32
|
||||||
|
Type uint32
|
||||||
|
Mtu uint32
|
||||||
|
Speed uint32
|
||||||
|
PhysAddrLen uint32
|
||||||
|
PhysAddr [MAXLEN_PHYSADDR]byte
|
||||||
|
AdminStatus uint32
|
||||||
|
OperStatus uint32
|
||||||
|
LastChange uint32
|
||||||
|
InOctets uint32
|
||||||
|
InUcastPkts uint32
|
||||||
|
InNUcastPkts uint32
|
||||||
|
InDiscards uint32
|
||||||
|
InErrors uint32
|
||||||
|
InUnknownProtos uint32
|
||||||
|
OutOctets uint32
|
||||||
|
OutUcastPkts uint32
|
||||||
|
OutNUcastPkts uint32
|
||||||
|
OutDiscards uint32
|
||||||
|
OutErrors uint32
|
||||||
|
OutQLen uint32
|
||||||
|
DescrLen uint32
|
||||||
|
Descr [MAXLEN_IFDESCR]byte
|
||||||
|
}
|
@ -1,656 +1,5 @@
|
|||||||
|
// Copyright 2011 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 syscall
|
package syscall
|
||||||
|
|
||||||
// TODO(brainman): autogenerate types in ztypes_windows_386.go
|
|
||||||
|
|
||||||
//import "unsafe"
|
|
||||||
|
|
||||||
// Constants
|
|
||||||
const (
|
|
||||||
sizeofPtr = 0x4
|
|
||||||
sizeofShort = 0x2
|
|
||||||
sizeofInt = 0x4
|
|
||||||
sizeofLong = 0x4
|
|
||||||
sizeofLongLong = 0x8
|
|
||||||
PathMax = 0x1000
|
|
||||||
SizeofLinger = 0x8
|
|
||||||
SizeofMsghdr = 0x1c
|
|
||||||
SizeofCmsghdr = 0xc
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
// Windows errors.
|
|
||||||
ERROR_FILE_NOT_FOUND = 2
|
|
||||||
ERROR_PATH_NOT_FOUND = 3
|
|
||||||
ERROR_NO_MORE_FILES = 18
|
|
||||||
ERROR_BROKEN_PIPE = 109
|
|
||||||
ERROR_BUFFER_OVERFLOW = 111
|
|
||||||
ERROR_INSUFFICIENT_BUFFER = 122
|
|
||||||
ERROR_MOD_NOT_FOUND = 126
|
|
||||||
ERROR_PROC_NOT_FOUND = 127
|
|
||||||
ERROR_ENVVAR_NOT_FOUND = 203
|
|
||||||
ERROR_DIRECTORY = 267
|
|
||||||
ERROR_OPERATION_ABORTED = 995
|
|
||||||
ERROR_IO_PENDING = 997
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
// Invented values to support what package os expects.
|
|
||||||
O_RDONLY = 0x00000
|
|
||||||
O_WRONLY = 0x00001
|
|
||||||
O_RDWR = 0x00002
|
|
||||||
O_CREAT = 0x00040
|
|
||||||
O_EXCL = 0x00080
|
|
||||||
O_NOCTTY = 0x00100
|
|
||||||
O_TRUNC = 0x00200
|
|
||||||
O_NONBLOCK = 0x00800
|
|
||||||
O_APPEND = 0x00400
|
|
||||||
O_SYNC = 0x01000
|
|
||||||
O_ASYNC = 0x02000
|
|
||||||
O_CLOEXEC = 0x80000
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
// More invented values for signals
|
|
||||||
SIGHUP = 0x1
|
|
||||||
SIGINT = 0x2
|
|
||||||
SIGQUIT = 0x3
|
|
||||||
SIGILL = 0x4
|
|
||||||
SIGTRAP = 0x5
|
|
||||||
SIGABRT = 0x6
|
|
||||||
SIGBUS = 0x7
|
|
||||||
SIGFPE = 0x8
|
|
||||||
SIGKILL = 0x9
|
|
||||||
SIGSEGV = 0xb
|
|
||||||
SIGPIPE = 0xd
|
|
||||||
SIGALRM = 0xe
|
|
||||||
SIGTERM = 0xf
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
GENERIC_READ = 0x80000000
|
|
||||||
GENERIC_WRITE = 0x40000000
|
|
||||||
GENERIC_EXECUTE = 0x20000000
|
|
||||||
GENERIC_ALL = 0x10000000
|
|
||||||
|
|
||||||
FILE_APPEND_DATA = 0x00000004
|
|
||||||
FILE_WRITE_ATTRIBUTES = 0x00000100
|
|
||||||
|
|
||||||
FILE_SHARE_READ = 0x00000001
|
|
||||||
FILE_SHARE_WRITE = 0x00000002
|
|
||||||
FILE_SHARE_DELETE = 0x00000004
|
|
||||||
FILE_ATTRIBUTE_READONLY = 0x00000001
|
|
||||||
FILE_ATTRIBUTE_HIDDEN = 0x00000002
|
|
||||||
FILE_ATTRIBUTE_SYSTEM = 0x00000004
|
|
||||||
FILE_ATTRIBUTE_DIRECTORY = 0x00000010
|
|
||||||
FILE_ATTRIBUTE_ARCHIVE = 0x00000020
|
|
||||||
FILE_ATTRIBUTE_NORMAL = 0x00000080
|
|
||||||
|
|
||||||
INVALID_FILE_ATTRIBUTES = 0xffffffff
|
|
||||||
|
|
||||||
CREATE_NEW = 1
|
|
||||||
CREATE_ALWAYS = 2
|
|
||||||
OPEN_EXISTING = 3
|
|
||||||
OPEN_ALWAYS = 4
|
|
||||||
TRUNCATE_EXISTING = 5
|
|
||||||
|
|
||||||
HANDLE_FLAG_INHERIT = 0x00000001
|
|
||||||
STARTF_USESTDHANDLES = 0x00000100
|
|
||||||
STARTF_USESHOWWINDOW = 0x00000001
|
|
||||||
DUPLICATE_CLOSE_SOURCE = 0x00000001
|
|
||||||
DUPLICATE_SAME_ACCESS = 0x00000002
|
|
||||||
|
|
||||||
STD_INPUT_HANDLE = -10
|
|
||||||
STD_OUTPUT_HANDLE = -11
|
|
||||||
STD_ERROR_HANDLE = -12
|
|
||||||
|
|
||||||
FILE_BEGIN = 0
|
|
||||||
FILE_CURRENT = 1
|
|
||||||
FILE_END = 2
|
|
||||||
|
|
||||||
FORMAT_MESSAGE_ALLOCATE_BUFFER = 256
|
|
||||||
FORMAT_MESSAGE_IGNORE_INSERTS = 512
|
|
||||||
FORMAT_MESSAGE_FROM_STRING = 1024
|
|
||||||
FORMAT_MESSAGE_FROM_HMODULE = 2048
|
|
||||||
FORMAT_MESSAGE_FROM_SYSTEM = 4096
|
|
||||||
FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192
|
|
||||||
FORMAT_MESSAGE_MAX_WIDTH_MASK = 255
|
|
||||||
|
|
||||||
MAX_PATH = 260
|
|
||||||
MAX_LONG_PATH = 32768
|
|
||||||
|
|
||||||
MAX_COMPUTERNAME_LENGTH = 15
|
|
||||||
|
|
||||||
TIME_ZONE_ID_UNKNOWN = 0
|
|
||||||
TIME_ZONE_ID_STANDARD = 1
|
|
||||||
|
|
||||||
TIME_ZONE_ID_DAYLIGHT = 2
|
|
||||||
IGNORE = 0
|
|
||||||
INFINITE = 0xffffffff
|
|
||||||
|
|
||||||
WAIT_TIMEOUT = 258
|
|
||||||
WAIT_ABANDONED = 0x00000080
|
|
||||||
WAIT_OBJECT_0 = 0x00000000
|
|
||||||
WAIT_FAILED = 0xFFFFFFFF
|
|
||||||
|
|
||||||
CREATE_UNICODE_ENVIRONMENT = 0x00000400
|
|
||||||
|
|
||||||
STANDARD_RIGHTS_READ = 0x00020000
|
|
||||||
PROCESS_QUERY_INFORMATION = 0x00000400
|
|
||||||
SYNCHRONIZE = 0x00100000
|
|
||||||
|
|
||||||
PAGE_READONLY = 0x02
|
|
||||||
PAGE_READWRITE = 0x04
|
|
||||||
PAGE_WRITECOPY = 0x08
|
|
||||||
PAGE_EXECUTE_READ = 0x20
|
|
||||||
PAGE_EXECUTE_READWRITE = 0x40
|
|
||||||
PAGE_EXECUTE_WRITECOPY = 0x80
|
|
||||||
|
|
||||||
FILE_MAP_COPY = 0x01
|
|
||||||
FILE_MAP_WRITE = 0x02
|
|
||||||
FILE_MAP_READ = 0x04
|
|
||||||
FILE_MAP_EXECUTE = 0x20
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
// wincrypt.h
|
|
||||||
PROV_RSA_FULL = 1
|
|
||||||
PROV_RSA_SIG = 2
|
|
||||||
PROV_DSS = 3
|
|
||||||
PROV_FORTEZZA = 4
|
|
||||||
PROV_MS_EXCHANGE = 5
|
|
||||||
PROV_SSL = 6
|
|
||||||
PROV_RSA_SCHANNEL = 12
|
|
||||||
PROV_DSS_DH = 13
|
|
||||||
PROV_EC_ECDSA_SIG = 14
|
|
||||||
PROV_EC_ECNRA_SIG = 15
|
|
||||||
PROV_EC_ECDSA_FULL = 16
|
|
||||||
PROV_EC_ECNRA_FULL = 17
|
|
||||||
PROV_DH_SCHANNEL = 18
|
|
||||||
PROV_SPYRUS_LYNKS = 20
|
|
||||||
PROV_RNG = 21
|
|
||||||
PROV_INTEL_SEC = 22
|
|
||||||
PROV_REPLACE_OWF = 23
|
|
||||||
PROV_RSA_AES = 24
|
|
||||||
CRYPT_VERIFYCONTEXT = 0xF0000000
|
|
||||||
CRYPT_NEWKEYSET = 0x00000008
|
|
||||||
CRYPT_DELETEKEYSET = 0x00000010
|
|
||||||
CRYPT_MACHINE_KEYSET = 0x00000020
|
|
||||||
CRYPT_SILENT = 0x00000040
|
|
||||||
CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080
|
|
||||||
)
|
|
||||||
|
|
||||||
// Types
|
|
||||||
|
|
||||||
type _C_short int16
|
|
||||||
|
|
||||||
type _C_int int32
|
|
||||||
|
|
||||||
type _C_long int32
|
|
||||||
|
|
||||||
type _C_long_long int64
|
|
||||||
|
|
||||||
// Invented values to support what package os expects.
|
|
||||||
type Timeval struct {
|
|
||||||
Sec int32
|
|
||||||
Usec int32
|
|
||||||
}
|
|
||||||
|
|
||||||
func (tv *Timeval) Nanoseconds() int64 {
|
|
||||||
return (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3
|
|
||||||
}
|
|
||||||
|
|
||||||
func NsecToTimeval(nsec int64) (tv Timeval) {
|
|
||||||
tv.Sec = int32(nsec / 1e9)
|
|
||||||
tv.Usec = int32(nsec % 1e9 / 1e3)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
type SecurityAttributes struct {
|
|
||||||
Length uint32
|
|
||||||
SecurityDescriptor uintptr
|
|
||||||
InheritHandle uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
type Overlapped struct {
|
|
||||||
Internal uint32
|
|
||||||
InternalHigh uint32
|
|
||||||
Offset uint32
|
|
||||||
OffsetHigh uint32
|
|
||||||
HEvent Handle
|
|
||||||
}
|
|
||||||
|
|
||||||
type Filetime struct {
|
|
||||||
LowDateTime uint32
|
|
||||||
HighDateTime uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ft *Filetime) Nanoseconds() int64 {
|
|
||||||
// 100-nanosecond intervals since January 1, 1601
|
|
||||||
nsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime)
|
|
||||||
// change starting time to the Epoch (00:00:00 UTC, January 1, 1970)
|
|
||||||
nsec -= 116444736000000000
|
|
||||||
// convert into nanoseconds
|
|
||||||
nsec *= 100
|
|
||||||
return nsec
|
|
||||||
}
|
|
||||||
|
|
||||||
func NsecToFiletime(nsec int64) (ft Filetime) {
|
|
||||||
// convert into 100-nanosecond
|
|
||||||
nsec /= 100
|
|
||||||
// change starting time to January 1, 1601
|
|
||||||
nsec += 116444736000000000
|
|
||||||
// split into high / low
|
|
||||||
ft.LowDateTime = uint32(nsec & 0xffffffff)
|
|
||||||
ft.HighDateTime = uint32(nsec >> 32 & 0xffffffff)
|
|
||||||
return ft
|
|
||||||
}
|
|
||||||
|
|
||||||
type Win32finddata struct {
|
|
||||||
FileAttributes uint32
|
|
||||||
CreationTime Filetime
|
|
||||||
LastAccessTime Filetime
|
|
||||||
LastWriteTime Filetime
|
|
||||||
FileSizeHigh uint32
|
|
||||||
FileSizeLow uint32
|
|
||||||
Reserved0 uint32
|
|
||||||
Reserved1 uint32
|
|
||||||
FileName [MAX_PATH - 1]uint16
|
|
||||||
AlternateFileName [13]uint16
|
|
||||||
}
|
|
||||||
|
|
||||||
type ByHandleFileInformation struct {
|
|
||||||
FileAttributes uint32
|
|
||||||
CreationTime Filetime
|
|
||||||
LastAccessTime Filetime
|
|
||||||
LastWriteTime Filetime
|
|
||||||
VolumeSerialNumber uint32
|
|
||||||
FileSizeHigh uint32
|
|
||||||
FileSizeLow uint32
|
|
||||||
NumberOfLinks uint32
|
|
||||||
FileIndexHigh uint32
|
|
||||||
FileIndexLow uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
// ShowWindow constants
|
|
||||||
const (
|
|
||||||
// winuser.h
|
|
||||||
SW_HIDE = 0
|
|
||||||
SW_NORMAL = 1
|
|
||||||
SW_SHOWNORMAL = 1
|
|
||||||
SW_SHOWMINIMIZED = 2
|
|
||||||
SW_SHOWMAXIMIZED = 3
|
|
||||||
SW_MAXIMIZE = 3
|
|
||||||
SW_SHOWNOACTIVATE = 4
|
|
||||||
SW_SHOW = 5
|
|
||||||
SW_MINIMIZE = 6
|
|
||||||
SW_SHOWMINNOACTIVE = 7
|
|
||||||
SW_SHOWNA = 8
|
|
||||||
SW_RESTORE = 9
|
|
||||||
SW_SHOWDEFAULT = 10
|
|
||||||
SW_FORCEMINIMIZE = 11
|
|
||||||
)
|
|
||||||
|
|
||||||
type StartupInfo struct {
|
|
||||||
Cb uint32
|
|
||||||
_ *uint16
|
|
||||||
Desktop *uint16
|
|
||||||
Title *uint16
|
|
||||||
X uint32
|
|
||||||
Y uint32
|
|
||||||
XSize uint32
|
|
||||||
YSize uint32
|
|
||||||
XCountChars uint32
|
|
||||||
YCountChars uint32
|
|
||||||
FillAttribute uint32
|
|
||||||
Flags uint32
|
|
||||||
ShowWindow uint16
|
|
||||||
_ uint16
|
|
||||||
_ *byte
|
|
||||||
StdInput Handle
|
|
||||||
StdOutput Handle
|
|
||||||
StdErr Handle
|
|
||||||
}
|
|
||||||
|
|
||||||
type ProcessInformation struct {
|
|
||||||
Process Handle
|
|
||||||
Thread Handle
|
|
||||||
ProcessId uint32
|
|
||||||
ThreadId uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invented values to support what package os expects.
|
|
||||||
type Stat_t struct {
|
|
||||||
Windata Win32finddata
|
|
||||||
Mode uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
type Systemtime struct {
|
|
||||||
Year uint16
|
|
||||||
Month uint16
|
|
||||||
DayOfWeek uint16
|
|
||||||
Day uint16
|
|
||||||
Hour uint16
|
|
||||||
Minute uint16
|
|
||||||
Second uint16
|
|
||||||
Milliseconds uint16
|
|
||||||
}
|
|
||||||
|
|
||||||
type Timezoneinformation struct {
|
|
||||||
Bias int32
|
|
||||||
StandardName [32]uint16
|
|
||||||
StandardDate Systemtime
|
|
||||||
StandardBias int32
|
|
||||||
DaylightName [32]uint16
|
|
||||||
DaylightDate Systemtime
|
|
||||||
DaylightBias int32
|
|
||||||
}
|
|
||||||
|
|
||||||
// Socket related.
|
|
||||||
|
|
||||||
const (
|
|
||||||
AF_UNSPEC = 0
|
|
||||||
AF_UNIX = 1
|
|
||||||
AF_INET = 2
|
|
||||||
AF_INET6 = 23
|
|
||||||
AF_NETBIOS = 17
|
|
||||||
|
|
||||||
SOCK_STREAM = 1
|
|
||||||
SOCK_DGRAM = 2
|
|
||||||
SOCK_RAW = 3
|
|
||||||
SOCK_SEQPACKET = 5
|
|
||||||
|
|
||||||
IPPROTO_IP = 0
|
|
||||||
IPPROTO_TCP = 6
|
|
||||||
IPPROTO_UDP = 17
|
|
||||||
|
|
||||||
SOL_SOCKET = 0xffff
|
|
||||||
SO_REUSEADDR = 4
|
|
||||||
SO_KEEPALIVE = 8
|
|
||||||
SO_DONTROUTE = 16
|
|
||||||
SO_BROADCAST = 32
|
|
||||||
SO_LINGER = 128
|
|
||||||
SO_RCVBUF = 0x1002
|
|
||||||
SO_SNDBUF = 0x1001
|
|
||||||
SO_UPDATE_ACCEPT_CONTEXT = 0x700b
|
|
||||||
|
|
||||||
IPPROTO_IPV6 = 0x29
|
|
||||||
IPV6_V6ONLY = 0x1b
|
|
||||||
|
|
||||||
SOMAXCONN = 5
|
|
||||||
|
|
||||||
TCP_NODELAY = 1
|
|
||||||
|
|
||||||
SHUT_RD = 0
|
|
||||||
SHUT_WR = 1
|
|
||||||
SHUT_RDWR = 2
|
|
||||||
|
|
||||||
WSADESCRIPTION_LEN = 256
|
|
||||||
WSASYS_STATUS_LEN = 128
|
|
||||||
)
|
|
||||||
|
|
||||||
type WSAData struct {
|
|
||||||
Version uint16
|
|
||||||
HighVersion uint16
|
|
||||||
Description [WSADESCRIPTION_LEN + 1]byte
|
|
||||||
SystemStatus [WSASYS_STATUS_LEN + 1]byte
|
|
||||||
MaxSockets uint16
|
|
||||||
MaxUdpDg uint16
|
|
||||||
VendorInfo *byte
|
|
||||||
}
|
|
||||||
|
|
||||||
type WSABuf struct {
|
|
||||||
Len uint32
|
|
||||||
Buf *byte
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO(brainman): fix all needed for os
|
|
||||||
|
|
||||||
const (
|
|
||||||
PROT_READ = 0x1
|
|
||||||
PROT_WRITE = 0x2
|
|
||||||
MAP_SHARED = 0x1
|
|
||||||
SYS_FORK = 0
|
|
||||||
SYS_PTRACE = 0
|
|
||||||
SYS_CHDIR = 0
|
|
||||||
SYS_DUP2 = 0
|
|
||||||
SYS_FCNTL = 0
|
|
||||||
SYS_EXECVE = 0
|
|
||||||
F_GETFD = 0x1
|
|
||||||
F_SETFD = 0x2
|
|
||||||
F_GETFL = 0x3
|
|
||||||
F_SETFL = 0x4
|
|
||||||
FD_CLOEXEC = 0
|
|
||||||
S_IFMT = 0x1f000
|
|
||||||
S_IFIFO = 0x1000
|
|
||||||
S_IFCHR = 0x2000
|
|
||||||
S_IFDIR = 0x4000
|
|
||||||
S_IFBLK = 0x6000
|
|
||||||
S_IFREG = 0x8000
|
|
||||||
S_IFLNK = 0xa000
|
|
||||||
S_IFSOCK = 0xc000
|
|
||||||
S_ISUID = 0x800
|
|
||||||
S_ISGID = 0x400
|
|
||||||
S_ISVTX = 0x200
|
|
||||||
S_IRUSR = 0x100
|
|
||||||
S_IWRITE = 0x80
|
|
||||||
S_IWUSR = 0x80
|
|
||||||
S_IXUSR = 0x40
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
FILE_TYPE_CHAR = 0x0002
|
|
||||||
FILE_TYPE_DISK = 0x0001
|
|
||||||
FILE_TYPE_PIPE = 0x0003
|
|
||||||
FILE_TYPE_REMOTE = 0x8000
|
|
||||||
FILE_TYPE_UNKNOWN = 0x0000
|
|
||||||
)
|
|
||||||
|
|
||||||
type Hostent struct {
|
|
||||||
Name *byte
|
|
||||||
Aliases **byte
|
|
||||||
AddrType uint16
|
|
||||||
Length uint16
|
|
||||||
AddrList **byte
|
|
||||||
}
|
|
||||||
|
|
||||||
type Servent struct {
|
|
||||||
Name *byte
|
|
||||||
Aliases **byte
|
|
||||||
Port uint16
|
|
||||||
Proto *byte
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
DNS_TYPE_A = 0x0001
|
|
||||||
DNS_TYPE_NS = 0x0002
|
|
||||||
DNS_TYPE_MD = 0x0003
|
|
||||||
DNS_TYPE_MF = 0x0004
|
|
||||||
DNS_TYPE_CNAME = 0x0005
|
|
||||||
DNS_TYPE_SOA = 0x0006
|
|
||||||
DNS_TYPE_MB = 0x0007
|
|
||||||
DNS_TYPE_MG = 0x0008
|
|
||||||
DNS_TYPE_MR = 0x0009
|
|
||||||
DNS_TYPE_NULL = 0x000a
|
|
||||||
DNS_TYPE_WKS = 0x000b
|
|
||||||
DNS_TYPE_PTR = 0x000c
|
|
||||||
DNS_TYPE_HINFO = 0x000d
|
|
||||||
DNS_TYPE_MINFO = 0x000e
|
|
||||||
DNS_TYPE_MX = 0x000f
|
|
||||||
DNS_TYPE_TEXT = 0x0010
|
|
||||||
DNS_TYPE_RP = 0x0011
|
|
||||||
DNS_TYPE_AFSDB = 0x0012
|
|
||||||
DNS_TYPE_X25 = 0x0013
|
|
||||||
DNS_TYPE_ISDN = 0x0014
|
|
||||||
DNS_TYPE_RT = 0x0015
|
|
||||||
DNS_TYPE_NSAP = 0x0016
|
|
||||||
DNS_TYPE_NSAPPTR = 0x0017
|
|
||||||
DNS_TYPE_SIG = 0x0018
|
|
||||||
DNS_TYPE_KEY = 0x0019
|
|
||||||
DNS_TYPE_PX = 0x001a
|
|
||||||
DNS_TYPE_GPOS = 0x001b
|
|
||||||
DNS_TYPE_AAAA = 0x001c
|
|
||||||
DNS_TYPE_LOC = 0x001d
|
|
||||||
DNS_TYPE_NXT = 0x001e
|
|
||||||
DNS_TYPE_EID = 0x001f
|
|
||||||
DNS_TYPE_NIMLOC = 0x0020
|
|
||||||
DNS_TYPE_SRV = 0x0021
|
|
||||||
DNS_TYPE_ATMA = 0x0022
|
|
||||||
DNS_TYPE_NAPTR = 0x0023
|
|
||||||
DNS_TYPE_KX = 0x0024
|
|
||||||
DNS_TYPE_CERT = 0x0025
|
|
||||||
DNS_TYPE_A6 = 0x0026
|
|
||||||
DNS_TYPE_DNAME = 0x0027
|
|
||||||
DNS_TYPE_SINK = 0x0028
|
|
||||||
DNS_TYPE_OPT = 0x0029
|
|
||||||
DNS_TYPE_DS = 0x002B
|
|
||||||
DNS_TYPE_RRSIG = 0x002E
|
|
||||||
DNS_TYPE_NSEC = 0x002F
|
|
||||||
DNS_TYPE_DNSKEY = 0x0030
|
|
||||||
DNS_TYPE_DHCID = 0x0031
|
|
||||||
DNS_TYPE_UINFO = 0x0064
|
|
||||||
DNS_TYPE_UID = 0x0065
|
|
||||||
DNS_TYPE_GID = 0x0066
|
|
||||||
DNS_TYPE_UNSPEC = 0x0067
|
|
||||||
DNS_TYPE_ADDRS = 0x00f8
|
|
||||||
DNS_TYPE_TKEY = 0x00f9
|
|
||||||
DNS_TYPE_TSIG = 0x00fa
|
|
||||||
DNS_TYPE_IXFR = 0x00fb
|
|
||||||
DNS_TYPE_AXFR = 0x00fc
|
|
||||||
DNS_TYPE_MAILB = 0x00fd
|
|
||||||
DNS_TYPE_MAILA = 0x00fe
|
|
||||||
DNS_TYPE_ALL = 0x00ff
|
|
||||||
DNS_TYPE_ANY = 0x00ff
|
|
||||||
DNS_TYPE_WINS = 0xff01
|
|
||||||
DNS_TYPE_WINSR = 0xff02
|
|
||||||
DNS_TYPE_NBSTAT = 0xff01
|
|
||||||
)
|
|
||||||
|
|
||||||
type DNSSRVData struct {
|
|
||||||
Target *uint16
|
|
||||||
Priority uint16
|
|
||||||
Weight uint16
|
|
||||||
Port uint16
|
|
||||||
Pad uint16
|
|
||||||
}
|
|
||||||
|
|
||||||
type DNSPTRData struct {
|
|
||||||
Host *uint16
|
|
||||||
}
|
|
||||||
|
|
||||||
type DNSRecord struct {
|
|
||||||
Next *DNSRecord
|
|
||||||
Name *uint16
|
|
||||||
Type uint16
|
|
||||||
Length uint16
|
|
||||||
Dw uint32
|
|
||||||
Ttl uint32
|
|
||||||
Reserved uint32
|
|
||||||
Data [40]byte
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
TF_DISCONNECT = 1
|
|
||||||
TF_REUSE_SOCKET = 2
|
|
||||||
TF_WRITE_BEHIND = 4
|
|
||||||
TF_USE_DEFAULT_WORKER = 0
|
|
||||||
TF_USE_SYSTEM_THREAD = 16
|
|
||||||
TF_USE_KERNEL_APC = 32
|
|
||||||
)
|
|
||||||
|
|
||||||
type TransmitFileBuffers struct {
|
|
||||||
Head uintptr
|
|
||||||
HeadLength uint32
|
|
||||||
Tail uintptr
|
|
||||||
TailLength uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
IFF_UP = 1
|
|
||||||
IFF_BROADCAST = 2
|
|
||||||
IFF_LOOPBACK = 4
|
|
||||||
IFF_POINTTOPOINT = 8
|
|
||||||
IFF_MULTICAST = 16
|
|
||||||
)
|
|
||||||
|
|
||||||
const SIO_GET_INTERFACE_LIST = 0x4004747F
|
|
||||||
|
|
||||||
// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old.
|
|
||||||
// will be fixed to change variable type as suitable.
|
|
||||||
|
|
||||||
type SockaddrGen [24]byte
|
|
||||||
|
|
||||||
type InterfaceInfo struct {
|
|
||||||
Flags uint32
|
|
||||||
Address SockaddrGen
|
|
||||||
BroadcastAddress SockaddrGen
|
|
||||||
Netmask SockaddrGen
|
|
||||||
}
|
|
||||||
|
|
||||||
type IpAddressString struct {
|
|
||||||
String [16]byte
|
|
||||||
}
|
|
||||||
|
|
||||||
type IpMaskString IpAddressString
|
|
||||||
|
|
||||||
type IpAddrString struct {
|
|
||||||
Next *IpAddrString
|
|
||||||
IpAddress IpAddressString
|
|
||||||
IpMask IpMaskString
|
|
||||||
Context uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
const MAX_ADAPTER_NAME_LENGTH = 256
|
|
||||||
const MAX_ADAPTER_DESCRIPTION_LENGTH = 128
|
|
||||||
const MAX_ADAPTER_ADDRESS_LENGTH = 8
|
|
||||||
|
|
||||||
type IpAdapterInfo struct {
|
|
||||||
Next *IpAdapterInfo
|
|
||||||
ComboIndex uint32
|
|
||||||
AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte
|
|
||||||
Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte
|
|
||||||
AddressLength uint32
|
|
||||||
Address [MAX_ADAPTER_ADDRESS_LENGTH]byte
|
|
||||||
Index uint32
|
|
||||||
Type uint32
|
|
||||||
DhcpEnabled uint32
|
|
||||||
CurrentIpAddress *IpAddrString
|
|
||||||
IpAddressList IpAddrString
|
|
||||||
GatewayList IpAddrString
|
|
||||||
DhcpServer IpAddrString
|
|
||||||
HaveWins bool
|
|
||||||
PrimaryWinsServer IpAddrString
|
|
||||||
SecondaryWinsServer IpAddrString
|
|
||||||
LeaseObtained int64
|
|
||||||
LeaseExpires int64
|
|
||||||
}
|
|
||||||
|
|
||||||
const MAXLEN_PHYSADDR = 8
|
|
||||||
const MAX_INTERFACE_NAME_LEN = 256
|
|
||||||
const MAXLEN_IFDESCR = 256
|
|
||||||
|
|
||||||
type MibIfRow struct {
|
|
||||||
Name [MAX_INTERFACE_NAME_LEN]uint16
|
|
||||||
Index uint32
|
|
||||||
Type uint32
|
|
||||||
Mtu uint32
|
|
||||||
Speed uint32
|
|
||||||
PhysAddrLen uint32
|
|
||||||
PhysAddr [MAXLEN_PHYSADDR]byte
|
|
||||||
AdminStatus uint32
|
|
||||||
OperStatus uint32
|
|
||||||
LastChange uint32
|
|
||||||
InOctets uint32
|
|
||||||
InUcastPkts uint32
|
|
||||||
InNUcastPkts uint32
|
|
||||||
InDiscards uint32
|
|
||||||
InErrors uint32
|
|
||||||
InUnknownProtos uint32
|
|
||||||
OutOctets uint32
|
|
||||||
OutUcastPkts uint32
|
|
||||||
OutNUcastPkts uint32
|
|
||||||
OutDiscards uint32
|
|
||||||
OutErrors uint32
|
|
||||||
OutQLen uint32
|
|
||||||
DescrLen uint32
|
|
||||||
Descr [MAXLEN_IFDESCR]byte
|
|
||||||
}
|
|
||||||
|
5
src/pkg/syscall/ztypes_windows_amd64.go
Normal file
5
src/pkg/syscall/ztypes_windows_amd64.go
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
// Copyright 2011 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 syscall
|
Loading…
Reference in New Issue
Block a user