3
// TODO(brainman): autogenerate types in ztypes_windows_386.go
22
ERROR_FILE_NOT_FOUND = 2
23
ERROR_PATH_NOT_FOUND = 3
24
ERROR_NO_MORE_FILES = 18
25
ERROR_BROKEN_PIPE = 109
26
ERROR_BUFFER_OVERFLOW = 111
27
ERROR_INSUFFICIENT_BUFFER = 122
28
ERROR_MOD_NOT_FOUND = 126
29
ERROR_PROC_NOT_FOUND = 127
30
ERROR_ENVVAR_NOT_FOUND = 203
32
ERROR_OPERATION_ABORTED = 995
33
ERROR_IO_PENDING = 997
37
// Invented values to support what package os expects.
53
// More invented values for signals
70
GENERIC_READ = 0x80000000
71
GENERIC_WRITE = 0x40000000
72
GENERIC_EXECUTE = 0x20000000
73
GENERIC_ALL = 0x10000000
75
FILE_APPEND_DATA = 0x00000004
76
FILE_WRITE_ATTRIBUTES = 0x00000100
78
FILE_SHARE_READ = 0x00000001
79
FILE_SHARE_WRITE = 0x00000002
80
FILE_SHARE_DELETE = 0x00000004
81
FILE_ATTRIBUTE_READONLY = 0x00000001
82
FILE_ATTRIBUTE_HIDDEN = 0x00000002
83
FILE_ATTRIBUTE_SYSTEM = 0x00000004
84
FILE_ATTRIBUTE_DIRECTORY = 0x00000010
85
FILE_ATTRIBUTE_ARCHIVE = 0x00000020
86
FILE_ATTRIBUTE_NORMAL = 0x00000080
88
INVALID_FILE_ATTRIBUTES = 0xffffffff
96
HANDLE_FLAG_INHERIT = 0x00000001
97
STARTF_USESTDHANDLES = 0x00000100
98
STARTF_USESHOWWINDOW = 0x00000001
99
DUPLICATE_CLOSE_SOURCE = 0x00000001
100
DUPLICATE_SAME_ACCESS = 0x00000002
102
STD_INPUT_HANDLE = -10
103
STD_OUTPUT_HANDLE = -11
104
STD_ERROR_HANDLE = -12
110
FORMAT_MESSAGE_ALLOCATE_BUFFER = 256
111
FORMAT_MESSAGE_IGNORE_INSERTS = 512
112
FORMAT_MESSAGE_FROM_STRING = 1024
113
FORMAT_MESSAGE_FROM_HMODULE = 2048
114
FORMAT_MESSAGE_FROM_SYSTEM = 4096
115
FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192
116
FORMAT_MESSAGE_MAX_WIDTH_MASK = 255
119
MAX_LONG_PATH = 32768
121
MAX_COMPUTERNAME_LENGTH = 15
123
TIME_ZONE_ID_UNKNOWN = 0
124
TIME_ZONE_ID_STANDARD = 1
126
TIME_ZONE_ID_DAYLIGHT = 2
128
INFINITE = 0xffffffff
131
WAIT_ABANDONED = 0x00000080
132
WAIT_OBJECT_0 = 0x00000000
133
WAIT_FAILED = 0xFFFFFFFF
135
CREATE_UNICODE_ENVIRONMENT = 0x00000400
137
STANDARD_RIGHTS_READ = 0x00020000
138
PROCESS_QUERY_INFORMATION = 0x00000400
139
SYNCHRONIZE = 0x00100000
142
PAGE_READWRITE = 0x04
143
PAGE_WRITECOPY = 0x08
144
PAGE_EXECUTE_READ = 0x20
145
PAGE_EXECUTE_READWRITE = 0x40
146
PAGE_EXECUTE_WRITECOPY = 0x80
149
FILE_MAP_WRITE = 0x02
151
FILE_MAP_EXECUTE = 0x20
162
PROV_RSA_SCHANNEL = 12
164
PROV_EC_ECDSA_SIG = 14
165
PROV_EC_ECNRA_SIG = 15
166
PROV_EC_ECDSA_FULL = 16
167
PROV_EC_ECNRA_FULL = 17
168
PROV_DH_SCHANNEL = 18
169
PROV_SPYRUS_LYNKS = 20
172
PROV_REPLACE_OWF = 23
174
CRYPT_VERIFYCONTEXT = 0xF0000000
175
CRYPT_NEWKEYSET = 0x00000008
176
CRYPT_DELETEKEYSET = 0x00000010
177
CRYPT_MACHINE_KEYSET = 0x00000020
178
CRYPT_SILENT = 0x00000040
179
CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080
190
type _C_long_long int64
192
// Invented values to support what package os expects.
193
type Timeval struct {
198
func (tv *Timeval) Nanoseconds() int64 {
199
return (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3
202
func NsecToTimeval(nsec int64) (tv Timeval) {
203
tv.Sec = int32(nsec / 1e9)
204
tv.Usec = int32(nsec % 1e9 / 1e3)
208
type SecurityAttributes struct {
210
SecurityDescriptor uintptr
214
type Overlapped struct {
222
type Filetime struct {
227
func (ft *Filetime) Nanoseconds() int64 {
228
// 100-nanosecond intervals since January 1, 1601
229
nsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime)
230
// change starting time to the Epoch (00:00:00 UTC, January 1, 1970)
231
nsec -= 116444736000000000
232
// convert into nanoseconds
237
func NsecToFiletime(nsec int64) (ft Filetime) {
238
// convert into 100-nanosecond
240
// change starting time to January 1, 1601
241
nsec += 116444736000000000
242
// split into high / low
243
ft.LowDateTime = uint32(nsec & 0xffffffff)
244
ft.HighDateTime = uint32(nsec >> 32 & 0xffffffff)
248
type Win32finddata struct {
249
FileAttributes uint32
250
CreationTime Filetime
251
LastAccessTime Filetime
252
LastWriteTime Filetime
257
FileName [MAX_PATH - 1]uint16
258
AlternateFileName [13]uint16
261
type ByHandleFileInformation struct {
262
FileAttributes uint32
263
CreationTime Filetime
264
LastAccessTime Filetime
265
LastWriteTime Filetime
266
VolumeSerialNumber uint32
274
// ShowWindow constants
283
SW_SHOWNOACTIVATE = 4
286
SW_SHOWMINNOACTIVE = 7
290
SW_FORCEMINIMIZE = 11
293
type StartupInfo struct {
314
type ProcessInformation struct {
321
// Invented values to support what package os expects.
323
Windata Win32finddata
327
type Systemtime struct {
338
type Timezoneinformation struct {
340
StandardName [32]uint16
341
StandardDate Systemtime
343
DaylightName [32]uint16
344
DaylightDate Systemtime
374
SO_UPDATE_ACCEPT_CONTEXT = 0x700b
387
WSADESCRIPTION_LEN = 256
388
WSASYS_STATUS_LEN = 128
391
type WSAData struct {
394
Description [WSADESCRIPTION_LEN + 1]byte
395
SystemStatus [WSASYS_STATUS_LEN + 1]byte
406
// TODO(brainman): fix all needed for os
441
FILE_TYPE_CHAR = 0x0002
442
FILE_TYPE_DISK = 0x0001
443
FILE_TYPE_PIPE = 0x0003
444
FILE_TYPE_REMOTE = 0x8000
445
FILE_TYPE_UNKNOWN = 0x0000
448
type Hostent struct {
456
type Servent struct {
468
DNS_TYPE_CNAME = 0x0005
469
DNS_TYPE_SOA = 0x0006
473
DNS_TYPE_NULL = 0x000a
474
DNS_TYPE_WKS = 0x000b
475
DNS_TYPE_PTR = 0x000c
476
DNS_TYPE_HINFO = 0x000d
477
DNS_TYPE_MINFO = 0x000e
479
DNS_TYPE_TEXT = 0x0010
481
DNS_TYPE_AFSDB = 0x0012
482
DNS_TYPE_X25 = 0x0013
483
DNS_TYPE_ISDN = 0x0014
485
DNS_TYPE_NSAP = 0x0016
486
DNS_TYPE_NSAPPTR = 0x0017
487
DNS_TYPE_SIG = 0x0018
488
DNS_TYPE_KEY = 0x0019
490
DNS_TYPE_GPOS = 0x001b
491
DNS_TYPE_AAAA = 0x001c
492
DNS_TYPE_LOC = 0x001d
493
DNS_TYPE_NXT = 0x001e
494
DNS_TYPE_EID = 0x001f
495
DNS_TYPE_NIMLOC = 0x0020
496
DNS_TYPE_SRV = 0x0021
497
DNS_TYPE_ATMA = 0x0022
498
DNS_TYPE_NAPTR = 0x0023
500
DNS_TYPE_CERT = 0x0025
502
DNS_TYPE_DNAME = 0x0027
503
DNS_TYPE_SINK = 0x0028
504
DNS_TYPE_OPT = 0x0029
506
DNS_TYPE_RRSIG = 0x002E
507
DNS_TYPE_NSEC = 0x002F
508
DNS_TYPE_DNSKEY = 0x0030
509
DNS_TYPE_DHCID = 0x0031
510
DNS_TYPE_UINFO = 0x0064
511
DNS_TYPE_UID = 0x0065
512
DNS_TYPE_GID = 0x0066
513
DNS_TYPE_UNSPEC = 0x0067
514
DNS_TYPE_ADDRS = 0x00f8
515
DNS_TYPE_TKEY = 0x00f9
516
DNS_TYPE_TSIG = 0x00fa
517
DNS_TYPE_IXFR = 0x00fb
518
DNS_TYPE_AXFR = 0x00fc
519
DNS_TYPE_MAILB = 0x00fd
520
DNS_TYPE_MAILA = 0x00fe
521
DNS_TYPE_ALL = 0x00ff
522
DNS_TYPE_ANY = 0x00ff
523
DNS_TYPE_WINS = 0xff01
524
DNS_TYPE_WINSR = 0xff02
525
DNS_TYPE_NBSTAT = 0xff01
528
type DNSSRVData struct {
536
type DNSPTRData struct {
540
type DNSRecord struct {
555
TF_USE_DEFAULT_WORKER = 0
556
TF_USE_SYSTEM_THREAD = 16
557
TF_USE_KERNEL_APC = 32
560
type TransmitFileBuffers struct {
575
const SIO_GET_INTERFACE_LIST = 0x4004747F
577
// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old.
578
// will be fixed to change variable type as suitable.
580
type SockaddrGen [24]byte
582
type InterfaceInfo struct {
585
BroadcastAddress SockaddrGen
589
type IpAddressString struct {
593
type IpMaskString IpAddressString
595
type IpAddrString struct {
597
IpAddress IpAddressString
602
const MAX_ADAPTER_NAME_LENGTH = 256
603
const MAX_ADAPTER_DESCRIPTION_LENGTH = 128
604
const MAX_ADAPTER_ADDRESS_LENGTH = 8
606
type IpAdapterInfo struct {
609
AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte
610
Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte
612
Address [MAX_ADAPTER_ADDRESS_LENGTH]byte
616
CurrentIpAddress *IpAddrString
617
IpAddressList IpAddrString
618
GatewayList IpAddrString
619
DhcpServer IpAddrString
621
PrimaryWinsServer IpAddrString
622
SecondaryWinsServer IpAddrString
627
const MAXLEN_PHYSADDR = 8
628
const MAX_INTERFACE_NAME_LEN = 256
629
const MAXLEN_IFDESCR = 256
631
type MibIfRow struct {
632
Name [MAX_INTERFACE_NAME_LEN]uint16
638
PhysAddr [MAXLEN_PHYSADDR]byte
647
InUnknownProtos uint32
655
Descr [MAXLEN_IFDESCR]byte