mirror of
https://github.com/golang/go
synced 2024-11-21 14:34:41 -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
|
||||
./mkunixsignals.sh $< > $@ || rm -f $@
|
||||
|
||||
signal_windows.go: ../syscall/ztypes_$(GOOS)_$(GOARCH).go
|
||||
signal_windows.go: ../syscall/ztypes_$(GOOS).go
|
||||
./mkunixsignals.sh $< > $@ || rm -f $@
|
||||
|
@ -41,6 +41,8 @@ GOFILES_linux=\
|
||||
|
||||
GOFILES_windows=\
|
||||
exec_windows.go\
|
||||
zerrors_windows.go\
|
||||
ztypes_windows.go\
|
||||
|
||||
GOFILES_plan9=\
|
||||
exec_plan9.go\
|
||||
|
@ -3,5 +3,5 @@
|
||||
// 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
|
||||
mksyscall="./mksyscall.pl"
|
||||
mkerrors="./mkerrors.sh"
|
||||
zerrors="zerrors_$GOOSARCH.go"
|
||||
run="sh"
|
||||
|
||||
case "$1" in
|
||||
@ -150,6 +151,14 @@ windows_386)
|
||||
mksysnum=
|
||||
mktypes=
|
||||
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)
|
||||
mkerrors=
|
||||
@ -164,7 +173,7 @@ plan9_386)
|
||||
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"
|
||||
case "$GOOS" in
|
||||
darwin | freebsd)
|
||||
|
@ -100,6 +100,8 @@ func getSysProcAddr(m uintptr, pname string) uintptr {
|
||||
return p
|
||||
}
|
||||
|
||||
func Getpagesize() int { return 4096 }
|
||||
|
||||
// Converts a Go function to a function pointer conforming
|
||||
// to the stdcall calling convention. This is useful when
|
||||
// interoperating with Windows code requiring callbacks.
|
||||
|
@ -3,5 +3,3 @@
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
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
|
||||
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
|
||||
// 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
|
||||
|
||||
// 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
|
||||
|
||||
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
|
||||
|
||||
// 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