~steve-sk2/mingw-w64/oneiric

« back to all changes in this revision

Viewing changes to mingw-w64-headers/include/_mingw.h

  • Committer: Bazaar Package Importer
  • Author(s): Stephen Kitt
  • Date: 2010-11-18 00:04:46 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20101118000446-xe24b423su55onyl
Tags: 1.0+20101003-1
* New maintainer. (Closes: #594371.)
* New upstream snapshot:
  - Includes getopt.h. (Closes: #569914.)
* Build g++ for Win64. (Closes: #600451.)
* Standards-Version 3.9.1 (new packaging).
* Include patch from
  http://mingw-w64.svn.sourceforge.net/viewvc/mingw-w64?view=revision&revision=3715
  as suggested by Rafaël Carré.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * This file has no copyright assigned and is placed in the Public Domain.
 
3
 * This file is part of the w64 mingw-runtime package.
 
4
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 
5
 */
 
6
 
 
7
#ifndef _INC_CRTDEFS
 
8
#define _INC_CRTDEFS
 
9
 
 
10
#include "_mingw_mac.h"
 
11
 
 
12
/* C/C++ specific language defines.  */
 
13
#ifdef _WIN64
 
14
#ifdef __stdcall
 
15
#undef __stdcall
 
16
#endif
 
17
#define __stdcall
 
18
#endif
 
19
 
 
20
#ifndef __GNUC__
 
21
# ifndef __MINGW_IMPORT
 
22
#  define __MINGW_IMPORT  __declspec(dllimport)
 
23
# endif
 
24
# ifndef _CRTIMP
 
25
#  define _CRTIMP  __declspec(dllimport)
 
26
# endif
 
27
# define __DECLSPEC_SUPPORTED
 
28
# define __attribute__(x) /* nothing */
 
29
#else /* __GNUC__ */
 
30
# ifdef __declspec
 
31
#  ifndef __MINGW_IMPORT
 
32
/* Note the extern. This is needed to work around GCC's
 
33
limitations in handling dllimport attribute.  */
 
34
#   define __MINGW_IMPORT  extern __attribute__ ((__dllimport__))
 
35
#  endif
 
36
#  ifndef _CRTIMP
 
37
#    undef __USE_CRTIMP
 
38
#    if !defined (_CRTBLD) && !defined (_SYSCRT)
 
39
#      define __USE_CRTIMP 1
 
40
#    endif
 
41
#    ifdef __USE_CRTIMP
 
42
#      define _CRTIMP  __attribute__ ((__dllimport__))
 
43
#    else
 
44
#      define _CRTIMP
 
45
#    endif
 
46
#  endif
 
47
#  define __DECLSPEC_SUPPORTED
 
48
# else /* __declspec */
 
49
#  undef __DECLSPEC_SUPPORTED
 
50
#  undef __MINGW_IMPORT
 
51
#  ifndef _CRTIMP
 
52
#   define _CRTIMP
 
53
#  endif
 
54
# endif /* __declspec */
 
55
#endif /* __GNUC__ */
 
56
 
 
57
#if defined (__GNUC__) && defined (__GNUC_MINOR__)
 
58
#define __MINGW_GNUC_PREREQ(major, minor) \
 
59
  (__GNUC__ > (major) \
 
60
   || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)))
 
61
#else
 
62
#define __MINGW_GNUC_PREREQ(major, minor)  0
 
63
#endif
 
64
 
 
65
#if defined (_MSC_VER)
 
66
#define __MINGW_MSC_PREREQ(major, minor) \
 
67
  (_MSC_VER >= (major * 100 + minor * 10))
 
68
#else
 
69
#define __MINGW_MSC_PREREQ(major, minor)   0
 
70
#endif
 
71
 
 
72
#define USE___UUIDOF    0
 
73
 
 
74
#ifdef __cplusplus
 
75
# define __CRT_INLINE inline
 
76
#elif defined(_MSC_VER)
 
77
# define __CRT_INLINE __inline
 
78
#else
 
79
# if ( __MINGW_GNUC_PREREQ(4, 3)  &&  __STDC_VERSION__ >= 199901L)
 
80
#  define __CRT_INLINE extern inline __attribute__((__gnu_inline__))
 
81
# else
 
82
#  define __CRT_INLINE extern __inline__
 
83
# endif
 
84
#endif
 
85
 
 
86
#ifdef __NO_INLINE__
 
87
#undef __CRT__NO_INLINE
 
88
#define __CRT__NO_INLINE 1
 
89
#endif
 
90
 
 
91
#ifdef __cplusplus
 
92
# define __UNUSED_PARAM(x)
 
93
#else
 
94
# ifdef __GNUC__
 
95
#  define __UNUSED_PARAM(x) x __attribute__ ((__unused__))
 
96
# else
 
97
#  define __UNUSED_PARAM(x) x
 
98
# endif
 
99
#endif
 
100
 
 
101
#ifndef __GNUC__
 
102
# ifdef _MSC_VER
 
103
#  define __restrict__  __restrict
 
104
# else
 
105
#  define __restrict__  /* nothing */
 
106
# endif
 
107
#endif /* !__GNUC__ */
 
108
 
 
109
#ifdef __GNUC__
 
110
#define __MINGW_ATTRIB_NORETURN __attribute__ ((__noreturn__))
 
111
#define __MINGW_ATTRIB_CONST __attribute__ ((__const__))
 
112
#elif __MINGW_MSC_PREREQ(12, 0)
 
113
#define __MINGW_ATTRIB_NORETURN __declspec(noreturn)
 
114
#define __MINGW_ATTRIB_CONST
 
115
#else
 
116
#define __MINGW_ATTRIB_NORETURN
 
117
#define __MINGW_ATTRIB_CONST
 
118
#endif
 
119
 
 
120
#if __MINGW_GNUC_PREREQ (3, 0)
 
121
#define __MINGW_ATTRIB_MALLOC __attribute__ ((__malloc__))
 
122
#define __MINGW_ATTRIB_PURE __attribute__ ((__pure__))
 
123
#elif __MINGW_MSC_PREREQ(14, 0)
 
124
#define __MINGW_ATTRIB_MALLOC __declspec(noalias) __declspec(restrict)
 
125
#define __MINGW_ATTRIB_PURE
 
126
#else
 
127
#define __MINGW_ATTRIB_MALLOC
 
128
#define __MINGW_ATTRIB_PURE
 
129
#endif
 
130
 
 
131
/* Attribute `nonnull' was valid as of gcc 3.3.  We don't use GCC's
 
132
   variadiac macro facility, because variadic macros cause syntax
 
133
   errors with  --traditional-cpp.  */
 
134
#if  __MINGW_GNUC_PREREQ (3, 3)
 
135
#define __MINGW_ATTRIB_NONNULL(arg) __attribute__ ((__nonnull__ (arg)))
 
136
#else
 
137
#define __MINGW_ATTRIB_NONNULL(arg)
 
138
#endif /* GNUC >= 3.3 */
 
139
 
 
140
#ifdef __GNUC__
 
141
#define __MINGW_ATTRIB_UNUSED __attribute__ ((__unused__))
 
142
#else
 
143
#define __MINGW_ATTRIB_UNUSED
 
144
#endif /* ATTRIBUTE_UNUSED */
 
145
 
 
146
#if  __MINGW_GNUC_PREREQ (3, 1)
 
147
#define __MINGW_ATTRIB_USED __attribute__ ((__used__))
 
148
#define __MINGW_ATTRIB_DEPRECATED __attribute__ ((__deprecated__))
 
149
#elif __MINGW_MSC_PREREQ(12, 0)
 
150
#define __MINGW_ATTRIB_USED
 
151
#define __MINGW_ATTRIB_DEPRECATED __declspec(deprecated)
 
152
#else
 
153
#define __MINGW_ATTRIB_USED __MINGW_ATTRIB_UNUSED
 
154
#define __MINGW_ATTRIB_DEPRECATED
 
155
#endif /* GNUC >= 3.1 */
 
156
 
 
157
#if  __MINGW_GNUC_PREREQ (3, 3)
 
158
#define __MINGW_NOTHROW __attribute__ ((__nothrow__))
 
159
#elif __MINGW_MSC_PREREQ(12, 0) && defined (__cplusplus)
 
160
#define __MINGW_NOTHROW __declspec(nothrow)
 
161
#else
 
162
#define __MINGW_NOTHROW
 
163
#endif
 
164
 
 
165
#if __MINGW_GNUC_PREREQ (4, 4)
 
166
#define __MINGW_ATTRIB_NO_OPTIMIZE __attribute__((__optimize__ ("0")))
 
167
#else
 
168
#define __MINGW_ATTRIB_NO_OPTIMIZE
 
169
#endif
 
170
 
 
171
#ifndef __MSVCRT_VERSION__
 
172
/*  High byte is the major version, low byte is the minor. */
 
173
# define __MSVCRT_VERSION__ 0x0700
 
174
#endif
 
175
 
 
176
 
 
177
#ifndef WINVER
 
178
#define WINVER 0x0502
 
179
#endif
 
180
 
 
181
#ifndef _WIN32_WINNT
 
182
#define _WIN32_WINNT 0x502
 
183
#endif
 
184
 
 
185
#ifndef _INT128_DEFINED
 
186
#define _INT128_DEFINED
 
187
#ifdef __GNUC__
 
188
#define __int8 char
 
189
#define __int16 short
 
190
#define __int32 int
 
191
#define __int64 long long
 
192
#ifdef _WIN64
 
193
#ifndef __SIZEOF_INT128__
 
194
typedef int __int128 __attribute__ ((__mode__ (TI)));
 
195
#endif
 
196
#endif
 
197
#endif /* __GNUC__ */
 
198
#endif /* _INT128_DEFINED */
 
199
 
 
200
#ifdef __GNUC__
 
201
#define __ptr32
 
202
#define __ptr64
 
203
#ifndef __unaligned
 
204
#define __unaligned
 
205
#endif
 
206
#define __forceinline extern __inline__ __attribute__((always_inline))
 
207
#endif /* __GNUC__ */
 
208
 
 
209
#ifndef _WIN32
 
210
#error Only Win32 target is supported!
 
211
#endif
 
212
 
 
213
#ifndef __nothrow
 
214
#ifdef __cplusplus
 
215
#define __nothrow __declspec(nothrow)
 
216
#else
 
217
#define __nothrow
 
218
#endif
 
219
#endif /* __nothrow */
 
220
 
 
221
#undef _CRT_PACKING
 
222
#define _CRT_PACKING 8
 
223
 
 
224
#include <vadefs.h>     /* other headers depend on this include */
 
225
 
 
226
#pragma pack(push,_CRT_PACKING)
 
227
 
 
228
#ifndef _CRT_STRINGIZE
 
229
#define __CRT_STRINGIZE(_Value) #_Value
 
230
#define _CRT_STRINGIZE(_Value) __CRT_STRINGIZE(_Value)
 
231
#endif /* _CRT_STRINGIZE */
 
232
 
 
233
#ifndef _CRT_WIDE
 
234
#define __CRT_WIDE(_String) L ## _String
 
235
#define _CRT_WIDE(_String) __CRT_WIDE(_String)
 
236
#endif /* _CRT_WIDE */
 
237
 
 
238
#ifndef _W64
 
239
#define _W64
 
240
#endif
 
241
 
 
242
#ifndef _CRTIMP_NOIA64
 
243
#ifdef __ia64__
 
244
#define _CRTIMP_NOIA64
 
245
#else
 
246
#define _CRTIMP_NOIA64 _CRTIMP
 
247
#endif
 
248
#endif /* _CRTIMP_NOIA64 */
 
249
 
 
250
#ifndef _CRTIMP2
 
251
#define _CRTIMP2 _CRTIMP
 
252
#endif
 
253
 
 
254
#ifndef _CRTIMP_ALTERNATIVE
 
255
#define _CRTIMP_ALTERNATIVE _CRTIMP
 
256
#define _CRT_ALTERNATIVE_IMPORTED
 
257
#endif /* _CRTIMP_ALTERNATIVE */
 
258
 
 
259
#ifndef _MRTIMP2
 
260
#define _MRTIMP2  _CRTIMP
 
261
#endif
 
262
 
 
263
/* We have to define _DLL for gcc based mingw version. This define is set
 
264
   by VC, when DLL-based runtime is used. So, gcc based runtime just have
 
265
   DLL-base runtime, therefore this define has to be set.
 
266
   As our headers are possibly used by windows compiler having a static
 
267
   C-runtime, we make this definition gnu compiler specific here.  */
 
268
#if !defined (_DLL) && defined (__GNUC__)
 
269
#define _DLL
 
270
#endif
 
271
 
 
272
#ifndef _MT
 
273
#define _MT
 
274
#endif
 
275
 
 
276
#ifndef _MCRTIMP
 
277
#define _MCRTIMP _CRTIMP
 
278
#endif
 
279
 
 
280
#ifndef _CRTIMP_PURE
 
281
#define _CRTIMP_PURE _CRTIMP
 
282
#endif
 
283
 
 
284
#ifndef _PGLOBAL
 
285
#define _PGLOBAL
 
286
#endif
 
287
 
 
288
#ifndef _AGLOBAL
 
289
#define _AGLOBAL
 
290
#endif
 
291
 
 
292
#define __STDC_SECURE_LIB__ 200411L
 
293
#define __GOT_SECURE_LIB__ __STDC_SECURE_LIB__
 
294
#define _SECURECRT_FILL_BUFFER_PATTERN 0xFD
 
295
#define _CRT_DEPRECATE_TEXT(_Text) __declspec(deprecated)
 
296
 
 
297
#ifndef _CRT_INSECURE_DEPRECATE_MEMORY
 
298
#define _CRT_INSECURE_DEPRECATE_MEMORY(_Replacement)
 
299
#endif
 
300
 
 
301
#ifndef _CRT_INSECURE_DEPRECATE_GLOBALS
 
302
#define _CRT_INSECURE_DEPRECATE_GLOBALS(_Replacement)
 
303
#endif
 
304
 
 
305
#ifndef _CRT_MANAGED_HEAP_DEPRECATE
 
306
#define _CRT_MANAGED_HEAP_DEPRECATE
 
307
#endif
 
308
 
 
309
#ifndef _CRT_OBSOLETE
 
310
#define _CRT_OBSOLETE(_NewItem)
 
311
#endif
 
312
 
 
313
#ifndef _SIZE_T_DEFINED
 
314
#define _SIZE_T_DEFINED
 
315
#undef size_t
 
316
#ifdef _WIN64
 
317
__MINGW_EXTENSION typedef unsigned __int64 size_t;
 
318
#else
 
319
typedef unsigned int size_t;
 
320
#endif /* _WIN64 */
 
321
#endif /* _SIZE_T_DEFINED */
 
322
 
 
323
#ifndef _SSIZE_T_DEFINED
 
324
#define _SSIZE_T_DEFINED
 
325
#undef ssize_t
 
326
#ifdef _WIN64
 
327
__MINGW_EXTENSION typedef __int64 ssize_t;
 
328
#else
 
329
typedef int ssize_t;
 
330
#endif /* _WIN64 */
 
331
#endif /* _SSIZE_T_DEFINED */
 
332
 
 
333
#ifndef _INTPTR_T_DEFINED
 
334
#define _INTPTR_T_DEFINED
 
335
#ifndef __intptr_t_defined
 
336
#define __intptr_t_defined
 
337
#undef intptr_t
 
338
#ifdef _WIN64
 
339
__MINGW_EXTENSION typedef __int64 intptr_t;
 
340
#else
 
341
typedef int intptr_t;
 
342
#endif /* _WIN64 */
 
343
#endif /* __intptr_t_defined */
 
344
#endif /* _INTPTR_T_DEFINED */
 
345
 
 
346
#ifndef _UINTPTR_T_DEFINED
 
347
#define _UINTPTR_T_DEFINED
 
348
#ifndef __uintptr_t_defined
 
349
#define __uintptr_t_defined
 
350
#undef uintptr_t
 
351
#ifdef _WIN64
 
352
__MINGW_EXTENSION typedef unsigned __int64 uintptr_t;
 
353
#else
 
354
typedef unsigned int uintptr_t;
 
355
#endif /* _WIN64 */
 
356
#endif /* __uintptr_t_defined */
 
357
#endif /* _UINTPTR_T_DEFINED */
 
358
 
 
359
#ifndef _PTRDIFF_T_DEFINED
 
360
#define _PTRDIFF_T_DEFINED
 
361
#ifndef _PTRDIFF_T_
 
362
#define _PTRDIFF_T_
 
363
#undef ptrdiff_t
 
364
#ifdef _WIN64
 
365
__MINGW_EXTENSION typedef __int64 ptrdiff_t;
 
366
#else
 
367
typedef int ptrdiff_t;
 
368
#endif /* _WIN64 */
 
369
#endif /* _PTRDIFF_T_ */
 
370
#endif /* _PTRDIFF_T_DEFINED */
 
371
 
 
372
#ifndef _WCHAR_T_DEFINED
 
373
#define _WCHAR_T_DEFINED
 
374
#ifndef __cplusplus
 
375
typedef unsigned short wchar_t;
 
376
#endif /* C++ */
 
377
#endif /* _WCHAR_T_DEFINED */
 
378
 
 
379
#ifndef _WCTYPE_T_DEFINED
 
380
#define _WCTYPE_T_DEFINED
 
381
#ifndef _WINT_T
 
382
#define _WINT_T
 
383
typedef unsigned short wint_t;
 
384
typedef unsigned short wctype_t;
 
385
#endif /* _WINT_T */
 
386
#endif /* _WCTYPE_T_DEFINED */
 
387
 
 
388
#if defined (_WIN32) && !defined (_WIN64) && !defined (__MINGW_USE_VC2005_COMPAT)
 
389
#ifndef _USE_32BIT_TIME_T
 
390
#define _USE_32BIT_TIME_T
 
391
#endif
 
392
#endif
 
393
 
 
394
#ifdef _USE_32BIT_TIME_T
 
395
#ifdef _WIN64
 
396
#error You cannot use 32-bit time_t (_USE_32BIT_TIME_T) with _WIN64
 
397
#undef _USE_32BIT_TIME_T
 
398
#endif
 
399
#endif /* _USE_32BIT_TIME_T */
 
400
 
 
401
#ifndef _ERRCODE_DEFINED
 
402
#define _ERRCODE_DEFINED
 
403
typedef int errno_t;
 
404
#endif
 
405
 
 
406
#ifndef _TIME32_T_DEFINED
 
407
#define _TIME32_T_DEFINED
 
408
typedef long __time32_t;
 
409
#endif
 
410
 
 
411
#ifndef _TIME64_T_DEFINED
 
412
#define _TIME64_T_DEFINED
 
413
__MINGW_EXTENSION typedef __int64 __time64_t;
 
414
#endif /* _TIME64_T_DEFINED */
 
415
 
 
416
#ifndef _TIME_T_DEFINED
 
417
#define _TIME_T_DEFINED
 
418
#ifdef _USE_32BIT_TIME_T
 
419
typedef __time32_t time_t;
 
420
#else
 
421
typedef __time64_t time_t;
 
422
#endif
 
423
#endif /* _TIME_T_DEFINED */
 
424
 
 
425
#ifndef _CONST_RETURN
 
426
#define _CONST_RETURN
 
427
#endif
 
428
 
 
429
#ifndef UNALIGNED
 
430
#if defined(_M_IA64) || defined(_M_AMD64)
 
431
#define UNALIGNED __unaligned
 
432
#else
 
433
#define UNALIGNED
 
434
#endif
 
435
#endif /* UNALIGNED */
 
436
 
 
437
#ifndef _CRT_ALIGN
 
438
#ifdef  _MSC_VER
 
439
#define _CRT_ALIGN(x) __declspec(align(x))
 
440
#else /* __GNUC__ */
 
441
#define _CRT_ALIGN(x) __attribute__ ((__aligned__ (x)))
 
442
#endif
 
443
#endif /* _CRT_ALIGN */
 
444
 
 
445
#ifndef __CRTDECL
 
446
#define __CRTDECL __cdecl
 
447
#endif
 
448
 
 
449
#define _ARGMAX 100
 
450
 
 
451
#ifndef _TRUNCATE
 
452
#define _TRUNCATE ((size_t)-1)
 
453
#endif
 
454
 
 
455
#ifndef _CRT_UNUSED
 
456
#define _CRT_UNUSED(x) (void)x
 
457
#endif
 
458
 
 
459
#if defined(_POSIX) && !defined(__USE_MINGW_ANSI_STDIO)
 
460
/* Enable __USE_MINGW_ANSI_STDIO if _POSIX defined
 
461
 * and If user did _not_ specify it explicitly... */
 
462
#  define __USE_MINGW_ANSI_STDIO                        1
 
463
#endif
 
464
 
 
465
/* _dowildcard is an int that controls the globbing of the command line.
 
466
 * The MinGW32 (mingw.org) runtime calls it _CRT_glob, so we are adding
 
467
 * a compatibility definition here:  you can use either of _CRT_glob or
 
468
 * _dowildcard .
 
469
 * If _dowildcard is non-zero, the command line will be globbed:  *.*
 
470
 * will be expanded to be all files in the startup directory.
 
471
 * In the mingw-w64 library a _dowildcard variable is defined as being
 
472
 * 0, therefore command line globbing is DISABLED by default. To turn it
 
473
 * on and to leave wildcard command line processing MS's globbing code,
 
474
 * include a line in one of your source modules defining _dowildcard and
 
475
 * setting it to -1, like so:
 
476
 * int _dowildcard = -1;
 
477
 */
 
478
#undef  _CRT_glob
 
479
#define _CRT_glob _dowildcard
 
480
 
 
481
 
 
482
#if defined(_MSC_VER) && !defined(_MSC_EXTENSIONS)
 
483
#define NONAMELESSUNION         1
 
484
#endif
 
485
#if defined(NONAMELESSSTRUCT) && \
 
486
   !defined(NONAMELESSUNION)
 
487
#define NONAMELESSUNION         1
 
488
#endif
 
489
#if defined(NONAMELESSUNION)  && \
 
490
   !defined(NONAMELESSSTRUCT)
 
491
#define NONAMELESSSTRUCT        1
 
492
#endif
 
493
 
 
494
#ifndef __ANONYMOUS_DEFINED
 
495
#define __ANONYMOUS_DEFINED
 
496
#define _ANONYMOUS_UNION  __MINGW_EXTENSION
 
497
#define _ANONYMOUS_STRUCT __MINGW_EXTENSION
 
498
#ifndef NONAMELESSUNION
 
499
#define _UNION_NAME(x)
 
500
#define _STRUCT_NAME(x)
 
501
#else /* NONAMELESSUNION */
 
502
#define _UNION_NAME(x)  x
 
503
#define _STRUCT_NAME(x) x
 
504
#endif
 
505
#endif  /* __ANONYMOUS_DEFINED */
 
506
 
 
507
#ifndef DUMMYUNIONNAME
 
508
# ifdef NONAMELESSUNION
 
509
#  define DUMMYUNIONNAME  u
 
510
#  define DUMMYUNIONNAME1 u1    /* Wine uses this variant */
 
511
#  define DUMMYUNIONNAME2 u2
 
512
#  define DUMMYUNIONNAME3 u3
 
513
#  define DUMMYUNIONNAME4 u4
 
514
#  define DUMMYUNIONNAME5 u5
 
515
#  define DUMMYUNIONNAME6 u6
 
516
#  define DUMMYUNIONNAME7 u7
 
517
#  define DUMMYUNIONNAME8 u8
 
518
#  define DUMMYUNIONNAME9 u9
 
519
# else /* NONAMELESSUNION */
 
520
#  define DUMMYUNIONNAME
 
521
#  define DUMMYUNIONNAME1       /* Wine uses this variant */
 
522
#  define DUMMYUNIONNAME2
 
523
#  define DUMMYUNIONNAME3
 
524
#  define DUMMYUNIONNAME4
 
525
#  define DUMMYUNIONNAME5
 
526
#  define DUMMYUNIONNAME6
 
527
#  define DUMMYUNIONNAME7
 
528
#  define DUMMYUNIONNAME8
 
529
#  define DUMMYUNIONNAME9
 
530
# endif
 
531
#endif  /* DUMMYUNIONNAME */
 
532
 
 
533
#ifndef DUMMYSTRUCTNAME
 
534
# ifdef NONAMELESSUNION
 
535
#  define DUMMYSTRUCTNAME  s
 
536
#  define DUMMYSTRUCTNAME1 s1   /* Wine uses this variant */
 
537
#  define DUMMYSTRUCTNAME2 s2
 
538
#  define DUMMYSTRUCTNAME3 s3
 
539
#  define DUMMYSTRUCTNAME4 s4
 
540
#  define DUMMYSTRUCTNAME5 s5
 
541
# else
 
542
#  define DUMMYSTRUCTNAME
 
543
#  define DUMMYSTRUCTNAME1      /* Wine uses this variant */
 
544
#  define DUMMYSTRUCTNAME2
 
545
#  define DUMMYSTRUCTNAME3
 
546
#  define DUMMYSTRUCTNAME4
 
547
#  define DUMMYSTRUCTNAME5
 
548
# endif
 
549
#endif /* DUMMYSTRUCTNAME */
 
550
 
 
551
 
 
552
/* MSVC-isms: */
 
553
 
 
554
struct threadlocaleinfostruct;
 
555
struct threadmbcinfostruct;
 
556
typedef struct threadlocaleinfostruct *pthreadlocinfo;
 
557
typedef struct threadmbcinfostruct *pthreadmbcinfo;
 
558
struct __lc_time_data;
 
559
 
 
560
typedef struct localeinfo_struct {
 
561
  pthreadlocinfo locinfo;
 
562
  pthreadmbcinfo mbcinfo;
 
563
} _locale_tstruct,*_locale_t;
 
564
 
 
565
#ifndef _TAGLC_ID_DEFINED
 
566
#define _TAGLC_ID_DEFINED
 
567
typedef struct tagLC_ID {
 
568
  unsigned short wLanguage;
 
569
  unsigned short wCountry;
 
570
  unsigned short wCodePage;
 
571
} LC_ID,*LPLC_ID;
 
572
#endif /* _TAGLC_ID_DEFINED */
 
573
 
 
574
#ifndef _THREADLOCALEINFO
 
575
#define _THREADLOCALEINFO
 
576
typedef struct threadlocaleinfostruct {
 
577
  int refcount;
 
578
  unsigned int lc_codepage;
 
579
  unsigned int lc_collate_cp;
 
580
  unsigned long lc_handle[6];
 
581
  LC_ID lc_id[6];
 
582
  struct {
 
583
    char *locale;
 
584
    wchar_t *wlocale;
 
585
    int *refcount;
 
586
    int *wrefcount;
 
587
  } lc_category[6];
 
588
  int lc_clike;
 
589
  int mb_cur_max;
 
590
  int *lconv_intl_refcount;
 
591
  int *lconv_num_refcount;
 
592
  int *lconv_mon_refcount;
 
593
  struct lconv *lconv;
 
594
  int *ctype1_refcount;
 
595
  unsigned short *ctype1;
 
596
  const unsigned short *pctype;
 
597
  const unsigned char *pclmap;
 
598
  const unsigned char *pcumap;
 
599
  struct __lc_time_data *lc_time_curr;
 
600
} threadlocinfo;
 
601
#endif /* _THREADLOCALEINFO */
 
602
 
 
603
#ifdef __cplusplus
 
604
extern "C" {
 
605
#endif
 
606
 
 
607
/* mingw-w64 specific functions: */
 
608
const char *__mingw_get_crt_info (void);
 
609
 
 
610
#ifdef __cplusplus
 
611
}
 
612
#endif
 
613
 
 
614
#pragma pack(pop)
 
615
 
 
616
#endif /* _INC_CRTDEFS */
 
617
 
 
618
#ifndef MINGW_SDK_INIT
 
619
#define MINGW_SDK_INIT
 
620
 
 
621
#include "sdks/_mingw_directx.h"
 
622
 
 
623
#endif /* MINGW_SDK_INIT */
 
624