1
// Copyright 2011 The Go Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
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_INSUFFICIENT_BUFFER = 122
27
ERROR_MOD_NOT_FOUND = 126
28
ERROR_PROC_NOT_FOUND = 127
29
ERROR_ENVVAR_NOT_FOUND = 203
31
ERROR_OPERATION_ABORTED = 995
32
ERROR_IO_PENDING = 997
36
// Invented values to support what package os expects.
52
// More invented values for signals
69
GENERIC_READ = 0x80000000
70
GENERIC_WRITE = 0x40000000
71
GENERIC_EXECUTE = 0x20000000
72
GENERIC_ALL = 0x10000000
74
FILE_APPEND_DATA = 0x00000004
75
FILE_WRITE_ATTRIBUTES = 0x00000100
77
FILE_SHARE_READ = 0x00000001
78
FILE_SHARE_WRITE = 0x00000002
79
FILE_SHARE_DELETE = 0x00000004
80
FILE_ATTRIBUTE_READONLY = 0x00000001
81
FILE_ATTRIBUTE_HIDDEN = 0x00000002
82
FILE_ATTRIBUTE_SYSTEM = 0x00000004
83
FILE_ATTRIBUTE_DIRECTORY = 0x00000010
84
FILE_ATTRIBUTE_ARCHIVE = 0x00000020
85
FILE_ATTRIBUTE_NORMAL = 0x00000080
87
INVALID_FILE_ATTRIBUTES = 0xffffffff
95
HANDLE_FLAG_INHERIT = 0x00000001
96
STARTF_USESTDHANDLES = 0x00000100
97
STARTF_USESHOWWINDOW = 0x00000001
98
DUPLICATE_CLOSE_SOURCE = 0x00000001
99
DUPLICATE_SAME_ACCESS = 0x00000002
101
STD_INPUT_HANDLE = -10
102
STD_OUTPUT_HANDLE = -11
103
STD_ERROR_HANDLE = -12
109
FORMAT_MESSAGE_ALLOCATE_BUFFER = 256
110
FORMAT_MESSAGE_IGNORE_INSERTS = 512
111
FORMAT_MESSAGE_FROM_STRING = 1024
112
FORMAT_MESSAGE_FROM_HMODULE = 2048
113
FORMAT_MESSAGE_FROM_SYSTEM = 4096
114
FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192
115
FORMAT_MESSAGE_MAX_WIDTH_MASK = 255
118
MAX_LONG_PATH = 32768
120
MAX_COMPUTERNAME_LENGTH = 15
122
TIME_ZONE_ID_UNKNOWN = 0
123
TIME_ZONE_ID_STANDARD = 1
125
TIME_ZONE_ID_DAYLIGHT = 2
127
INFINITE = 0xffffffff
130
WAIT_ABANDONED = 0x00000080
131
WAIT_OBJECT_0 = 0x00000000
132
WAIT_FAILED = 0xFFFFFFFF
134
CREATE_UNICODE_ENVIRONMENT = 0x00000400
136
STANDARD_RIGHTS_READ = 0x00020000
137
PROCESS_QUERY_INFORMATION = 0x00000400
138
SYNCHRONIZE = 0x00100000
141
PAGE_READWRITE = 0x04
142
PAGE_WRITECOPY = 0x08
143
PAGE_EXECUTE_READ = 0x20
144
PAGE_EXECUTE_READWRITE = 0x40
145
PAGE_EXECUTE_WRITECOPY = 0x80
148
FILE_MAP_WRITE = 0x02
150
FILE_MAP_EXECUTE = 0x20
161
PROV_RSA_SCHANNEL = 12
163
PROV_EC_ECDSA_SIG = 14
164
PROV_EC_ECNRA_SIG = 15
165
PROV_EC_ECDSA_FULL = 16
166
PROV_EC_ECNRA_FULL = 17
167
PROV_DH_SCHANNEL = 18
168
PROV_SPYRUS_LYNKS = 20
171
PROV_REPLACE_OWF = 23
173
CRYPT_VERIFYCONTEXT = 0xF0000000
174
CRYPT_NEWKEYSET = 0x00000008
175
CRYPT_DELETEKEYSET = 0x00000010
176
CRYPT_MACHINE_KEYSET = 0x00000020
177
CRYPT_SILENT = 0x00000040
178
CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080
189
type _C_long_long int64
191
// Invented values to support what package os expects.
192
type Timeval struct {
197
func (tv *Timeval) Nanoseconds() int64 {
198
return (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3
201
func NsecToTimeval(nsec int64) (tv Timeval) {
202
tv.Sec = int32(nsec / 1e9)
203
tv.Usec = int32(nsec % 1e9 / 1e3)
207
type SecurityAttributes struct {
209
SecurityDescriptor uintptr
213
type Overlapped struct {
221
type Filetime struct {
226
func (ft *Filetime) Nanoseconds() int64 {
227
// 100-nanosecond intervals since January 1, 1601
228
nsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime)
229
// change starting time to the Epoch (00:00:00 UTC, January 1, 1970)
230
nsec -= 116444736000000000
231
// convert into nanoseconds
236
func NsecToFiletime(nsec int64) (ft Filetime) {
237
// convert into 100-nanosecond
239
// change starting time to January 1, 1601
240
nsec += 116444736000000000
241
// split into high / low
242
ft.LowDateTime = uint32(nsec & 0xffffffff)
243
ft.HighDateTime = uint32(nsec >> 32 & 0xffffffff)
247
type Win32finddata struct {
248
FileAttributes uint32
249
CreationTime Filetime
250
LastAccessTime Filetime
251
LastWriteTime Filetime
256
FileName [MAX_PATH - 1]uint16
257
AlternateFileName [13]uint16
260
type ByHandleFileInformation struct {
261
FileAttributes uint32
262
CreationTime Filetime
263
LastAccessTime Filetime
264
LastWriteTime Filetime
265
VolumeSerialNumber uint32
273
// ShowWindow constants
282
SW_SHOWNOACTIVATE = 4
285
SW_SHOWMINNOACTIVE = 7
289
SW_FORCEMINIMIZE = 11
292
type StartupInfo struct {
313
type ProcessInformation struct {
320
// Invented values to support what package os expects.
322
Windata Win32finddata
326
type Systemtime struct {
337
type Timezoneinformation struct {
339
StandardName [32]uint16
340
StandardDate Systemtime
342
DaylightName [32]uint16
343
DaylightDate Systemtime
372
SO_UPDATE_ACCEPT_CONTEXT = 0x700b
385
WSADESCRIPTION_LEN = 256
386
WSASYS_STATUS_LEN = 128
389
type WSAData struct {
392
Description [WSADESCRIPTION_LEN + 1]byte
393
SystemStatus [WSASYS_STATUS_LEN + 1]byte
404
// TODO(brainman): fix all needed for os
439
FILE_TYPE_CHAR = 0x0002
440
FILE_TYPE_DISK = 0x0001
441
FILE_TYPE_PIPE = 0x0003
442
FILE_TYPE_REMOTE = 0x8000
443
FILE_TYPE_UNKNOWN = 0x0000
446
type Hostent struct {
454
type Servent struct {
466
DNS_TYPE_CNAME = 0x0005
467
DNS_TYPE_SOA = 0x0006
471
DNS_TYPE_NULL = 0x000a
472
DNS_TYPE_WKS = 0x000b
473
DNS_TYPE_PTR = 0x000c
474
DNS_TYPE_HINFO = 0x000d
475
DNS_TYPE_MINFO = 0x000e
477
DNS_TYPE_TEXT = 0x0010
479
DNS_TYPE_AFSDB = 0x0012
480
DNS_TYPE_X25 = 0x0013
481
DNS_TYPE_ISDN = 0x0014
483
DNS_TYPE_NSAP = 0x0016
484
DNS_TYPE_NSAPPTR = 0x0017
485
DNS_TYPE_SIG = 0x0018
486
DNS_TYPE_KEY = 0x0019
488
DNS_TYPE_GPOS = 0x001b
489
DNS_TYPE_AAAA = 0x001c
490
DNS_TYPE_LOC = 0x001d
491
DNS_TYPE_NXT = 0x001e
492
DNS_TYPE_EID = 0x001f
493
DNS_TYPE_NIMLOC = 0x0020
494
DNS_TYPE_SRV = 0x0021
495
DNS_TYPE_ATMA = 0x0022
496
DNS_TYPE_NAPTR = 0x0023
498
DNS_TYPE_CERT = 0x0025
500
DNS_TYPE_DNAME = 0x0027
501
DNS_TYPE_SINK = 0x0028
502
DNS_TYPE_OPT = 0x0029
504
DNS_TYPE_RRSIG = 0x002E
505
DNS_TYPE_NSEC = 0x002F
506
DNS_TYPE_DNSKEY = 0x0030
507
DNS_TYPE_DHCID = 0x0031
508
DNS_TYPE_UINFO = 0x0064
509
DNS_TYPE_UID = 0x0065
510
DNS_TYPE_GID = 0x0066
511
DNS_TYPE_UNSPEC = 0x0067
512
DNS_TYPE_ADDRS = 0x00f8
513
DNS_TYPE_TKEY = 0x00f9
514
DNS_TYPE_TSIG = 0x00fa
515
DNS_TYPE_IXFR = 0x00fb
516
DNS_TYPE_AXFR = 0x00fc
517
DNS_TYPE_MAILB = 0x00fd
518
DNS_TYPE_MAILA = 0x00fe
519
DNS_TYPE_ALL = 0x00ff
520
DNS_TYPE_ANY = 0x00ff
521
DNS_TYPE_WINS = 0xff01
522
DNS_TYPE_WINSR = 0xff02
523
DNS_TYPE_NBSTAT = 0xff01
526
type DNSSRVData struct {
534
type DNSPTRData struct {
538
type DNSRecord struct {