~john-koepi/ubuntu/trusty/golang/default

« back to all changes in this revision

Viewing changes to src/pkg/syscall/ztypes_windows_386.go

  • Committer: Bazaar Package Importer
  • Author(s): Ondřej Surý
  • Date: 2011-08-03 17:04:59 UTC
  • mfrom: (14.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20110803170459-wzd99m3567y80ila
Tags: 1:59-1
* Imported Upstream version 59
* Refresh patches to a new release
* Fix FTBFS on ARM (Closes: #634270)
* Update version.bash to work with Debian packaging and not hg
  repository

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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.
 
4
 
1
5
package syscall
2
 
 
3
 
// TODO(brainman): autogenerate types in ztypes_windows_386.go
4
 
 
5
 
//import "unsafe"
6
 
 
7
 
// Constants
8
 
const (
9
 
        sizeofPtr      = 0x4
10
 
        sizeofShort    = 0x2
11
 
        sizeofInt      = 0x4
12
 
        sizeofLong     = 0x4
13
 
        sizeofLongLong = 0x8
14
 
        PathMax        = 0x1000
15
 
        SizeofLinger   = 0x8
16
 
        SizeofMsghdr   = 0x1c
17
 
        SizeofCmsghdr  = 0xc
18
 
)
19
 
 
20
 
const (
21
 
        // Windows errors.
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
30
 
        ERROR_DIRECTORY           = 267
31
 
        ERROR_OPERATION_ABORTED   = 995
32
 
        ERROR_IO_PENDING          = 997
33
 
)
34
 
 
35
 
const (
36
 
        // Invented values to support what package os expects.
37
 
        O_RDONLY   = 0x00000
38
 
        O_WRONLY   = 0x00001
39
 
        O_RDWR     = 0x00002
40
 
        O_CREAT    = 0x00040
41
 
        O_EXCL     = 0x00080
42
 
        O_NOCTTY   = 0x00100
43
 
        O_TRUNC    = 0x00200
44
 
        O_NONBLOCK = 0x00800
45
 
        O_APPEND   = 0x00400
46
 
        O_SYNC     = 0x01000
47
 
        O_ASYNC    = 0x02000
48
 
        O_CLOEXEC  = 0x80000
49
 
)
50
 
 
51
 
const (
52
 
        // More invented values for signals
53
 
        SIGHUP  = 0x1
54
 
        SIGINT  = 0x2
55
 
        SIGQUIT = 0x3
56
 
        SIGILL  = 0x4
57
 
        SIGTRAP = 0x5
58
 
        SIGABRT = 0x6
59
 
        SIGBUS  = 0x7
60
 
        SIGFPE  = 0x8
61
 
        SIGKILL = 0x9
62
 
        SIGSEGV = 0xb
63
 
        SIGPIPE = 0xd
64
 
        SIGALRM = 0xe
65
 
        SIGTERM = 0xf
66
 
)
67
 
 
68
 
const (
69
 
        GENERIC_READ    = 0x80000000
70
 
        GENERIC_WRITE   = 0x40000000
71
 
        GENERIC_EXECUTE = 0x20000000
72
 
        GENERIC_ALL     = 0x10000000
73
 
 
74
 
        FILE_APPEND_DATA      = 0x00000004
75
 
        FILE_WRITE_ATTRIBUTES = 0x00000100
76
 
 
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
86
 
 
87
 
        INVALID_FILE_ATTRIBUTES = 0xffffffff
88
 
 
89
 
        CREATE_NEW        = 1
90
 
        CREATE_ALWAYS     = 2
91
 
        OPEN_EXISTING     = 3
92
 
        OPEN_ALWAYS       = 4
93
 
        TRUNCATE_EXISTING = 5
94
 
 
95
 
        HANDLE_FLAG_INHERIT    = 0x00000001
96
 
        STARTF_USESTDHANDLES   = 0x00000100
97
 
        STARTF_USESHOWWINDOW   = 0x00000001
98
 
        DUPLICATE_CLOSE_SOURCE = 0x00000001
99
 
        DUPLICATE_SAME_ACCESS  = 0x00000002
100
 
 
101
 
        STD_INPUT_HANDLE  = -10
102
 
        STD_OUTPUT_HANDLE = -11
103
 
        STD_ERROR_HANDLE  = -12
104
 
 
105
 
        FILE_BEGIN   = 0
106
 
        FILE_CURRENT = 1
107
 
        FILE_END     = 2
108
 
 
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
116
 
 
117
 
        MAX_PATH      = 260
118
 
        MAX_LONG_PATH = 32768
119
 
 
120
 
        MAX_COMPUTERNAME_LENGTH = 15
121
 
 
122
 
        TIME_ZONE_ID_UNKNOWN  = 0
123
 
        TIME_ZONE_ID_STANDARD = 1
124
 
 
125
 
        TIME_ZONE_ID_DAYLIGHT = 2
126
 
        IGNORE                = 0
127
 
        INFINITE              = 0xffffffff
128
 
 
129
 
        WAIT_TIMEOUT   = 258
130
 
        WAIT_ABANDONED = 0x00000080
131
 
        WAIT_OBJECT_0  = 0x00000000
132
 
        WAIT_FAILED    = 0xFFFFFFFF
133
 
 
134
 
        CREATE_UNICODE_ENVIRONMENT = 0x00000400
135
 
 
136
 
        STANDARD_RIGHTS_READ      = 0x00020000
137
 
        PROCESS_QUERY_INFORMATION = 0x00000400
138
 
        SYNCHRONIZE               = 0x00100000
139
 
 
140
 
        PAGE_READONLY          = 0x02
141
 
        PAGE_READWRITE         = 0x04
142
 
        PAGE_WRITECOPY         = 0x08
143
 
        PAGE_EXECUTE_READ      = 0x20
144
 
        PAGE_EXECUTE_READWRITE = 0x40
145
 
        PAGE_EXECUTE_WRITECOPY = 0x80
146
 
 
147
 
        FILE_MAP_COPY    = 0x01
148
 
        FILE_MAP_WRITE   = 0x02
149
 
        FILE_MAP_READ    = 0x04
150
 
        FILE_MAP_EXECUTE = 0x20
151
 
)
152
 
 
153
 
const (
154
 
        // wincrypt.h
155
 
        PROV_RSA_FULL                    = 1
156
 
        PROV_RSA_SIG                     = 2
157
 
        PROV_DSS                         = 3
158
 
        PROV_FORTEZZA                    = 4
159
 
        PROV_MS_EXCHANGE                 = 5
160
 
        PROV_SSL                         = 6
161
 
        PROV_RSA_SCHANNEL                = 12
162
 
        PROV_DSS_DH                      = 13
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
169
 
        PROV_RNG                         = 21
170
 
        PROV_INTEL_SEC                   = 22
171
 
        PROV_REPLACE_OWF                 = 23
172
 
        PROV_RSA_AES                     = 24
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
179
 
)
180
 
 
181
 
// Types
182
 
 
183
 
type _C_short int16
184
 
 
185
 
type _C_int int32
186
 
 
187
 
type _C_long int32
188
 
 
189
 
type _C_long_long int64
190
 
 
191
 
// Invented values to support what package os expects.
192
 
type Timeval struct {
193
 
        Sec  int32
194
 
        Usec int32
195
 
}
196
 
 
197
 
func (tv *Timeval) Nanoseconds() int64 {
198
 
        return (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3
199
 
}
200
 
 
201
 
func NsecToTimeval(nsec int64) (tv Timeval) {
202
 
        tv.Sec = int32(nsec / 1e9)
203
 
        tv.Usec = int32(nsec % 1e9 / 1e3)
204
 
        return
205
 
}
206
 
 
207
 
type SecurityAttributes struct {
208
 
        Length             uint32
209
 
        SecurityDescriptor uintptr
210
 
        InheritHandle      uint32
211
 
}
212
 
 
213
 
type Overlapped struct {
214
 
        Internal     uint32
215
 
        InternalHigh uint32
216
 
        Offset       uint32
217
 
        OffsetHigh   uint32
218
 
        HEvent       int32
219
 
}
220
 
 
221
 
type Filetime struct {
222
 
        LowDateTime  uint32
223
 
        HighDateTime uint32
224
 
}
225
 
 
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
232
 
        nsec *= 100
233
 
        return nsec
234
 
}
235
 
 
236
 
func NsecToFiletime(nsec int64) (ft Filetime) {
237
 
        // convert into 100-nanosecond
238
 
        nsec /= 100
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)
244
 
        return ft
245
 
}
246
 
 
247
 
type Win32finddata struct {
248
 
        FileAttributes    uint32
249
 
        CreationTime      Filetime
250
 
        LastAccessTime    Filetime
251
 
        LastWriteTime     Filetime
252
 
        FileSizeHigh      uint32
253
 
        FileSizeLow       uint32
254
 
        Reserved0         uint32
255
 
        Reserved1         uint32
256
 
        FileName          [MAX_PATH - 1]uint16
257
 
        AlternateFileName [13]uint16
258
 
}
259
 
 
260
 
type ByHandleFileInformation struct {
261
 
        FileAttributes     uint32
262
 
        CreationTime       Filetime
263
 
        LastAccessTime     Filetime
264
 
        LastWriteTime      Filetime
265
 
        VolumeSerialNumber uint32
266
 
        FileSizeHigh       uint32
267
 
        FileSizeLow        uint32
268
 
        NumberOfLinks      uint32
269
 
        FileIndexHigh      uint32
270
 
        FileIndexLow       uint32
271
 
}
272
 
 
273
 
// ShowWindow constants
274
 
const (
275
 
        // winuser.h
276
 
        SW_HIDE            = 0
277
 
        SW_NORMAL          = 1
278
 
        SW_SHOWNORMAL      = 1
279
 
        SW_SHOWMINIMIZED   = 2
280
 
        SW_SHOWMAXIMIZED   = 3
281
 
        SW_MAXIMIZE        = 3
282
 
        SW_SHOWNOACTIVATE  = 4
283
 
        SW_SHOW            = 5
284
 
        SW_MINIMIZE        = 6
285
 
        SW_SHOWMINNOACTIVE = 7
286
 
        SW_SHOWNA          = 8
287
 
        SW_RESTORE         = 9
288
 
        SW_SHOWDEFAULT     = 10
289
 
        SW_FORCEMINIMIZE   = 11
290
 
)
291
 
 
292
 
type StartupInfo struct {
293
 
        Cb            uint32
294
 
        _             *uint16
295
 
        Desktop       *uint16
296
 
        Title         *uint16
297
 
        X             uint32
298
 
        Y             uint32
299
 
        XSize         uint32
300
 
        YSize         uint32
301
 
        XCountChars   uint32
302
 
        YCountChars   uint32
303
 
        FillAttribute uint32
304
 
        Flags         uint32
305
 
        ShowWindow    uint16
306
 
        _             uint16
307
 
        _             *byte
308
 
        StdInput      int32
309
 
        StdOutput     int32
310
 
        StdErr        int32
311
 
}
312
 
 
313
 
type ProcessInformation struct {
314
 
        Process   int32
315
 
        Thread    int32
316
 
        ProcessId uint32
317
 
        ThreadId  uint32
318
 
}
319
 
 
320
 
// Invented values to support what package os expects.
321
 
type Stat_t struct {
322
 
        Windata Win32finddata
323
 
        Mode    uint32
324
 
}
325
 
 
326
 
type Systemtime struct {
327
 
        Year         uint16
328
 
        Month        uint16
329
 
        DayOfWeek    uint16
330
 
        Day          uint16
331
 
        Hour         uint16
332
 
        Minute       uint16
333
 
        Second       uint16
334
 
        Milliseconds uint16
335
 
}
336
 
 
337
 
type Timezoneinformation struct {
338
 
        Bias         int32
339
 
        StandardName [32]uint16
340
 
        StandardDate Systemtime
341
 
        StandardBias int32
342
 
        DaylightName [32]uint16
343
 
        DaylightDate Systemtime
344
 
        DaylightBias int32
345
 
}
346
 
 
347
 
// Socket related.
348
 
 
349
 
const (
350
 
        AF_UNIX    = 1
351
 
        AF_INET    = 2
352
 
        AF_INET6   = 23
353
 
        AF_NETBIOS = 17
354
 
 
355
 
        SOCK_STREAM    = 1
356
 
        SOCK_DGRAM     = 2
357
 
        SOCK_RAW       = 3
358
 
        SOCK_SEQPACKET = 5
359
 
 
360
 
        IPPROTO_IP  = 0
361
 
        IPPROTO_TCP = 6
362
 
        IPPROTO_UDP = 17
363
 
 
364
 
        SOL_SOCKET               = 0xffff
365
 
        SO_REUSEADDR             = 4
366
 
        SO_KEEPALIVE             = 8
367
 
        SO_DONTROUTE             = 16
368
 
        SO_BROADCAST             = 32
369
 
        SO_LINGER                = 128
370
 
        SO_RCVBUF                = 0x1002
371
 
        SO_SNDBUF                = 0x1001
372
 
        SO_UPDATE_ACCEPT_CONTEXT = 0x700b
373
 
 
374
 
        IPPROTO_IPV6 = 0x29
375
 
        IPV6_V6ONLY  = 0x1b
376
 
 
377
 
        SOMAXCONN = 5
378
 
 
379
 
        TCP_NODELAY = 1
380
 
 
381
 
        SHUT_RD   = 0
382
 
        SHUT_WR   = 1
383
 
        SHUT_RDWR = 2
384
 
 
385
 
        WSADESCRIPTION_LEN = 256
386
 
        WSASYS_STATUS_LEN  = 128
387
 
)
388
 
 
389
 
type WSAData struct {
390
 
        Version      uint16
391
 
        HighVersion  uint16
392
 
        Description  [WSADESCRIPTION_LEN + 1]byte
393
 
        SystemStatus [WSASYS_STATUS_LEN + 1]byte
394
 
        MaxSockets   uint16
395
 
        MaxUdpDg     uint16
396
 
        VendorInfo   *byte
397
 
}
398
 
 
399
 
type WSABuf struct {
400
 
        Len uint32
401
 
        Buf *byte
402
 
}
403
 
 
404
 
// TODO(brainman): fix all needed for os
405
 
 
406
 
const (
407
 
        PROT_READ  = 0x1
408
 
        PROT_WRITE = 0x2
409
 
        MAP_SHARED = 0x1
410
 
        SYS_FORK   = 0
411
 
        SYS_PTRACE = 0
412
 
        SYS_CHDIR  = 0
413
 
        SYS_DUP2   = 0
414
 
        SYS_FCNTL  = 0
415
 
        SYS_EXECVE = 0
416
 
        F_GETFD    = 0x1
417
 
        F_SETFD    = 0x2
418
 
        F_GETFL    = 0x3
419
 
        F_SETFL    = 0x4
420
 
        FD_CLOEXEC = 0
421
 
        S_IFMT     = 0x1f000
422
 
        S_IFIFO    = 0x1000
423
 
        S_IFCHR    = 0x2000
424
 
        S_IFDIR    = 0x4000
425
 
        S_IFBLK    = 0x6000
426
 
        S_IFREG    = 0x8000
427
 
        S_IFLNK    = 0xa000
428
 
        S_IFSOCK   = 0xc000
429
 
        S_ISUID    = 0x800
430
 
        S_ISGID    = 0x400
431
 
        S_ISVTX    = 0x200
432
 
        S_IRUSR    = 0x100
433
 
        S_IWRITE   = 0x80
434
 
        S_IWUSR    = 0x80
435
 
        S_IXUSR    = 0x40
436
 
)
437
 
 
438
 
const (
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
444
 
)
445
 
 
446
 
type Hostent struct {
447
 
        Name     *byte
448
 
        Aliases  **byte
449
 
        AddrType uint16
450
 
        Length   uint16
451
 
        AddrList **byte
452
 
}
453
 
 
454
 
type Servent struct {
455
 
        Name    *byte
456
 
        Aliases **byte
457
 
        Port    uint16
458
 
        Proto   *byte
459
 
}
460
 
 
461
 
const (
462
 
        DNS_TYPE_A       = 0x0001
463
 
        DNS_TYPE_NS      = 0x0002
464
 
        DNS_TYPE_MD      = 0x0003
465
 
        DNS_TYPE_MF      = 0x0004
466
 
        DNS_TYPE_CNAME   = 0x0005
467
 
        DNS_TYPE_SOA     = 0x0006
468
 
        DNS_TYPE_MB      = 0x0007
469
 
        DNS_TYPE_MG      = 0x0008
470
 
        DNS_TYPE_MR      = 0x0009
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
476
 
        DNS_TYPE_MX      = 0x000f
477
 
        DNS_TYPE_TEXT    = 0x0010
478
 
        DNS_TYPE_RP      = 0x0011
479
 
        DNS_TYPE_AFSDB   = 0x0012
480
 
        DNS_TYPE_X25     = 0x0013
481
 
        DNS_TYPE_ISDN    = 0x0014
482
 
        DNS_TYPE_RT      = 0x0015
483
 
        DNS_TYPE_NSAP    = 0x0016
484
 
        DNS_TYPE_NSAPPTR = 0x0017
485
 
        DNS_TYPE_SIG     = 0x0018
486
 
        DNS_TYPE_KEY     = 0x0019
487
 
        DNS_TYPE_PX      = 0x001a
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
497
 
        DNS_TYPE_KX      = 0x0024
498
 
        DNS_TYPE_CERT    = 0x0025
499
 
        DNS_TYPE_A6      = 0x0026
500
 
        DNS_TYPE_DNAME   = 0x0027
501
 
        DNS_TYPE_SINK    = 0x0028
502
 
        DNS_TYPE_OPT     = 0x0029
503
 
        DNS_TYPE_DS      = 0x002B
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
524
 
)
525
 
 
526
 
type DNSSRVData struct {
527
 
        Target   *uint16
528
 
        Priority uint16
529
 
        Weight   uint16
530
 
        Port     uint16
531
 
        Pad      uint16
532
 
}
533
 
 
534
 
type DNSPTRData struct {
535
 
        Host *uint16
536
 
}
537
 
 
538
 
type DNSRecord struct {
539
 
        Next     *DNSRecord
540
 
        Name     *uint16
541
 
        Type     uint16
542
 
        Length   uint16
543
 
        Dw       uint32
544
 
        Ttl      uint32
545
 
        Reserved uint32
546
 
        Data     [40]byte
547
 
}