1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41#ifndef __ACC_H_INCLUDED
42#define __ACC_H_INCLUDED 1
43#define ACC_VERSION 20080430L
44#if defined(__CYGWIN32__) && !defined(__CYGWIN__)
45# define __CYGWIN__ __CYGWIN32__
46#endif
47#if defined(__IBMCPP__) && !defined(__IBMC__)
48# define __IBMC__ __IBMCPP__
49#endif
50#if defined(__ICL) && defined(_WIN32) && !defined(__INTEL_COMPILER)
51# define __INTEL_COMPILER __ICL
52#endif
53#if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE)
54# define _ALL_SOURCE 1
55#endif
56#if defined(__mips__) && defined(__R5900__)
57# if !defined(__LONG_MAX__)
58# define __LONG_MAX__ 9223372036854775807L
59# endif
60#endif
61#if defined(__INTEL_COMPILER) && defined(__linux__)
62# pragma warning(disable: 193)
63#endif
64#if defined(__KEIL__) && defined(__C166__)
65# pragma warning disable = 322
66#elif 0 && defined(__C251__)
67# pragma warning disable = 322
68#endif
69#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__)
70# if (_MSC_VER >= 1300)
71# pragma warning(disable: 4668)
72# endif
73#endif
74#if defined(__POCC__) && defined(_WIN32)
75# if (__POCC__ >= 400)
76# pragma warn(disable: 2216)
77# endif
78#endif
79#if 0 && defined(__WATCOMC__)
80# if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060)
81# pragma warning 203 9
82# endif
83#endif
84#if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__)
85# pragma option -h
86#endif
87#if defined(ACC_CFG_NO_CONFIG_HEADER)
88#elif defined(ACC_CFG_CONFIG_HEADER)
89# include ACC_CFG_CONFIG_HEADER
90#else
91#endif
92#if defined(ACC_CFG_NO_LIMITS_H)
93#elif defined(ACC_LIBC_NAKED) || defined(ACC_BROKEN_LIMITS_H)
94#ifndef __ACC_FALLBACK_LIMITS_H_INCLUDED
95#define __ACC_FALLBACK_LIMITS_H_INCLUDED
96#undef CHAR_BIT
97#define CHAR_BIT 8
98#ifndef MB_LEN_MAX
99#define MB_LEN_MAX 1
100#endif
101#ifndef __SCHAR_MAX__
102#define __SCHAR_MAX__ 127
103#endif
104#ifndef __SHRT_MAX__
105#define __SHRT_MAX__ 32767
106#endif
107#ifndef __INT_MAX__
108#define __INT_MAX__ 2147483647
109#endif
110#ifndef __LONG_MAX__
111#if defined(__alpha__) || defined(_LP64) || defined(__MIPS_PSX2__)
112#define __LONG_MAX__ 9223372036854775807L
113#else
114#define __LONG_MAX__ 2147483647L
115#endif
116#endif
117#undef SCHAR_MIN
118#undef SCHAR_MAX
119#undef UCHAR_MAX
120#define SCHAR_MIN (-1 - SCHAR_MAX)
121#define SCHAR_MAX (__SCHAR_MAX__)
122#define UCHAR_MAX (SCHAR_MAX * 2 + 1)
123#undef SHRT_MIN
124#undef SHRT_MAX
125#undef USHRT_MAX
126#define SHRT_MIN (-1 - SHRT_MAX)
127#define SHRT_MAX (__SHRT_MAX__)
128#if ((__INT_MAX__) == (__SHRT_MAX__))
129#define USHRT_MAX (SHRT_MAX * 2U + 1U)
130#else
131#define USHRT_MAX (SHRT_MAX * 2 + 1)
132#endif
133#undef INT_MIN
134#undef INT_MAX
135#undef UINT_MAX
136#define INT_MIN (-1 - INT_MAX)
137#define INT_MAX (__INT_MAX__)
138#define UINT_MAX (INT_MAX * 2U + 1U)
139#undef LONG_MIN
140#undef LONG_MAX
141#undef ULONG_MAX
142#define LONG_MIN (-1L - LONG_MAX)
143#define LONG_MAX ((__LONG_MAX__) + 0L)
144#define ULONG_MAX (LONG_MAX * 2UL + 1UL)
145#undef CHAR_MIN
146#undef CHAR_MAX
147#if defined(__CHAR_UNSIGNED__) || defined(_CHAR_UNSIGNED)
148#define CHAR_MIN 0
149#define CHAR_MAX UCHAR_MAX
150#else
151#define CHAR_MIN SCHAR_MIN
152#define CHAR_MAX SCHAR_MAX
153#endif
154#endif
155#else
156# include <limits.h>
157#endif
158#if 0
159#define ACC_0xffffL 0xfffful
160#define ACC_0xffffffffL 0xfffffffful
161#else
162#define ACC_0xffffL 65535ul
163#define ACC_0xffffffffL 4294967295ul
164#endif
165#if (ACC_0xffffL == ACC_0xffffffffL)
166# error "your preprocessor is broken 1"
167#endif
168#if (16ul * 16384ul != 262144ul)
169# error "your preprocessor is broken 2"
170#endif
171#if 0
172#if (32767 >= 4294967295ul)
173# error "your preprocessor is broken 3"
174#endif
175#if (65535u >= 4294967295ul)
176# error "your preprocessor is broken 4"
177#endif
178#endif
179#if (UINT_MAX == ACC_0xffffL)
180#if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__)
181# if !defined(MSDOS)
182# define MSDOS 1
183# endif
184# if !defined(_MSDOS)
185# define _MSDOS 1
186# endif
187#elif 0 && defined(__VERSION) && defined(MB_LEN_MAX)
188# if (__VERSION == 520) && (MB_LEN_MAX == 1)
189# if !defined(__AZTEC_C__)
190# define __AZTEC_C__ __VERSION
191# endif
192# if !defined(__DOS__)
193# define __DOS__ 1
194# endif
195# endif
196#endif
197#endif
198#if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == ACC_0xffffL)
199# define ptrdiff_t long
200# define _PTRDIFF_T_DEFINED
201#endif
202#if (UINT_MAX == ACC_0xffffL)
203# undef __ACC_RENAME_A
204# undef __ACC_RENAME_B
205# if defined(__AZTEC_C__) && defined(__DOS__)
206# define __ACC_RENAME_A 1
207# elif defined(_MSC_VER) && defined(MSDOS)
208# if (_MSC_VER < 600)
209# define __ACC_RENAME_A 1
210# elif (_MSC_VER < 700)
211# define __ACC_RENAME_B 1
212# endif
213# elif defined(__TSC__) && defined(__OS2__)
214# define __ACC_RENAME_A 1
215# elif defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0410)
216# define __ACC_RENAME_A 1
217# elif defined(__PACIFIC__) && defined(DOS)
218# if !defined(__far)
219# define __far far
220# endif
221# if !defined(__near)
222# define __near near
223# endif
224# endif
225# if defined(__ACC_RENAME_A)
226# if !defined(__cdecl)
227# define __cdecl cdecl
228# endif
229# if !defined(__far)
230# define __far far
231# endif
232# if !defined(__huge)
233# define __huge huge
234# endif
235# if !defined(__near)
236# define __near near
237# endif
238# if !defined(__pascal)
239# define __pascal pascal
240# endif
241# if !defined(__huge)
242# define __huge huge
243# endif
244# elif defined(__ACC_RENAME_B)
245# if !defined(__cdecl)
246# define __cdecl _cdecl
247# endif
248# if !defined(__far)
249# define __far _far
250# endif
251# if !defined(__huge)
252# define __huge _huge
253# endif
254# if !defined(__near)
255# define __near _near
256# endif
257# if !defined(__pascal)
258# define __pascal _pascal
259# endif
260# elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
261# if !defined(__cdecl)
262# define __cdecl cdecl
263# endif
264# if !defined(__pascal)
265# define __pascal pascal
266# endif
267# endif
268# undef __ACC_RENAME_A
269# undef __ACC_RENAME_B
270#endif
271#if (UINT_MAX == ACC_0xffffL)
272#if defined(__AZTEC_C__) && defined(__DOS__)
273# define ACC_BROKEN_CDECL_ALT_SYNTAX 1
274#elif defined(_MSC_VER) && defined(MSDOS)
275# if (_MSC_VER < 600)
276# define ACC_BROKEN_INTEGRAL_CONSTANTS 1
277# endif
278# if (_MSC_VER < 700)
279# define ACC_BROKEN_INTEGRAL_PROMOTION 1
280# define ACC_BROKEN_SIZEOF 1
281# endif
282#elif defined(__PACIFIC__) && defined(DOS)
283# define ACC_BROKEN_INTEGRAL_CONSTANTS 1
284#elif defined(__TURBOC__) && defined(__MSDOS__)
285# if (__TURBOC__ < 0x0150)
286# define ACC_BROKEN_CDECL_ALT_SYNTAX 1
287# define ACC_BROKEN_INTEGRAL_CONSTANTS 1
288# define ACC_BROKEN_INTEGRAL_PROMOTION 1
289# endif
290# if (__TURBOC__ < 0x0200)
291# define ACC_BROKEN_SIZEOF 1
292# endif
293# if (__TURBOC__ < 0x0400) && defined(__cplusplus)
294# define ACC_BROKEN_CDECL_ALT_SYNTAX 1
295# endif
296#elif (defined(__PUREC__) || defined(__TURBOC__)) && defined(__TOS__)
297# define ACC_BROKEN_CDECL_ALT_SYNTAX 1
298# define ACC_BROKEN_SIZEOF 1
299#endif
300#endif
301#if defined(__WATCOMC__) && (__WATCOMC__ < 900)
302# define ACC_BROKEN_INTEGRAL_CONSTANTS 1
303#endif
304#if defined(_CRAY) && defined(_CRAY1)
305# define ACC_BROKEN_SIGNED_RIGHT_SHIFT 1
306#endif
307#define ACC_PP_STRINGIZE(x) #x
308#define ACC_PP_MACRO_EXPAND(x) ACC_PP_STRINGIZE(x)
309#define ACC_PP_CONCAT2(a,b) a ## b
310#define ACC_PP_CONCAT3(a,b,c) a ## b ## c
311#define ACC_PP_CONCAT4(a,b,c,d) a ## b ## c ## d
312#define ACC_PP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e
313#define ACC_PP_ECONCAT2(a,b) ACC_PP_CONCAT2(a,b)
314#define ACC_PP_ECONCAT3(a,b,c) ACC_PP_CONCAT3(a,b,c)
315#define ACC_PP_ECONCAT4(a,b,c,d) ACC_PP_CONCAT4(a,b,c,d)
316#define ACC_PP_ECONCAT5(a,b,c,d,e) ACC_PP_CONCAT5(a,b,c,d,e)
317#if 1
318#define ACC_CPP_STRINGIZE(x) #x
319#define ACC_CPP_MACRO_EXPAND(x) ACC_CPP_STRINGIZE(x)
320#define ACC_CPP_CONCAT2(a,b) a ## b
321#define ACC_CPP_CONCAT3(a,b,c) a ## b ## c
322#define ACC_CPP_CONCAT4(a,b,c,d) a ## b ## c ## d
323#define ACC_CPP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e
324#define ACC_CPP_ECONCAT2(a,b) ACC_CPP_CONCAT2(a,b)
325#define ACC_CPP_ECONCAT3(a,b,c) ACC_CPP_CONCAT3(a,b,c)
326#define ACC_CPP_ECONCAT4(a,b,c,d) ACC_CPP_CONCAT4(a,b,c,d)
327#define ACC_CPP_ECONCAT5(a,b,c,d,e) ACC_CPP_CONCAT5(a,b,c,d,e)
328#endif
329#define __ACC_MASK_GEN(o,b) (((((o) << ((b)-1)) - (o)) << 1) + (o))
330#if 1 && defined(__cplusplus)
331# if !defined(__STDC_CONSTANT_MACROS)
332# define __STDC_CONSTANT_MACROS 1
333# endif
334# if !defined(__STDC_LIMIT_MACROS)
335# define __STDC_LIMIT_MACROS 1
336# endif
337#endif
338#if defined(__cplusplus)
339# define ACC_EXTERN_C extern "C"
340#else
341# define ACC_EXTERN_C extern
342#endif
343#if !defined(__ACC_OS_OVERRIDE)
344#if defined(ACC_OS_FREESTANDING)
345# define ACC_INFO_OS "freestanding"
346#elif defined(ACC_OS_EMBEDDED)
347# define ACC_INFO_OS "embedded"
348#elif 1 && defined(__IAR_SYSTEMS_ICC__)
349# define ACC_OS_EMBEDDED 1
350# define ACC_INFO_OS "embedded"
351#elif defined(__CYGWIN__) && defined(__GNUC__)
352# define ACC_OS_CYGWIN 1
353# define ACC_INFO_OS "cygwin"
354#elif defined(__EMX__) && defined(__GNUC__)
355# define ACC_OS_EMX 1
356# define ACC_INFO_OS "emx"
357#elif defined(__BEOS__)
358# define ACC_OS_BEOS 1
359# define ACC_INFO_OS "beos"
360#elif defined(__Lynx__)
361# define ACC_OS_LYNXOS 1
362# define ACC_INFO_OS "lynxos"
363#elif defined(__OS400__)
364# define ACC_OS_OS400 1
365# define ACC_INFO_OS "os400"
366#elif defined(__QNX__)
367# define ACC_OS_QNX 1
368# define ACC_INFO_OS "qnx"
369#elif defined(__BORLANDC__) && defined(__DPMI32__) && (__BORLANDC__ >= 0x0460)
370# define ACC_OS_DOS32 1
371# define ACC_INFO_OS "dos32"
372#elif defined(__BORLANDC__) && defined(__DPMI16__)
373# define ACC_OS_DOS16 1
374# define ACC_INFO_OS "dos16"
375#elif defined(__ZTC__) && defined(DOS386)
376# define ACC_OS_DOS32 1
377# define ACC_INFO_OS "dos32"
378#elif defined(__OS2__) || defined(__OS2V2__)
379# if (UINT_MAX == ACC_0xffffL)
380# define ACC_OS_OS216 1
381# define ACC_INFO_OS "os216"
382# elif (UINT_MAX == ACC_0xffffffffL)
383# define ACC_OS_OS2 1
384# define ACC_INFO_OS "os2"
385# else
386# error "check your limits.h header"
387# endif
388#elif defined(__WIN64__) || defined(_WIN64) || defined(WIN64)
389# define ACC_OS_WIN64 1
390# define ACC_INFO_OS "win64"
391#elif defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS_386__)
392# define ACC_OS_WIN32 1
393# define ACC_INFO_OS "win32"
394#elif defined(__MWERKS__) && defined(__INTEL__)
395# define ACC_OS_WIN32 1
396# define ACC_INFO_OS "win32"
397#elif defined(__WINDOWS__) || defined(_WINDOWS) || defined(_Windows)
398# if (UINT_MAX == ACC_0xffffL)
399# define ACC_OS_WIN16 1
400# define ACC_INFO_OS "win16"
401# elif (UINT_MAX == ACC_0xffffffffL)
402# define ACC_OS_WIN32 1
403# define ACC_INFO_OS "win32"
404# else
405# error "check your limits.h header"
406# endif
407#elif defined(__DOS__) || defined(__MSDOS__) || defined(_MSDOS) || defined(MSDOS) || (defined(__PACIFIC__) && defined(DOS))
408# if (UINT_MAX == ACC_0xffffL)
409# define ACC_OS_DOS16 1
410# define ACC_INFO_OS "dos16"
411# elif (UINT_MAX == ACC_0xffffffffL)
412# define ACC_OS_DOS32 1
413# define ACC_INFO_OS "dos32"
414# else
415# error "check your limits.h header"
416# endif
417#elif defined(__WATCOMC__)
418# if defined(__NT__) && (UINT_MAX == ACC_0xffffL)
419# define ACC_OS_DOS16 1
420# define ACC_INFO_OS "dos16"
421# elif defined(__NT__) && (__WATCOMC__ < 1100)
422# define ACC_OS_WIN32 1
423# define ACC_INFO_OS "win32"
424# elif defined(__linux__) || defined(__LINUX__)
425# define ACC_OS_POSIX 1
426# define ACC_INFO_OS "posix"
427# else
428# error "please specify a target using the -bt compiler option"
429# endif
430#elif defined(__palmos__)
431# define ACC_OS_PALMOS 1
432# define ACC_INFO_OS "palmos"
433#elif defined(__TOS__) || defined(__atarist__)
434# define ACC_OS_TOS 1
435# define ACC_INFO_OS "tos"
436#elif defined(macintosh) && !defined(__ppc__)
437# define ACC_OS_MACCLASSIC 1
438# define ACC_INFO_OS "macclassic"
439#elif defined(__VMS)
440# define ACC_OS_VMS 1
441# define ACC_INFO_OS "vms"
442#elif ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
443# define ACC_OS_CONSOLE 1
444# define ACC_OS_CONSOLE_PS2 1
445# define ACC_INFO_OS "console"
446# define ACC_INFO_OS_CONSOLE "ps2"
447#elif (defined(__mips__) && defined(__psp__))
448# define ACC_OS_CONSOLE 1
449# define ACC_OS_CONSOLE_PSP 1
450# define ACC_INFO_OS "console"
451# define ACC_INFO_OS_CONSOLE "psp"
452#else
453# define ACC_OS_POSIX 1
454# define ACC_INFO_OS "posix"
455#endif
456#if (ACC_OS_POSIX)
457# if defined(_AIX) || defined(__AIX__) || defined(__aix__)
458# define ACC_OS_POSIX_AIX 1
459# define ACC_INFO_OS_POSIX "aix"
460# elif defined(__FreeBSD__)
461# define ACC_OS_POSIX_FREEBSD 1
462# define ACC_INFO_OS_POSIX "freebsd"
463# elif defined(__hpux__) || defined(__hpux)
464# define ACC_OS_POSIX_HPUX 1
465# define ACC_INFO_OS_POSIX "hpux"
466# elif defined(__INTERIX)
467# define ACC_OS_POSIX_INTERIX 1
468# define ACC_INFO_OS_POSIX "interix"
469# elif defined(__IRIX__) || defined(__irix__)
470# define ACC_OS_POSIX_IRIX 1
471# define ACC_INFO_OS_POSIX "irix"
472# elif defined(__linux__) || defined(__linux) || defined(__LINUX__)
473# define ACC_OS_POSIX_LINUX 1
474# define ACC_INFO_OS_POSIX "linux"
475# elif defined(__APPLE__) || defined(__MACOS__)
476# define ACC_OS_POSIX_MACOSX 1
477# define ACC_INFO_OS_POSIX "macosx"
478# elif defined(__minix__) || defined(__minix)
479# define ACC_OS_POSIX_MINIX 1
480# define ACC_INFO_OS_POSIX "minix"
481# elif defined(__NetBSD__)
482# define ACC_OS_POSIX_NETBSD 1
483# define ACC_INFO_OS_POSIX "netbsd"
484# elif defined(__OpenBSD__)
485# define ACC_OS_POSIX_OPENBSD 1
486# define ACC_INFO_OS_POSIX "openbsd"
487# elif defined(__osf__)
488# define ACC_OS_POSIX_OSF 1
489# define ACC_INFO_OS_POSIX "osf"
490# elif defined(__solaris__) || defined(__sun)
491# if defined(__SVR4) || defined(__svr4__)
492# define ACC_OS_POSIX_SOLARIS 1
493# define ACC_INFO_OS_POSIX "solaris"
494# else
495# define ACC_OS_POSIX_SUNOS 1
496# define ACC_INFO_OS_POSIX "sunos"
497# endif
498# elif defined(__ultrix__) || defined(__ultrix)
499# define ACC_OS_POSIX_ULTRIX 1
500# define ACC_INFO_OS_POSIX "ultrix"
501# elif defined(_UNICOS)
502# define ACC_OS_POSIX_UNICOS 1
503# define ACC_INFO_OS_POSIX "unicos"
504# else
505# define ACC_OS_POSIX_UNKNOWN 1
506# define ACC_INFO_OS_POSIX "unknown"
507# endif
508#endif
509#endif
510#if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
511# if (UINT_MAX != ACC_0xffffL)
512# error "this should not happen"
513# endif
514# if (ULONG_MAX != ACC_0xffffffffL)
515# error "this should not happen"
516# endif
517#endif
518#if (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_WIN32 || ACC_OS_WIN64)
519# if (UINT_MAX != ACC_0xffffffffL)
520# error "this should not happen"
521# endif
522# if (ULONG_MAX != ACC_0xffffffffL)
523# error "this should not happen"
524# endif
525#endif
526#if defined(CIL) && defined(_GNUCC) && defined(__GNUC__)
527# define ACC_CC_CILLY 1
528# define ACC_INFO_CC "Cilly"
529# if defined(__CILLY__)
530# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__CILLY__)
531# else
532# define ACC_INFO_CCVER "unknown"
533# endif
534#elif 0 && defined(SDCC) && defined(__VERSION__) && !defined(__GNUC__)
535# define ACC_CC_SDCC 1
536# define ACC_INFO_CC "sdcc"
537# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(SDCC)
538#elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__)
539# define ACC_CC_PATHSCALE (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x100 + __PATHCC_PATCHLEVEL__)
540# define ACC_INFO_CC "Pathscale C"
541# define ACC_INFO_CCVER __PATHSCALE__
542#elif defined(__INTEL_COMPILER)
543# define ACC_CC_INTELC 1
544# define ACC_INFO_CC "Intel C"
545# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__INTEL_COMPILER)
546# if defined(_WIN32) || defined(_WIN64)
547# define ACC_CC_SYNTAX_MSC 1
548# else
549# define ACC_CC_SYNTAX_GNUC 1
550# endif
551#elif defined(__POCC__) && defined(_WIN32)
552# define ACC_CC_PELLESC 1
553# define ACC_INFO_CC "Pelles C"
554# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__POCC__)
555#elif defined(__llvm__) && defined(__GNUC__) && defined(__VERSION__)
556# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
557# define ACC_CC_LLVM (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
558# else
559# define ACC_CC_LLVM (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
560# endif
561# define ACC_INFO_CC "llvm-gcc"
562# define ACC_INFO_CCVER __VERSION__
563#elif defined(__GNUC__) && defined(__VERSION__)
564# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__)
565# define ACC_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__)
566# elif defined(__GNUC_MINOR__)
567# define ACC_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100)
568# else
569# define ACC_CC_GNUC (__GNUC__ * 0x10000L)
570# endif
571# define ACC_INFO_CC "gcc"
572# define ACC_INFO_CCVER __VERSION__
573#elif defined(__ACK__) && defined(_ACK)
574# define ACC_CC_ACK 1
575# define ACC_INFO_CC "Amsterdam Compiler Kit C"
576# define ACC_INFO_CCVER "unknown"
577#elif defined(__AZTEC_C__)
578# define ACC_CC_AZTECC 1
579# define ACC_INFO_CC "Aztec C"
580# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__AZTEC_C__)
581#elif defined(__BORLANDC__)
582# define ACC_CC_BORLANDC 1
583# define ACC_INFO_CC "Borland C"
584# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__BORLANDC__)
585#elif defined(_CRAYC) && defined(_RELEASE)
586# define ACC_CC_CRAYC 1
587# define ACC_INFO_CC "Cray C"
588# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_RELEASE)
589#elif defined(__DMC__) && defined(__SC__)
590# define ACC_CC_DMC 1
591# define ACC_INFO_CC "Digital Mars C"
592# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__DMC__)
593#elif defined(__DECC)
594# define ACC_CC_DECC 1
595# define ACC_INFO_CC "DEC C"
596# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__DECC)
597#elif defined(__HIGHC__)
598# define ACC_CC_HIGHC 1
599# define ACC_INFO_CC "MetaWare High C"
600# define ACC_INFO_CCVER "unknown"
601#elif defined(__IAR_SYSTEMS_ICC__)
602# define ACC_CC_IARC 1
603# define ACC_INFO_CC "IAR C"
604# if defined(__VER__)
605# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__VER__)
606# else
607# define ACC_INFO_CCVER "unknown"
608# endif
609#elif defined(__IBMC__)
610# define ACC_CC_IBMC 1
611# define ACC_INFO_CC "IBM C"
612# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__IBMC__)
613#elif defined(__KEIL__) && defined(__C166__)
614# define ACC_CC_KEILC 1
615# define ACC_INFO_CC "Keil C"
616# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__C166__)
617#elif defined(__LCC__) && defined(_WIN32) && defined(__LCCOPTIMLEVEL)
618# define ACC_CC_LCCWIN32 1
619# define ACC_INFO_CC "lcc-win32"
620# define ACC_INFO_CCVER "unknown"
621#elif defined(__LCC__)
622# define ACC_CC_LCC 1
623# define ACC_INFO_CC "lcc"
624# if defined(__LCC_VERSION__)
625# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__LCC_VERSION__)
626# else
627# define ACC_INFO_CCVER "unknown"
628# endif
629#elif defined(_MSC_VER)
630# define ACC_CC_MSC 1
631# define ACC_INFO_CC "Microsoft C"
632# if defined(_MSC_FULL_VER)
633# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_MSC_VER) "." ACC_PP_MACRO_EXPAND(_MSC_FULL_VER)
634# else
635# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(_MSC_VER)
636# endif
637#elif defined(__MWERKS__)
638# define ACC_CC_MWERKS 1
639# define ACC_INFO_CC "Metrowerks C"
640# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__MWERKS__)
641#elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386)
642# define ACC_CC_NDPC 1
643# define ACC_INFO_CC "Microway NDP C"
644# define ACC_INFO_CCVER "unknown"
645#elif defined(__PACIFIC__)
646# define ACC_CC_PACIFICC 1
647# define ACC_INFO_CC "Pacific C"
648# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PACIFIC__)
649#elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__))
650# define ACC_CC_PGI 1
651# define ACC_INFO_CC "Portland Group PGI C"
652# define ACC_INFO_CCVER "unknown"
653#elif defined(__PUREC__) && defined(__TOS__)
654# define ACC_CC_PUREC 1
655# define ACC_INFO_CC "Pure C"
656# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__PUREC__)
657#elif defined(__SC__) && defined(__ZTC__)
658# define ACC_CC_SYMANTECC 1
659# define ACC_INFO_CC "Symantec C"
660# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SC__)
661#elif defined(__SUNPRO_C)
662# define ACC_INFO_CC "SunPro C"
663# if ((__SUNPRO_C)+0 > 0)
664# define ACC_CC_SUNPROC __SUNPRO_C
665# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SUNPRO_C)
666# else
667# define ACC_CC_SUNPROC 1
668# define ACC_INFO_CCVER "unknown"
669# endif
670#elif defined(__SUNPRO_CC)
671# define ACC_INFO_CC "SunPro C"
672# if ((__SUNPRO_CC)+0 > 0)
673# define ACC_CC_SUNPROC __SUNPRO_CC
674# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__SUNPRO_CC)
675# else
676# define ACC_CC_SUNPROC 1
677# define ACC_INFO_CCVER "unknown"
678# endif
679#elif defined(__TINYC__)
680# define ACC_CC_TINYC 1
681# define ACC_INFO_CC "Tiny C"
682# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__TINYC__)
683#elif defined(__TSC__)
684# define ACC_CC_TOPSPEEDC 1
685# define ACC_INFO_CC "TopSpeed C"
686# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__TSC__)
687#elif defined(__WATCOMC__)
688# define ACC_CC_WATCOMC 1
689# define ACC_INFO_CC "Watcom C"
690# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__WATCOMC__)
691#elif defined(__TURBOC__)
692# define ACC_CC_TURBOC 1
693# define ACC_INFO_CC "Turbo C"
694# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__TURBOC__)
695#elif defined(__ZTC__)
696# define ACC_CC_ZORTECHC 1
697# define ACC_INFO_CC "Zortech C"
698# if (__ZTC__ == 0x310)
699# define ACC_INFO_CCVER "0x310"
700# else
701# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__ZTC__)
702# endif
703#else
704# define ACC_CC_UNKNOWN 1
705# define ACC_INFO_CC "unknown"
706# define ACC_INFO_CCVER "unknown"
707#endif
708#if 0 && (ACC_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER)
709# error "ACC_CC_MSC: _MSC_FULL_VER is not defined"
710#endif
711#if !defined(__ACC_ARCH_OVERRIDE) && !defined(ACC_ARCH_GENERIC) && defined(_CRAY)
712# if (UINT_MAX > ACC_0xffffffffL) && defined(_CRAY)
713# if defined(_CRAYMPP) || defined(_CRAYT3D) || defined(_CRAYT3E)
714# define ACC_ARCH_CRAY_MPP 1
715# elif defined(_CRAY1)
716# define ACC_ARCH_CRAY_PVP 1
717# endif
718# endif
719#endif
720#if !defined(__ACC_ARCH_OVERRIDE)
721#if defined(ACC_ARCH_GENERIC)
722# define ACC_INFO_ARCH "generic"
723#elif (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
724# define ACC_ARCH_I086 1
725# define ACC_ARCH_IA16 1
726# define ACC_INFO_ARCH "i086"
727#elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA)
728# define ACC_ARCH_ALPHA 1
729# define ACC_INFO_ARCH "alpha"
730#elif (ACC_ARCH_CRAY_MPP) && (defined(_CRAYT3D) || defined(_CRAYT3E))
731# define ACC_ARCH_ALPHA 1
732# define ACC_INFO_ARCH "alpha"
733#elif defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64)
734# define ACC_ARCH_AMD64 1
735# define ACC_INFO_ARCH "amd64"
736#elif defined(__thumb__) || (defined(_M_ARM) && defined(_M_THUMB))
737# define ACC_ARCH_ARM 1
738# define ACC_ARCH_ARM_THUMB 1
739# define ACC_INFO_ARCH "arm_thumb"
740#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__)
741# define ACC_ARCH_ARM 1
742# if defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 1)
743# define ACC_ARCH_ARM_THUMB 1
744# define ACC_INFO_ARCH "arm_thumb"
745# elif defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 2)
746# define ACC_INFO_ARCH "arm"
747# else
748# define ACC_INFO_ARCH "arm"
749# endif
750#elif defined(__arm__) || defined(_M_ARM)
751# define ACC_ARCH_ARM 1
752# define ACC_INFO_ARCH "arm"
753#elif (UINT_MAX <= ACC_0xffffL) && defined(__AVR__)
754# define ACC_ARCH_AVR 1
755# define ACC_INFO_ARCH "avr"
756#elif defined(__bfin__)
757# define ACC_ARCH_BLACKFIN 1
758# define ACC_INFO_ARCH "blackfin"
759#elif (UINT_MAX == ACC_0xffffL) && defined(__C166__)
760# define ACC_ARCH_C166 1
761# define ACC_INFO_ARCH "c166"
762#elif defined(__cris__)
763# define ACC_ARCH_CRIS 1
764# define ACC_INFO_ARCH "cris"
765#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCEZ80__)
766# define ACC_ARCH_EZ80 1
767# define ACC_INFO_ARCH "ez80"
768#elif defined(__H8300__) || defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
769# define ACC_ARCH_H8300 1
770# define ACC_INFO_ARCH "h8300"
771#elif defined(__hppa__) || defined(__hppa)
772# define ACC_ARCH_HPPA 1
773# define ACC_INFO_ARCH "hppa"
774#elif defined(__386__) || defined(__i386__) || defined(__i386) || defined(_M_IX86) || defined(_M_I386)
775# define ACC_ARCH_I386 1
776# define ACC_ARCH_IA32 1
777# define ACC_INFO_ARCH "i386"
778#elif (ACC_CC_ZORTECHC && defined(__I86__))
779# define ACC_ARCH_I386 1
780# define ACC_ARCH_IA32 1
781# define ACC_INFO_ARCH "i386"
782#elif (ACC_OS_DOS32 && ACC_CC_HIGHC) && defined(_I386)
783# define ACC_ARCH_I386 1
784# define ACC_ARCH_IA32 1
785# define ACC_INFO_ARCH "i386"
786#elif defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
787# define ACC_ARCH_IA64 1
788# define ACC_INFO_ARCH "ia64"
789#elif (UINT_MAX == ACC_0xffffL) && defined(__m32c__)
790# define ACC_ARCH_M16C 1
791# define ACC_INFO_ARCH "m16c"
792#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCM16C__)
793# define ACC_ARCH_M16C 1
794# define ACC_INFO_ARCH "m16c"
795#elif defined(__m32r__)
796# define ACC_ARCH_M32R 1
797# define ACC_INFO_ARCH "m32r"
798#elif (ACC_OS_TOS) || defined(__m68k__) || defined(__m68000__) || defined(__mc68000__) || defined(__mc68020__) || defined(_M_M68K)
799# define ACC_ARCH_M68K 1
800# define ACC_INFO_ARCH "m68k"
801#elif (UINT_MAX == ACC_0xffffL) && defined(__C251__)
802# define ACC_ARCH_MCS251 1
803# define ACC_INFO_ARCH "mcs251"
804#elif (UINT_MAX == ACC_0xffffL) && defined(__C51__)
805# define ACC_ARCH_MCS51 1
806# define ACC_INFO_ARCH "mcs51"
807#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC8051__)
808# define ACC_ARCH_MCS51 1
809# define ACC_INFO_ARCH "mcs51"
810#elif defined(__mips__) || defined(__mips) || defined(_MIPS_ARCH) || defined(_M_MRX000)
811# define ACC_ARCH_MIPS 1
812# define ACC_INFO_ARCH "mips"
813#elif (UINT_MAX == ACC_0xffffL) && defined(__MSP430__)
814# define ACC_ARCH_MSP430 1
815# define ACC_INFO_ARCH "msp430"
816#elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICC430__)
817# define ACC_ARCH_MSP430 1
818# define ACC_INFO_ARCH "msp430"
819#elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) || defined(__PPC__) || defined(_M_PPC) || defined(_ARCH_PPC) || defined(_ARCH_PWR)
820# define ACC_ARCH_POWERPC 1
821# define ACC_INFO_ARCH "powerpc"
822#elif defined(__s390__) || defined(__s390) || defined(__s390x__) || defined(__s390x)
823# define ACC_ARCH_S390 1
824# define ACC_INFO_ARCH "s390"
825#elif defined(__sh__) || defined(_M_SH)
826# define ACC_ARCH_SH 1
827# define ACC_INFO_ARCH "sh"
828#elif defined(__sparc__) || defined(__sparc) || defined(__sparcv8)
829# define ACC_ARCH_SPARC 1
830# define ACC_INFO_ARCH "sparc"
831#elif defined(__SPU__)
832# define ACC_ARCH_SPU 1
833# define ACC_INFO_ARCH "spu"
834#elif (UINT_MAX == ACC_0xffffL) && defined(__z80)
835# define ACC_ARCH_Z80 1
836# define ACC_INFO_ARCH "z80"
837#elif (ACC_ARCH_CRAY_PVP)
838# if defined(_CRAYSV1)
839# define ACC_ARCH_CRAY_SV1 1
840# define ACC_INFO_ARCH "cray_sv1"
841# elif (_ADDR64)
842# define ACC_ARCH_CRAY_T90 1
843# define ACC_INFO_ARCH "cray_t90"
844# elif (_ADDR32)
845# define ACC_ARCH_CRAY_YMP 1
846# define ACC_INFO_ARCH "cray_ymp"
847# else
848# define ACC_ARCH_CRAY_XMP 1
849# define ACC_INFO_ARCH "cray_xmp"
850# endif
851#else
852# define ACC_ARCH_UNKNOWN 1
853# define ACC_INFO_ARCH "unknown"
854#endif
855#endif
856#if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_DOS32 || ACC_OS_OS2)
857# error "FIXME - missing define for CPU architecture"
858#endif
859#if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_WIN32)
860# error "FIXME - missing WIN32 define for CPU architecture"
861#endif
862#if 1 && (ACC_ARCH_UNKNOWN) && (ACC_OS_WIN64)
863# error "FIXME - missing WIN64 define for CPU architecture"
864#endif
865#if (ACC_OS_OS216 || ACC_OS_WIN16)
866# define ACC_ARCH_I086PM 1
867# define ACC_ARCH_IA16PM 1
868#elif 1 && (ACC_OS_DOS16 && defined(BLX286))
869# define ACC_ARCH_I086PM 1
870# define ACC_ARCH_IA16PM 1
871#elif 1 && (ACC_OS_DOS16 && defined(DOSX286))
872# define ACC_ARCH_I086PM 1
873# define ACC_ARCH_IA16PM 1
874#elif 1 && (ACC_OS_DOS16 && ACC_CC_BORLANDC && defined(__DPMI16__))
875# define ACC_ARCH_I086PM 1
876# define ACC_ARCH_IA16PM 1
877#endif
878#if defined(ACC_ARCH_ARM_THUMB) && !defined(ACC_ARCH_ARM)
879# error "this should not happen"
880#endif
881#if defined(ACC_ARCH_I086PM) && !defined(ACC_ARCH_I086)
882# error "this should not happen"
883#endif
884#if (ACC_ARCH_I086)
885# if (UINT_MAX != ACC_0xffffL)
886# error "this should not happen"
887# endif
888# if (ULONG_MAX != ACC_0xffffffffL)
889# error "this should not happen"
890# endif
891#endif
892#if (ACC_ARCH_I386)
893# if (UINT_MAX != ACC_0xffffL) && defined(__i386_int16__)
894# error "this should not happen"
895# endif
896# if (UINT_MAX != ACC_0xffffffffL) && !defined(__i386_int16__)
897# error "this should not happen"
898# endif
899# if (ULONG_MAX != ACC_0xffffffffL)
900# error "this should not happen"
901# endif
902#endif
903#if !defined(__ACC_MM_OVERRIDE)
904#if (ACC_ARCH_I086)
905#if (UINT_MAX != ACC_0xffffL)
906# error "this should not happen"
907#endif
908#if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM)
909# define ACC_MM_TINY 1
910#elif defined(__HUGE__) || defined(_HUGE_) || defined(M_I86HM) || defined(_M_I86HM)
911# define ACC_MM_HUGE 1
912#elif defined(__SMALL__) || defined(M_I86SM) || defined(_M_I86SM) || defined(SMALL_MODEL)
913# define ACC_MM_SMALL 1
914#elif defined(__MEDIUM__) || defined(M_I86MM) || defined(_M_I86MM)
915# define ACC_MM_MEDIUM 1
916#elif defined(__COMPACT__) || defined(M_I86CM) || defined(_M_I86CM)
917# define ACC_MM_COMPACT 1
918#elif defined(__LARGE__) || defined(M_I86LM) || defined(_M_I86LM) || defined(LARGE_MODEL)
919# define ACC_MM_LARGE 1
920#elif (ACC_CC_AZTECC)
921# if defined(_LARGE_CODE) && defined(_LARGE_DATA)
922# define ACC_MM_LARGE 1
923# elif defined(_LARGE_CODE)
924# define ACC_MM_MEDIUM 1
925# elif defined(_LARGE_DATA)
926# define ACC_MM_COMPACT 1
927# else
928# define ACC_MM_SMALL 1
929# endif
930#elif (ACC_CC_ZORTECHC && defined(__VCM__))
931# define ACC_MM_LARGE 1
932#else
933# error "unknown memory model"
934#endif
935#if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
936#define ACC_HAVE_MM_HUGE_PTR 1
937#define ACC_HAVE_MM_HUGE_ARRAY 1
938#if (ACC_MM_TINY)
939# undef ACC_HAVE_MM_HUGE_ARRAY
940#endif
941#if (ACC_CC_AZTECC || ACC_CC_PACIFICC || ACC_CC_ZORTECHC)
942# undef ACC_HAVE_MM_HUGE_PTR
943# undef ACC_HAVE_MM_HUGE_ARRAY
944#elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
945# undef ACC_HAVE_MM_HUGE_ARRAY
946#elif (ACC_CC_MSC && defined(_QC))
947# undef ACC_HAVE_MM_HUGE_ARRAY
948# if (_MSC_VER < 600)
949# undef ACC_HAVE_MM_HUGE_PTR
950# endif
951#elif (ACC_CC_TURBOC && (__TURBOC__ < 0x0295))
952# undef ACC_HAVE_MM_HUGE_ARRAY
953#endif
954#if (ACC_ARCH_I086PM) && !defined(ACC_HAVE_MM_HUGE_PTR)
955# if (ACC_OS_DOS16)
956# error "this should not happen"
957# elif (ACC_CC_ZORTECHC)
958# else
959# error "this should not happen"
960# endif
961#endif
962#ifdef __cplusplus
963extern "C" {
964#endif
965#if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0200))
966 extern void __near __cdecl _AHSHIFT(void);
967# define ACC_MM_AHSHIFT ((unsigned) _AHSHIFT)
968#elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
969 extern void __near __cdecl _AHSHIFT(void);
970# define ACC_MM_AHSHIFT ((unsigned) _AHSHIFT)
971#elif (ACC_CC_MSC || ACC_CC_TOPSPEEDC)
972 extern void __near __cdecl _AHSHIFT(void);
973# define ACC_MM_AHSHIFT ((unsigned) _AHSHIFT)
974#elif (ACC_CC_TURBOC && (__TURBOC__ >= 0x0295))
975 extern void __near __cdecl _AHSHIFT(void);
976# define ACC_MM_AHSHIFT ((unsigned) _AHSHIFT)
977#elif ((ACC_CC_AZTECC || ACC_CC_PACIFICC || ACC_CC_TURBOC) && ACC_OS_DOS16)
978# define ACC_MM_AHSHIFT 12
979#elif (ACC_CC_WATCOMC)
980 extern unsigned char _HShift;
981# define ACC_MM_AHSHIFT ((unsigned) _HShift)
982#else
983# error "FIXME - implement ACC_MM_AHSHIFT"
984#endif
985#ifdef __cplusplus
986}
987#endif
988#endif
989#elif (ACC_ARCH_C166)
990#if !defined(__MODEL__)
991# error "FIXME - C166 __MODEL__"
992#elif ((__MODEL__) == 0)
993# define ACC_MM_SMALL 1
994#elif ((__MODEL__) == 1)
995# define ACC_MM_SMALL 1
996#elif ((__MODEL__) == 2)
997# define ACC_MM_LARGE 1
998#elif ((__MODEL__) == 3)
999# define ACC_MM_TINY 1
1000#elif ((__MODEL__) == 4)
1001# define ACC_MM_XTINY 1
1002#elif ((__MODEL__) == 5)
1003# define ACC_MM_XSMALL 1
1004#else
1005# error "FIXME - C166 __MODEL__"
1006#endif
1007#elif (ACC_ARCH_MCS251)
1008#if !defined(__MODEL__)
1009# error "FIXME - MCS251 __MODEL__"
1010#elif ((__MODEL__) == 0)
1011# define ACC_MM_SMALL 1
1012#elif ((__MODEL__) == 2)
1013# define ACC_MM_LARGE 1
1014#elif ((__MODEL__) == 3)
1015# define ACC_MM_TINY 1
1016#elif ((__MODEL__) == 4)
1017# define ACC_MM_XTINY 1
1018#elif ((__MODEL__) == 5)
1019# define ACC_MM_XSMALL 1
1020#else
1021# error "FIXME - MCS251 __MODEL__"
1022#endif
1023#elif (ACC_ARCH_MCS51)
1024#if !defined(__MODEL__)
1025# error "FIXME - MCS51 __MODEL__"
1026#elif ((__MODEL__) == 1)
1027# define ACC_MM_SMALL 1
1028#elif ((__MODEL__) == 2)
1029# define ACC_MM_LARGE 1
1030#elif ((__MODEL__) == 3)
1031# define ACC_MM_TINY 1
1032#elif ((__MODEL__) == 4)
1033# define ACC_MM_XTINY 1
1034#elif ((__MODEL__) == 5)
1035# define ACC_MM_XSMALL 1
1036#else
1037# error "FIXME - MCS51 __MODEL__"
1038#endif
1039#elif (ACC_ARCH_CRAY_PVP)
1040# define ACC_MM_PVP 1
1041#else
1042# define ACC_MM_FLAT 1
1043#endif
1044#if (ACC_MM_COMPACT)
1045# define ACC_INFO_MM "compact"
1046#elif (ACC_MM_FLAT)
1047# define ACC_INFO_MM "flat"
1048#elif (ACC_MM_HUGE)
1049# define ACC_INFO_MM "huge"
1050#elif (ACC_MM_LARGE)
1051# define ACC_INFO_MM "large"
1052#elif (ACC_MM_MEDIUM)
1053# define ACC_INFO_MM "medium"
1054#elif (ACC_MM_PVP)
1055# define ACC_INFO_MM "pvp"
1056#elif (ACC_MM_SMALL)
1057# define ACC_INFO_MM "small"
1058#elif (ACC_MM_TINY)
1059# define ACC_INFO_MM "tiny"
1060#else
1061# error "unknown memory model"
1062#endif
1063#endif
1064#if defined(SIZEOF_SHORT)
1065# define ACC_SIZEOF_SHORT (SIZEOF_SHORT)
1066#endif
1067#if defined(SIZEOF_INT)
1068# define ACC_SIZEOF_INT (SIZEOF_INT)
1069#endif
1070#if defined(SIZEOF_LONG)
1071# define ACC_SIZEOF_LONG (SIZEOF_LONG)
1072#endif
1073#if defined(SIZEOF_LONG_LONG)
1074# define ACC_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG)
1075#endif
1076#if defined(SIZEOF___INT16)
1077# define ACC_SIZEOF___INT16 (SIZEOF___INT16)
1078#endif
1079#if defined(SIZEOF___INT32)
1080# define ACC_SIZEOF___INT32 (SIZEOF___INT32)
1081#endif
1082#if defined(SIZEOF___INT64)
1083# define ACC_SIZEOF___INT64 (SIZEOF___INT64)
1084#endif
1085#if defined(SIZEOF_VOID_P)
1086# define ACC_SIZEOF_VOID_P (SIZEOF_VOID_P)
1087#endif
1088#if defined(SIZEOF_SIZE_T)
1089# define ACC_SIZEOF_SIZE_T (SIZEOF_SIZE_T)
1090#endif
1091#if defined(SIZEOF_PTRDIFF_T)
1092# define ACC_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T)
1093#endif
1094#define __ACC_LSR(x,b) (((x)+0ul) >> (b))
1095#if !defined(ACC_SIZEOF_SHORT)
1096# if (ACC_ARCH_CRAY_PVP)
1097# define ACC_SIZEOF_SHORT 8
1098# elif (USHRT_MAX == ACC_0xffffL)
1099# define ACC_SIZEOF_SHORT 2
1100# elif (__ACC_LSR(USHRT_MAX,7) == 1)
1101# define ACC_SIZEOF_SHORT 1
1102# elif (__ACC_LSR(USHRT_MAX,15) == 1)
1103# define ACC_SIZEOF_SHORT 2
1104# elif (__ACC_LSR(USHRT_MAX,31) == 1)
1105# define ACC_SIZEOF_SHORT 4
1106# elif (__ACC_LSR(USHRT_MAX,63) == 1)
1107# define ACC_SIZEOF_SHORT 8
1108# elif (__ACC_LSR(USHRT_MAX,127) == 1)
1109# define ACC_SIZEOF_SHORT 16
1110# else
1111# error "ACC_SIZEOF_SHORT"
1112# endif
1113#endif
1114#if !defined(ACC_SIZEOF_INT)
1115# if (ACC_ARCH_CRAY_PVP)
1116# define ACC_SIZEOF_INT 8
1117# elif (UINT_MAX == ACC_0xffffL)
1118# define ACC_SIZEOF_INT 2
1119# elif (UINT_MAX == ACC_0xffffffffL)
1120# define ACC_SIZEOF_INT 4
1121# elif (__ACC_LSR(UINT_MAX,7) == 1)
1122# define ACC_SIZEOF_INT 1
1123# elif (__ACC_LSR(UINT_MAX,15) == 1)
1124# define ACC_SIZEOF_INT 2
1125# elif (__ACC_LSR(UINT_MAX,31) == 1)
1126# define ACC_SIZEOF_INT 4
1127# elif (__ACC_LSR(UINT_MAX,63) == 1)
1128# define ACC_SIZEOF_INT 8
1129# elif (__ACC_LSR(UINT_MAX,127) == 1)
1130# define ACC_SIZEOF_INT 16
1131# else
1132# error "ACC_SIZEOF_INT"
1133# endif
1134#endif
1135#if !defined(ACC_SIZEOF_LONG)
1136# if (ULONG_MAX == ACC_0xffffffffL)
1137# define ACC_SIZEOF_LONG 4
1138# elif (__ACC_LSR(ULONG_MAX,7) == 1)
1139# define ACC_SIZEOF_LONG 1
1140# elif (__ACC_LSR(ULONG_MAX,15) == 1)
1141# define ACC_SIZEOF_LONG 2
1142# elif (__ACC_LSR(ULONG_MAX,31) == 1)
1143# define ACC_SIZEOF_LONG 4
1144# elif (__ACC_LSR(ULONG_MAX,63) == 1)
1145# define ACC_SIZEOF_LONG 8
1146# elif (__ACC_LSR(ULONG_MAX,127) == 1)
1147# define ACC_SIZEOF_LONG 16
1148# else
1149# error "ACC_SIZEOF_LONG"
1150# endif
1151#endif
1152#if !defined(ACC_SIZEOF_LONG_LONG) && !defined(ACC_SIZEOF___INT64)
1153#if (ACC_SIZEOF_LONG > 0 && ACC_SIZEOF_LONG < 8)
1154# if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__)
1155# if (ACC_CC_GNUC >= 0x030300ul)
1156# if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0)
1157# define ACC_SIZEOF_LONG_LONG ACC_SIZEOF_LONG
1158# elif (__ACC_LSR(__LONG_LONG_MAX__,30) == 1)
1159# define ACC_SIZEOF_LONG_LONG 4
1160# endif
1161# endif
1162# endif
1163#endif
1164#endif
1165#if !defined(ACC_SIZEOF_LONG_LONG) && !defined(ACC_SIZEOF___INT64)
1166#if (ACC_SIZEOF_LONG > 0 && ACC_SIZEOF_LONG < 8)
1167#if (ACC_ARCH_I086 && ACC_CC_DMC)
1168#elif (ACC_CC_CILLY) && defined(__GNUC__)
1169# define ACC_SIZEOF_LONG_LONG 8
1170#elif (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1171# define ACC_SIZEOF_LONG_LONG 8
1172#elif ((ACC_OS_WIN32 || ACC_OS_WIN64 || defined(_WIN32)) && ACC_CC_MSC && (_MSC_VER >= 1400))
1173# define ACC_SIZEOF_LONG_LONG 8
1174#elif (ACC_OS_WIN64 || defined(_WIN64))
1175# define ACC_SIZEOF___INT64 8
1176#elif (ACC_ARCH_I386 && (ACC_CC_DMC))
1177# define ACC_SIZEOF_LONG_LONG 8
1178#elif (ACC_ARCH_I386 && (ACC_CC_SYMANTECC && (__SC__ >= 0x700)))
1179# define ACC_SIZEOF_LONG_LONG 8
1180#elif (ACC_ARCH_I386 && (ACC_CC_INTELC && defined(__linux__)))
1181# define ACC_SIZEOF_LONG_LONG 8
1182#elif (ACC_ARCH_I386 && (ACC_CC_MWERKS || ACC_CC_PELLESC || ACC_CC_PGI || ACC_CC_SUNPROC))
1183# define ACC_SIZEOF_LONG_LONG 8
1184#elif (ACC_ARCH_I386 && (ACC_CC_INTELC || ACC_CC_MSC))
1185# define ACC_SIZEOF___INT64 8
1186#elif ((ACC_OS_WIN32 || defined(_WIN32)) && (ACC_CC_MSC))
1187# define ACC_SIZEOF___INT64 8
1188#elif (ACC_ARCH_I386 && (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0520)))
1189# define ACC_SIZEOF___INT64 8
1190#elif (ACC_ARCH_I386 && (ACC_CC_WATCOMC && (__WATCOMC__ >= 1100)))
1191# define ACC_SIZEOF___INT64 8
1192#elif (ACC_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64))
1193# define ACC_SIZEOF___INT64 8
1194#elif (ACC_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
1195# define ACC_SIZEOF_LONG_LONG 8
1196#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
1197# define ACC_SIZEOF_LONG_LONG 8
1198#elif (ACC_CC_SDCC) && (ACC_SIZEOF_INT == 2)
1199#elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
1200# define ACC_SIZEOF_LONG_LONG 8
1201#endif
1202#endif
1203#endif
1204#if defined(__cplusplus) && defined(ACC_CC_GNUC)
1205# if (ACC_CC_GNUC < 0x020800ul)
1206# undef ACC_SIZEOF_LONG_LONG
1207# endif
1208#endif
1209#if defined(ACC_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG)
1210# undef ACC_SIZEOF_LONG_LONG
1211#endif
1212#if !defined(ACC_SIZEOF_VOID_P)
1213#if (ACC_ARCH_I086)
1214# define __ACC_WORDSIZE 2
1215# if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
1216# define ACC_SIZEOF_VOID_P 2
1217# elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
1218# define ACC_SIZEOF_VOID_P 4
1219# else
1220# error "ACC_MM"
1221# endif
1222#elif (ACC_ARCH_AVR || ACC_ARCH_Z80)
1223# define __ACC_WORDSIZE 1
1224# define ACC_SIZEOF_VOID_P 2
1225#elif (ACC_ARCH_C166 || ACC_ARCH_MCS51 || ACC_ARCH_MCS251 || ACC_ARCH_MSP430)
1226# define ACC_SIZEOF_VOID_P 2
1227#elif (ACC_ARCH_H8300)
1228# if defined(__NORMAL_MODE__)
1229# define __ACC_WORDSIZE 4
1230# define ACC_SIZEOF_VOID_P 2
1231# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__)
1232# define __ACC_WORDSIZE 4
1233# define ACC_SIZEOF_VOID_P 4
1234# else
1235# define __ACC_WORDSIZE 2
1236# define ACC_SIZEOF_VOID_P 2
1237# endif
1238# if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x040000ul)) && (ACC_SIZEOF_INT == 4)
1239# define ACC_SIZEOF_SIZE_T ACC_SIZEOF_INT
1240# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_INT
1241# endif
1242#elif (ACC_ARCH_M16C)
1243# define __ACC_WORDSIZE 2
1244# if defined(__m32c_cpu__) || defined(__m32cm_cpu__)
1245# define ACC_SIZEOF_VOID_P 4
1246# else
1247# define ACC_SIZEOF_VOID_P 2
1248# endif
1249#elif (ACC_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__))
1250# define __ACC_WORDSIZE 8
1251# define ACC_SIZEOF_VOID_P 4
1252#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64)
1253# define __ACC_WORDSIZE 8
1254# define ACC_SIZEOF_VOID_P 8
1255#elif (ACC_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__)
1256# define ACC_SIZEOF_VOID_P ACC_SIZEOF_LONG
1257# define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
1258# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
1259#elif (ACC_OS_OS400 || defined(__OS400__))
1260# define __ACC_WORDSIZE ACC_SIZEOF_LONG
1261# define ACC_SIZEOF_VOID_P 16
1262# define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
1263# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
1264#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64)
1265# define ACC_SIZEOF_VOID_P 8
1266# define ACC_SIZEOF_SIZE_T ACC_SIZEOF_LONG
1267# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_LONG
1268#elif (ACC_ARCH_SPU)
1269# if 0
1270# define __ACC_WORDSIZE 16
1271# endif
1272# define ACC_SIZEOF_VOID_P 4
1273#else
1274# define ACC_SIZEOF_VOID_P ACC_SIZEOF_LONG
1275#endif
1276#endif
1277#if !defined(ACC_WORDSIZE)
1278# if defined(__ACC_WORDSIZE)
1279# define ACC_WORDSIZE __ACC_WORDSIZE
1280# else
1281# define ACC_WORDSIZE ACC_SIZEOF_VOID_P
1282# endif
1283#endif
1284#if !defined(ACC_SIZEOF_SIZE_T)
1285#if (ACC_ARCH_I086 || ACC_ARCH_M16C)
1286# define ACC_SIZEOF_SIZE_T 2
1287#else
1288# define ACC_SIZEOF_SIZE_T ACC_SIZEOF_VOID_P
1289#endif
1290#endif
1291#if !defined(ACC_SIZEOF_PTRDIFF_T)
1292#if (ACC_ARCH_I086)
1293# if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM || ACC_MM_HUGE)
1294# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_VOID_P
1295# elif (ACC_MM_COMPACT || ACC_MM_LARGE)
1296# if (ACC_CC_BORLANDC || ACC_CC_TURBOC)
1297# define ACC_SIZEOF_PTRDIFF_T 4
1298# else
1299# define ACC_SIZEOF_PTRDIFF_T 2
1300# endif
1301# else
1302# error "ACC_MM"
1303# endif
1304#else
1305# define ACC_SIZEOF_PTRDIFF_T ACC_SIZEOF_SIZE_T
1306#endif
1307#endif
1308#if defined(ACC_ABI_NEUTRAL_ENDIAN)
1309# undef ACC_ABI_BIG_ENDIAN
1310# undef ACC_ABI_LITTLE_ENDIAN
1311#elif !defined(ACC_ABI_BIG_ENDIAN) && !defined(ACC_ABI_LITTLE_ENDIAN)
1312#if (ACC_ARCH_ALPHA) && (ACC_ARCH_CRAY_MPP)
1313# define ACC_ABI_BIG_ENDIAN 1
1314#elif (ACC_ARCH_ALPHA || ACC_ARCH_AMD64 || ACC_ARCH_BLACKFIN || ACC_ARCH_CRIS || ACC_ARCH_I086 || ACC_ARCH_I386 || ACC_ARCH_MSP430)
1315# define ACC_ABI_LITTLE_ENDIAN 1
1316#elif (ACC_ARCH_M68K || ACC_ARCH_S390)
1317# define ACC_ABI_BIG_ENDIAN 1
1318#elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__)
1319# if (__LITTLE_ENDIAN__ == 1)
1320# define ACC_ABI_LITTLE_ENDIAN 1
1321# else
1322# define ACC_ABI_BIG_ENDIAN 1
1323# endif
1324#elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)
1325# define ACC_ABI_BIG_ENDIAN 1
1326#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
1327# define ACC_ABI_LITTLE_ENDIAN 1
1328#elif 1 && (ACC_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__)
1329# define ACC_ABI_BIG_ENDIAN 1
1330#elif 1 && (ACC_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__)
1331# define ACC_ABI_LITTLE_ENDIAN 1
1332#elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__)
1333# define ACC_ABI_BIG_ENDIAN 1
1334#elif 1 && (ACC_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__)
1335# define ACC_ABI_LITTLE_ENDIAN 1
1336#endif
1337#endif
1338#if defined(ACC_ABI_BIG_ENDIAN) && defined(ACC_ABI_LITTLE_ENDIAN)
1339# error "this should not happen"
1340#endif
1341#if defined(ACC_ABI_BIG_ENDIAN)
1342# define ACC_INFO_ABI_ENDIAN "be"
1343#elif defined(ACC_ABI_LITTLE_ENDIAN)
1344# define ACC_INFO_ABI_ENDIAN "le"
1345#elif defined(ACC_ABI_NEUTRAL_ENDIAN)
1346# define ACC_INFO_ABI_ENDIAN "neutral"
1347#endif
1348#if (ACC_SIZEOF_INT == 1 && ACC_SIZEOF_LONG == 2 && ACC_SIZEOF_VOID_P == 2)
1349# define ACC_ABI_I8LP16 1
1350# define ACC_INFO_ABI_PM "i8lp16"
1351#elif (ACC_SIZEOF_INT == 2 && ACC_SIZEOF_LONG == 2 && ACC_SIZEOF_VOID_P == 2)
1352# define ACC_ABI_ILP16 1
1353# define ACC_INFO_ABI_PM "ilp16"
1354#elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 4)
1355# define ACC_ABI_ILP32 1
1356# define ACC_INFO_ABI_PM "ilp32"
1357#elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 4 && ACC_SIZEOF_VOID_P == 8 && ACC_SIZEOF_SIZE_T == 8)
1358# define ACC_ABI_LLP64 1
1359# define ACC_INFO_ABI_PM "llp64"
1360#elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 8)
1361# define ACC_ABI_LP64 1
1362# define ACC_INFO_ABI_PM "lp64"
1363#elif (ACC_SIZEOF_INT == 8 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 8)
1364# define ACC_ABI_ILP64 1
1365# define ACC_INFO_ABI_PM "ilp64"
1366#elif (ACC_SIZEOF_INT == 4 && ACC_SIZEOF_LONG == 8 && ACC_SIZEOF_VOID_P == 4)
1367# define ACC_ABI_IP32L64 1
1368# define ACC_INFO_ABI_PM "ip32l64"
1369#endif
1370#if !defined(__ACC_LIBC_OVERRIDE)
1371#if defined(ACC_LIBC_NAKED)
1372# define ACC_INFO_LIBC "naked"
1373#elif defined(ACC_LIBC_FREESTANDING)
1374# define ACC_INFO_LIBC "freestanding"
1375#elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
1376# define ACC_INFO_LIBC "mfreestanding"
1377#elif defined(ACC_LIBC_ISOC90)
1378# define ACC_INFO_LIBC "isoc90"
1379#elif defined(ACC_LIBC_ISOC99)
1380# define ACC_INFO_LIBC "isoc99"
1381#elif defined(__dietlibc__)
1382# define ACC_LIBC_DIETLIBC 1
1383# define ACC_INFO_LIBC "dietlibc"
1384#elif defined(_NEWLIB_VERSION)
1385# define ACC_LIBC_NEWLIB 1
1386# define ACC_INFO_LIBC "newlib"
1387#elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__)
1388# if defined(__UCLIBC_SUBLEVEL__)
1389# define ACC_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__)
1390# else
1391# define ACC_LIBC_UCLIBC 0x00090bL
1392# endif
1393# define ACC_INFO_LIBC "uclibc"
1394#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__)
1395# define ACC_LIBC_GLIBC (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100)
1396# define ACC_INFO_LIBC "glibc"
1397#elif (ACC_CC_MWERKS) && defined(__MSL__)
1398# define ACC_LIBC_MSL __MSL__
1399# define ACC_INFO_LIBC "msl"
1400#elif 1 && defined(__IAR_SYSTEMS_ICC__)
1401# define ACC_LIBC_ISOC90 1
1402# define ACC_INFO_LIBC "isoc90"
1403#else
1404# define ACC_LIBC_DEFAULT 1
1405# define ACC_INFO_LIBC "default"
1406#endif
1407#endif
1408#if !defined(__acc_gnuc_extension__)
1409#if (ACC_CC_GNUC >= 0x020800ul)
1410# define __acc_gnuc_extension__ __extension__
1411#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
1412# define __acc_gnuc_extension__ __extension__
1413#else
1414# define __acc_gnuc_extension__
1415#endif
1416#endif
1417#if !defined(__acc_ua_volatile)
1418# define __acc_ua_volatile volatile
1419#endif
1420#if !defined(__acc_alignof)
1421#if (ACC_CC_CILLY || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
1422# define __acc_alignof(e) __alignof__(e)
1423#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 700))
1424# define __acc_alignof(e) __alignof__(e)
1425#elif (ACC_CC_MSC && (_MSC_VER >= 1300))
1426# define __acc_alignof(e) __alignof(e)
1427#endif
1428#endif
1429#if defined(__acc_alignof)
1430# define __acc_HAVE_alignof 1
1431#endif
1432#if !defined(__acc_constructor)
1433#if (ACC_CC_GNUC >= 0x030400ul)
1434# define __acc_constructor __attribute__((__constructor__,__used__))
1435#elif (ACC_CC_GNUC >= 0x020700ul)
1436# define __acc_constructor __attribute__((__constructor__))
1437#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
1438# define __acc_constructor __attribute__((__constructor__))
1439#endif
1440#endif
1441#if defined(__acc_constructor)
1442# define __acc_HAVE_constructor 1
1443#endif
1444#if !defined(__acc_destructor)
1445#if (ACC_CC_GNUC >= 0x030400ul)
1446# define __acc_destructor __attribute__((__destructor__,__used__))
1447#elif (ACC_CC_GNUC >= 0x020700ul)
1448# define __acc_destructor __attribute__((__destructor__))
1449#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
1450# define __acc_destructor __attribute__((__destructor__))
1451#endif
1452#endif
1453#if defined(__acc_destructor)
1454# define __acc_HAVE_destructor 1
1455#endif
1456#if defined(__acc_HAVE_destructor) && !defined(__acc_HAVE_constructor)
1457# error "this should not happen"
1458#endif
1459#if !defined(__acc_inline)
1460#if (ACC_CC_TURBOC && (__TURBOC__ <= 0x0295))
1461#elif defined(__cplusplus)
1462# define __acc_inline inline
1463#elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
1464# define __acc_inline __inline
1465#elif (ACC_CC_CILLY || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
1466# define __acc_inline __inline__
1467#elif (ACC_CC_DMC)
1468# define __acc_inline __inline
1469#elif (ACC_CC_INTELC)
1470# define __acc_inline __inline
1471#elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x2405))
1472# define __acc_inline __inline
1473#elif (ACC_CC_MSC && (_MSC_VER >= 900))
1474# define __acc_inline __inline
1475#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
1476# define __acc_inline inline
1477#endif
1478#endif
1479#if defined(__acc_inline)
1480# define __acc_HAVE_inline 1
1481#else
1482# define __acc_inline
1483#endif
1484#if !defined(__acc_forceinline)
1485#if (ACC_CC_GNUC >= 0x030200ul)
1486# define __acc_forceinline __inline__ __attribute__((__always_inline__))
1487#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC)
1488# define __acc_forceinline __forceinline
1489#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
1490# define __acc_forceinline __inline__ __attribute__((__always_inline__))
1491#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
1492# define __acc_forceinline __inline__ __attribute__((__always_inline__))
1493#elif (ACC_CC_MSC && (_MSC_VER >= 1200))
1494# define __acc_forceinline __forceinline
1495#endif
1496#endif
1497#if defined(__acc_forceinline)
1498# define __acc_HAVE_forceinline 1
1499#else
1500# define __acc_forceinline
1501#endif
1502#if !defined(__acc_noinline)
1503#if 1 && (ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x040000ul) && (ACC_CC_GNUC < 0x040003ul)
1504# define __acc_noinline __attribute__((__noinline__,__used__))
1505#elif (ACC_CC_GNUC >= 0x030200ul)
1506# define __acc_noinline __attribute__((__noinline__))
1507#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_MSC)
1508# define __acc_noinline __declspec(noinline)
1509#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
1510# define __acc_noinline __attribute__((__noinline__))
1511#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
1512# define __acc_noinline __attribute__((__noinline__))
1513#elif (ACC_CC_MSC && (_MSC_VER >= 1300))
1514# define __acc_noinline __declspec(noinline)
1515#elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3200) && (ACC_OS_WIN32 || ACC_OS_WIN64))
1516# if defined(__cplusplus)
1517# else
1518# define __acc_noinline __declspec(noinline)
1519# endif
1520#endif
1521#endif
1522#if defined(__acc_noinline)
1523# define __acc_HAVE_noinline 1
1524#else
1525# define __acc_noinline
1526#endif
1527#if (defined(__acc_HAVE_forceinline) || defined(__acc_HAVE_noinline)) && !defined(__acc_HAVE_inline)
1528# error "this should not happen"
1529#endif
1530#if !defined(__acc_noreturn)
1531#if (ACC_CC_GNUC >= 0x020700ul)
1532# define __acc_noreturn __attribute__((__noreturn__))
1533#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC)
1534# define __acc_noreturn __declspec(noreturn)
1535#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_GNUC)
1536# define __acc_noreturn __attribute__((__noreturn__))
1537#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
1538# define __acc_noreturn __attribute__((__noreturn__))
1539#elif (ACC_CC_MSC && (_MSC_VER >= 1200))
1540# define __acc_noreturn __declspec(noreturn)
1541#endif
1542#endif
1543#if defined(__acc_noreturn)
1544# define __acc_HAVE_noreturn 1
1545#else
1546# define __acc_noreturn
1547#endif
1548#if !defined(__acc_nothrow)
1549#if (ACC_CC_GNUC >= 0x030300ul)
1550# define __acc_nothrow __attribute__((__nothrow__))
1551#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 450) && ACC_CC_SYNTAX_MSC) && defined(__cplusplus)
1552# define __acc_nothrow __declspec(nothrow)
1553#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800) && ACC_CC_SYNTAX_GNUC)
1554# define __acc_nothrow __attribute__((__nothrow__))
1555#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
1556# define __acc_nothrow __attribute__((__nothrow__))
1557#elif (ACC_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus)
1558# define __acc_nothrow __declspec(nothrow)
1559#endif
1560#endif
1561#if defined(__acc_nothrow)
1562# define __acc_HAVE_nothrow 1
1563#else
1564# define __acc_nothrow
1565#endif
1566#if !defined(__acc_restrict)
1567#if (ACC_CC_GNUC >= 0x030400ul)
1568# define __acc_restrict __restrict__
1569#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 600) && ACC_CC_SYNTAX_GNUC)
1570# define __acc_restrict __restrict__
1571#elif (ACC_CC_LLVM)
1572# define __acc_restrict __restrict__
1573#elif (ACC_CC_MSC && (_MSC_VER >= 1400))
1574# define __acc_restrict __restrict
1575#endif
1576#endif
1577#if defined(__acc_restrict)
1578# define __acc_HAVE_restrict 1
1579#else
1580# define __acc_restrict
1581#endif
1582#if !defined(__acc_likely) && !defined(__acc_unlikely)
1583#if (ACC_CC_GNUC >= 0x030200ul)
1584# define __acc_likely(e) (__builtin_expect(!!(e),1))
1585# define __acc_unlikely(e) (__builtin_expect(!!(e),0))
1586#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800))
1587# define __acc_likely(e) (__builtin_expect(!!(e),1))
1588# define __acc_unlikely(e) (__builtin_expect(!!(e),0))
1589#elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
1590# define __acc_likely(e) (__builtin_expect(!!(e),1))
1591# define __acc_unlikely(e) (__builtin_expect(!!(e),0))
1592#endif
1593#endif
1594#if defined(__acc_likely)
1595# define __acc_HAVE_likely 1
1596#else
1597# define __acc_likely(e) (e)
1598#endif
1599#if defined(__acc_unlikely)
1600# define __acc_HAVE_unlikely 1
1601#else
1602# define __acc_unlikely(e) (e)
1603#endif
1604#if !defined(ACC_UNUSED)
1605# if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
1606# define ACC_UNUSED(var) ((void) &var)
1607# elif (ACC_CC_BORLANDC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PELLESC || ACC_CC_TURBOC)
1608# define ACC_UNUSED(var) if (&var) ; else
1609# elif (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
1610# define ACC_UNUSED(var) ((void) var)
1611# elif (ACC_CC_MSC && (_MSC_VER < 900))
1612# define ACC_UNUSED(var) if (&var) ; else
1613# elif (ACC_CC_KEILC)
1614# define ACC_UNUSED(var) {extern int __acc_unused[1-2*!(sizeof(var)>0)];}
1615# elif (ACC_CC_PACIFICC)
1616# define ACC_UNUSED(var) ((void) sizeof(var))
1617# elif (ACC_CC_WATCOMC) && defined(__cplusplus)
1618# define ACC_UNUSED(var) ((void) var)
1619# else
1620# define ACC_UNUSED(var) ((void) &var)
1621# endif
1622#endif
1623#if !defined(ACC_UNUSED_FUNC)
1624# if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
1625# define ACC_UNUSED_FUNC(func) ((void) func)
1626# elif (ACC_CC_BORLANDC || ACC_CC_NDPC || ACC_CC_TURBOC)
1627# define ACC_UNUSED_FUNC(func) if (func) ; else
1628# elif (ACC_CC_LLVM)
1629# define ACC_UNUSED_FUNC(func) ((void) &func)
1630# elif (ACC_CC_MSC && (_MSC_VER < 900))
1631# define ACC_UNUSED_FUNC(func) if (func) ; else
1632# elif (ACC_CC_MSC)
1633# define ACC_UNUSED_FUNC(func) ((void) &func)
1634# elif (ACC_CC_KEILC || ACC_CC_PELLESC)
1635# define ACC_UNUSED_FUNC(func) {extern int __acc_unused[1-2*!(sizeof((int)func)>0)];}
1636# else
1637# define ACC_UNUSED_FUNC(func) ((void) func)
1638# endif
1639#endif
1640#if !defined(ACC_UNUSED_LABEL)
1641# if (ACC_CC_WATCOMC) && defined(__cplusplus)
1642# define ACC_UNUSED_LABEL(l) switch(0) case 1:goto l
1643# elif (ACC_CC_INTELC || ACC_CC_WATCOMC)
1644# define ACC_UNUSED_LABEL(l) if (0) goto l
1645# else
1646# define ACC_UNUSED_LABEL(l) switch(0) case 1:goto l
1647# endif
1648#endif
1649#if !defined(ACC_DEFINE_UNINITIALIZED_VAR)
1650# if 0
1651# define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var
1652# elif 0 && (ACC_CC_GNUC)
1653# define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var
1654# else
1655# define ACC_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init
1656# endif
1657#endif
1658#if !defined(ACC_COMPILE_TIME_ASSERT_HEADER)
1659# if (ACC_CC_AZTECC || ACC_CC_ZORTECHC)
1660# define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1-!(e)];
1661# elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
1662# define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1u-2*!(e)];
1663# elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
1664# define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1-!(e)];
1665# else
1666# define ACC_COMPILE_TIME_ASSERT_HEADER(e) extern int __acc_cta[1-2*!(e)];
1667# endif
1668#endif
1669#if !defined(ACC_COMPILE_TIME_ASSERT)
1670# if (ACC_CC_AZTECC)
1671# define ACC_COMPILE_TIME_ASSERT(e) {typedef int __acc_cta_t[1-!(e)];}
1672# elif (ACC_CC_DMC || ACC_CC_PACIFICC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
1673# define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
1674# elif (ACC_CC_MSC && (_MSC_VER < 900))
1675# define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
1676# elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
1677# define ACC_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break;
1678# else
1679# define ACC_COMPILE_TIME_ASSERT(e) {typedef int __acc_cta_t[1-2*!(e)];}
1680# endif
1681#endif
1682#if (ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
1683# if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC)
1684# elif (ACC_CC_DMC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
1685# define __acc_cdecl __cdecl
1686# define __acc_cdecl_atexit
1687# define __acc_cdecl_main __cdecl
1688# if (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
1689# define __acc_cdecl_qsort __pascal
1690# elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
1691# define __acc_cdecl_qsort _stdcall
1692# else
1693# define __acc_cdecl_qsort __cdecl
1694# endif
1695# elif (ACC_CC_WATCOMC)
1696# define __acc_cdecl __cdecl
1697# else
1698# define __acc_cdecl __cdecl
1699# define __acc_cdecl_atexit __cdecl
1700# define __acc_cdecl_main __cdecl
1701# define __acc_cdecl_qsort __cdecl
1702# endif
1703# if (ACC_CC_GNUC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_PACIFICC || ACC_CC_WATCOMC)
1704# elif (ACC_OS_OS2 && (ACC_CC_DMC || ACC_CC_SYMANTECC))
1705# define __acc_cdecl_sighandler __pascal
1706# elif (ACC_OS_OS2 && (ACC_CC_ZORTECHC))
1707# define __acc_cdecl_sighandler _stdcall
1708# elif (ACC_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE)
1709# define __acc_cdecl_sighandler __clrcall
1710# elif (ACC_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700))
1711# if defined(_DLL)
1712# define __acc_cdecl_sighandler _far _cdecl _loadds
1713# elif defined(_MT)
1714# define __acc_cdecl_sighandler _far _cdecl
1715# else
1716# define __acc_cdecl_sighandler _cdecl
1717# endif
1718# else
1719# define __acc_cdecl_sighandler __cdecl
1720# endif
1721#elif (ACC_ARCH_I386) && (ACC_CC_WATCOMC)
1722# define __acc_cdecl __cdecl
1723#elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
1724# define __acc_cdecl cdecl
1725#endif
1726#if !defined(__acc_cdecl)
1727# define __acc_cdecl
1728#endif
1729#if !defined(__acc_cdecl_atexit)
1730# define __acc_cdecl_atexit
1731#endif
1732#if !defined(__acc_cdecl_main)
1733# define __acc_cdecl_main
1734#endif
1735#if !defined(__acc_cdecl_qsort)
1736# define __acc_cdecl_qsort
1737#endif
1738#if !defined(__acc_cdecl_sighandler)
1739# define __acc_cdecl_sighandler
1740#endif
1741#if !defined(__acc_cdecl_va)
1742# define __acc_cdecl_va __acc_cdecl
1743#endif
1744#if !defined(ACC_CFG_NO_WINDOWS_H)
1745#if (ACC_OS_CYGWIN || (ACC_OS_EMX && defined(__RSXNT__)) || ACC_OS_WIN32 || ACC_OS_WIN64)
1746# if (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))
1747# elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
1748# elif ((ACC_OS_CYGWIN || defined(__MINGW32__)) && (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025f00ul)))
1749# else
1750# define ACC_HAVE_WINDOWS_H 1
1751# endif
1752#endif
1753#endif
1754#if (ACC_ARCH_ALPHA)
1755# define ACC_OPT_AVOID_UINT_INDEX 1
1756# define ACC_OPT_AVOID_SHORT 1
1757# define ACC_OPT_AVOID_USHORT 1
1758#elif (ACC_ARCH_AMD64)
1759# define ACC_OPT_AVOID_INT_INDEX 1
1760# define ACC_OPT_AVOID_UINT_INDEX 1
1761# define ACC_OPT_UNALIGNED16 1
1762# define ACC_OPT_UNALIGNED32 1
1763# define ACC_OPT_UNALIGNED64 1
1764#elif (ACC_ARCH_ARM && ACC_ARCH_ARM_THUMB)
1765#elif (ACC_ARCH_ARM)
1766# define ACC_OPT_AVOID_SHORT 1
1767# define ACC_OPT_AVOID_USHORT 1
1768#elif (ACC_ARCH_CRIS)
1769# define ACC_OPT_UNALIGNED16 1
1770# define ACC_OPT_UNALIGNED32 1
1771#elif (ACC_ARCH_I386)
1772# define ACC_OPT_UNALIGNED16 1
1773# define ACC_OPT_UNALIGNED32 1
1774#elif (ACC_ARCH_IA64)
1775# define ACC_OPT_AVOID_INT_INDEX 1
1776# define ACC_OPT_AVOID_UINT_INDEX 1
1777# define ACC_OPT_PREFER_POSTINC 1
1778#elif (ACC_ARCH_M68K)
1779# define ACC_OPT_PREFER_POSTINC 1
1780# define ACC_OPT_PREFER_PREDEC 1
1781# if defined(__mc68020__) && !defined(__mcoldfire__)
1782# define ACC_OPT_UNALIGNED16 1
1783# define ACC_OPT_UNALIGNED32 1
1784# endif
1785#elif (ACC_ARCH_MIPS)
1786# define ACC_OPT_AVOID_UINT_INDEX 1
1787#elif (ACC_ARCH_POWERPC)
1788# define ACC_OPT_PREFER_PREINC 1
1789# define ACC_OPT_PREFER_PREDEC 1
1790# if defined(ACC_ABI_BIG_ENDIAN)
1791# define ACC_OPT_UNALIGNED16 1
1792# define ACC_OPT_UNALIGNED32 1
1793# endif
1794#elif (ACC_ARCH_S390)
1795# define ACC_OPT_UNALIGNED16 1
1796# define ACC_OPT_UNALIGNED32 1
1797# if (ACC_SIZEOF_SIZE_T == 8)
1798# define ACC_OPT_UNALIGNED64 1
1799# endif
1800#elif (ACC_ARCH_SH)
1801# define ACC_OPT_PREFER_POSTINC 1
1802# define ACC_OPT_PREFER_PREDEC 1
1803#endif
1804#if !defined(ACC_CFG_NO_INLINE_ASM)
1805#if defined(ACC_CC_LLVM)
1806# define ACC_CFG_NO_INLINE_ASM 1
1807#endif
1808#endif
1809#if !defined(ACC_CFG_NO_UNALIGNED)
1810#if defined(ACC_ABI_NEUTRAL_ENDIAN) || defined(ACC_ARCH_GENERIC)
1811# define ACC_CFG_NO_UNALIGNED 1
1812#endif
1813#endif
1814#if defined(ACC_CFG_NO_UNALIGNED)
1815# undef ACC_OPT_UNALIGNED16
1816# undef ACC_OPT_UNALIGNED32
1817# undef ACC_OPT_UNALIGNED64
1818#endif
1819#if defined(ACC_CFG_NO_INLINE_ASM)
1820#elif (ACC_ARCH_I386 && (ACC_OS_DOS32 || ACC_OS_WIN32) && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
1821# define ACC_ASM_SYNTAX_MSC 1
1822#elif (ACC_OS_WIN64 && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
1823#elif (ACC_ARCH_I386 && (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
1824# define ACC_ASM_SYNTAX_GNUC 1
1825#elif (ACC_ARCH_AMD64 && (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
1826# define ACC_ASM_SYNTAX_GNUC 1
1827#endif
1828#if (ACC_ASM_SYNTAX_GNUC)
1829#if (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
1830# define __ACC_ASM_CLOBBER "ax"
1831#elif (ACC_CC_INTELC)
1832# define __ACC_ASM_CLOBBER "memory"
1833#else
1834# define __ACC_ASM_CLOBBER "cc", "memory"
1835#endif
1836#endif
1837#if defined(__ACC_INFOSTR_MM)
1838#elif (ACC_MM_FLAT) && (defined(__ACC_INFOSTR_PM) || defined(ACC_INFO_ABI_PM))
1839# define __ACC_INFOSTR_MM ""
1840#elif defined(ACC_INFO_MM)
1841# define __ACC_INFOSTR_MM "." ACC_INFO_MM
1842#else
1843# define __ACC_INFOSTR_MM ""
1844#endif
1845#if defined(__ACC_INFOSTR_PM)
1846#elif defined(ACC_INFO_ABI_PM)
1847# define __ACC_INFOSTR_PM "." ACC_INFO_ABI_PM
1848#else
1849# define __ACC_INFOSTR_PM ""
1850#endif
1851#if defined(__ACC_INFOSTR_ENDIAN)
1852#elif defined(ACC_INFO_ABI_ENDIAN)
1853# define __ACC_INFOSTR_ENDIAN "." ACC_INFO_ABI_ENDIAN
1854#else
1855# define __ACC_INFOSTR_ENDIAN ""
1856#endif
1857#if defined(__ACC_INFOSTR_OSNAME)
1858#elif defined(ACC_INFO_OS_CONSOLE)
1859# define __ACC_INFOSTR_OSNAME ACC_INFO_OS "." ACC_INFO_OS_CONSOLE
1860#elif defined(ACC_INFO_OS_POSIX)
1861# define __ACC_INFOSTR_OSNAME ACC_INFO_OS "." ACC_INFO_OS_POSIX
1862#else
1863# define __ACC_INFOSTR_OSNAME ACC_INFO_OS
1864#endif
1865#if defined(__ACC_INFOSTR_LIBC)
1866#elif defined(ACC_INFO_LIBC)
1867# define __ACC_INFOSTR_LIBC "." ACC_INFO_LIBC
1868#else
1869# define __ACC_INFOSTR_LIBC ""
1870#endif
1871#if defined(__ACC_INFOSTR_CCVER)
1872#elif defined(ACC_INFO_CCVER)
1873# define __ACC_INFOSTR_CCVER " " ACC_INFO_CCVER
1874#else
1875# define __ACC_INFOSTR_CCVER ""
1876#endif
1877#define ACC_INFO_STRING \
1878 ACC_INFO_ARCH __ACC_INFOSTR_MM __ACC_INFOSTR_PM __ACC_INFOSTR_ENDIAN \
1879 " " __ACC_INFOSTR_OSNAME __ACC_INFOSTR_LIBC " " ACC_INFO_CC __ACC_INFOSTR_CCVER
1880#if defined(ACC_CFG_NO_CONFIG_HEADER)
1881#elif defined(ACC_CFG_CONFIG_HEADER)
1882#else
1883#if !defined(ACC_CFG_AUTO_NO_HEADERS)
1884#if defined(ACC_LIBC_NAKED)
1885#elif defined(ACC_LIBC_FREESTANDING)
1886# define HAVE_LIMITS_H 1
1887# define HAVE_STDARG_H 1
1888# define HAVE_STDDEF_H 1
1889#elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
1890# define HAVE_LIMITS_H 1
1891# define HAVE_SETJMP_H 1
1892# define HAVE_STDARG_H 1
1893# define HAVE_STDDEF_H 1
1894# define HAVE_STDIO_H 1
1895# define HAVE_STRING_H 1
1896#else
1897#define STDC_HEADERS 1
1898#define HAVE_ASSERT_H 1
1899#define HAVE_CTYPE_H 1
1900#define HAVE_DIRENT_H 1
1901#define HAVE_ERRNO_H 1
1902#define HAVE_FCNTL_H 1
1903#define HAVE_FLOAT_H 1
1904#define HAVE_LIMITS_H 1
1905#define HAVE_MALLOC_H 1
1906#define HAVE_MEMORY_H 1
1907#define HAVE_SETJMP_H 1
1908#define HAVE_SIGNAL_H 1
1909#define HAVE_STDARG_H 1
1910#define HAVE_STDDEF_H 1
1911#define HAVE_STDIO_H 1
1912#define HAVE_STDLIB_H 1
1913#define HAVE_STRING_H 1
1914#define HAVE_TIME_H 1
1915#define HAVE_UNISTD_H 1
1916#define HAVE_UTIME_H 1
1917#define HAVE_SYS_STAT_H 1
1918#define HAVE_SYS_TIME_H 1
1919#define HAVE_SYS_TYPES_H 1
1920#if (ACC_OS_POSIX)
1921# if (ACC_OS_POSIX_AIX)
1922# define HAVE_SYS_RESOURCE_H 1
1923# elif (ACC_OS_POSIX_FREEBSD || ACC_OS_POSIX_MACOSX || ACC_OS_POSIX_NETBSD || ACC_OS_POSIX_OPENBSD)
1924# define HAVE_STRINGS_H 1
1925# undef HAVE_MALLOC_H
1926# elif (ACC_OS_POSIX_HPUX || ACC_OS_POSIX_INTERIX)
1927# define HAVE_ALLOCA_H 1
1928# elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
1929# undef HAVE_SYS_TIME_H
1930# undef HAVE_SYS_TYPES_H
1931# elif (ACC_OS_POSIX_SOLARIS || ACC_OS_POSIX_SUNOS)
1932# define HAVE_ALLOCA_H 1
1933# endif
1934# if (ACC_LIBC_DIETLIBC || ACC_LIBC_GLIBC || ACC_LIBC_UCLIBC)
1935# define HAVE_STRINGS_H 1
1936# define HAVE_SYS_MMAN_H 1
1937# define HAVE_SYS_RESOURCE_H 1
1938# define HAVE_SYS_WAIT_H 1
1939# endif
1940# if (ACC_LIBC_NEWLIB)
1941# undef HAVE_STRINGS_H
1942# endif
1943#elif (ACC_OS_CYGWIN)
1944# define HAVE_IO_H 1
1945#elif (ACC_OS_EMX)
1946# define HAVE_ALLOCA_H 1
1947# define HAVE_IO_H 1
1948#elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
1949# if !defined(__MINT__)
1950# undef HAVE_MALLOC_H
1951# endif
1952#elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
1953# undef HAVE_DIRENT_H
1954# undef HAVE_FCNTL_H
1955# undef HAVE_MALLOC_H
1956# undef HAVE_MEMORY_H
1957# undef HAVE_UNISTD_H
1958# undef HAVE_UTIME_H
1959# undef HAVE_SYS_STAT_H
1960# undef HAVE_SYS_TIME_H
1961# undef HAVE_SYS_TYPES_H
1962#endif
1963#if (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
1964#define HAVE_CONIO_H 1
1965#define HAVE_DIRECT_H 1
1966#define HAVE_DOS_H 1
1967#define HAVE_IO_H 1
1968#define HAVE_SHARE_H 1
1969#if (ACC_CC_AZTECC)
1970# undef HAVE_CONIO_H
1971# undef HAVE_DIRECT_H
1972# undef HAVE_DIRENT_H
1973# undef HAVE_MALLOC_H
1974# undef HAVE_SHARE_H
1975# undef HAVE_UNISTD_H
1976# undef HAVE_UTIME_H
1977# undef HAVE_SYS_STAT_H
1978# undef HAVE_SYS_TIME_H
1979# undef HAVE_SYS_TYPES_H
1980#elif (ACC_CC_BORLANDC)
1981# undef HAVE_UNISTD_H
1982# undef HAVE_SYS_TIME_H
1983# if (ACC_OS_WIN32 || ACC_OS_WIN64)
1984# undef HAVE_DIRENT_H
1985# endif
1986# if (__BORLANDC__ < 0x0400)
1987# undef HAVE_DIRENT_H
1988# undef HAVE_UTIME_H
1989# endif
1990#elif (ACC_CC_DMC)
1991# undef HAVE_DIRENT_H
1992# undef HAVE_UNISTD_H
1993# define HAVE_SYS_DIRENT_H 1
1994#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
1995#elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
1996# define HAVE_ALLOCA_H 1
1997# undef HAVE_DIRENT_H
1998# undef HAVE_UNISTD_H
1999#elif (ACC_CC_IBMC && ACC_OS_OS2)
2000# undef HAVE_DOS_H
2001# undef HAVE_DIRENT_H
2002# undef HAVE_UNISTD_H
2003# undef HAVE_UTIME_H
2004# undef HAVE_SYS_TIME_H
2005# define HAVE_SYS_UTIME_H 1
2006#elif (ACC_CC_INTELC || ACC_CC_MSC)
2007# undef HAVE_DIRENT_H
2008# undef HAVE_UNISTD_H
2009# undef HAVE_UTIME_H
2010# undef HAVE_SYS_TIME_H
2011# define HAVE_SYS_UTIME_H 1
2012#elif (ACC_CC_LCCWIN32)
2013# undef HAVE_DIRENT_H
2014# undef HAVE_DOS_H
2015# undef HAVE_UNISTD_H
2016# undef HAVE_SYS_TIME_H
2017#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__MINGW32__)
2018# undef HAVE_UTIME_H
2019# define HAVE_SYS_UTIME_H 1
2020#elif (ACC_OS_WIN32 && ACC_LIBC_MSL)
2021# define HAVE_ALLOCA_H 1
2022# undef HAVE_DOS_H
2023# undef HAVE_SHARE_H
2024# undef HAVE_SYS_TIME_H
2025#elif (ACC_CC_NDPC)
2026# undef HAVE_DIRENT_H
2027# undef HAVE_DOS_H
2028# undef HAVE_UNISTD_H
2029# undef HAVE_UTIME_H
2030# undef HAVE_SYS_TIME_H
2031#elif (ACC_CC_PACIFICC)
2032# undef HAVE_DIRECT_H
2033# undef HAVE_DIRENT_H
2034# undef HAVE_FCNTL_H
2035# undef HAVE_IO_H
2036# undef HAVE_MALLOC_H
2037# undef HAVE_MEMORY_H
2038# undef HAVE_SHARE_H
2039# undef HAVE_UNISTD_H
2040# undef HAVE_UTIME_H
2041# undef HAVE_SYS_STAT_H
2042# undef HAVE_SYS_TIME_H
2043# undef HAVE_SYS_TYPES_H
2044#elif (ACC_OS_WIN32 && ACC_CC_PELLESC)
2045# undef HAVE_DIRENT_H
2046# undef HAVE_DOS_H
2047# undef HAVE_MALLOC_H
2048# undef HAVE_SHARE_H
2049# undef HAVE_UNISTD_H
2050# undef HAVE_UTIME_H
2051# undef HAVE_SYS_TIME_H
2052# if (__POCC__ < 280)
2053# else
2054# define HAVE_SYS_UTIME_H 1
2055# endif
2056#elif (ACC_OS_WIN32 && ACC_CC_PGI) && defined(__MINGW32__)
2057# undef HAVE_UTIME_H
2058# define HAVE_SYS_UTIME_H 1
2059#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
2060#elif (ACC_CC_SYMANTECC)
2061# undef HAVE_DIRENT_H
2062# undef HAVE_UNISTD_H
2063# if (__SC__ < 0x700)
2064# undef HAVE_UTIME_H
2065# undef HAVE_SYS_TIME_H
2066# endif
2067#elif (ACC_CC_TOPSPEEDC)
2068# undef HAVE_DIRENT_H
2069# undef HAVE_UNISTD_H
2070# undef HAVE_UTIME_H
2071# undef HAVE_SYS_STAT_H
2072# undef HAVE_SYS_TIME_H
2073# undef HAVE_SYS_TYPES_H
2074#elif (ACC_CC_TURBOC)
2075# undef HAVE_UNISTD_H
2076# undef HAVE_SYS_TIME_H
2077# undef HAVE_SYS_TYPES_H
2078# if (ACC_OS_WIN32 || ACC_OS_WIN64)
2079# undef HAVE_DIRENT_H
2080# endif
2081# if (__TURBOC__ < 0x0200)
2082# undef HAVE_SIGNAL_H
2083# endif
2084# if (__TURBOC__ < 0x0400)
2085# undef HAVE_DIRECT_H
2086# undef HAVE_DIRENT_H
2087# undef HAVE_MALLOC_H
2088# undef HAVE_MEMORY_H
2089# undef HAVE_UTIME_H
2090# endif
2091#elif (ACC_CC_WATCOMC)
2092# undef HAVE_DIRENT_H
2093# undef HAVE_UTIME_H
2094# undef HAVE_SYS_TIME_H
2095# define HAVE_SYS_UTIME_H 1
2096# if (__WATCOMC__ < 950)
2097# undef HAVE_UNISTD_H
2098# endif
2099#elif (ACC_CC_ZORTECHC)
2100# undef HAVE_DIRENT_H
2101# undef HAVE_MEMORY_H
2102# undef HAVE_UNISTD_H
2103# undef HAVE_UTIME_H
2104# undef HAVE_SYS_TIME_H
2105#endif
2106#endif
2107#if (ACC_OS_CONSOLE)
2108# undef HAVE_DIRENT_H
2109#endif
2110#if (ACC_OS_EMBEDDED)
2111# undef HAVE_DIRENT_H
2112#endif
2113#if (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99)
2114# undef HAVE_DIRENT_H
2115# undef HAVE_FCNTL_H
2116# undef HAVE_MALLOC_H
2117# undef HAVE_UNISTD_H
2118# undef HAVE_UTIME_H
2119# undef HAVE_SYS_STAT_H
2120# undef HAVE_SYS_TIME_H
2121# undef HAVE_SYS_TYPES_H
2122#endif
2123#if (ACC_LIBC_GLIBC >= 0x020100ul)
2124# define HAVE_STDINT_H 1
2125#elif (ACC_LIBC_DIETLIBC)
2126# undef HAVE_STDINT_H
2127#elif (ACC_LIBC_UCLIBC)
2128# define HAVE_STDINT_H 1
2129#elif (ACC_CC_BORLANDC) && (__BORLANDC__ >= 0x560)
2130# undef HAVE_STDINT_H
2131#elif (ACC_CC_DMC) && (__DMC__ >= 0x825)
2132# define HAVE_STDINT_H 1
2133#endif
2134#if (HAVE_SYS_TIME_H && HAVE_TIME_H)
2135# define TIME_WITH_SYS_TIME 1
2136#endif
2137#endif
2138#endif
2139#if !defined(ACC_CFG_AUTO_NO_FUNCTIONS)
2140#if defined(ACC_LIBC_NAKED)
2141#elif defined(ACC_LIBC_FREESTANDING)
2142#elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
2143# define HAVE_LONGJMP 1
2144# define HAVE_MEMCMP 1
2145# define HAVE_MEMCPY 1
2146# define HAVE_MEMMOVE 1
2147# define HAVE_MEMSET 1
2148# define HAVE_SETJMP 1
2149#else
2150#define HAVE_ACCESS 1
2151#define HAVE_ALLOCA 1
2152#define HAVE_ATEXIT 1
2153#define HAVE_ATOI 1
2154#define HAVE_ATOL 1
2155#define HAVE_CHMOD 1
2156#define HAVE_CHOWN 1
2157#define HAVE_CTIME 1
2158#define HAVE_DIFFTIME 1
2159#define HAVE_FILENO 1
2160#define HAVE_FSTAT 1
2161#define HAVE_GETENV 1
2162#define HAVE_GETTIMEOFDAY 1
2163#define HAVE_GMTIME 1
2164#define HAVE_ISATTY 1
2165#define HAVE_LOCALTIME 1
2166#define HAVE_LONGJMP 1
2167#define HAVE_LSTAT 1
2168#define HAVE_MEMCMP 1
2169#define HAVE_MEMCPY 1
2170#define HAVE_MEMMOVE 1
2171#define HAVE_MEMSET 1
2172#define HAVE_MKDIR 1
2173#define HAVE_MKTIME 1
2174#define HAVE_QSORT 1
2175#define HAVE_RAISE 1
2176#define HAVE_RMDIR 1
2177#define HAVE_SETJMP 1
2178#define HAVE_SIGNAL 1
2179#define HAVE_SNPRINTF 1
2180#define HAVE_STAT 1
2181#define HAVE_STRCHR 1
2182#define HAVE_STRDUP 1
2183#define HAVE_STRERROR 1
2184#define HAVE_STRFTIME 1
2185#define HAVE_STRRCHR 1
2186#define HAVE_STRSTR 1
2187#define HAVE_TIME 1
2188#define HAVE_UMASK 1
2189#define HAVE_UTIME 1
2190#define HAVE_VSNPRINTF 1
2191#if (ACC_OS_BEOS || ACC_OS_CYGWIN || ACC_OS_POSIX || ACC_OS_QNX || ACC_OS_VMS)
2192# define HAVE_STRCASECMP 1
2193# define HAVE_STRNCASECMP 1
2194#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
2195# define HAVE_STRCASECMP 1
2196# define HAVE_STRNCASECMP 1
2197#else
2198# define HAVE_STRICMP 1
2199# define HAVE_STRNICMP 1
2200#endif
2201#if (ACC_OS_POSIX)
2202# if (ACC_OS_POSIX_AIX)
2203# define HAVE_GETRUSAGE 1
2204# elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
2205# undef HAVE_CHOWN
2206# undef HAVE_LSTAT
2207# elif (ACC_OS_POSIX_UNICOS)
2208# undef HAVE_ALLOCA
2209# undef HAVE_SNPRINTF
2210# undef HAVE_VSNPRINTF
2211# endif
2212# if (ACC_CC_TINYC)
2213# undef HAVE_ALLOCA
2214# endif
2215# if (ACC_LIBC_DIETLIBC || ACC_LIBC_GLIBC || ACC_LIBC_UCLIBC)
2216# define HAVE_GETRUSAGE 1
2217# define HAVE_GETPAGESIZE 1
2218# define HAVE_MMAP 1
2219# define HAVE_MPROTECT 1
2220# define HAVE_MUNMAP 1
2221# endif
2222#elif (ACC_OS_CYGWIN)
2223# if (ACC_CC_GNUC < 0x025a00ul)
2224# undef HAVE_GETTIMEOFDAY
2225# undef HAVE_LSTAT
2226# endif
2227# if (ACC_CC_GNUC < 0x025f00ul)
2228# undef HAVE_SNPRINTF
2229# undef HAVE_VSNPRINTF
2230# endif
2231#elif (ACC_OS_EMX)
2232# undef HAVE_CHOWN
2233# undef HAVE_LSTAT
2234#elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
2235# if !defined(__MINT__)
2236# undef HAVE_SNPRINTF
2237# undef HAVE_VSNPRINTF
2238# endif
2239#elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
2240# undef HAVE_ALLOCA
2241# undef HAVE_ACCESS
2242# undef HAVE_CHMOD
2243# undef HAVE_CHOWN
2244# undef HAVE_FSTAT
2245# undef HAVE_GETTIMEOFDAY
2246# undef HAVE_LSTAT
2247# undef HAVE_SNPRINTF
2248# undef HAVE_UMASK
2249# undef HAVE_UTIME
2250# undef HAVE_VSNPRINTF
2251#endif
2252#if (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
2253#undef HAVE_CHOWN
2254#undef HAVE_GETTIMEOFDAY
2255#undef HAVE_LSTAT
2256#undef HAVE_UMASK
2257#if (ACC_CC_AZTECC)
2258# undef HAVE_ALLOCA
2259# undef HAVE_DIFFTIME
2260# undef HAVE_FSTAT
2261# undef HAVE_STRDUP
2262# undef HAVE_SNPRINTF
2263# undef HAVE_UTIME
2264# undef HAVE_VSNPRINTF
2265#elif (ACC_CC_BORLANDC)
2266# if (__BORLANDC__ < 0x0400)
2267# undef HAVE_ALLOCA
2268# undef HAVE_UTIME
2269# endif
2270# if ((__BORLANDC__ < 0x0410) && ACC_OS_WIN16)
2271# undef HAVE_ALLOCA
2272# endif
2273# if (__BORLANDC__ < 0x0550)
2274# undef HAVE_SNPRINTF
2275# undef HAVE_VSNPRINTF
2276# endif
2277#elif (ACC_CC_DMC)
2278# if (ACC_OS_WIN16)
2279# undef HAVE_ALLOCA
2280# endif
2281# define snprintf _snprintf
2282# define vsnprintf _vsnprintf
2283#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
2284# undef HAVE_SNPRINTF
2285# undef HAVE_VSNPRINTF
2286#elif (ACC_OS_DOS32 && ACC_CC_HIGHC)
2287# undef HAVE_SNPRINTF
2288# undef HAVE_VSNPRINTF
2289#elif (ACC_CC_IBMC)
2290# undef HAVE_SNPRINTF
2291# undef HAVE_VSNPRINTF
2292#elif (ACC_CC_INTELC)
2293# define snprintf _snprintf
2294# define vsnprintf _vsnprintf
2295#elif (ACC_CC_LCCWIN32)
2296# define utime _utime
2297#elif (ACC_CC_MSC)
2298# if (_MSC_VER < 600)
2299# undef HAVE_STRFTIME
2300# endif
2301# if (_MSC_VER < 700)
2302# undef HAVE_SNPRINTF
2303# undef HAVE_VSNPRINTF
2304# elif (_MSC_VER < 1500)
2305# define snprintf _snprintf
2306# define vsnprintf _vsnprintf
2307# endif
2308# if ((_MSC_VER < 800) && ACC_OS_WIN16)
2309# undef HAVE_ALLOCA
2310# endif
2311# if (ACC_ARCH_I086) && defined(__cplusplus)
2312# undef HAVE_LONGJMP
2313# undef HAVE_SETJMP
2314# endif
2315#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__MINGW32__)
2316# if (ACC_CC_GNUC < 0x025f00ul)
2317# undef HAVE_SNPRINTF
2318# undef HAVE_VSNPRINTF
2319# else
2320# define snprintf _snprintf
2321# define vsnprintf _vsnprintf
2322# endif
2323#elif (ACC_OS_WIN32 && ACC_LIBC_MSL)
2324# if (__MSL__ < 0x8000ul)
2325# undef HAVE_CHMOD
2326# endif
2327#elif (ACC_CC_NDPC)
2328# undef HAVE_ALLOCA
2329# undef HAVE_SNPRINTF
2330# undef HAVE_STRNICMP
2331# undef HAVE_UTIME
2332# undef HAVE_VSNPRINTF
2333# if defined(__cplusplus)
2334# undef HAVE_STAT
2335# endif
2336#elif (ACC_CC_PACIFICC)
2337# undef HAVE_ACCESS
2338# undef HAVE_ALLOCA
2339# undef HAVE_CHMOD
2340# undef HAVE_DIFFTIME
2341# undef HAVE_FSTAT
2342# undef HAVE_MKTIME
2343# undef HAVE_RAISE
2344# undef HAVE_SNPRINTF
2345# undef HAVE_STRFTIME
2346# undef HAVE_UTIME
2347# undef HAVE_VSNPRINTF
2348#elif (ACC_OS_WIN32 && ACC_CC_PELLESC)
2349# if (__POCC__ < 280)
2350# define alloca _alloca
2351# undef HAVE_UTIME
2352# endif
2353#elif (ACC_OS_WIN32 && ACC_CC_PGI) && defined(__MINGW32__)
2354# define snprintf _snprintf
2355# define vsnprintf _vsnprintf
2356#elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
2357# undef HAVE_SNPRINTF
2358# undef HAVE_VSNPRINTF
2359#elif (ACC_CC_SYMANTECC)
2360# if (ACC_OS_WIN16 && (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE))
2361# undef HAVE_ALLOCA
2362# endif
2363# if (__SC__ < 0x600)
2364# undef HAVE_SNPRINTF
2365# undef HAVE_VSNPRINTF
2366# else
2367# define snprintf _snprintf
2368# define vsnprintf _vsnprintf
2369# endif
2370# if (__SC__ < 0x700)
2371# undef HAVE_DIFFTIME
2372# undef HAVE_UTIME
2373# endif
2374#elif (ACC_CC_TOPSPEEDC)
2375# undef HAVE_SNPRINTF
2376# undef HAVE_VSNPRINTF
2377#elif (ACC_CC_TURBOC)
2378# undef HAVE_ALLOCA
2379# undef HAVE_SNPRINTF
2380# undef HAVE_VSNPRINTF
2381# if (__TURBOC__ < 0x0200)
2382# undef HAVE_RAISE
2383# undef HAVE_SIGNAL
2384# endif
2385# if (__TURBOC__ < 0x0295)
2386# undef HAVE_MKTIME
2387# undef HAVE_STRFTIME
2388# endif
2389# if (__TURBOC__ < 0x0400)
2390# undef HAVE_UTIME
2391# endif
2392#elif (ACC_CC_WATCOMC)
2393# if (__WATCOMC__ < 1100)
2394# undef HAVE_SNPRINTF
2395# undef HAVE_VSNPRINTF
2396# elif (__WATCOMC__ < 1200)
2397# define snprintf _snprintf
2398# define vsnprintf _vsnprintf
2399# endif
2400#elif (ACC_CC_ZORTECHC)
2401# if (ACC_OS_WIN16 && (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE))
2402# undef HAVE_ALLOCA
2403# endif
2404# undef HAVE_DIFFTIME
2405# undef HAVE_SNPRINTF
2406# undef HAVE_UTIME
2407# undef HAVE_VSNPRINTF
2408#endif
2409#endif
2410#if (ACC_OS_CONSOLE)
2411# undef HAVE_ACCESS
2412# undef HAVE_CHMOD
2413# undef HAVE_CHOWN
2414# undef HAVE_GETTIMEOFDAY
2415# undef HAVE_LSTAT
2416# undef HAVE_TIME
2417# undef HAVE_UMASK
2418# undef HAVE_UTIME
2419#endif
2420#if (ACC_LIBC_ISOC90 || ACC_LIBC_ISOC99)
2421# undef HAVE_ACCESS
2422# undef HAVE_CHMOD
2423# undef HAVE_CHOWN
2424# undef HAVE_FSTAT
2425# undef HAVE_GETTIMEOFDAY
2426# undef HAVE_LSTAT
2427# undef HAVE_STAT
2428# undef HAVE_UMASK
2429# undef HAVE_UTIME
2430# if 1
2431# undef HAVE_ALLOCA
2432# undef HAVE_ISATTY
2433# undef HAVE_MKDIR
2434# undef HAVE_RMDIR
2435# undef HAVE_STRDUP
2436# undef HAVE_STRICMP
2437# undef HAVE_STRNICMP
2438# endif
2439#endif
2440#endif
2441#endif
2442#if !defined(ACC_CFG_AUTO_NO_SIZES)
2443#if !defined(SIZEOF_SHORT) && defined(ACC_SIZEOF_SHORT)
2444# define SIZEOF_SHORT ACC_SIZEOF_SHORT
2445#endif
2446#if !defined(SIZEOF_INT) && defined(ACC_SIZEOF_INT)
2447# define SIZEOF_INT ACC_SIZEOF_INT
2448#endif
2449#if !defined(SIZEOF_LONG) && defined(ACC_SIZEOF_LONG)
2450# define SIZEOF_LONG ACC_SIZEOF_LONG
2451#endif
2452#if !defined(SIZEOF_LONG_LONG) && defined(ACC_SIZEOF_LONG_LONG)
2453# define SIZEOF_LONG_LONG ACC_SIZEOF_LONG_LONG
2454#endif
2455#if !defined(SIZEOF___INT32) && defined(ACC_SIZEOF___INT32)
2456# define SIZEOF___INT32 ACC_SIZEOF___INT32
2457#endif
2458#if !defined(SIZEOF___INT64) && defined(ACC_SIZEOF___INT64)
2459# define SIZEOF___INT64 ACC_SIZEOF___INT64
2460#endif
2461#if !defined(SIZEOF_VOID_P) && defined(ACC_SIZEOF_VOID_P)
2462# define SIZEOF_VOID_P ACC_SIZEOF_VOID_P
2463#endif
2464#if !defined(SIZEOF_SIZE_T) && defined(ACC_SIZEOF_SIZE_T)
2465# define SIZEOF_SIZE_T ACC_SIZEOF_SIZE_T
2466#endif
2467#if !defined(SIZEOF_PTRDIFF_T) && defined(ACC_SIZEOF_PTRDIFF_T)
2468# define SIZEOF_PTRDIFF_T ACC_SIZEOF_PTRDIFF_T
2469#endif
2470#endif
2471#if defined(HAVE_SIGNAL) && !defined(RETSIGTYPE)
2472# define RETSIGTYPE void
2473#endif
2474#endif
2475#if defined(ACC_CFG_NO_ACC_TYPE_H)
2476#else
2477#if (ACC_SIZEOF_LONG_LONG+0 > 0)
2478__acc_gnuc_extension__ typedef long long acc_llong_t;
2479__acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
2480#endif
2481#if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
2482# error "missing defines for sizes"
2483#endif
2484#if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
2485# error "missing defines for sizes"
2486#endif
2487#if !defined(acc_int16e_t)
2488#if (ACC_SIZEOF_LONG == 2)
2489# define acc_int16e_t long
2490# define acc_uint16e_t unsigned long
2491#elif (ACC_SIZEOF_INT == 2)
2492# define acc_int16e_t int
2493# define acc_uint16e_t unsigned int
2494#elif (ACC_SIZEOF_SHORT == 2)
2495# define acc_int16e_t short int
2496# define acc_uint16e_t unsigned short int
2497#elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_GNUC >= 0x025f00ul || ACC_CC_LLVM)
2498 typedef int __acc_int16e_hi_t __attribute__((__mode__(__HI__)));
2499 typedef unsigned int __acc_uint16e_hi_t __attribute__((__mode__(__HI__)));
2500# define acc_int16e_t __acc_int16e_hi_t
2501# define acc_uint16e_t __acc_uint16e_hi_t
2502#elif (ACC_SIZEOF___INT16 == 2)
2503# define acc_int16e_t __int16
2504# define acc_uint16e_t unsigned __int16
2505#else
2506#endif
2507#endif
2508#if defined(acc_int16e_t)
2509# define ACC_SIZEOF_ACC_INT16E_T 2
2510#endif
2511#if !defined(acc_int32e_t)
2512#if (ACC_SIZEOF_LONG == 4)
2513# define acc_int32e_t long int
2514# define acc_uint32e_t unsigned long int
2515#elif (ACC_SIZEOF_INT == 4)
2516# define acc_int32e_t int
2517# define acc_uint32e_t unsigned int
2518#elif (ACC_SIZEOF_SHORT == 4)
2519# define acc_int32e_t short int
2520# define acc_uint32e_t unsigned short int
2521#elif (ACC_SIZEOF_LONG_LONG == 4)
2522# define acc_int32e_t acc_llong_t
2523# define acc_uint32e_t acc_ullong_t
2524#elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
2525 typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
2526 typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
2527# define acc_int32e_t __acc_int32e_si_t
2528# define acc_uint32e_t __acc_uint32e_si_t
2529#elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
2530 typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
2531 typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
2532# define acc_int32e_t __acc_int32e_si_t
2533# define acc_uint32e_t __acc_uint32e_si_t
2534# define ACC_INT32_C(c) c##LL
2535# define ACC_UINT32_C(c) c##ULL
2536#elif (ACC_SIZEOF___INT32 == 4)
2537# define acc_int32e_t __int32
2538# define acc_uint32e_t unsigned __int32
2539#else
2540#endif
2541#endif
2542#if defined(acc_int32e_t)
2543# define ACC_SIZEOF_ACC_INT32E_T 4
2544#endif
2545#if !defined(acc_int64e_t)
2546#if (ACC_SIZEOF___INT64 == 8)
2547# if (ACC_CC_BORLANDC) && !defined(ACC_CFG_TYPE_PREFER___INT64)
2548# define ACC_CFG_TYPE_PREFER___INT64 1
2549# endif
2550#endif
2551#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
2552# define acc_int64e_t int
2553# define acc_uint64e_t unsigned int
2554# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_INT
2555#elif (ACC_SIZEOF_LONG == 8)
2556# define acc_int64e_t long int
2557# define acc_uint64e_t unsigned long int
2558# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG
2559#elif (ACC_SIZEOF_LONG_LONG == 8) && !defined(ACC_CFG_TYPE_PREFER___INT64)
2560# define acc_int64e_t acc_llong_t
2561# define acc_uint64e_t acc_ullong_t
2562# if (ACC_CC_BORLANDC)
2563# define ACC_INT64_C(c) ((c) + 0ll)
2564# define ACC_UINT64_C(c) ((c) + 0ull)
2565# else
2566# define ACC_INT64_C(c) c##LL
2567# define ACC_UINT64_C(c) c##ULL
2568# endif
2569# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG_LONG
2570#elif (ACC_SIZEOF___INT64 == 8)
2571# define acc_int64e_t __int64
2572# define acc_uint64e_t unsigned __int64
2573# if (ACC_CC_BORLANDC)
2574# define ACC_INT64_C(c) ((c) + 0i64)
2575# define ACC_UINT64_C(c) ((c) + 0ui64)
2576# else
2577# define ACC_INT64_C(c) c##i64
2578# define ACC_UINT64_C(c) c##ui64
2579# endif
2580# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF___INT64
2581#else
2582#endif
2583#endif
2584#if !defined(acc_int32l_t)
2585#if defined(acc_int32e_t)
2586# define acc_int32l_t acc_int32e_t
2587# define acc_uint32l_t acc_uint32e_t
2588# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32E_T
2589#elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
2590# define acc_int32l_t int
2591# define acc_uint32l_t unsigned int
2592# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_INT
2593#elif (ACC_SIZEOF_LONG >= 4)
2594# define acc_int32l_t long int
2595# define acc_uint32l_t unsigned long int
2596# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_LONG
2597#else
2598# error "acc_int32l_t"
2599#endif
2600#endif
2601#if !defined(acc_int64l_t)
2602#if defined(acc_int64e_t)
2603# define acc_int64l_t acc_int64e_t
2604# define acc_uint64l_t acc_uint64e_t
2605# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64E_T
2606#else
2607#endif
2608#endif
2609#if !defined(acc_int32f_t)
2610#if (ACC_SIZEOF_SIZE_T >= 8)
2611# define acc_int32f_t acc_int64l_t
2612# define acc_uint32f_t acc_uint64l_t
2613# define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT64L_T
2614#else
2615# define acc_int32f_t acc_int32l_t
2616# define acc_uint32f_t acc_uint32l_t
2617# define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32L_T
2618#endif
2619#endif
2620#if !defined(acc_intptr_t)
2621#if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
2622# define __ACC_INTPTR_T_IS_POINTER 1
2623 typedef char* acc_intptr_t;
2624 typedef char* acc_uintptr_t;
2625# define acc_intptr_t acc_intptr_t
2626# define acc_uintptr_t acc_uintptr_t
2627# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_VOID_P
2628#elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
2629 typedef __w64 int acc_intptr_t;
2630 typedef __w64 unsigned int acc_uintptr_t;
2631# define acc_intptr_t acc_intptr_t
2632# define acc_uintptr_t acc_uintptr_t
2633# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
2634#elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
2635# define acc_intptr_t short
2636# define acc_uintptr_t unsigned short
2637# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_SHORT
2638#elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
2639# define acc_intptr_t int
2640# define acc_uintptr_t unsigned int
2641# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
2642#elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
2643# define acc_intptr_t long
2644# define acc_uintptr_t unsigned long
2645# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_LONG
2646#elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
2647# define acc_intptr_t acc_int64l_t
2648# define acc_uintptr_t acc_uint64l_t
2649# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INT64L_T
2650#else
2651# error "acc_intptr_t"
2652#endif
2653#endif
2654#if !defined(acc_word_t)
2655#if defined(ACC_WORDSIZE) && (ACC_WORDSIZE > 0)
2656#if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !defined(__ACC_INTPTR_T_IS_POINTER)
2657# define acc_word_t acc_uintptr_t
2658# define acc_sword_t acc_intptr_t
2659# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
2660#elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
2661# define acc_word_t unsigned long
2662# define acc_sword_t long
2663# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
2664#elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
2665# define acc_word_t unsigned int
2666# define acc_sword_t int
2667# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
2668#elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
2669# define acc_word_t unsigned short
2670# define acc_sword_t short
2671# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
2672#elif (ACC_WORDSIZE == 1)
2673# define acc_word_t unsigned char
2674# define acc_sword_t signed char
2675# define ACC_SIZEOF_ACC_WORD_T 1
2676#elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
2677# define acc_word_t acc_uint64l_t
2678# define acc_sword_t acc_int64l_t
2679# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
2680#elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
2681#if 0
2682 typedef unsigned acc_word_t __attribute__((__mode__(__V16QI__)));
2683 typedef int acc_sword_t __attribute__((__mode__(__V16QI__)));
2684# define acc_word_t acc_word_t
2685# define acc_sword_t acc_sword_t
2686# define ACC_SIZEOF_ACC_WORD_T 16
2687#endif
2688#else
2689# error "acc_word_t"
2690#endif
2691#endif
2692#endif
2693#if !defined(ACC_INT16_C)
2694# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
2695# define ACC_INT16_C(c) ((c) + 0)
2696# define ACC_UINT16_C(c) ((c) + 0U)
2697# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
2698# define ACC_INT16_C(c) ((c) + 0L)
2699# define ACC_UINT16_C(c) ((c) + 0UL)
2700# elif (ACC_SIZEOF_INT >= 2)
2701# define ACC_INT16_C(c) c
2702# define ACC_UINT16_C(c) c##U
2703# elif (ACC_SIZEOF_LONG >= 2)
2704# define ACC_INT16_C(c) c##L
2705# define ACC_UINT16_C(c) c##UL
2706# else
2707# error "ACC_INT16_C"
2708# endif
2709#endif
2710#if !defined(ACC_INT32_C)
2711# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
2712# define ACC_INT32_C(c) ((c) + 0)
2713# define ACC_UINT32_C(c) ((c) + 0U)
2714# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
2715# define ACC_INT32_C(c) ((c) + 0L)
2716# define ACC_UINT32_C(c) ((c) + 0UL)
2717# elif (ACC_SIZEOF_INT >= 4)
2718# define ACC_INT32_C(c) c
2719# define ACC_UINT32_C(c) c##U
2720# elif (ACC_SIZEOF_LONG >= 4)
2721# define ACC_INT32_C(c) c##L
2722# define ACC_UINT32_C(c) c##UL
2723# elif (ACC_SIZEOF_LONG_LONG >= 4)
2724# define ACC_INT32_C(c) c##LL
2725# define ACC_UINT32_C(c) c##ULL
2726# else
2727# error "ACC_INT32_C"
2728# endif
2729#endif
2730#if !defined(ACC_INT64_C) && defined(acc_int64l_t)
2731# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
2732# define ACC_INT64_C(c) ((c) + 0)
2733# define ACC_UINT64_C(c) ((c) + 0U)
2734# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
2735# define ACC_INT64_C(c) ((c) + 0L)
2736# define ACC_UINT64_C(c) ((c) + 0UL)
2737# elif (ACC_SIZEOF_INT >= 8)
2738# define ACC_INT64_C(c) c
2739# define ACC_UINT64_C(c) c##U
2740# elif (ACC_SIZEOF_LONG >= 8)
2741# define ACC_INT64_C(c) c##L
2742# define ACC_UINT64_C(c) c##UL
2743# else
2744# error "ACC_INT64_C"
2745# endif
2746#endif
2747#if !defined(SIZEOF_ACC_INT16E_T) && defined(ACC_SIZEOF_ACC_INT16E_T)
2748# define SIZEOF_ACC_INT16E_T ACC_SIZEOF_ACC_INT16E_T
2749#endif
2750#if !defined(SIZEOF_ACC_INT32E_T) && defined(ACC_SIZEOF_ACC_INT32E_T)
2751# define SIZEOF_ACC_INT32E_T ACC_SIZEOF_ACC_INT32E_T
2752#endif
2753#if !defined(SIZEOF_ACC_INT64E_T) && defined(ACC_SIZEOF_ACC_INT64E_T)
2754# define SIZEOF_ACC_INT64E_T ACC_SIZEOF_ACC_INT64E_T
2755#endif
2756#if !defined(SIZEOF_ACC_INT32L_T) && defined(ACC_SIZEOF_ACC_INT32L_T)
2757# define SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32L_T
2758#endif
2759#if !defined(SIZEOF_ACC_INT64L_T) && defined(ACC_SIZEOF_ACC_INT64L_T)
2760# define SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64L_T
2761#endif
2762#if !defined(SIZEOF_ACC_INT32F_T) && defined(ACC_SIZEOF_ACC_INT32F_T)
2763# define SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32F_T
2764#endif
2765#if !defined(SIZEOF_ACC_INTPTR_T) && defined(ACC_SIZEOF_ACC_INTPTR_T)
2766# define SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INTPTR_T
2767#endif
2768#if !defined(SIZEOF_ACC_WORD_T) && defined(ACC_SIZEOF_ACC_WORD_T)
2769# define SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_WORD_T
2770#endif
2771#if 1 && !defined(acc_signo_t) && defined(__linux__) && defined(__dietlibc__) && (ACC_SIZEOF_INT != 4)
2772# define acc_signo_t acc_int32e_t
2773#endif
2774#if !defined(acc_signo_t)
2775# define acc_signo_t int
2776#endif
2777#if defined(__cplusplus)
2778extern "C" {
2779#endif
2780#if (ACC_BROKEN_CDECL_ALT_SYNTAX)
2781typedef void __acc_cdecl_sighandler (*acc_sighandler_t)(acc_signo_t);
2782#elif defined(RETSIGTYPE)
2783typedef RETSIGTYPE (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
2784#else
2785typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
2786#endif
2787#if defined(__cplusplus)
2788}
2789#endif
2790# if defined(ACC_CFG_NO_ACC_UA_H)
2791# else
2792#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
2793#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
2794#elif (ACC_CC_INTELC) && defined(_WIN32)
2795#elif (ACC_CC_INTELC && (__INTEL_COMPILER < 700))
2796#elif (ACC_CC_LLVM)
2797#elif (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE)
2798#if !defined(__acc_ua16_t) && (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
2799 typedef struct { __acc_ua_volatile acc_uint16e_t v __attribute__((__packed__)); } __acc_ua16_t;
2800# define __acc_ua16_t __acc_ua16_t
2801#endif
2802#if !defined(__acc_ua32_t) && (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
2803 typedef struct { __acc_ua_volatile acc_uint32e_t v __attribute__((__packed__)); } __acc_ua32_t;
2804# define __acc_ua32_t __acc_ua32_t
2805#endif
2806#if !defined(__acc_ua64_t) && (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
2807 typedef struct { __acc_ua_volatile acc_uint64l_t v __attribute__((__packed__)); } __acc_ua64_t;
2808# define __acc_ua64_t __acc_ua64_t
2809#endif
2810#endif
2811#if (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
2812#define ACC_UA_GET16(p) (* (__acc_ua_volatile const acc_uint16e_t*) (__acc_ua_volatile const void*) (p))
2813#define ACC_UA_SET16(p,v) (* (__acc_ua_volatile acc_uint16e_t*) (__acc_ua_volatile void*) (p) = (acc_uint16e_t) (v))
2814#if (ACC_ABI_BIG_ENDIAN)
2815# define ACC_UA_GET_BE16(p) ACC_UA_GET16(p)
2816# define ACC_UA_SET_BE16(p,v) ACC_UA_SET16(p,v)
2817#elif (ACC_ABI_LITTLE_ENDIAN)
2818# define ACC_UA_GET_LE16(p) ACC_UA_GET16(p)
2819# define ACC_UA_SET_LE16(p,v) ACC_UA_SET16(p,v)
2820#endif
2821#if !defined(ACC_CFG_NO_INLINE_ASM) && defined(__acc_HAVE_forceinline)
2822#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
2823#if !defined(ACC_UA_GET_LE16)
2824extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp);
2825extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
2826 __acc_ua_volatile const acc_uint16e_t* p = (__acc_ua_volatile const acc_uint16e_t*) pp;
2827 unsigned long v;
2828 __asm__ __volatile__("lhbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
2829 return v;
2830}
2831#define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p)
2832#endif
2833#if !defined(ACC_UA_SET_LE16)
2834extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v);
2835extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
2836 __acc_ua_volatile acc_uint16e_t* p = (__acc_ua_volatile acc_uint16e_t*) pp;
2837 __asm__ __volatile__("sthbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
2838}
2839#define ACC_UA_SET_LE16(p,v) __ACC_UA_SET_LE16(p,v)
2840#endif
2841#endif
2842#endif
2843#if !defined(ACC_UA_COPY16)
2844# define ACC_UA_COPY16(d,s) ACC_UA_SET16(d, ACC_UA_GET16(s))
2845#endif
2846#endif
2847#if (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
2848#define ACC_UA_GET32(p) (* (__acc_ua_volatile const acc_uint32e_t*) (__acc_ua_volatile const void*) (p))
2849#define ACC_UA_SET32(p,v) (* (__acc_ua_volatile acc_uint32e_t*) (__acc_ua_volatile void*) (p) = (acc_uint32e_t) (v))
2850#if (ACC_ABI_BIG_ENDIAN)
2851# define ACC_UA_GET_BE32(p) ACC_UA_GET32(p)
2852# define ACC_UA_SET_BE32(p,v) ACC_UA_SET32(p,v)
2853#elif (ACC_ABI_LITTLE_ENDIAN)
2854# define ACC_UA_GET_LE32(p) ACC_UA_GET32(p)
2855# define ACC_UA_SET_LE32(p,v) ACC_UA_SET32(p,v)
2856#endif
2857#if !defined(ACC_CFG_NO_INLINE_ASM) && defined(__acc_HAVE_forceinline)
2858#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
2859#if !defined(ACC_UA_GET_LE32)
2860extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp);
2861extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
2862 __acc_ua_volatile const acc_uint32e_t* p = (__acc_ua_volatile const acc_uint32e_t*) pp;
2863 unsigned long v;
2864 __asm__ __volatile__("lwbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
2865 return v;
2866}
2867#define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p)
2868#endif
2869#if !defined(ACC_UA_SET_LE32)
2870extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v);
2871extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
2872 __acc_ua_volatile acc_uint32e_t* p = (__acc_ua_volatile acc_uint32e_t*) pp;
2873 __asm__ __volatile__("stwbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
2874}
2875#define ACC_UA_SET_LE32(p,v) __ACC_UA_SET_LE32(p,v)
2876#endif
2877#endif
2878#endif
2879#if !defined(ACC_UA_COPY32)
2880# define ACC_UA_COPY32(d,s) ACC_UA_SET32(d, ACC_UA_GET32(s))
2881#endif
2882#endif
2883#if (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
2884#define ACC_UA_GET64(p) (* (__acc_ua_volatile const acc_uint64l_t*) (__acc_ua_volatile const void*) (p))
2885#define ACC_UA_SET64(p,v) (* (__acc_ua_volatile acc_uint64l_t*) (__acc_ua_volatile void*) (p) = (acc_uint64l_t) (v))
2886#if (ACC_ABI_BIG_ENDIAN)
2887# define ACC_UA_GET_BE64(p) ACC_UA_GET64(p)
2888# define ACC_UA_SET_BE64(p,v) ACC_UA_SET64(p,v)
2889#elif (ACC_ABI_LITTLE_ENDIAN)
2890# define ACC_UA_GET_LE64(p) ACC_UA_GET64(p)
2891# define ACC_UA_SET_LE64(p,v) ACC_UA_SET64(p,v)
2892#endif
2893#if !defined(ACC_UA_COPY64)
2894# define ACC_UA_COPY64(d,s) ACC_UA_SET64(d, ACC_UA_GET64(s))
2895#endif
2896#endif
2897# endif
2898#endif
2899#endif
2900#if defined(ACC_WANT_ACC_TYPE_H)
2901# undef ACC_WANT_ACC_TYPE_H
2902# if defined(ACC_CFG_NO_ACC_TYPE_H)
2903# error "ACC_WANT_ACC_TYPE_H with ACC_CFG_NO_ACC_TYPE_H"
2904# endif
2905#if (ACC_SIZEOF_LONG_LONG+0 > 0)
2906__acc_gnuc_extension__ typedef long long acc_llong_t;
2907__acc_gnuc_extension__ typedef unsigned long long acc_ullong_t;
2908#endif
2909#if (!(ACC_SIZEOF_SHORT+0 > 0 && ACC_SIZEOF_INT+0 > 0 && ACC_SIZEOF_LONG+0 > 0))
2910# error "missing defines for sizes"
2911#endif
2912#if (!(ACC_SIZEOF_PTRDIFF_T+0 > 0 && ACC_SIZEOF_SIZE_T+0 > 0 && ACC_SIZEOF_VOID_P+0 > 0))
2913# error "missing defines for sizes"
2914#endif
2915#if !defined(acc_int16e_t)
2916#if (ACC_SIZEOF_LONG == 2)
2917# define acc_int16e_t long
2918# define acc_uint16e_t unsigned long
2919#elif (ACC_SIZEOF_INT == 2)
2920# define acc_int16e_t int
2921# define acc_uint16e_t unsigned int
2922#elif (ACC_SIZEOF_SHORT == 2)
2923# define acc_int16e_t short int
2924# define acc_uint16e_t unsigned short int
2925#elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_HI) && (ACC_CC_GNUC >= 0x025f00ul || ACC_CC_LLVM)
2926 typedef int __acc_int16e_hi_t __attribute__((__mode__(__HI__)));
2927 typedef unsigned int __acc_uint16e_hi_t __attribute__((__mode__(__HI__)));
2928# define acc_int16e_t __acc_int16e_hi_t
2929# define acc_uint16e_t __acc_uint16e_hi_t
2930#elif (ACC_SIZEOF___INT16 == 2)
2931# define acc_int16e_t __int16
2932# define acc_uint16e_t unsigned __int16
2933#else
2934#endif
2935#endif
2936#if defined(acc_int16e_t)
2937# define ACC_SIZEOF_ACC_INT16E_T 2
2938#endif
2939#if !defined(acc_int32e_t)
2940#if (ACC_SIZEOF_LONG == 4)
2941# define acc_int32e_t long int
2942# define acc_uint32e_t unsigned long int
2943#elif (ACC_SIZEOF_INT == 4)
2944# define acc_int32e_t int
2945# define acc_uint32e_t unsigned int
2946#elif (ACC_SIZEOF_SHORT == 4)
2947# define acc_int32e_t short int
2948# define acc_uint32e_t unsigned short int
2949#elif (ACC_SIZEOF_LONG_LONG == 4)
2950# define acc_int32e_t acc_llong_t
2951# define acc_uint32e_t acc_ullong_t
2952#elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul || ACC_CC_LLVM) && (__INT_MAX__+0 > 2147483647L)
2953 typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
2954 typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
2955# define acc_int32e_t __acc_int32e_si_t
2956# define acc_uint32e_t __acc_uint32e_si_t
2957#elif 1 && !defined(ACC_CFG_TYPE_NO_MODE_SI) && (ACC_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L)
2958 typedef int __acc_int32e_si_t __attribute__((__mode__(__SI__)));
2959 typedef unsigned int __acc_uint32e_si_t __attribute__((__mode__(__SI__)));
2960# define acc_int32e_t __acc_int32e_si_t
2961# define acc_uint32e_t __acc_uint32e_si_t
2962# define ACC_INT32_C(c) c##LL
2963# define ACC_UINT32_C(c) c##ULL
2964#elif (ACC_SIZEOF___INT32 == 4)
2965# define acc_int32e_t __int32
2966# define acc_uint32e_t unsigned __int32
2967#else
2968#endif
2969#endif
2970#if defined(acc_int32e_t)
2971# define ACC_SIZEOF_ACC_INT32E_T 4
2972#endif
2973#if !defined(acc_int64e_t)
2974#if (ACC_SIZEOF___INT64 == 8)
2975# if (ACC_CC_BORLANDC) && !defined(ACC_CFG_TYPE_PREFER___INT64)
2976# define ACC_CFG_TYPE_PREFER___INT64 1
2977# endif
2978#endif
2979#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
2980# define acc_int64e_t int
2981# define acc_uint64e_t unsigned int
2982# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_INT
2983#elif (ACC_SIZEOF_LONG == 8)
2984# define acc_int64e_t long int
2985# define acc_uint64e_t unsigned long int
2986# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG
2987#elif (ACC_SIZEOF_LONG_LONG == 8) && !defined(ACC_CFG_TYPE_PREFER___INT64)
2988# define acc_int64e_t acc_llong_t
2989# define acc_uint64e_t acc_ullong_t
2990# if (ACC_CC_BORLANDC)
2991# define ACC_INT64_C(c) ((c) + 0ll)
2992# define ACC_UINT64_C(c) ((c) + 0ull)
2993# else
2994# define ACC_INT64_C(c) c##LL
2995# define ACC_UINT64_C(c) c##ULL
2996# endif
2997# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF_LONG_LONG
2998#elif (ACC_SIZEOF___INT64 == 8)
2999# define acc_int64e_t __int64
3000# define acc_uint64e_t unsigned __int64
3001# if (ACC_CC_BORLANDC)
3002# define ACC_INT64_C(c) ((c) + 0i64)
3003# define ACC_UINT64_C(c) ((c) + 0ui64)
3004# else
3005# define ACC_INT64_C(c) c##i64
3006# define ACC_UINT64_C(c) c##ui64
3007# endif
3008# define ACC_SIZEOF_ACC_INT64E_T ACC_SIZEOF___INT64
3009#else
3010#endif
3011#endif
3012#if !defined(acc_int32l_t)
3013#if defined(acc_int32e_t)
3014# define acc_int32l_t acc_int32e_t
3015# define acc_uint32l_t acc_uint32e_t
3016# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32E_T
3017#elif (ACC_SIZEOF_INT >= 4) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
3018# define acc_int32l_t int
3019# define acc_uint32l_t unsigned int
3020# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_INT
3021#elif (ACC_SIZEOF_LONG >= 4)
3022# define acc_int32l_t long int
3023# define acc_uint32l_t unsigned long int
3024# define ACC_SIZEOF_ACC_INT32L_T ACC_SIZEOF_LONG
3025#else
3026# error "acc_int32l_t"
3027#endif
3028#endif
3029#if !defined(acc_int64l_t)
3030#if defined(acc_int64e_t)
3031# define acc_int64l_t acc_int64e_t
3032# define acc_uint64l_t acc_uint64e_t
3033# define ACC_SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64E_T
3034#else
3035#endif
3036#endif
3037#if !defined(acc_int32f_t)
3038#if (ACC_SIZEOF_SIZE_T >= 8)
3039# define acc_int32f_t acc_int64l_t
3040# define acc_uint32f_t acc_uint64l_t
3041# define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT64L_T
3042#else
3043# define acc_int32f_t acc_int32l_t
3044# define acc_uint32f_t acc_uint32l_t
3045# define ACC_SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32L_T
3046#endif
3047#endif
3048#if !defined(acc_intptr_t)
3049#if 1 && (ACC_OS_OS400 && (ACC_SIZEOF_VOID_P == 16))
3050# define __ACC_INTPTR_T_IS_POINTER 1
3051 typedef char* acc_intptr_t;
3052 typedef char* acc_uintptr_t;
3053# define acc_intptr_t acc_intptr_t
3054# define acc_uintptr_t acc_uintptr_t
3055# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_VOID_P
3056#elif (ACC_CC_MSC && (_MSC_VER >= 1300) && (ACC_SIZEOF_VOID_P == 4) && (ACC_SIZEOF_INT == 4))
3057 typedef __w64 int acc_intptr_t;
3058 typedef __w64 unsigned int acc_uintptr_t;
3059# define acc_intptr_t acc_intptr_t
3060# define acc_uintptr_t acc_uintptr_t
3061# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
3062#elif (ACC_SIZEOF_SHORT == ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT > ACC_SIZEOF_VOID_P)
3063# define acc_intptr_t short
3064# define acc_uintptr_t unsigned short
3065# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_SHORT
3066#elif (ACC_SIZEOF_INT >= ACC_SIZEOF_VOID_P) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
3067# define acc_intptr_t int
3068# define acc_uintptr_t unsigned int
3069# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_INT
3070#elif (ACC_SIZEOF_LONG >= ACC_SIZEOF_VOID_P)
3071# define acc_intptr_t long
3072# define acc_uintptr_t unsigned long
3073# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_LONG
3074#elif (ACC_SIZEOF_ACC_INT64L_T >= ACC_SIZEOF_VOID_P)
3075# define acc_intptr_t acc_int64l_t
3076# define acc_uintptr_t acc_uint64l_t
3077# define ACC_SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INT64L_T
3078#else
3079# error "acc_intptr_t"
3080#endif
3081#endif
3082#if !defined(acc_word_t)
3083#if defined(ACC_WORDSIZE) && (ACC_WORDSIZE > 0)
3084#if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !defined(__ACC_INTPTR_T_IS_POINTER)
3085# define acc_word_t acc_uintptr_t
3086# define acc_sword_t acc_intptr_t
3087# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
3088#elif (ACC_WORDSIZE == ACC_SIZEOF_LONG)
3089# define acc_word_t unsigned long
3090# define acc_sword_t long
3091# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_LONG
3092#elif (ACC_WORDSIZE == ACC_SIZEOF_INT)
3093# define acc_word_t unsigned int
3094# define acc_sword_t int
3095# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_INT
3096#elif (ACC_WORDSIZE == ACC_SIZEOF_SHORT)
3097# define acc_word_t unsigned short
3098# define acc_sword_t short
3099# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_SHORT
3100#elif (ACC_WORDSIZE == 1)
3101# define acc_word_t unsigned char
3102# define acc_sword_t signed char
3103# define ACC_SIZEOF_ACC_WORD_T 1
3104#elif (ACC_WORDSIZE == ACC_SIZEOF_ACC_INT64L_T)
3105# define acc_word_t acc_uint64l_t
3106# define acc_sword_t acc_int64l_t
3107# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INT64L_T
3108#elif (ACC_ARCH_SPU) && (ACC_CC_GNUC)
3109#if 0
3110 typedef unsigned acc_word_t __attribute__((__mode__(__V16QI__)));
3111 typedef int acc_sword_t __attribute__((__mode__(__V16QI__)));
3112# define acc_word_t acc_word_t
3113# define acc_sword_t acc_sword_t
3114# define ACC_SIZEOF_ACC_WORD_T 16
3115#endif
3116#else
3117# error "acc_word_t"
3118#endif
3119#endif
3120#endif
3121#if !defined(ACC_INT16_C)
3122# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 2)
3123# define ACC_INT16_C(c) ((c) + 0)
3124# define ACC_UINT16_C(c) ((c) + 0U)
3125# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 2)
3126# define ACC_INT16_C(c) ((c) + 0L)
3127# define ACC_UINT16_C(c) ((c) + 0UL)
3128# elif (ACC_SIZEOF_INT >= 2)
3129# define ACC_INT16_C(c) c
3130# define ACC_UINT16_C(c) c##U
3131# elif (ACC_SIZEOF_LONG >= 2)
3132# define ACC_INT16_C(c) c##L
3133# define ACC_UINT16_C(c) c##UL
3134# else
3135# error "ACC_INT16_C"
3136# endif
3137#endif
3138#if !defined(ACC_INT32_C)
3139# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 4)
3140# define ACC_INT32_C(c) ((c) + 0)
3141# define ACC_UINT32_C(c) ((c) + 0U)
3142# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 4)
3143# define ACC_INT32_C(c) ((c) + 0L)
3144# define ACC_UINT32_C(c) ((c) + 0UL)
3145# elif (ACC_SIZEOF_INT >= 4)
3146# define ACC_INT32_C(c) c
3147# define ACC_UINT32_C(c) c##U
3148# elif (ACC_SIZEOF_LONG >= 4)
3149# define ACC_INT32_C(c) c##L
3150# define ACC_UINT32_C(c) c##UL
3151# elif (ACC_SIZEOF_LONG_LONG >= 4)
3152# define ACC_INT32_C(c) c##LL
3153# define ACC_UINT32_C(c) c##ULL
3154# else
3155# error "ACC_INT32_C"
3156# endif
3157#endif
3158#if !defined(ACC_INT64_C) && defined(acc_int64l_t)
3159# if (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_INT >= 8)
3160# define ACC_INT64_C(c) ((c) + 0)
3161# define ACC_UINT64_C(c) ((c) + 0U)
3162# elif (ACC_BROKEN_INTEGRAL_CONSTANTS) && (ACC_SIZEOF_LONG >= 8)
3163# define ACC_INT64_C(c) ((c) + 0L)
3164# define ACC_UINT64_C(c) ((c) + 0UL)
3165# elif (ACC_SIZEOF_INT >= 8)
3166# define ACC_INT64_C(c) c
3167# define ACC_UINT64_C(c) c##U
3168# elif (ACC_SIZEOF_LONG >= 8)
3169# define ACC_INT64_C(c) c##L
3170# define ACC_UINT64_C(c) c##UL
3171# else
3172# error "ACC_INT64_C"
3173# endif
3174#endif
3175#if !defined(SIZEOF_ACC_INT16E_T) && defined(ACC_SIZEOF_ACC_INT16E_T)
3176# define SIZEOF_ACC_INT16E_T ACC_SIZEOF_ACC_INT16E_T
3177#endif
3178#if !defined(SIZEOF_ACC_INT32E_T) && defined(ACC_SIZEOF_ACC_INT32E_T)
3179# define SIZEOF_ACC_INT32E_T ACC_SIZEOF_ACC_INT32E_T
3180#endif
3181#if !defined(SIZEOF_ACC_INT64E_T) && defined(ACC_SIZEOF_ACC_INT64E_T)
3182# define SIZEOF_ACC_INT64E_T ACC_SIZEOF_ACC_INT64E_T
3183#endif
3184#if !defined(SIZEOF_ACC_INT32L_T) && defined(ACC_SIZEOF_ACC_INT32L_T)
3185# define SIZEOF_ACC_INT32L_T ACC_SIZEOF_ACC_INT32L_T
3186#endif
3187#if !defined(SIZEOF_ACC_INT64L_T) && defined(ACC_SIZEOF_ACC_INT64L_T)
3188# define SIZEOF_ACC_INT64L_T ACC_SIZEOF_ACC_INT64L_T
3189#endif
3190#if !defined(SIZEOF_ACC_INT32F_T) && defined(ACC_SIZEOF_ACC_INT32F_T)
3191# define SIZEOF_ACC_INT32F_T ACC_SIZEOF_ACC_INT32F_T
3192#endif
3193#if !defined(SIZEOF_ACC_INTPTR_T) && defined(ACC_SIZEOF_ACC_INTPTR_T)
3194# define SIZEOF_ACC_INTPTR_T ACC_SIZEOF_ACC_INTPTR_T
3195#endif
3196#if !defined(SIZEOF_ACC_WORD_T) && defined(ACC_SIZEOF_ACC_WORD_T)
3197# define SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_WORD_T
3198#endif
3199#if 1 && !defined(acc_signo_t) && defined(__linux__) && defined(__dietlibc__) && (ACC_SIZEOF_INT != 4)
3200# define acc_signo_t acc_int32e_t
3201#endif
3202#if !defined(acc_signo_t)
3203# define acc_signo_t int
3204#endif
3205#if defined(__cplusplus)
3206extern "C" {
3207#endif
3208#if (ACC_BROKEN_CDECL_ALT_SYNTAX)
3209typedef void __acc_cdecl_sighandler (*acc_sighandler_t)(acc_signo_t);
3210#elif defined(RETSIGTYPE)
3211typedef RETSIGTYPE (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
3212#else
3213typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
3214#endif
3215#if defined(__cplusplus)
3216}
3217#endif
3218# if !defined(ACC_CFG_NO_ACC_UA_H)
3219#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
3220#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
3221#elif (ACC_CC_INTELC) && defined(_WIN32)
3222#elif (ACC_CC_INTELC && (__INTEL_COMPILER < 700))
3223#elif (ACC_CC_LLVM)
3224#elif (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE)
3225#if !defined(__acc_ua16_t) && (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
3226 typedef struct { __acc_ua_volatile acc_uint16e_t v __attribute__((__packed__)); } __acc_ua16_t;
3227# define __acc_ua16_t __acc_ua16_t
3228#endif
3229#if !defined(__acc_ua32_t) && (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
3230 typedef struct { __acc_ua_volatile acc_uint32e_t v __attribute__((__packed__)); } __acc_ua32_t;
3231# define __acc_ua32_t __acc_ua32_t
3232#endif
3233#if !defined(__acc_ua64_t) && (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
3234 typedef struct { __acc_ua_volatile acc_uint64l_t v __attribute__((__packed__)); } __acc_ua64_t;
3235# define __acc_ua64_t __acc_ua64_t
3236#endif
3237#endif
3238#if (ACC_OPT_UNALIGNED16) && defined(acc_int16e_t)
3239#define ACC_UA_GET16(p) (* (__acc_ua_volatile const acc_uint16e_t*) (__acc_ua_volatile const void*) (p))
3240#define ACC_UA_SET16(p,v) (* (__acc_ua_volatile acc_uint16e_t*) (__acc_ua_volatile void*) (p) = (acc_uint16e_t) (v))
3241#if (ACC_ABI_BIG_ENDIAN)
3242# define ACC_UA_GET_BE16(p) ACC_UA_GET16(p)
3243# define ACC_UA_SET_BE16(p,v) ACC_UA_SET16(p,v)
3244#elif (ACC_ABI_LITTLE_ENDIAN)
3245# define ACC_UA_GET_LE16(p) ACC_UA_GET16(p)
3246# define ACC_UA_SET_LE16(p,v) ACC_UA_SET16(p,v)
3247#endif
3248#if !defined(ACC_CFG_NO_INLINE_ASM) && defined(__acc_HAVE_forceinline)
3249#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
3250#if !defined(ACC_UA_GET_LE16)
3251extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp);
3252extern __acc_forceinline unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
3253 __acc_ua_volatile const acc_uint16e_t* p = (__acc_ua_volatile const acc_uint16e_t*) pp;
3254 unsigned long v;
3255 __asm__ __volatile__("lhbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
3256 return v;
3257}
3258#define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p)
3259#endif
3260#if !defined(ACC_UA_SET_LE16)
3261extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v);
3262extern __acc_forceinline void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
3263 __acc_ua_volatile acc_uint16e_t* p = (__acc_ua_volatile acc_uint16e_t*) pp;
3264 __asm__ __volatile__("sthbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
3265}
3266#define ACC_UA_SET_LE16(p,v) __ACC_UA_SET_LE16(p,v)
3267#endif
3268#endif
3269#endif
3270#if !defined(ACC_UA_COPY16)
3271# define ACC_UA_COPY16(d,s) ACC_UA_SET16(d, ACC_UA_GET16(s))
3272#endif
3273#endif
3274#if (ACC_OPT_UNALIGNED32) && defined(acc_int32e_t)
3275#define ACC_UA_GET32(p) (* (__acc_ua_volatile const acc_uint32e_t*) (__acc_ua_volatile const void*) (p))
3276#define ACC_UA_SET32(p,v) (* (__acc_ua_volatile acc_uint32e_t*) (__acc_ua_volatile void*) (p) = (acc_uint32e_t) (v))
3277#if (ACC_ABI_BIG_ENDIAN)
3278# define ACC_UA_GET_BE32(p) ACC_UA_GET32(p)
3279# define ACC_UA_SET_BE32(p,v) ACC_UA_SET32(p,v)
3280#elif (ACC_ABI_LITTLE_ENDIAN)
3281# define ACC_UA_GET_LE32(p) ACC_UA_GET32(p)
3282# define ACC_UA_SET_LE32(p,v) ACC_UA_SET32(p,v)
3283#endif
3284#if !defined(ACC_CFG_NO_INLINE_ASM) && defined(__acc_HAVE_forceinline)
3285#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_CC_GNUC)
3286#if !defined(ACC_UA_GET_LE32)
3287extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp);
3288extern __acc_forceinline unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
3289 __acc_ua_volatile const acc_uint32e_t* p = (__acc_ua_volatile const acc_uint32e_t*) pp;
3290 unsigned long v;
3291 __asm__ __volatile__("lwbrx %0,0,%1" : "=r" (v) : "r" (p), "m" (*p));
3292 return v;
3293}
3294#define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p)
3295#endif
3296#if !defined(ACC_UA_SET_LE32)
3297extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v);
3298extern __acc_forceinline void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
3299 __acc_ua_volatile acc_uint32e_t* p = (__acc_ua_volatile acc_uint32e_t*) pp;
3300 __asm__ __volatile__("stwbrx %2,0,%1" : "=m" (*p) : "r" (p), "r" (v));
3301}
3302#define ACC_UA_SET_LE32(p,v) __ACC_UA_SET_LE32(p,v)
3303#endif
3304#endif
3305#endif
3306#if !defined(ACC_UA_COPY32)
3307# define ACC_UA_COPY32(d,s) ACC_UA_SET32(d, ACC_UA_GET32(s))
3308#endif
3309#endif
3310#if (ACC_OPT_UNALIGNED64) && defined(acc_int64l_t)
3311#define ACC_UA_GET64(p) (* (__acc_ua_volatile const acc_uint64l_t*) (__acc_ua_volatile const void*) (p))
3312#define ACC_UA_SET64(p,v) (* (__acc_ua_volatile acc_uint64l_t*) (__acc_ua_volatile void*) (p) = (acc_uint64l_t) (v))
3313#if (ACC_ABI_BIG_ENDIAN)
3314# define ACC_UA_GET_BE64(p) ACC_UA_GET64(p)
3315# define ACC_UA_SET_BE64(p,v) ACC_UA_SET64(p,v)
3316#elif (ACC_ABI_LITTLE_ENDIAN)
3317# define ACC_UA_GET_LE64(p) ACC_UA_GET64(p)
3318# define ACC_UA_SET_LE64(p,v) ACC_UA_SET64(p,v)
3319#endif
3320#if !defined(ACC_UA_COPY64)
3321# define ACC_UA_COPY64(d,s) ACC_UA_SET64(d, ACC_UA_GET64(s))
3322#endif
3323#endif
3324# endif
3325#endif
3326#if defined(ACC_WANT_ACC_INCD_H)
3327# undef ACC_WANT_ACC_INCD_H
3328#ifndef __ACC_INCD_H_INCLUDED
3329#define __ACC_INCD_H_INCLUDED 1
3330#if defined(ACC_LIBC_NAKED)
3331#ifndef __ACC_FALLBACK_STDDEF_H_INCLUDED
3332#define __ACC_FALLBACK_STDDEF_H_INCLUDED
3333#if defined(__PTRDIFF_TYPE__)
3334typedef __PTRDIFF_TYPE__ acc_fallback_ptrdiff_t;
3335#elif defined(__MIPS_PSX2__)
3336typedef int acc_fallback_ptrdiff_t;
3337#else
3338typedef long acc_fallback_ptrdiff_t;
3339#endif
3340#if defined(__SIZE_TYPE__)
3341typedef __SIZE_TYPE__ acc_fallback_size_t;
3342#elif defined(__MIPS_PSX2__)
3343typedef unsigned int acc_fallback_size_t;
3344#else
3345typedef unsigned long acc_fallback_size_t;
3346#endif
3347#if !defined(ptrdiff_t)
3348typedef acc_fallback_ptrdiff_t ptrdiff_t;
3349#ifndef _PTRDIFF_T_DEFINED
3350#define _PTRDIFF_T_DEFINED 1
3351#endif
3352#endif
3353#if !defined(size_t)
3354typedef acc_fallback_size_t size_t;
3355#ifndef _SIZE_T_DEFINED
3356#define _SIZE_T_DEFINED 1
3357#endif
3358#endif
3359#if !defined(__cplusplus) && !defined(wchar_t)
3360typedef unsigned short wchar_t;
3361#ifndef _WCHAR_T_DEFINED
3362#define _WCHAR_T_DEFINED 1
3363#endif
3364#endif
3365#ifndef NULL
3366#if defined(__cplusplus) && defined(__GNUC__) && (__GNUC__ >= 4)
3367#define NULL __null
3368#elif defined(__cplusplus)
3369#define NULL 0
3370#else
3371#define NULL ((void*)0)
3372#endif
3373#endif
3374#ifndef offsetof
3375#define offsetof(s,m) ((size_t)((ptrdiff_t)&(((s*)0)->m)))
3376#endif
3377#endif
3378#elif defined(ACC_LIBC_FREESTANDING)
3379# if HAVE_STDDEF_H
3380# include <stddef.h>
3381# endif
3382# if HAVE_STDINT_H
3383# include <stdint.h>
3384# endif
3385#elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
3386# if HAVE_STDIO_H
3387# include <stdio.h>
3388# endif
3389# if HAVE_STDDEF_H
3390# include <stddef.h>
3391# endif
3392# if HAVE_STDINT_H
3393# include <stdint.h>
3394# endif
3395#else
3396#include <stdio.h>
3397#if defined(HAVE_TIME_H) && defined(__MSL__) && defined(__cplusplus)
3398# include <time.h>
3399#endif
3400#if HAVE_SYS_TYPES_H
3401# include <sys/types.h>
3402#endif
3403#if HAVE_SYS_STAT_H
3404# include <sys/stat.h>
3405#endif
3406#if STDC_HEADERS
3407# include <stdlib.h>
3408# include <stddef.h>
3409#else
3410# if HAVE_STDLIB_H
3411# include <stdlib.h>
3412# endif
3413#endif
3414#if HAVE_STRING_H
3415# if !STDC_HEADERS && HAVE_MEMORY_H
3416# include <memory.h>
3417# endif
3418# include <string.h>
3419#endif
3420#if HAVE_STRINGS_H
3421# include <strings.h>
3422#endif
3423#if HAVE_INTTYPES_H
3424# include <inttypes.h>
3425#else
3426# if HAVE_STDINT_H
3427# include <stdint.h>
3428# endif
3429#endif
3430#if HAVE_UNISTD_H
3431# include <unistd.h>
3432#endif
3433#endif
3434#endif
3435#endif
3436#if defined(ACC_WANT_ACC_INCE_H)
3437# undef ACC_WANT_ACC_INCE_H
3438#ifndef __ACC_INCE_H_INCLUDED
3439#define __ACC_INCE_H_INCLUDED 1
3440#if defined(ACC_LIBC_NAKED)
3441#elif defined(ACC_LIBC_FREESTANDING)
3442#elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
3443# if defined(HAVE_SETJMP_H)
3444# include <setjmp.h>
3445# endif
3446#else
3447#if defined(HAVE_STDARG_H)
3448# include <stdarg.h>
3449#endif
3450#if defined(HAVE_CTYPE_H)
3451# include <ctype.h>
3452#endif
3453#if defined(HAVE_ERRNO_H)
3454# include <errno.h>
3455#endif
3456#if defined(HAVE_MALLOC_H)
3457# include <malloc.h>
3458#endif
3459#if defined(HAVE_ALLOCA_H)
3460# include <alloca.h>
3461#endif
3462#if defined(HAVE_FCNTL_H)
3463# include <fcntl.h>
3464#endif
3465#if defined(HAVE_DIRENT_H)
3466# include <dirent.h>
3467#endif
3468#if defined(HAVE_SETJMP_H)
3469# include <setjmp.h>
3470#endif
3471#if defined(HAVE_SIGNAL_H)
3472# include <signal.h>
3473#endif
3474#if defined(TIME_WITH_SYS_TIME)
3475# include <sys/time.h>
3476# include <time.h>
3477#elif defined(HAVE_TIME_H)
3478# include <time.h>
3479#endif
3480#if defined(HAVE_UTIME_H)
3481# include <utime.h>
3482#elif defined(HAVE_SYS_UTIME_H)
3483# include <sys/utime.h>
3484#endif
3485#if defined(HAVE_IO_H)
3486# include <io.h>
3487#endif
3488#if defined(HAVE_DOS_H)
3489# include <dos.h>
3490#endif
3491#if defined(HAVE_DIRECT_H)
3492# include <direct.h>
3493#endif
3494#if defined(HAVE_SHARE_H)
3495# include <share.h>
3496#endif
3497#if defined(ACC_CC_NDPC)
3498# include <os.h>
3499#endif
3500#if defined(__TOS__) && (defined(__PUREC__) || defined(__TURBOC__))
3501# include <ext.h>
3502#endif
3503#endif
3504#endif
3505#endif
3506#if defined(ACC_WANT_ACC_INCI_H)
3507# undef ACC_WANT_ACC_INCI_H
3508#ifndef __ACC_INCI_H_INCLUDED
3509#define __ACC_INCI_H_INCLUDED 1
3510#if defined(ACC_LIBC_NAKED)
3511#elif defined(ACC_LIBC_FREESTANDING)
3512#elif defined(ACC_LIBC_MOSTLY_FREESTANDING)
3513#else
3514#if (ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
3515# include <tos.h>
3516#elif (ACC_HAVE_WINDOWS_H)
3517# if 1 && !defined(WIN32_LEAN_AND_MEAN)
3518# define WIN32_LEAN_AND_MEAN 1
3519# endif
3520# if 1 && !defined(_WIN32_WINNT)
3521# define _WIN32_WINNT 0x0400
3522# endif
3523# include <windows.h>
3524# if (ACC_CC_BORLANDC || ACC_CC_TURBOC)
3525# include <dir.h>
3526# endif
3527#elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_WIN16)
3528# if (ACC_CC_AZTECC)
3529# include <model.h>
3530# include <stat.h>
3531# elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
3532# include <alloc.h>
3533# include <dir.h>
3534# elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
3535# include <sys/exceptn.h>
3536# elif (ACC_CC_PACIFICC)
3537# include <unixio.h>
3538# include <stat.h>
3539# include <sys.h>
3540# elif (ACC_CC_WATCOMC)
3541# include <i86.h>
3542# endif
3543#elif (ACC_OS_OS216)
3544# if (ACC_CC_WATCOMC)
3545# include <i86.h>
3546# endif
3547#endif
3548#if defined(HAVE_SYS_MMAN_H)
3549# include <sys/mman.h>
3550#endif
3551#if defined(HAVE_SYS_RESOURCE_H)
3552# include <sys/resource.h>
3553#endif
3554#if (ACC_OS_DOS16 || ACC_OS_OS216 || ACC_OS_WIN16)
3555# if defined(FP_OFF)
3556# define ACC_PTR_FP_OFF(x) FP_OFF(x)
3557# elif defined(_FP_OFF)
3558# define ACC_PTR_FP_OFF(x) _FP_OFF(x)
3559# else
3560# define ACC_PTR_FP_OFF(x) (((const unsigned __far*)&(x))[0])
3561# endif
3562# if defined(FP_SEG)
3563# define ACC_PTR_FP_SEG(x) FP_SEG(x)
3564# elif defined(_FP_SEG)
3565# define ACC_PTR_FP_SEG(x) _FP_SEG(x)
3566# else
3567# define ACC_PTR_FP_SEG(x) (((const unsigned __far*)&(x))[1])
3568# endif
3569# if defined(MK_FP)
3570# define ACC_PTR_MK_FP(s,o) MK_FP(s,o)
3571# elif defined(_MK_FP)
3572# define ACC_PTR_MK_FP(s,o) _MK_FP(s,o)
3573# else
3574# define ACC_PTR_MK_FP(s,o) ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o)))
3575# endif
3576# if 0
3577# undef ACC_PTR_FP_OFF
3578# undef ACC_PTR_FP_SEG
3579# undef ACC_PTR_MK_FP
3580# define ACC_PTR_FP_OFF(x) (((const unsigned __far*)&(x))[0])
3581# define ACC_PTR_FP_SEG(x) (((const unsigned __far*)&(x))[1])
3582# define ACC_PTR_MK_FP(s,o) ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o)))
3583# endif
3584#endif
3585#endif
3586#endif
3587#endif
3588#if defined(ACC_WANT_ACC_LIB_H)
3589# undef ACC_WANT_ACC_LIB_H
3590#ifndef __ACC_LIB_H_INCLUDED
3591#define __ACC_LIB_H_INCLUDED 1
3592#if !defined(__ACCLIB_FUNCNAME)
3593# define __ACCLIB_FUNCNAME(f) f
3594#endif
3595#if !defined(ACCLIB_EXTERN)
3596# define ACCLIB_EXTERN(r,f) extern r __ACCLIB_FUNCNAME(f)
3597#endif
3598#if !defined(ACCLIB_EXTERN_NOINLINE)
3599# if defined(__acc_noinline)
3600# define ACCLIB_EXTERN_NOINLINE(r,f) extern __acc_noinline r __ACCLIB_FUNCNAME(f)
3601# else
3602# define ACCLIB_EXTERN_NOINLINE(r,f) extern r __ACCLIB_FUNCNAME(f)
3603# endif
3604#endif
3605#if !defined(__ACCLIB_CONST_CAST_RETURN)
3606#if 1 && (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
3607# define __ACCLIB_CONST_CAST_RETURN(type,var) return (type) (acc_uintptr_t) (var);
3608#elif (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
3609# define __ACCLIB_CONST_CAST_RETURN(type,var) \
3610 { union { type a; const type b; } u; u.b = (var); return u.a; }
3611#else
3612# define __ACCLIB_CONST_CAST_RETURN(type,var) return (type) (var);
3613#endif
3614#endif
3615#if (ACC_OS_WIN64)
3616# define acclib_handle_t acc_int64l_t
3617# define acclib_uhandle_t acc_uint64l_t
3618#elif (ACC_ARCH_I386 && ACC_CC_MSC && (_MSC_VER >= 1300))
3619 typedef __w64 long acclib_handle_t;
3620 typedef __w64 unsigned long acclib_uhandle_t;
3621# define acclib_handle_t acclib_handle_t
3622# define acclib_uhandle_t acclib_uhandle_t
3623#else
3624# define acclib_handle_t long
3625# define acclib_uhandle_t unsigned long
3626#endif
3627#if 0
3628ACCLIB_EXTERN(int, acc_ascii_digit) (int);
3629ACCLIB_EXTERN(int, acc_ascii_islower) (int);
3630ACCLIB_EXTERN(int, acc_ascii_isupper) (int);
3631ACCLIB_EXTERN(int, acc_ascii_tolower) (int);
3632ACCLIB_EXTERN(int, acc_ascii_toupper) (int);
3633ACCLIB_EXTERN(int, acc_ascii_utolower) (int);
3634ACCLIB_EXTERN(int, acc_ascii_utoupper) (int);
3635#endif
3636#define acc_ascii_isdigit(c) (((unsigned)(c) - 48) < 10)
3637#define acc_ascii_islower(c) (((unsigned)(c) - 97) < 26)
3638#define acc_ascii_isupper(c) (((unsigned)(c) - 65) < 26)
3639#define acc_ascii_tolower(c) ((int)(c) + (acc_ascii_isupper(c) << 5))
3640#define acc_ascii_toupper(c) ((int)(c) - (acc_ascii_islower(c) << 5))
3641#define acc_ascii_utolower(c) acc_ascii_tolower((unsigned char)(c))
3642#define acc_ascii_utoupper(c) acc_ascii_toupper((unsigned char)(c))
3643#ifndef acc_hsize_t
3644#if (ACC_HAVE_MM_HUGE_PTR)
3645# define acc_hsize_t unsigned long
3646# define acc_hvoid_p void __huge *
3647# define acc_hchar_p char __huge *
3648# define acc_hchar_pp char __huge * __huge *
3649# define acc_hbyte_p unsigned char __huge *
3650#else
3651# define acc_hsize_t size_t
3652# define acc_hvoid_p void *
3653# define acc_hchar_p char *
3654# define acc_hchar_pp char **
3655# define acc_hbyte_p unsigned char *
3656#endif
3657#endif
3658ACCLIB_EXTERN(acc_hvoid_p, acc_halloc) (acc_hsize_t);
3659ACCLIB_EXTERN(void, acc_hfree) (acc_hvoid_p);
3660#if (ACC_OS_DOS16 || ACC_OS_OS216)
3661ACCLIB_EXTERN(void __far*, acc_dos_alloc) (unsigned long);
3662ACCLIB_EXTERN(int, acc_dos_free) (void __far*);
3663#endif
3664ACCLIB_EXTERN(int, acc_hmemcmp) (const acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
3665ACCLIB_EXTERN(acc_hvoid_p, acc_hmemcpy) (acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
3666ACCLIB_EXTERN(acc_hvoid_p, acc_hmemmove) (acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
3667ACCLIB_EXTERN(acc_hvoid_p, acc_hmemset) (acc_hvoid_p, int, acc_hsize_t);
3668ACCLIB_EXTERN(acc_hsize_t, acc_hstrlen) (const acc_hchar_p);
3669ACCLIB_EXTERN(int, acc_hstrcmp) (const acc_hchar_p, const acc_hchar_p);
3670ACCLIB_EXTERN(int, acc_hstrncmp)(const acc_hchar_p, const acc_hchar_p, acc_hsize_t);
3671ACCLIB_EXTERN(int, acc_ascii_hstricmp) (const acc_hchar_p, const acc_hchar_p);
3672ACCLIB_EXTERN(int, acc_ascii_hstrnicmp)(const acc_hchar_p, const acc_hchar_p, acc_hsize_t);
3673ACCLIB_EXTERN(int, acc_ascii_hmemicmp) (const acc_hvoid_p, const acc_hvoid_p, acc_hsize_t);
3674ACCLIB_EXTERN(acc_hchar_p, acc_hstrstr) (const acc_hchar_p, const acc_hchar_p);
3675ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstristr) (const acc_hchar_p, const acc_hchar_p);
3676ACCLIB_EXTERN(acc_hvoid_p, acc_hmemmem) (const acc_hvoid_p, acc_hsize_t, const acc_hvoid_p, acc_hsize_t);
3677ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemimem) (const acc_hvoid_p, acc_hsize_t, const acc_hvoid_p, acc_hsize_t);
3678ACCLIB_EXTERN(acc_hchar_p, acc_hstrcpy) (acc_hchar_p, const acc_hchar_p);
3679ACCLIB_EXTERN(acc_hchar_p, acc_hstrcat) (acc_hchar_p, const acc_hchar_p);
3680ACCLIB_EXTERN(acc_hsize_t, acc_hstrlcpy) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
3681ACCLIB_EXTERN(acc_hsize_t, acc_hstrlcat) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
3682ACCLIB_EXTERN(int, acc_hstrscpy) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
3683ACCLIB_EXTERN(int, acc_hstrscat) (acc_hchar_p, const acc_hchar_p, acc_hsize_t);
3684ACCLIB_EXTERN(acc_hchar_p, acc_hstrccpy) (acc_hchar_p, const acc_hchar_p, int);
3685ACCLIB_EXTERN(acc_hvoid_p, acc_hmemccpy) (acc_hvoid_p, const acc_hvoid_p, int, acc_hsize_t);
3686ACCLIB_EXTERN(acc_hchar_p, acc_hstrchr) (const acc_hchar_p, int);
3687ACCLIB_EXTERN(acc_hchar_p, acc_hstrrchr) (const acc_hchar_p, int);
3688ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrichr) (const acc_hchar_p, int);
3689ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrrichr) (const acc_hchar_p, int);
3690ACCLIB_EXTERN(acc_hvoid_p, acc_hmemchr) (const acc_hvoid_p, int, acc_hsize_t);
3691ACCLIB_EXTERN(acc_hvoid_p, acc_hmemrchr) (const acc_hvoid_p, int, acc_hsize_t);
3692ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemichr) (const acc_hvoid_p, int, acc_hsize_t);
3693ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemrichr) (const acc_hvoid_p, int, acc_hsize_t);
3694ACCLIB_EXTERN(acc_hsize_t, acc_hstrspn) (const acc_hchar_p, const acc_hchar_p);
3695ACCLIB_EXTERN(acc_hsize_t, acc_hstrrspn) (const acc_hchar_p, const acc_hchar_p);
3696ACCLIB_EXTERN(acc_hsize_t, acc_hstrcspn) (const acc_hchar_p, const acc_hchar_p);
3697ACCLIB_EXTERN(acc_hsize_t, acc_hstrrcspn) (const acc_hchar_p, const acc_hchar_p);
3698ACCLIB_EXTERN(acc_hchar_p, acc_hstrpbrk) (const acc_hchar_p, const acc_hchar_p);
3699ACCLIB_EXTERN(acc_hchar_p, acc_hstrrpbrk) (const acc_hchar_p, const acc_hchar_p);
3700ACCLIB_EXTERN(acc_hchar_p, acc_hstrsep) (acc_hchar_pp, const acc_hchar_p);
3701ACCLIB_EXTERN(acc_hchar_p, acc_hstrrsep) (acc_hchar_pp, const acc_hchar_p);
3702ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrlwr) (acc_hchar_p);
3703ACCLIB_EXTERN(acc_hchar_p, acc_ascii_hstrupr) (acc_hchar_p);
3704ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemlwr) (acc_hvoid_p, acc_hsize_t);
3705ACCLIB_EXTERN(acc_hvoid_p, acc_ascii_hmemupr) (acc_hvoid_p, acc_hsize_t);
3706ACCLIB_EXTERN(acc_hsize_t, acc_hfread) (void *, acc_hvoid_p, acc_hsize_t);
3707ACCLIB_EXTERN(acc_hsize_t, acc_hfwrite) (void *, const acc_hvoid_p, acc_hsize_t);
3708#if (ACC_HAVE_MM_HUGE_PTR)
3709ACCLIB_EXTERN(long, acc_hread) (int, acc_hvoid_p, long);
3710ACCLIB_EXTERN(long, acc_hwrite) (int, const acc_hvoid_p, long);
3711#endif
3712ACCLIB_EXTERN(long, acc_safe_hread) (int, acc_hvoid_p, long);
3713ACCLIB_EXTERN(long, acc_safe_hwrite) (int, const acc_hvoid_p, long);
3714ACCLIB_EXTERN(unsigned, acc_ua_get_be16) (const acc_hvoid_p);
3715ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_be24) (const acc_hvoid_p);
3716ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_be32) (const acc_hvoid_p);
3717ACCLIB_EXTERN(void, acc_ua_set_be16) (acc_hvoid_p, unsigned);
3718ACCLIB_EXTERN(void, acc_ua_set_be24) (acc_hvoid_p, acc_uint32l_t);
3719ACCLIB_EXTERN(void, acc_ua_set_be32) (acc_hvoid_p, acc_uint32l_t);
3720ACCLIB_EXTERN(unsigned, acc_ua_get_le16) (const acc_hvoid_p);
3721ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_le24) (const acc_hvoid_p);
3722ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_le32) (const acc_hvoid_p);
3723ACCLIB_EXTERN(void, acc_ua_set_le16) (acc_hvoid_p, unsigned);
3724ACCLIB_EXTERN(void, acc_ua_set_le24) (acc_hvoid_p, acc_uint32l_t);
3725ACCLIB_EXTERN(void, acc_ua_set_le32) (acc_hvoid_p, acc_uint32l_t);
3726#if defined(acc_int64l_t)
3727ACCLIB_EXTERN(acc_uint64l_t, acc_ua_get_be64) (const acc_hvoid_p);
3728ACCLIB_EXTERN(void, acc_ua_set_be64) (acc_hvoid_p, acc_uint64l_t);
3729ACCLIB_EXTERN(acc_uint64l_t, acc_ua_get_le64) (const acc_hvoid_p);
3730ACCLIB_EXTERN(void, acc_ua_set_le64) (acc_hvoid_p, acc_uint64l_t);
3731#endif
3732ACCLIB_EXTERN_NOINLINE(short, acc_vget_short) (short, int);
3733ACCLIB_EXTERN_NOINLINE(int, acc_vget_int) (int, int);
3734ACCLIB_EXTERN_NOINLINE(long, acc_vget_long) (long, int);
3735#if defined(acc_int64l_t)
3736ACCLIB_EXTERN_NOINLINE(acc_int64l_t, acc_vget_acc_int64l_t) (acc_int64l_t, int);
3737#endif
3738ACCLIB_EXTERN_NOINLINE(acc_hsize_t, acc_vget_acc_hsize_t) (acc_hsize_t, int);
3739#if !defined(ACC_CFG_NO_FLOAT)
3740ACCLIB_EXTERN_NOINLINE(float, acc_vget_float) (float, int);
3741#endif
3742#if !defined(ACC_CFG_NO_DOUBLE)
3743ACCLIB_EXTERN_NOINLINE(double, acc_vget_double) (double, int);
3744#endif
3745ACCLIB_EXTERN_NOINLINE(acc_hvoid_p, acc_vget_acc_hvoid_p) (acc_hvoid_p, int);
3746ACCLIB_EXTERN_NOINLINE(const acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoid_p, int);
3747#if !defined(ACC_FN_PATH_MAX)
3748#if (ACC_OS_DOS16 || ACC_OS_WIN16)
3749# define ACC_FN_PATH_MAX 143
3750#elif (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_WIN32 || ACC_OS_WIN64)
3751# define ACC_FN_PATH_MAX 259
3752#elif (ACC_OS_TOS)
3753# define ACC_FN_PATH_MAX 259
3754#endif
3755#endif
3756#if !defined(ACC_FN_PATH_MAX)
3757# define ACC_FN_PATH_MAX 1023
3758#endif
3759#if !defined(ACC_FN_NAME_MAX)
3760#if (ACC_OS_DOS16 || ACC_OS_WIN16)
3761# define ACC_FN_NAME_MAX 12
3762#elif (ACC_ARCH_M68K && ACC_OS_TOS && (ACC_CC_PUREC || ACC_CC_TURBOC))
3763# define ACC_FN_NAME_MAX 12
3764#elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
3765#elif (ACC_OS_DOS32)
3766# define ACC_FN_NAME_MAX 12
3767#endif
3768#endif
3769#if !defined(ACC_FN_NAME_MAX)
3770# define ACC_FN_NAME_MAX ACC_FN_PATH_MAX
3771#endif
3772#define ACC_FNMATCH_NOESCAPE 1
3773#define ACC_FNMATCH_PATHNAME 2
3774#define ACC_FNMATCH_PATHSTAR 4
3775#define ACC_FNMATCH_PERIOD 8
3776#define ACC_FNMATCH_ASCII_CASEFOLD 16
3777ACCLIB_EXTERN(int, acc_fnmatch) (const acc_hchar_p, const acc_hchar_p, int);
3778#undef __ACCLIB_USE_OPENDIR
3779#if (HAVE_DIRENT_H || ACC_CC_WATCOMC)
3780# define __ACCLIB_USE_OPENDIR 1
3781# if (ACC_OS_DOS32 && defined(__BORLANDC__))
3782# elif (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
3783# elif (ACC_OS_OS2 || ACC_OS_OS216)
3784# elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC)
3785# elif (ACC_OS_WIN32 && !defined(ACC_HAVE_WINDOWS_H))
3786# elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_OS216 || ACC_OS_TOS || ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
3787# undef __ACCLIB_USE_OPENDIR
3788# endif
3789#endif
3790typedef struct
3791{
3792#if defined(__ACCLIB_USE_OPENDIR)
3793 void* u_dirp;
3794# if (ACC_CC_WATCOMC)
3795 unsigned short f_time;
3796 unsigned short f_date;
3797 unsigned long f_size;
3798# endif
3799 char f_name[ACC_FN_NAME_MAX+1];
3800#elif (ACC_OS_WIN32 || ACC_OS_WIN64)
3801 acclib_handle_t u_handle;
3802 unsigned f_attr;
3803 unsigned f_size_low;
3804 unsigned f_size_high;
3805 char f_name[ACC_FN_NAME_MAX+1];
3806#elif (ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_TOS || ACC_OS_WIN16)
3807 char u_dta[21];
3808 unsigned char f_attr;
3809 unsigned short f_time;
3810 unsigned short f_date;
3811 unsigned short f_size_low;
3812 unsigned short f_size_high;
3813 char f_name[ACC_FN_NAME_MAX+1];
3814 char u_dirp;
3815#else
3816 void* u_dirp;
3817 char f_name[ACC_FN_NAME_MAX+1];
3818#endif
3819} acc_dir_t;
3820#ifndef acc_dir_p
3821#define acc_dir_p acc_dir_t *
3822#endif
3823ACCLIB_EXTERN(int, acc_opendir) (acc_dir_p, const char*);
3824ACCLIB_EXTERN(int, acc_readdir) (acc_dir_p);
3825ACCLIB_EXTERN(int, acc_closedir) (acc_dir_p);
3826#if (ACC_CC_GNUC) && (defined(__CYGWIN__) || defined(__MINGW32__))
3827# define acc_alloca(x) __builtin_alloca((x))
3828#elif (ACC_CC_GNUC) && (ACC_OS_CONSOLE_PS2)
3829# define acc_alloca(x) __builtin_alloca((x))
3830#elif (ACC_CC_BORLANDC || ACC_CC_LCC) && defined(__linux__)
3831#elif (HAVE_ALLOCA)
3832# define acc_alloca(x) ((void *) (alloca((x))))
3833#endif
3834#if (ACC_OS_DOS32 && ACC_CC_GNUC) && defined(__DJGPP__)
3835# define acc_stackavail() stackavail()
3836#elif (ACC_ARCH_I086 && ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0410))
3837# define acc_stackavail() stackavail()
3838#elif (ACC_ARCH_I086 && ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0400))
3839# if (ACC_OS_WIN16) && (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
3840# else
3841# define acc_stackavail() stackavail()
3842# endif
3843#elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_CC_DMC || ACC_CC_SYMANTECC))
3844# define acc_stackavail() stackavail()
3845#elif ((ACC_ARCH_I086) && ACC_CC_MSC && (_MSC_VER >= 700))
3846# define acc_stackavail() _stackavail()
3847#elif ((ACC_ARCH_I086) && ACC_CC_MSC)
3848# define acc_stackavail() stackavail()
3849#elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && ACC_CC_TURBOC && (__TURBOC__ >= 0x0450))
3850# define acc_stackavail() stackavail()
3851#elif (ACC_ARCH_I086 && ACC_CC_TURBOC && (__TURBOC__ >= 0x0400))
3852 ACC_EXTERN_C size_t __cdecl stackavail(void);
3853# define acc_stackavail() stackavail()
3854#elif ((ACC_ARCH_I086 || ACC_ARCH_I386) && (ACC_CC_WATCOMC))
3855# define acc_stackavail() stackavail()
3856#elif (ACC_ARCH_I086 && ACC_CC_ZORTECHC)
3857# define acc_stackavail() _chkstack()
3858#endif
3859ACCLIB_EXTERN(acclib_handle_t, acc_get_osfhandle) (int);
3860ACCLIB_EXTERN(const char *, acc_getenv) (const char *);
3861ACCLIB_EXTERN(int, acc_isatty) (int);
3862ACCLIB_EXTERN(int, acc_mkdir) (const char*, unsigned);
3863ACCLIB_EXTERN(int, acc_rmdir) (const char*);
3864ACCLIB_EXTERN(int, acc_response) (int*, char***);
3865ACCLIB_EXTERN(int, acc_set_binmode) (int, int);
3866#if defined(acc_int32e_t)
3867ACCLIB_EXTERN(acc_int32e_t, acc_muldiv32s) (acc_int32e_t, acc_int32e_t, acc_int32e_t);
3868ACCLIB_EXTERN(acc_uint32e_t, acc_muldiv32u) (acc_uint32e_t, acc_uint32e_t, acc_uint32e_t);
3869#endif
3870ACCLIB_EXTERN(void, acc_wildargv) (int*, char***);
3871ACCLIB_EXTERN_NOINLINE(void, acc_debug_break) (void);
3872ACCLIB_EXTERN_NOINLINE(void, acc_debug_nop) (void);
3873ACCLIB_EXTERN_NOINLINE(int, acc_debug_align_check_query) (void);
3874ACCLIB_EXTERN_NOINLINE(int, acc_debug_align_check_enable) (int);
3875ACCLIB_EXTERN_NOINLINE(unsigned, acc_debug_running_on_qemu) (void);
3876ACCLIB_EXTERN_NOINLINE(unsigned, acc_debug_running_on_valgrind) (void);
3877#if !defined(acc_int64l_t) || defined(ACC_CFG_NO_DOUBLE)
3878# undef __ACCLIB_PCLOCK_USE_RDTSC
3879# undef __ACCLIB_PCLOCK_USE_PERFCTR
3880# undef __ACCLIB_UCLOCK_USE_RDTSC
3881# undef __ACCLIB_UCLOCK_USE_PERFCTR
3882#else
3883typedef struct {
3884 void* h;
3885 int mode;
3886 double tsc_to_seconds;
3887 unsigned cpu_type, cpu_features, cpu_khz, cpu_nrctrs;
3888 const char* cpu_name;
3889} acc_perfctr_handle_t;
3890typedef struct {
3891 acc_uint64l_t tsc;
3892#if (ACC_OS_POSIX_LINUX)
3893 acc_uint64l_t pmc[18];
3894#else
3895 acc_uint64l_t pmc[1];
3896#endif
3897} acc_perfctr_clock_t;
3898#ifndef acc_perfctr_handle_p
3899#define acc_perfctr_handle_p acc_perfctr_handle_t *
3900#endif
3901#ifndef acc_perfctr_clock_p
3902#define acc_perfctr_clock_p acc_perfctr_clock_t *
3903#endif
3904ACCLIB_EXTERN(int, acc_perfctr_open) (acc_perfctr_handle_p);
3905ACCLIB_EXTERN(int, acc_perfctr_close) (acc_perfctr_handle_p);
3906ACCLIB_EXTERN(void, acc_perfctr_read) (acc_perfctr_handle_p, acc_perfctr_clock_p);
3907#if !defined(ACC_CFG_NO_DOUBLE)
3908ACCLIB_EXTERN(double, acc_perfctr_get_elapsed) (acc_perfctr_handle_p, const acc_perfctr_clock_p, const acc_perfctr_clock_p);
3909ACCLIB_EXTERN(double, acc_perfctr_get_elapsed_tsc) (acc_perfctr_handle_p, acc_uint64l_t);
3910#endif
3911ACCLIB_EXTERN(int, acc_perfctr_flush_cpu_cache) (acc_perfctr_handle_p, unsigned);
3912#endif
3913#if defined(acc_int32e_t)
3914ACCLIB_EXTERN(int, acc_tsc_read) (acc_uint32e_t*);
3915#else
3916# undef __ACCLIB_PCLOCK_USE_RDTSC
3917# undef __ACCLIB_UCLOCK_USE_RDTSC
3918#endif
3919struct acc_pclock_handle_t;
3920struct acc_pclock_t;
3921typedef struct acc_pclock_handle_t acc_pclock_handle_t;
3922typedef struct acc_pclock_t acc_pclock_t;
3923#ifndef acc_pclock_handle_p
3924#define acc_pclock_handle_p acc_pclock_handle_t *
3925#endif
3926#ifndef acc_pclock_p
3927#define acc_pclock_p acc_pclock_t *
3928#endif
3929#define ACC_PCLOCK_REALTIME 0
3930#define ACC_PCLOCK_MONOTONIC 1
3931#define ACC_PCLOCK_PROCESS_CPUTIME_ID 2
3932#define ACC_PCLOCK_THREAD_CPUTIME_ID 3
3933#define ACC_PCLOCK_REALTIME_HR 4
3934#define ACC_PCLOCK_MONOTONIC_HR 5
3935struct acc_pclock_handle_t {
3936 acclib_handle_t h;
3937 int mode;
3938 const char* name;
3939 int (*gettime) (acc_pclock_handle_p, acc_pclock_p);
3940#if defined(acc_int64l_t)
3941 acc_uint64l_t ticks_base;
3942#endif
3943#if defined(__ACCLIB_PCLOCK_USE_PERFCTR)
3944 acc_perfctr_handle_t pch;
3945#endif
3946};
3947struct acc_pclock_t {
3948#if defined(acc_int64l_t)
3949 acc_int64l_t tv_sec;
3950#else
3951 acc_int32l_t tv_sec_high;
3952 acc_uint32l_t tv_sec_low;
3953#endif
3954 acc_uint32l_t tv_nsec;
3955};
3956ACCLIB_EXTERN(int, acc_pclock_open) (acc_pclock_handle_p, int);
3957ACCLIB_EXTERN(int, acc_pclock_open_default) (acc_pclock_handle_p);
3958ACCLIB_EXTERN(int, acc_pclock_close) (acc_pclock_handle_p);
3959ACCLIB_EXTERN(void, acc_pclock_read) (acc_pclock_handle_p, acc_pclock_p);
3960#if !defined(ACC_CFG_NO_DOUBLE)
3961ACCLIB_EXTERN(double, acc_pclock_get_elapsed) (acc_pclock_handle_p, const acc_pclock_p, const acc_pclock_p);
3962#endif
3963ACCLIB_EXTERN(int, acc_pclock_flush_cpu_cache) (acc_pclock_handle_p, unsigned);
3964#if !defined(acc_int64l_t) || defined(ACC_CFG_NO_DOUBLE)
3965# undef __ACCLIB_UCLOCK_USE_QPC
3966#elif (ACC_OS_CYGWIN || ACC_OS_EMX || ACC_OS_WIN32 || ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
3967# define __ACCLIB_UCLOCK_USE_QPC 1
3968#else
3969# undef __ACCLIB_UCLOCK_USE_QPC
3970#endif
3971typedef struct {
3972 acclib_handle_t h;
3973 int mode;
3974 const char* name;
3975#if defined(__ACCLIB_UCLOCK_USE_PERFCTR)
3976 acc_perfctr_handle_t pch;
3977#endif
3978#if defined(__ACCLIB_UCLOCK_USE_QPC)
3979 double qpf;
3980#endif
3981} acc_uclock_handle_t;
3982typedef struct {
3983 union {
3984 acc_uint32l_t t32;
3985#if !(ACC_OS_DOS16 || ACC_OS_WIN16)
3986# if !defined(ACC_CFG_NO_DOUBLE)
3987 double td;
3988# endif
3989# if defined(acc_int64l_t)
3990 acc_int64l_t t64;
3991# endif
3992#endif
3993 } ticks;
3994#if defined(__ACCLIB_UCLOCK_USE_RDTSC)
3995 acc_uint64l_t tsc;
3996#endif
3997#if defined(__ACCLIB_UCLOCK_USE_PERFCTR)
3998 acc_perfctr_clock_t pcc;
3999#endif
4000#if defined(__ACCLIB_UCLOCK_USE_QPC)
4001 acc_int64l_t qpc;
4002#endif
4003} acc_uclock_t;
4004#ifndef acc_uclock_handle_p
4005#define acc_uclock_handle_p acc_uclock_handle_t *
4006#endif
4007#ifndef acc_uclock_p
4008#define acc_uclock_p acc_uclock_t *
4009#endif
4010ACCLIB_EXTERN(int, acc_uclock_open) (acc_uclock_handle_p);
4011ACCLIB_EXTERN(int, acc_uclock_close) (acc_uclock_handle_p);
4012ACCLIB_EXTERN(void, acc_uclock_read) (acc_uclock_handle_p, acc_uclock_p);
4013#if !defined(ACC_CFG_NO_DOUBLE)
4014ACCLIB_EXTERN(double, acc_uclock_get_elapsed) (acc_uclock_handle_p, const acc_uclock_p, const acc_uclock_p);
4015#endif
4016ACCLIB_EXTERN(int, acc_uclock_flush_cpu_cache) (acc_uclock_handle_p, unsigned);
4017struct acc_getopt_t;
4018typedef struct acc_getopt_t acc_getopt_t;
4019#ifndef acc_getopt_p
4020#define acc_getopt_p acc_getopt_t *
4021#endif
4022struct acc_getopt_longopt_t;
4023typedef struct acc_getopt_longopt_t acc_getopt_longopt_t;
4024#ifndef acc_getopt_longopt_p
4025#define acc_getopt_longopt_p acc_getopt_longopt_t *
4026#endif
4027struct acc_getopt_longopt_t {
4028 const char* name;
4029 int has_arg;
4030 int* flag;
4031 int val;
4032};
4033struct acc_getopt_t {
4034 void *user;
4035 char *optarg;
4036 void (*opterr)(acc_getopt_p, const char*, void *);
4037 int optind;
4038 int optopt;
4039 int errcount;
4040 const char* progname;
4041 int argc; char** argv;
4042 int eof; int shortpos;
4043 int pending_rotate_first, pending_rotate_middle;
4044};
4045enum { ACC_GETOPT_NO_ARG, ACC_GETOPT_REQUIRED_ARG, ACC_GETOPT_OPTIONAL_ARG, ACC_GETOPT_EXACT_ARG = 0x10 };
4046enum { ACC_GETOPT_PERMUTE, ACC_GETOPT_RETURN_IN_ORDER, ACC_GETOPT_REQUIRE_ORDER };
4047ACCLIB_EXTERN(void, acc_getopt_init) (acc_getopt_p g,
4048 int start_argc, int argc, char** argv);
4049ACCLIB_EXTERN(int, acc_getopt) (acc_getopt_p g,
4050 const char* shortopts,
4051 const acc_getopt_longopt_p longopts,
4052 int* longind);
4053typedef struct {
4054 acc_uint32l_t seed;
4055} acc_rand31_t;
4056#ifndef acc_rand31_p
4057#define acc_rand31_p acc_rand31_t *
4058#endif
4059ACCLIB_EXTERN(void, acc_srand31) (acc_rand31_p, acc_uint32l_t);
4060ACCLIB_EXTERN(acc_uint32l_t, acc_rand31) (acc_rand31_p);
4061#if defined(acc_int64l_t)
4062typedef struct {
4063 acc_uint64l_t seed;
4064} acc_rand48_t;
4065#ifndef acc_rand48_p
4066#define acc_rand48_p acc_rand48_t *
4067#endif
4068ACCLIB_EXTERN(void, acc_srand48) (acc_rand48_p, acc_uint32l_t);
4069ACCLIB_EXTERN(acc_uint32l_t, acc_rand48) (acc_rand48_p);
4070ACCLIB_EXTERN(acc_uint32l_t, acc_rand48_r32) (acc_rand48_p);
4071#endif
4072#if defined(acc_int64l_t)
4073typedef struct {
4074 acc_uint64l_t seed;
4075} acc_rand64_t;
4076#ifndef acc_rand64_p
4077#define acc_rand64_p acc_rand64_t *
4078#endif
4079ACCLIB_EXTERN(void, acc_srand64) (acc_rand64_p, acc_uint64l_t);
4080ACCLIB_EXTERN(acc_uint32l_t, acc_rand64) (acc_rand64_p);
4081ACCLIB_EXTERN(acc_uint32l_t, acc_rand64_r32) (acc_rand64_p);
4082#endif
4083typedef struct {
4084 unsigned n;
4085 acc_uint32l_t s[624];
4086} acc_randmt_t;
4087#ifndef acc_randmt_p
4088#define acc_randmt_p acc_randmt_t *
4089#endif
4090ACCLIB_EXTERN(void, acc_srandmt) (acc_randmt_p, acc_uint32l_t);
4091ACCLIB_EXTERN(acc_uint32l_t, acc_randmt) (acc_randmt_p);
4092ACCLIB_EXTERN(acc_uint32l_t, acc_randmt_r32) (acc_randmt_p);
4093#if defined(acc_int64l_t)
4094typedef struct {
4095 unsigned n;
4096 acc_uint64l_t s[312];
4097} acc_randmt64_t;
4098#ifndef acc_randmt64_p
4099#define acc_randmt64_p acc_randmt64_t *
4100#endif
4101ACCLIB_EXTERN(void, acc_srandmt64) (acc_randmt64_p, acc_uint64l_t);
4102ACCLIB_EXTERN(acc_uint64l_t, acc_randmt64_r64) (acc_randmt64_p);
4103#endif
4104#define ACC_SPAWN_P_WAIT 0
4105#define ACC_SPAWN_P_NOWAIT 1
4106ACCLIB_EXTERN(int, acc_spawnv) (int mode, const char* fn, const char* const * argv);
4107ACCLIB_EXTERN(int, acc_spawnvp) (int mode, const char* fn, const char* const * argv);
4108ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * argv, const char * const envp);
4109#endif
4110#endif
4111#if defined(ACC_WANT_ACC_CXX_H)
4112# undef ACC_WANT_ACC_CXX_H
4113#ifndef __ACC_CXX_H_INCLUDED
4114#define __ACC_CXX_H_INCLUDED 1
4115#if defined(__cplusplus)
4116#if defined(ACC_CXX_NOTHROW)
4117#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul))
4118#elif (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
4119#elif (ACC_CC_HIGHC)
4120#elif (ACC_CC_MSC && (_MSC_VER < 1100))
4121#elif (ACC_CC_NDPC)
4122#elif (ACC_CC_TURBOC)
4123#elif (ACC_CC_WATCOMC && !defined(_CPPUNWIND))
4124#elif (ACC_CC_ZORTECHC)
4125#else
4126# define ACC_CXX_NOTHROW throw()
4127#endif
4128#if !defined(ACC_CXX_NOTHROW)
4129# define ACC_CXX_NOTHROW
4130#endif
4131#if defined(__ACC_CXX_DO_NEW)
4132#elif (ACC_CC_NDPC || ACC_CC_PGI)
4133# define __ACC_CXX_DO_NEW { return 0; }
4134#elif ((ACC_CC_BORLANDC || ACC_CC_TURBOC) && ACC_ARCH_I086)
4135# define __ACC_CXX_DO_NEW { return 0; }
4136#else
4137# define __ACC_CXX_DO_NEW ;
4138#endif
4139#if defined(__ACC_CXX_DO_DELETE)
4140#elif (ACC_CC_BORLANDC || ACC_CC_TURBOC)
4141# define __ACC_CXX_DO_DELETE { }
4142#else
4143# define __ACC_CXX_DO_DELETE ACC_CXX_NOTHROW { }
4144#endif
4145#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0450))
4146#elif (ACC_CC_MSC && ACC_MM_HUGE)
4147# define ACC_CXX_DISABLE_NEW_DELETE private:
4148#elif (ACC_CC_MSC && (_MSC_VER < 1100))
4149#elif (ACC_CC_NDPC)
4150#elif (ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
4151#elif (ACC_CC_TURBOC)
4152#elif (ACC_CC_WATCOMC && (__WATCOMC__ < 1100))
4153#else
4154# define __ACC_CXX_HAVE_ARRAY_NEW 1
4155#endif
4156#if (__ACC_CXX_HAVE_ARRAY_NEW)
4157# define __ACC_CXX_HAVE_PLACEMENT_NEW 1
4158#endif
4159#if (__ACC_CXX_HAVE_PLACEMENT_NEW)
4160# if (ACC_CC_GNUC >= 0x030000ul)
4161# define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
4162# elif (ACC_CC_INTELC)
4163# define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
4164# elif (ACC_CC_MSC && (_MSC_VER >= 1200))
4165# define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
4166# elif (ACC_CC_LLVM || ACC_CC_PATHSCALE)
4167# define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
4168# elif (ACC_CC_PGI)
4169# define __ACC_CXX_HAVE_PLACEMENT_DELETE 1
4170# endif
4171#endif
4172#if defined(ACC_CXX_DISABLE_NEW_DELETE)
4173#elif defined(new) || defined(delete)
4174# define ACC_CXX_DISABLE_NEW_DELETE private:
4175#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025b00ul))
4176# define ACC_CXX_DISABLE_NEW_DELETE private:
4177#elif (ACC_CC_HIGHC)
4178# define ACC_CXX_DISABLE_NEW_DELETE private:
4179#elif !defined(__ACC_CXX_HAVE_ARRAY_NEW)
4180# define ACC_CXX_DISABLE_NEW_DELETE \
4181 protected: static void operator delete(void*) __ACC_CXX_DO_DELETE \
4182 protected: static void* operator new(size_t) __ACC_CXX_DO_NEW \
4183 private:
4184#else
4185# define ACC_CXX_DISABLE_NEW_DELETE \
4186 protected: static void operator delete(void*) __ACC_CXX_DO_DELETE \
4187 static void operator delete[](void*) __ACC_CXX_DO_DELETE \
4188 private: static void* operator new(size_t) __ACC_CXX_DO_NEW \
4189 static void* operator new[](size_t) __ACC_CXX_DO_NEW
4190#endif
4191#if defined(ACC_CXX_TRIGGER_FUNCTION)
4192#else
4193# define ACC_CXX_TRIGGER_FUNCTION \
4194 protected: virtual const void* acc_cxx_trigger_function() const; \
4195 private:
4196#endif
4197#if defined(ACC_CXX_TRIGGER_FUNCTION_IMPL)
4198#else
4199# define ACC_CXX_TRIGGER_FUNCTION_IMPL(klass) \
4200 const void* klass::acc_cxx_trigger_function() const { return 0; }
4201#endif
4202#endif
4203#endif
4204#endif
4205#if defined(ACC_WANT_ACC_CHK_CH)
4206# undef ACC_WANT_ACC_CHK_CH
4207#if !defined(ACCCHK_ASSERT)
4208# define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr)
4209#endif
4210#if !defined(ACCCHK_ASSERT_SIGN_T)
4211# define ACCCHK_ASSERT_SIGN_T(type,relop) \
4212 ACCCHK_ASSERT( (type) (-1) relop (type) 0 ) \
4213 ACCCHK_ASSERT( (type) (~(type)0) relop (type) 0 ) \
4214 ACCCHK_ASSERT( (type) (~(type)0) == (type) (-1) )
4215#endif
4216#if !defined(ACCCHK_ASSERT_IS_SIGNED_T)
4217# define ACCCHK_ASSERT_IS_SIGNED_T(type) ACCCHK_ASSERT_SIGN_T(type,<)
4218#endif
4219#if !defined(ACCCHK_ASSERT_IS_UNSIGNED_T)
4220# if (ACC_BROKEN_INTEGRAL_PROMOTION)
4221# define ACCCHK_ASSERT_IS_UNSIGNED_T(type) \
4222 ACCCHK_ASSERT( (type) (-1) > (type) 0 )
4223# else
4224# define ACCCHK_ASSERT_IS_UNSIGNED_T(type) ACCCHK_ASSERT_SIGN_T(type,>)
4225# endif
4226#endif
4227#if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550) && (__BORLANDC__ < 0x0560))
4228# pragma option push -w-8055
4229#elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0550))
4230# pragma option push -w-osh
4231#endif
4232#if (ACC_0xffffffffL - ACC_UINT32_C(4294967294) != 1)
4233# error "preprocessor error 1"
4234#endif
4235#if (ACC_0xffffffffL - ACC_UINT32_C(0xfffffffd) != 2)
4236# error "preprocessor error 2"
4237#endif
4238#define ACCCHK_VAL 1
4239#define ACCCHK_TMP1 ACCCHK_VAL
4240#undef ACCCHK_VAL
4241#define ACCCHK_VAL 2
4242#define ACCCHK_TMP2 ACCCHK_VAL
4243#if (ACCCHK_TMP1 != 2)
4244# error "preprocessor error 3a"
4245#endif
4246#if (ACCCHK_TMP2 != 2)
4247# error "preprocessor error 3b"
4248#endif
4249#undef ACCCHK_VAL
4250#if (ACCCHK_TMP2)
4251# error "preprocessor error 3c"
4252#endif
4253#if (ACCCHK_TMP2 + 0 != 0)
4254# error "preprocessor error 3d"
4255#endif
4256#undef ACCCHK_TMP1
4257#undef ACCCHK_TMP2
4258#if 0 || defined(ACCCHK_CFG_PEDANTIC)
4259# if (ACC_ARCH_MIPS) && defined(_MIPS_SZINT)
4260 ACCCHK_ASSERT((_MIPS_SZINT) == 8 * sizeof(int))
4261# endif
4262# if (ACC_ARCH_MIPS) && defined(_MIPS_SZLONG)
4263 ACCCHK_ASSERT((_MIPS_SZLONG) == 8 * sizeof(long))
4264# endif
4265# if (ACC_ARCH_MIPS) && defined(_MIPS_SZPTR)
4266 ACCCHK_ASSERT((_MIPS_SZPTR) == 8 * sizeof(void *))
4267# endif
4268#endif
4269 ACCCHK_ASSERT(1 == 1)
4270 ACCCHK_ASSERT(__ACC_MASK_GEN(1u,2) == 3)
4271 ACCCHK_ASSERT(__ACC_MASK_GEN(1u,8) == 255)
4272#if (SIZEOF_INT >= 2)
4273 ACCCHK_ASSERT(__ACC_MASK_GEN(1,15) == 32767)
4274 ACCCHK_ASSERT(__ACC_MASK_GEN(1u,16) == 0xffffU)
4275#else
4276 ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,16) == 0xffffUL)
4277#endif
4278#if (SIZEOF_INT >= 4)
4279 ACCCHK_ASSERT(__ACC_MASK_GEN(1,31) == 2147483647)
4280 ACCCHK_ASSERT(__ACC_MASK_GEN(1u,32) == 0xffffffffU)
4281#endif
4282#if (SIZEOF_LONG >= 4)
4283 ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,32) == 0xffffffffUL)
4284#endif
4285#if (SIZEOF_LONG >= 8)
4286 ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,64) == 0xffffffffffffffffUL)
4287#endif
4288#if !defined(ACC_BROKEN_INTEGRAL_PROMOTION)
4289 ACCCHK_ASSERT(__ACC_MASK_GEN(1u,SIZEOF_INT*8) == ~0u)
4290 ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,SIZEOF_LONG*8) == ~0ul)
4291#endif
4292#if !defined(ACC_BROKEN_SIGNED_RIGHT_SHIFT)
4293 ACCCHK_ASSERT(((-1) >> 7) == -1)
4294#endif
4295 ACCCHK_ASSERT(((1) >> 7) == 0)
4296 ACCCHK_ASSERT((~0l & ~0) == ~0l)
4297 ACCCHK_ASSERT((~0l & ~0u) == ~0u)
4298 ACCCHK_ASSERT((~0ul & ~0) == ~0ul)
4299 ACCCHK_ASSERT((~0ul & ~0u) == ~0u)
4300#if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
4301#elif (SIZEOF_INT == 2)
4302 ACCCHK_ASSERT((~0l & ~0u) == 0xffffU)
4303 ACCCHK_ASSERT((~0ul & ~0u) == 0xffffU)
4304#elif (SIZEOF_INT == 4)
4305 ACCCHK_ASSERT((~0l & ~0u) == 0xffffffffU)
4306 ACCCHK_ASSERT((~0ul & ~0u) == 0xffffffffU)
4307#endif
4308 ACCCHK_ASSERT_IS_SIGNED_T(signed char)
4309 ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned char)
4310 ACCCHK_ASSERT(sizeof(signed char) == sizeof(char))
4311 ACCCHK_ASSERT(sizeof(unsigned char) == sizeof(char))
4312 ACCCHK_ASSERT(sizeof(char) == 1)
4313#if (ACC_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
4314#else
4315 ACCCHK_ASSERT(sizeof(char) == sizeof((char)0))
4316#endif
4317#if defined(__cplusplus)
4318 ACCCHK_ASSERT(sizeof('\0') == sizeof(char))
4319#else
4320# if (ACC_CC_DMC)
4321# else
4322 ACCCHK_ASSERT(sizeof('\0') == sizeof(int))
4323# endif
4324#endif
4325#if defined(__acc_alignof)
4326 ACCCHK_ASSERT(__acc_alignof(char) == 1)
4327 ACCCHK_ASSERT(__acc_alignof(signed char) == 1)
4328 ACCCHK_ASSERT(__acc_alignof(unsigned char) == 1)
4329#if defined(acc_int16e_t)
4330 ACCCHK_ASSERT(__acc_alignof(acc_int16e_t) >= 1)
4331 ACCCHK_ASSERT(__acc_alignof(acc_int16e_t) <= 2)
4332#endif
4333#if defined(acc_int32e_t)
4334 ACCCHK_ASSERT(__acc_alignof(acc_int32e_t) >= 1)
4335 ACCCHK_ASSERT(__acc_alignof(acc_int32e_t) <= 4)
4336#endif
4337#endif
4338 ACCCHK_ASSERT_IS_SIGNED_T(short)
4339 ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned short)
4340 ACCCHK_ASSERT(sizeof(short) == sizeof(unsigned short))
4341#if !defined(ACC_ABI_I8LP16)
4342 ACCCHK_ASSERT(sizeof(short) >= 2)
4343#endif
4344 ACCCHK_ASSERT(sizeof(short) >= sizeof(char))
4345#if (ACC_CC_CILLY) && (!defined(__CILLY__) || (__CILLY__ < 0x010302L))
4346#else
4347 ACCCHK_ASSERT(sizeof(short) == sizeof((short)0))
4348#endif
4349#if (SIZEOF_SHORT > 0)
4350 ACCCHK_ASSERT(sizeof(short) == SIZEOF_SHORT)
4351#endif
4352 ACCCHK_ASSERT_IS_SIGNED_T(int)
4353 ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned int)
4354 ACCCHK_ASSERT(sizeof(int) == sizeof(unsigned int))
4355#if !defined(ACC_ABI_I8LP16)
4356 ACCCHK_ASSERT(sizeof(int) >= 2)
4357#endif
4358 ACCCHK_ASSERT(sizeof(int) >= sizeof(short))
4359 ACCCHK_ASSERT(sizeof(int) == sizeof(0))
4360 ACCCHK_ASSERT(sizeof(int) == sizeof((int)0))
4361#if (SIZEOF_INT > 0)
4362 ACCCHK_ASSERT(sizeof(int) == SIZEOF_INT)
4363#endif
4364 ACCCHK_ASSERT(sizeof(0) == sizeof(int))
4365 ACCCHK_ASSERT_IS_SIGNED_T(long)
4366 ACCCHK_ASSERT_IS_UNSIGNED_T(unsigned long)
4367 ACCCHK_ASSERT(sizeof(long) == sizeof(unsigned long))
4368#if !defined(ACC_ABI_I8LP16)
4369 ACCCHK_ASSERT(sizeof(long) >= 4)
4370#endif
4371 ACCCHK_ASSERT(sizeof(long) >= sizeof(int))
4372 ACCCHK_ASSERT(sizeof(long) == sizeof(0L))
4373 ACCCHK_ASSERT(sizeof(long) == sizeof((long)0))
4374#if (SIZEOF_LONG > 0)
4375 ACCCHK_ASSERT(sizeof(long) == SIZEOF_LONG)
4376#endif
4377 ACCCHK_ASSERT(sizeof(0L) == sizeof(long))
4378 ACCCHK_ASSERT_IS_UNSIGNED_T(size_t)
4379 ACCCHK_ASSERT(sizeof(size_t) >= sizeof(int))
4380 ACCCHK_ASSERT(sizeof(size_t) == sizeof(sizeof(0)))
4381#if (SIZEOF_SIZE_T > 0)
4382 ACCCHK_ASSERT(sizeof(size_t) == SIZEOF_SIZE_T)
4383#endif
4384 ACCCHK_ASSERT_IS_SIGNED_T(ptrdiff_t)
4385 ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(int))
4386 ACCCHK_ASSERT(sizeof(ptrdiff_t) >= sizeof(size_t))
4387#if !defined(ACC_BROKEN_SIZEOF)
4388 ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof((char*)0 - (char*)0))
4389# if (ACC_HAVE_MM_HUGE_PTR)
4390 ACCCHK_ASSERT(4 == sizeof((char __huge*)0 - (char __huge*)0))
4391# endif
4392#endif
4393#if (SIZEOF_PTRDIFF_T > 0)
4394 ACCCHK_ASSERT(sizeof(ptrdiff_t) == SIZEOF_PTRDIFF_T)
4395#endif
4396 ACCCHK_ASSERT(sizeof(void*) >= sizeof(char*))
4397#if (SIZEOF_VOID_P > 0)
4398 ACCCHK_ASSERT(sizeof(void*) == SIZEOF_VOID_P)
4399 ACCCHK_ASSERT(sizeof(char*) == SIZEOF_VOID_P)
4400#endif
4401#if (ACC_HAVE_MM_HUGE_PTR)
4402 ACCCHK_ASSERT(4 == sizeof(void __huge*))
4403 ACCCHK_ASSERT(4 == sizeof(char __huge*))
4404#endif
4405#if defined(ACC_ABI_I8LP16)
4406 ACCCHK_ASSERT((((1u << 7) + 1) >> 7) == 1)
4407 ACCCHK_ASSERT((((1ul << 15) + 1) >> 15) == 1)
4408#else
4409 ACCCHK_ASSERT((((1u << 15) + 1) >> 15) == 1)
4410 ACCCHK_ASSERT((((1ul << 31) + 1) >> 31) == 1)
4411#endif
4412#if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
4413#elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
4414#else
4415 ACCCHK_ASSERT((1 << (8*SIZEOF_INT-1)) < 0)
4416#endif
4417 ACCCHK_ASSERT((1u << (8*SIZEOF_INT-1)) > 0)
4418#if 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
4419#else
4420 ACCCHK_ASSERT((1l << (8*SIZEOF_LONG-1)) < 0)
4421#endif
4422 ACCCHK_ASSERT((1ul << (8*SIZEOF_LONG-1)) > 0)
4423#if defined(acc_int16e_t)
4424 ACCCHK_ASSERT(sizeof(acc_int16e_t) == 2)
4425 ACCCHK_ASSERT(sizeof(acc_int16e_t) == SIZEOF_ACC_INT16E_T)
4426 ACCCHK_ASSERT(sizeof(acc_uint16e_t) == 2)
4427 ACCCHK_ASSERT(sizeof(acc_int16e_t) == sizeof(acc_uint16e_t))
4428 ACCCHK_ASSERT_IS_SIGNED_T(acc_int16e_t)
4429 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint16e_t)
4430#if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
4431#else
4432 ACCCHK_ASSERT(((acc_uint16e_t)(~(acc_uint16e_t)0ul) >> 15) == 1)
4433#endif
4434 ACCCHK_ASSERT( (acc_int16e_t) (1 + ~(acc_int16e_t)0) == 0)
4435#if defined(ACCCHK_CFG_PEDANTIC)
4436 ACCCHK_ASSERT( (acc_uint16e_t)(1 + ~(acc_uint16e_t)0) == 0)
4437#endif
4438#endif
4439#if defined(acc_int32e_t)
4440 ACCCHK_ASSERT(sizeof(acc_int32e_t) == 4)
4441 ACCCHK_ASSERT(sizeof(acc_int32e_t) == SIZEOF_ACC_INT32E_T)
4442 ACCCHK_ASSERT(sizeof(acc_uint32e_t) == 4)
4443 ACCCHK_ASSERT(sizeof(acc_int32e_t) == sizeof(acc_uint32e_t))
4444 ACCCHK_ASSERT_IS_SIGNED_T(acc_int32e_t)
4445 ACCCHK_ASSERT(((( (acc_int32e_t)1 << 30) + 1) >> 30) == 1)
4446 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32e_t)
4447 ACCCHK_ASSERT(((( (acc_uint32e_t)1 << 31) + 1) >> 31) == 1)
4448 ACCCHK_ASSERT(((acc_uint32e_t)(~(acc_uint32e_t)0ul) >> 31) == 1)
4449 ACCCHK_ASSERT( (acc_int32e_t) (1 + ~(acc_int32e_t)0) == 0)
4450#if defined(ACCCHK_CFG_PEDANTIC)
4451 ACCCHK_ASSERT( (acc_uint32e_t)(1 + ~(acc_uint32e_t)0) == 0)
4452#endif
4453#endif
4454#if defined(acc_int32e_t)
4455 ACCCHK_ASSERT(sizeof(acc_int32l_t) >= sizeof(acc_int32e_t))
4456#endif
4457 ACCCHK_ASSERT(sizeof(acc_int32l_t) >= 4)
4458 ACCCHK_ASSERT(sizeof(acc_int32l_t) == SIZEOF_ACC_INT32L_T)
4459 ACCCHK_ASSERT(sizeof(acc_uint32l_t) >= 4)
4460 ACCCHK_ASSERT(sizeof(acc_int32l_t) == sizeof(acc_uint32l_t))
4461 ACCCHK_ASSERT_IS_SIGNED_T(acc_int32l_t)
4462 ACCCHK_ASSERT(((( (acc_int32l_t)1 << 30) + 1) >> 30) == 1)
4463 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32l_t)
4464 ACCCHK_ASSERT(((( (acc_uint32l_t)1 << 31) + 1) >> 31) == 1)
4465 ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(int))
4466#if defined(acc_int32e_t)
4467 ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32e_t))
4468#endif
4469 ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32l_t))
4470 ACCCHK_ASSERT(sizeof(acc_int32f_t) >= 4)
4471 ACCCHK_ASSERT(sizeof(acc_int32f_t) >= sizeof(acc_int32l_t))
4472 ACCCHK_ASSERT(sizeof(acc_int32f_t) == SIZEOF_ACC_INT32F_T)
4473 ACCCHK_ASSERT(sizeof(acc_uint32f_t) >= 4)
4474 ACCCHK_ASSERT(sizeof(acc_uint32f_t) >= sizeof(acc_uint32l_t))
4475 ACCCHK_ASSERT(sizeof(acc_int32f_t) == sizeof(acc_uint32f_t))
4476 ACCCHK_ASSERT_IS_SIGNED_T(acc_int32f_t)
4477 ACCCHK_ASSERT(((( (acc_int32f_t)1 << 30) + 1) >> 30) == 1)
4478 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint32f_t)
4479 ACCCHK_ASSERT(((( (acc_uint32f_t)1 << 31) + 1) >> 31) == 1)
4480#if defined(acc_int64e_t)
4481 ACCCHK_ASSERT(sizeof(acc_int64e_t) == 8)
4482 ACCCHK_ASSERT(sizeof(acc_int64e_t) == SIZEOF_ACC_INT64E_T)
4483 ACCCHK_ASSERT(sizeof(acc_uint64e_t) == 8)
4484 ACCCHK_ASSERT(sizeof(acc_int64e_t) == sizeof(acc_uint64e_t))
4485 ACCCHK_ASSERT_IS_SIGNED_T(acc_int64e_t)
4486#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
4487#else
4488 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64e_t)
4489#endif
4490#endif
4491#if defined(acc_int64l_t)
4492#if defined(acc_int64e_t)
4493 ACCCHK_ASSERT(sizeof(acc_int64l_t) >= sizeof(acc_int64e_t))
4494#endif
4495 ACCCHK_ASSERT(sizeof(acc_int64l_t) >= 8)
4496 ACCCHK_ASSERT(sizeof(acc_int64l_t) == SIZEOF_ACC_INT64L_T)
4497 ACCCHK_ASSERT(sizeof(acc_uint64l_t) >= 8)
4498 ACCCHK_ASSERT(sizeof(acc_int64l_t) == sizeof(acc_uint64l_t))
4499 ACCCHK_ASSERT_IS_SIGNED_T(acc_int64l_t)
4500 ACCCHK_ASSERT(((( (acc_int64l_t)1 << 62) + 1) >> 62) == 1)
4501 ACCCHK_ASSERT(((( ACC_INT64_C(1) << 62) + 1) >> 62) == 1)
4502#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0530))
4503#else
4504 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uint64l_t)
4505 ACCCHK_ASSERT(ACC_UINT64_C(18446744073709551615) > 0)
4506#endif
4507 ACCCHK_ASSERT(((( (acc_uint64l_t)1 << 63) + 1) >> 63) == 1)
4508 ACCCHK_ASSERT(((( ACC_UINT64_C(1) << 63) + 1) >> 63) == 1)
4509#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020600ul))
4510 ACCCHK_ASSERT(ACC_INT64_C(9223372036854775807) > ACC_INT64_C(0))
4511#else
4512 ACCCHK_ASSERT(ACC_INT64_C(9223372036854775807) > 0)
4513#endif
4514 ACCCHK_ASSERT(ACC_INT64_C(-9223372036854775807) - 1 < 0)
4515 ACCCHK_ASSERT( ACC_INT64_C(9223372036854775807) % ACC_INT32_C(2147483629) == 721)
4516 ACCCHK_ASSERT( ACC_INT64_C(9223372036854775807) % ACC_INT32_C(2147483647) == 1)
4517 ACCCHK_ASSERT(ACC_UINT64_C(9223372036854775807) % ACC_UINT32_C(2147483629) == 721)
4518 ACCCHK_ASSERT(ACC_UINT64_C(9223372036854775807) % ACC_UINT32_C(2147483647) == 1)
4519#endif
4520#if !defined(__ACC_INTPTR_T_IS_POINTER)
4521 ACCCHK_ASSERT_IS_SIGNED_T(acc_intptr_t)
4522 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_uintptr_t)
4523#endif
4524 ACCCHK_ASSERT(sizeof(acc_intptr_t) >= sizeof(void *))
4525 ACCCHK_ASSERT(sizeof(acc_intptr_t) == SIZEOF_ACC_INTPTR_T)
4526 ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(acc_uintptr_t))
4527#if defined(acc_word_t)
4528 ACCCHK_ASSERT(ACC_WORDSIZE == SIZEOF_ACC_WORD_T)
4529 ACCCHK_ASSERT_IS_UNSIGNED_T(acc_word_t)
4530 ACCCHK_ASSERT_IS_SIGNED_T(acc_sword_t)
4531 ACCCHK_ASSERT(sizeof(acc_word_t) == SIZEOF_ACC_WORD_T)
4532 ACCCHK_ASSERT(sizeof(acc_word_t) == sizeof(acc_sword_t))
4533#endif
4534#if defined(ACC_INT16_C)
4535 ACCCHK_ASSERT(sizeof(ACC_INT16_C(0)) >= 2)
4536 ACCCHK_ASSERT(sizeof(ACC_UINT16_C(0)) >= 2)
4537 ACCCHK_ASSERT((ACC_UINT16_C(0xffff) >> 15) == 1)
4538#endif
4539#if defined(ACC_INT32_C)
4540 ACCCHK_ASSERT(sizeof(ACC_INT32_C(0)) >= 4)
4541 ACCCHK_ASSERT(sizeof(ACC_UINT32_C(0)) >= 4)
4542 ACCCHK_ASSERT((ACC_UINT32_C(0xffffffff) >> 31) == 1)
4543#endif
4544#if defined(ACC_INT64_C)
4545#if (ACC_CC_BORLANDC && (__BORLANDC__ < 0x0560))
4546#else
4547 ACCCHK_ASSERT(sizeof(ACC_INT64_C(0)) >= 8)
4548 ACCCHK_ASSERT(sizeof(ACC_UINT64_C(0)) >= 8)
4549#endif
4550 ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) >> 63) == 1)
4551 ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0) == ACC_UINT64_C(0xffffffffffffffff))
4552 ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0l) == ACC_UINT64_C(0xffffffffffffffff))
4553#if (SIZEOF_INT == 4)
4554# if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
4555# else
4556 ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0u) == 0xffffffffu)
4557# endif
4558#endif
4559#if (SIZEOF_LONG == 4)
4560# if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
4561# else
4562 ACCCHK_ASSERT((ACC_UINT64_C(0xffffffffffffffff) & ~0ul) == 0xfffffffful)
4563# endif
4564#endif
4565#endif
4566#if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_MEDIUM)
4567 ACCCHK_ASSERT(sizeof(void*) == 2)
4568 ACCCHK_ASSERT(sizeof(ptrdiff_t) == 2)
4569#elif (ACC_MM_COMPACT || ACC_MM_LARGE || ACC_MM_HUGE)
4570 ACCCHK_ASSERT(sizeof(void*) == 4)
4571#endif
4572#if (ACC_MM_TINY || ACC_MM_SMALL || ACC_MM_COMPACT)
4573 ACCCHK_ASSERT(sizeof(void (*)(void)) == 2)
4574#elif (ACC_MM_MEDIUM || ACC_MM_LARGE || ACC_MM_HUGE)
4575 ACCCHK_ASSERT(sizeof(void (*)(void)) == 4)
4576#endif
4577#if (ACC_ABI_ILP32)
4578 ACCCHK_ASSERT(sizeof(int) == 4)
4579 ACCCHK_ASSERT(sizeof(long) == 4)
4580 ACCCHK_ASSERT(sizeof(void*) == 4)
4581 ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
4582 ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
4583 ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
4584#endif
4585#if (ACC_ABI_ILP64)
4586 ACCCHK_ASSERT(sizeof(int) == 8)
4587 ACCCHK_ASSERT(sizeof(long) == 8)
4588 ACCCHK_ASSERT(sizeof(void*) == 8)
4589 ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
4590 ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
4591 ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
4592#endif
4593#if (ACC_ABI_IP32L64)
4594 ACCCHK_ASSERT(sizeof(int) == 4)
4595 ACCCHK_ASSERT(sizeof(long) == 8)
4596 ACCCHK_ASSERT(sizeof(void*) == 4)
4597 ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
4598 ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
4599 ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
4600#endif
4601#if (ACC_ABI_LLP64)
4602 ACCCHK_ASSERT(sizeof(int) == 4)
4603 ACCCHK_ASSERT(sizeof(long) == 4)
4604 ACCCHK_ASSERT(sizeof(void*) == 8)
4605 ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
4606 ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
4607 ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
4608#endif
4609#if (ACC_ABI_LP32)
4610 ACCCHK_ASSERT(sizeof(int) == 2)
4611 ACCCHK_ASSERT(sizeof(long) == 4)
4612 ACCCHK_ASSERT(sizeof(void*) == 4)
4613 ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
4614#endif
4615#if (ACC_ABI_LP64)
4616 ACCCHK_ASSERT(sizeof(int) == 4)
4617 ACCCHK_ASSERT(sizeof(long) == 8)
4618 ACCCHK_ASSERT(sizeof(void*) == 8)
4619 ACCCHK_ASSERT(sizeof(ptrdiff_t) == sizeof(void*))
4620 ACCCHK_ASSERT(sizeof(size_t) == sizeof(void*))
4621 ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
4622#endif
4623#if (ACC_ARCH_I086)
4624 ACCCHK_ASSERT(sizeof(size_t) == 2)
4625 ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
4626#elif (ACC_ARCH_I386 || ACC_ARCH_M68K)
4627 ACCCHK_ASSERT(sizeof(size_t) == 4)
4628 ACCCHK_ASSERT(sizeof(ptrdiff_t) == 4)
4629 ACCCHK_ASSERT(sizeof(acc_intptr_t) == sizeof(void *))
4630#endif
4631#if (ACC_OS_DOS32 || ACC_OS_OS2 || ACC_OS_WIN32)
4632 ACCCHK_ASSERT(sizeof(size_t) == 4)
4633 ACCCHK_ASSERT(sizeof(ptrdiff_t) == 4)
4634 ACCCHK_ASSERT(sizeof(void (*)(void)) == 4)
4635#elif (ACC_OS_WIN64)
4636 ACCCHK_ASSERT(sizeof(size_t) == 8)
4637 ACCCHK_ASSERT(sizeof(ptrdiff_t) == 8)
4638 ACCCHK_ASSERT(sizeof(void (*)(void)) == 8)
4639#endif
4640#if (ACC_CC_NDPC)
4641#elif (SIZEOF_INT > 1)
4642 ACCCHK_ASSERT( (int) ((unsigned char) ((signed char) -1)) == 255)
4643#endif
4644#if (ACC_CC_KEILC)
4645#elif (ACC_CC_NDPC)
4646#elif 1 && (ACC_CC_LCC || ACC_CC_LCCWIN32) && !defined(ACCCHK_CFG_PEDANTIC)
4647#elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
4648#elif !defined(ACC_BROKEN_INTEGRAL_PROMOTION) && (SIZEOF_INT > 1)
4649 ACCCHK_ASSERT( (((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0)
4650#endif
4651#if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0560))
4652# pragma option pop
4653#endif
4654#endif
4655#if defined(ACC_WANT_ACCLIB_UA)
4656# undef ACC_WANT_ACCLIB_UA
4657#define __ACCLIB_UA_CH_INCLUDED 1
4658#if !defined(ACCLIB_PUBLIC)
4659# define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
4660#endif
4661ACCLIB_PUBLIC(unsigned, acc_ua_get_be16) (const acc_hvoid_p p)
4662{
4663#if defined(ACC_UA_GET_BE16)
4664 return ACC_UA_GET_BE16(p);
4665#else
4666 const acc_hbyte_p b = (const acc_hbyte_p) p;
4667 return ((unsigned)b[1]) | ((unsigned)b[0] << 8);
4668#endif
4669}
4670ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_be24) (const acc_hvoid_p p)
4671{
4672 const acc_hbyte_p b = (const acc_hbyte_p) p;
4673 return ((acc_uint32l_t)b[2]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[0] << 16);
4674}
4675ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_be32) (const acc_hvoid_p p)
4676{
4677#if defined(ACC_UA_GET_BE32)
4678 return ACC_UA_GET_BE32(p);
4679#else
4680 const acc_hbyte_p b = (const acc_hbyte_p) p;
4681 return ((acc_uint32l_t)b[3]) | ((acc_uint32l_t)b[2] << 8) | ((acc_uint32l_t)b[1] << 16) | ((acc_uint32l_t)b[0] << 24);
4682#endif
4683}
4684ACCLIB_PUBLIC(void, acc_ua_set_be16) (acc_hvoid_p p, unsigned v)
4685{
4686#if defined(ACC_UA_SET_BE16)
4687 ACC_UA_SET_BE16(p, v);
4688#else
4689 acc_hbyte_p b = (acc_hbyte_p) p;
4690 b[1] = (unsigned char) ((v >> 0) & 0xff);
4691 b[0] = (unsigned char) ((v >> 8) & 0xff);
4692#endif
4693}
4694ACCLIB_PUBLIC(void, acc_ua_set_be24) (acc_hvoid_p p, acc_uint32l_t v)
4695{
4696 acc_hbyte_p b = (acc_hbyte_p) p;
4697 b[2] = (unsigned char) ((v >> 0) & 0xff);
4698 b[1] = (unsigned char) ((v >> 8) & 0xff);
4699 b[0] = (unsigned char) ((v >> 16) & 0xff);
4700}
4701ACCLIB_PUBLIC(void, acc_ua_set_be32) (acc_hvoid_p p, acc_uint32l_t v)
4702{
4703#if defined(ACC_UA_SET_BE32)
4704 ACC_UA_SET_BE32(p, v);
4705#else
4706 acc_hbyte_p b = (acc_hbyte_p) p;
4707 b[3] = (unsigned char) ((v >> 0) & 0xff);
4708 b[2] = (unsigned char) ((v >> 8) & 0xff);
4709 b[1] = (unsigned char) ((v >> 16) & 0xff);
4710 b[0] = (unsigned char) ((v >> 24) & 0xff);
4711#endif
4712}
4713ACCLIB_PUBLIC(unsigned, acc_ua_get_le16) (const acc_hvoid_p p)
4714{
4715#if defined(ACC_UA_GET_LE16)
4716 return ACC_UA_GET_LE16(p);
4717#else
4718 const acc_hbyte_p b = (const acc_hbyte_p) p;
4719 return ((unsigned)b[0]) | ((unsigned)b[1] << 8);
4720#endif
4721}
4722ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le24) (const acc_hvoid_p p)
4723{
4724 const acc_hbyte_p b = (const acc_hbyte_p) p;
4725 return ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16);
4726}
4727ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le32) (const acc_hvoid_p p)
4728{
4729#if defined(ACC_UA_GET_LE32)
4730 return ACC_UA_GET_LE32(p);
4731#else
4732 const acc_hbyte_p b = (const acc_hbyte_p) p;
4733 return ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16) | ((acc_uint32l_t)b[3] << 24);
4734#endif
4735}
4736ACCLIB_PUBLIC(void, acc_ua_set_le16) (acc_hvoid_p p, unsigned v)
4737{
4738#if defined(ACC_UA_SET_LE16)
4739 ACC_UA_SET_LE16(p, v);
4740#else
4741 acc_hbyte_p b = (acc_hbyte_p) p;
4742 b[0] = (unsigned char) ((v >> 0) & 0xff);
4743 b[1] = (unsigned char) ((v >> 8) & 0xff);
4744#endif
4745}
4746ACCLIB_PUBLIC(void, acc_ua_set_le24) (acc_hvoid_p p, acc_uint32l_t v)
4747{
4748 acc_hbyte_p b = (acc_hbyte_p) p;
4749 b[0] = (unsigned char) ((v >> 0) & 0xff);
4750 b[1] = (unsigned char) ((v >> 8) & 0xff);
4751 b[2] = (unsigned char) ((v >> 16) & 0xff);
4752}
4753ACCLIB_PUBLIC(void, acc_ua_set_le32) (acc_hvoid_p p, acc_uint32l_t v)
4754{
4755#if defined(ACC_UA_SET_LE32)
4756 ACC_UA_SET_LE32(p, v);
4757#else
4758 acc_hbyte_p b = (acc_hbyte_p) p;
4759 b[0] = (unsigned char) ((v >> 0) & 0xff);
4760 b[1] = (unsigned char) ((v >> 8) & 0xff);
4761 b[2] = (unsigned char) ((v >> 16) & 0xff);
4762 b[3] = (unsigned char) ((v >> 24) & 0xff);
4763#endif
4764}
4765#if defined(acc_int64l_t)
4766ACCLIB_PUBLIC(acc_uint64l_t, acc_ua_get_be64) (const acc_hvoid_p p)
4767{
4768#if defined(ACC_UA_GET_BE64)
4769 return ACC_UA_GET_BE64(p);
4770#elif defined(ACC_UA_GET_BE32)
4771 const acc_hbyte_p b = (const acc_hbyte_p) p;
4772 acc_uint32e_t v0, v1;
4773 v1 = ACC_UA_GET_BE32(b + 0);
4774 v0 = ACC_UA_GET_BE32(b + 4);
4775 return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
4776#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
4777 const acc_hbyte_p b = (const acc_hbyte_p) p;
4778 return ((acc_uint64l_t)b[7]) | ((acc_uint64l_t)b[6] << 8) | ((acc_uint64l_t)b[5] << 16) | ((acc_uint64l_t)b[4] << 24) | ((acc_uint64l_t)b[3] << 32) | ((acc_uint64l_t)b[2] << 40) | ((acc_uint64l_t)b[1] << 48) | ((acc_uint64l_t)b[0] << 56);
4779#else
4780 const acc_hbyte_p b = (const acc_hbyte_p) p;
4781 acc_uint32l_t v0, v1;
4782 v1 = ((acc_uint32l_t)b[3]) | ((acc_uint32l_t)b[2] << 8) | ((acc_uint32l_t)b[1] << 16) | ((acc_uint32l_t)b[0] << 24);
4783 b += 4;
4784 v0 = ((acc_uint32l_t)b[3]) | ((acc_uint32l_t)b[2] << 8) | ((acc_uint32l_t)b[1] << 16) | ((acc_uint32l_t)b[0] << 24);
4785 return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
4786#endif
4787}
4788ACCLIB_PUBLIC(void, acc_ua_set_be64) (acc_hvoid_p p, acc_uint64l_t v)
4789{
4790#if defined(ACC_UA_SET_BE64)
4791 ACC_UA_SET_BE64(p, v);
4792#elif defined(ACC_UA_SET_BE32)
4793 acc_hbyte_p b = (acc_hbyte_p) p;
4794 ACC_UA_SET_BE32(b + 4, (v >> 0));
4795 ACC_UA_SET_BE32(b + 0, (v >> 32));
4796#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
4797 acc_hbyte_p b = (acc_hbyte_p) p;
4798 b[7] = (unsigned char) ((v >> 0) & 0xff);
4799 b[6] = (unsigned char) ((v >> 8) & 0xff);
4800 b[5] = (unsigned char) ((v >> 16) & 0xff);
4801 b[4] = (unsigned char) ((v >> 24) & 0xff);
4802 b[3] = (unsigned char) ((v >> 32) & 0xff);
4803 b[2] = (unsigned char) ((v >> 40) & 0xff);
4804 b[1] = (unsigned char) ((v >> 48) & 0xff);
4805 b[0] = (unsigned char) ((v >> 56) & 0xff);
4806#else
4807 acc_hbyte_p b = (acc_hbyte_p) p;
4808 acc_uint32l_t x;
4809 x = (acc_uint32l_t) (v >> 0);
4810 b[7] = (unsigned char) ((x >> 0) & 0xff);
4811 b[6] = (unsigned char) ((x >> 8) & 0xff);
4812 b[5] = (unsigned char) ((x >> 16) & 0xff);
4813 b[4] = (unsigned char) ((x >> 24) & 0xff);
4814 x = (acc_uint32l_t) (v >> 32);
4815 b[3] = (unsigned char) ((x >> 0) & 0xff);
4816 b[2] = (unsigned char) ((x >> 8) & 0xff);
4817 b[1] = (unsigned char) ((x >> 16) & 0xff);
4818 b[0] = (unsigned char) ((x >> 24) & 0xff);
4819#endif
4820}
4821#endif
4822#if defined(acc_int64l_t)
4823ACCLIB_PUBLIC(acc_uint64l_t, acc_ua_get_le64) (const acc_hvoid_p p)
4824{
4825#if defined(ACC_UA_GET_LE64)
4826 return ACC_UA_GET_LE64(p);
4827#elif defined(ACC_UA_GET_LE32)
4828 const acc_hbyte_p b = (const acc_hbyte_p) p;
4829 acc_uint32e_t v0, v1;
4830 v0 = ACC_UA_GET_LE32(b + 0);
4831 v1 = ACC_UA_GET_LE32(b + 4);
4832 return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
4833#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
4834 const acc_hbyte_p b = (const acc_hbyte_p) p;
4835 return ((acc_uint64l_t)b[0]) | ((acc_uint64l_t)b[1] << 8) | ((acc_uint64l_t)b[2] << 16) | ((acc_uint64l_t)b[3] << 24) | ((acc_uint64l_t)b[4] << 32) | ((acc_uint64l_t)b[5] << 40) | ((acc_uint64l_t)b[6] << 48) | ((acc_uint64l_t)b[7] << 56);
4836#else
4837 const acc_hbyte_p b = (const acc_hbyte_p) p;
4838 acc_uint32l_t v0, v1;
4839 v0 = ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16) | ((acc_uint32l_t)b[3] << 24);
4840 b += 4;
4841 v1 = ((acc_uint32l_t)b[0]) | ((acc_uint32l_t)b[1] << 8) | ((acc_uint32l_t)b[2] << 16) | ((acc_uint32l_t)b[3] << 24);
4842 return ((acc_uint64l_t)v0) | ((acc_uint64l_t)v1 << 32);
4843#endif
4844}
4845ACCLIB_PUBLIC(void, acc_ua_set_le64) (acc_hvoid_p p, acc_uint64l_t v)
4846{
4847#if defined(ACC_UA_SET_LE64)
4848 ACC_UA_SET_LE64(p, v);
4849#elif defined(ACC_UA_SET_LE32)
4850 acc_hbyte_p b = (acc_hbyte_p) p;
4851 ACC_UA_SET_LE32(b + 0, (v >> 0));
4852 ACC_UA_SET_LE32(b + 4, (v >> 32));
4853#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
4854 acc_hbyte_p b = (acc_hbyte_p) p;
4855 b[0] = (unsigned char) ((v >> 0) & 0xff);
4856 b[1] = (unsigned char) ((v >> 8) & 0xff);
4857 b[2] = (unsigned char) ((v >> 16) & 0xff);
4858 b[3] = (unsigned char) ((v >> 24) & 0xff);
4859 b[4] = (unsigned char) ((v >> 32) & 0xff);
4860 b[5] = (unsigned char) ((v >> 40) & 0xff);
4861 b[6] = (unsigned char) ((v >> 48) & 0xff);
4862 b[7] = (unsigned char) ((v >> 56) & 0xff);
4863#else
4864 acc_hbyte_p b = (acc_hbyte_p) p;
4865 acc_uint32l_t x;
4866 x = (acc_uint32l_t) (v >> 0);
4867 b[0] = (unsigned char) ((x >> 0) & 0xff);
4868 b[1] = (unsigned char) ((x >> 8) & 0xff);
4869 b[2] = (unsigned char) ((x >> 16) & 0xff);
4870 b[3] = (unsigned char) ((x >> 24) & 0xff);
4871 x = (acc_uint32l_t) (v >> 32);
4872 b[4] = (unsigned char) ((x >> 0) & 0xff);
4873 b[5] = (unsigned char) ((x >> 8) & 0xff);
4874 b[6] = (unsigned char) ((x >> 16) & 0xff);
4875 b[7] = (unsigned char) ((x >> 24) & 0xff);
4876#endif
4877}
4878#endif
4879#endif
4880#if defined(ACC_WANT_ACCLIB_VGET)
4881# undef ACC_WANT_ACCLIB_VGET
4882#define __ACCLIB_VGET_CH_INCLUDED 1
4883#if !defined(ACCLIB_PUBLIC)
4884# define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
4885#endif
4886#if !defined(ACCLIB_PUBLIC_NOINLINE)
4887# if !defined(__acc_noinline)
4888# define ACCLIB_PUBLIC_NOINLINE(r,f) r __ACCLIB_FUNCNAME(f)
4889# elif (ACC_CC_GNUC >= 0x030400ul) || (ACC_CC_LLVM)
4890# define ACCLIB_PUBLIC_NOINLINE(r,f) __acc_noinline __attribute__((__used__)) r __ACCLIB_FUNCNAME(f)
4891# else
4892# define ACCLIB_PUBLIC_NOINLINE(r,f) __acc_noinline r __ACCLIB_FUNCNAME(f)
4893# endif
4894#endif
4895#if (ACC_CC_GNUC >= 0x030400ul) || (ACC_CC_LLVM)
4896extern void* volatile __acc_vget_ptr;
4897void* volatile __attribute__((__used__)) __acc_vget_ptr = (void *) 0;
4898#else
4899extern void* volatile __acc_vget_ptr;
4900void* volatile __acc_vget_ptr = (void *) 0;
4901#endif
4902#ifndef __ACCLIB_VGET_BODY
4903#define __ACCLIB_VGET_BODY(T) \
4904 if __acc_unlikely(__acc_vget_ptr) { \
4905 * (T *) __acc_vget_ptr = v; \
4906 * (int *) __acc_vget_ptr = expr; \
4907 v = * (T *) __acc_vget_ptr; \
4908 } \
4909 return v;
4910#endif
4911ACCLIB_PUBLIC_NOINLINE(short, acc_vget_short) (short v, int expr)
4912{
4913 __ACCLIB_VGET_BODY(short)
4914}
4915ACCLIB_PUBLIC_NOINLINE(int, acc_vget_int) (int v, int expr)
4916{
4917 __ACCLIB_VGET_BODY(int)
4918}
4919ACCLIB_PUBLIC_NOINLINE(long, acc_vget_long) (long v, int expr)
4920{
4921 __ACCLIB_VGET_BODY(long)
4922}
4923#if defined(acc_int64l_t)
4924ACCLIB_PUBLIC_NOINLINE(acc_int64l_t, acc_vget_acc_int64l_t) (acc_int64l_t v, int expr)
4925{
4926 __ACCLIB_VGET_BODY(acc_int64l_t)
4927}
4928#endif
4929ACCLIB_PUBLIC_NOINLINE(acc_hsize_t, acc_vget_acc_hsize_t) (acc_hsize_t v, int expr)
4930{
4931 __ACCLIB_VGET_BODY(acc_hsize_t)
4932}
4933#if !defined(ACC_CFG_NO_FLOAT)
4934ACCLIB_PUBLIC_NOINLINE(float, acc_vget_float) (float v, int expr)
4935{
4936 __ACCLIB_VGET_BODY(float)
4937}
4938#endif
4939#if !defined(ACC_CFG_NO_DOUBLE)
4940ACCLIB_PUBLIC_NOINLINE(double, acc_vget_double) (double v, int expr)
4941{
4942 __ACCLIB_VGET_BODY(double)
4943}
4944#endif
4945ACCLIB_PUBLIC_NOINLINE(acc_hvoid_p, acc_vget_acc_hvoid_p) (acc_hvoid_p v, int expr)
4946{
4947 __ACCLIB_VGET_BODY(acc_hvoid_p)
4948}
4949#if (ACC_ARCH_I086 && ACC_CC_TURBOC && (__TURBOC__ == 0x0295)) && !defined(__cplusplus)
4950ACCLIB_PUBLIC_NOINLINE(acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoid_p vv, int expr)
4951{
4952 acc_hvoid_p v = (acc_hvoid_p) vv;
4953 __ACCLIB_VGET_BODY(acc_hvoid_p)
4954}
4955#else
4956ACCLIB_PUBLIC_NOINLINE(const acc_hvoid_p, acc_vget_acc_hvoid_cp) (const acc_hvoid_p v, int expr)
4957{
4958 __ACCLIB_VGET_BODY(const acc_hvoid_p)
4959}
4960#endif
4961#endif
4962#if defined(ACC_WANT_ACCLIB_HMEMCPY)
4963# undef ACC_WANT_ACCLIB_HMEMCPY
4964#define __ACCLIB_HMEMCPY_CH_INCLUDED 1
4965#if !defined(ACCLIB_PUBLIC)
4966# define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
4967#endif
4968ACCLIB_PUBLIC(int, acc_hmemcmp) (const acc_hvoid_p s1, const acc_hvoid_p s2, acc_hsize_t len)
4969{
4970#if (ACC_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMCMP)
4971 const acc_hbyte_p p1 = (const acc_hbyte_p) s1;
4972 const acc_hbyte_p p2 = (const acc_hbyte_p) s2;
4973 if __acc_likely(len > 0) do
4974 {
4975 int d = *p1 - *p2;
4976 if (d != 0)
4977 return d;
4978 p1++; p2++;
4979 } while __acc_likely(--len > 0);
4980 return 0;
4981#else
4982 return memcmp(s1, s2, len);
4983#endif
4984}
4985ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemcpy) (acc_hvoid_p dest, const acc_hvoid_p src, acc_hsize_t len)
4986{
4987#if (ACC_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMCPY)
4988 acc_hbyte_p p1 = (acc_hbyte_p) dest;
4989 const acc_hbyte_p p2 = (const acc_hbyte_p) src;
4990 if (!(len > 0) || p1 == p2)
4991 return dest;
4992 do
4993 *p1++ = *p2++;
4994 while __acc_likely(--len > 0);
4995 return dest;
4996#else
4997 return memcpy(dest, src, len);
4998#endif
4999}
5000ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemmove) (acc_hvoid_p dest, const acc_hvoid_p src, acc_hsize_t len)
5001{
5002#if (ACC_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMMOVE)
5003 acc_hbyte_p p1 = (acc_hbyte_p) dest;
5004 const acc_hbyte_p p2 = (const acc_hbyte_p) src;
5005 if (!(len > 0) || p1 == p2)
5006 return dest;
5007 if (p1 < p2)
5008 {
5009 do
5010 *p1++ = *p2++;
5011 while __acc_likely(--len > 0);
5012 }
5013 else
5014 {
5015 p1 += len;
5016 p2 += len;
5017 do
5018 *--p1 = *--p2;
5019 while __acc_likely(--len > 0);
5020 }
5021 return dest;
5022#else
5023 return memmove(dest, src, len);
5024#endif
5025}
5026ACCLIB_PUBLIC(acc_hvoid_p, acc_hmemset) (acc_hvoid_p s, int c, acc_hsize_t len)
5027{
5028#if (ACC_HAVE_MM_HUGE_PTR) || !defined(HAVE_MEMSET)
5029 acc_hbyte_p p = (acc_hbyte_p) s;
5030 if __acc_likely(len > 0) do
5031 *p++ = (unsigned char) c;
5032 while __acc_likely(--len > 0);
5033 return s;
5034#else
5035 return memset(s, c, len);
5036#endif
5037}
5038#endif
5039#if defined(ACC_WANT_ACCLIB_RAND)
5040# undef ACC_WANT_ACCLIB_RAND
5041#define __ACCLIB_RAND_CH_INCLUDED 1
5042#if !defined(ACCLIB_PUBLIC)
5043# define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5044#endif
5045ACCLIB_PUBLIC(void, acc_srand31) (acc_rand31_p r, acc_uint32l_t seed)
5046{
5047 r->seed = seed & ACC_UINT32_C(0xffffffff);
5048}
5049ACCLIB_PUBLIC(acc_uint32l_t, acc_rand31) (acc_rand31_p r)
5050{
5051 r->seed = r->seed * ACC_UINT32_C(1103515245) + 12345;
5052 r->seed &= ACC_UINT32_C(0x7fffffff);
5053 return r->seed;
5054}
5055#if defined(acc_int64l_t)
5056ACCLIB_PUBLIC(void, acc_srand48) (acc_rand48_p r, acc_uint32l_t seed)
5057{
5058 r->seed = seed & ACC_UINT32_C(0xffffffff);
5059 r->seed <<= 16; r->seed |= 0x330e;
5060}
5061ACCLIB_PUBLIC(acc_uint32l_t, acc_rand48) (acc_rand48_p r)
5062{
5063 r->seed = r->seed * ACC_UINT64_C(25214903917) + 11;
5064 r->seed &= ACC_UINT64_C(0xffffffffffff);
5065 return (acc_uint32l_t) (r->seed >> 17);
5066}
5067ACCLIB_PUBLIC(acc_uint32l_t, acc_rand48_r32) (acc_rand48_p r)
5068{
5069 r->seed = r->seed * ACC_UINT64_C(25214903917) + 11;
5070 r->seed &= ACC_UINT64_C(0xffffffffffff);
5071 return (acc_uint32l_t) (r->seed >> 16);
5072}
5073#endif
5074#if defined(acc_int64l_t)
5075ACCLIB_PUBLIC(void, acc_srand64) (acc_rand64_p r, acc_uint64l_t seed)
5076{
5077 r->seed = seed & ACC_UINT64_C(0xffffffffffffffff);
5078}
5079ACCLIB_PUBLIC(acc_uint32l_t, acc_rand64) (acc_rand64_p r)
5080{
5081 r->seed = r->seed * ACC_UINT64_C(6364136223846793005) + 1;
5082#if (ACC_SIZEOF_ACC_INT64L_T > 8)
5083 r->seed &= ACC_UINT64_C(0xffffffffffffffff);
5084#endif
5085 return (acc_uint32l_t) (r->seed >> 33);
5086}
5087ACCLIB_PUBLIC(acc_uint32l_t, acc_rand64_r32) (acc_rand64_p r)
5088{
5089 r->seed = r->seed * ACC_UINT64_C(6364136223846793005) + 1;
5090#if (ACC_SIZEOF_ACC_INT64L_T > 8)
5091 r->seed &= ACC_UINT64_C(0xffffffffffffffff);
5092#endif
5093 return (acc_uint32l_t) (r->seed >> 32);
5094}
5095#endif
5096ACCLIB_PUBLIC(void, acc_srandmt) (acc_randmt_p r, acc_uint32l_t seed)
5097{
5098 unsigned i = 0;
5099 do {
5100 r->s[i++] = (seed &= ACC_UINT32_C(0xffffffff));
5101 seed ^= seed >> 30;
5102 seed = seed * ACC_UINT32_C(0x6c078965) + i;
5103 } while (i != 624);
5104 r->n = i;
5105}
5106ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt) (acc_randmt_p r)
5107{
5108 return (__ACCLIB_FUNCNAME(acc_randmt_r32)(r)) >> 1;
5109}
5110ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt_r32) (acc_randmt_p r)
5111{
5112 acc_uint32l_t v;
5113 if __acc_unlikely(r->n == 624) {
5114 int i = 0, j;
5115 r->n = 0;
5116 do {
5117 j = i - 623; if (j < 0) j += 624;
5118 v = (r->s[i] & ACC_UINT32_C(0x80000000)) ^ (r->s[j] & ACC_UINT32_C(0x7fffffff));
5119 j = i - 227; if (j < 0) j += 624;
5120 r->s[i] = r->s[j] ^ (v >> 1);
5121 if (v & 1) r->s[i] ^= ACC_UINT32_C(0x9908b0df);
5122 } while (++i != 624);
5123 }
5124 v = r->s[r->n++];
5125 v ^= v >> 11; v ^= (v & ACC_UINT32_C(0x013a58ad)) << 7;
5126 v ^= (v & ACC_UINT32_C(0x0001df8c)) << 15; v ^= v >> 18;
5127 return v;
5128}
5129#if defined(acc_int64l_t)
5130ACCLIB_PUBLIC(void, acc_srandmt64) (acc_randmt64_p r, acc_uint64l_t seed)
5131{
5132 unsigned i = 0;
5133 do {
5134 r->s[i++] = (seed &= ACC_UINT64_C(0xffffffffffffffff));
5135 seed ^= seed >> 62;
5136 seed = seed * ACC_UINT64_C(0x5851f42d4c957f2d) + i;
5137 } while (i != 312);
5138 r->n = i;
5139}
5140#if 0
5141ACCLIB_PUBLIC(acc_uint32l_t, acc_randmt64) (acc_randmt64_p r)
5142{
5143 acc_uint64l_t v;
5144 v = (__ACCLIB_FUNCNAME(acc_randmt64_r64)(r)) >> 33;
5145 return (acc_uint32l_t) v;
5146}
5147#endif
5148ACCLIB_PUBLIC(acc_uint64l_t, acc_randmt64_r64) (acc_randmt64_p r)
5149{
5150 acc_uint64l_t v;
5151 if __acc_unlikely(r->n == 312) {
5152 int i = 0, j;
5153 r->n = 0;
5154 do {
5155 j = i - 311; if (j < 0) j += 312;
5156 v = (r->s[i] & ACC_UINT64_C(0xffffffff80000000)) ^ (r->s[j] & ACC_UINT64_C(0x7fffffff));
5157 j = i - 156; if (j < 0) j += 312;
5158 r->s[i] = r->s[j] ^ (v >> 1);
5159 if (v & 1) r->s[i] ^= ACC_UINT64_C(0xb5026f5aa96619e9);
5160 } while (++i != 312);
5161 }
5162 v = r->s[r->n++];
5163 v ^= (v & ACC_UINT64_C(0xaaaaaaaaa0000000)) >> 29;
5164 v ^= (v & ACC_UINT64_C(0x38eb3ffff6d3)) << 17;
5165 v ^= (v & ACC_UINT64_C(0x7ffbf77)) << 37;
5166 return v ^ (v >> 43);
5167}
5168#endif
5169#endif
5170#if defined(ACC_WANT_ACCLIB_RDTSC)
5171# undef ACC_WANT_ACCLIB_RDTSC
5172#define __ACCLIB_RDTSC_CH_INCLUDED 1
5173#if !defined(ACCLIB_PUBLIC)
5174# define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5175#endif
5176#if defined(acc_int32e_t)
5177#if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
5178# pragma warn(push)
5179# pragma warn(disable:2007)
5180#endif
5181#if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
5182#if (ACC_ARCH_AMD64 && ACC_CC_PATHSCALE)
5183# define __ACCLIB_RDTSC_REGS : : "c" (t) : "cc", "memory", "rax", "rdx"
5184#elif (ACC_ARCH_AMD64 && ACC_CC_INTELC)
5185# define __ACCLIB_RDTSC_REGS : : "r" (t) : "memory", "rax", "rdx"
5186#elif (ACC_ARCH_AMD64)
5187# define __ACCLIB_RDTSC_REGS : : "r" (t) : "cc", "memory", "rax", "rdx"
5188#elif (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
5189# define __ACCLIB_RDTSC_REGS : : "r" (t) : "ax", "dx"
5190#elif (ACC_ARCH_I386 && ACC_CC_INTELC)
5191# define __ACCLIB_RDTSC_REGS : : "r" (t) : "memory", "eax", "edx"
5192#elif (ACC_ARCH_I386 && ACC_CC_PATHSCALE)
5193# define __ACCLIB_RDTSC_REGS : : "c" (t) : "memory", "eax", "edx"
5194#else
5195# define __ACCLIB_RDTSC_REGS : : "r" (t) : "cc", "memory", "eax", "edx"
5196#endif
5197#endif
5198ACCLIB_PUBLIC(int, acc_tsc_read) (acc_uint32e_t* t)
5199{
5200#if (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
5201 __asm__ __volatile__(
5202 "clc \n" ".byte 0x0f,0x31\n"
5203 "movl %%eax,(%0)\n" "movl %%edx,4(%0)\n"
5204 __ACCLIB_RDTSC_REGS
5205 );
5206 return 0;
5207#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
5208 ACC_UNUSED(t);
5209 __asm {
5210 mov ecx, t
5211 clc
5212# if (ACC_CC_MSC && (_MSC_VER < 1200))
5213 _emit 0x0f
5214 _emit 0x31
5215# else
5216 rdtsc
5217# endif
5218 mov [ecx], eax
5219 mov [ecx+4], edx
5220 }
5221 return 0;
5222#else
5223 t[0] = t[1] = 0; return -1;
5224#endif
5225}
5226#if (ACC_OS_WIN32 && ACC_CC_PELLESC && (__POCC__ >= 290))
5227# pragma warn(pop)
5228#endif
5229#endif
5230#endif
5231#if defined(ACC_WANT_ACCLIB_DOSALLOC)
5232# undef ACC_WANT_ACCLIB_DOSALLOC
5233#define __ACCLIB_DOSALLOC_CH_INCLUDED 1
5234#if !defined(ACCLIB_PUBLIC)
5235# define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5236#endif
5237#if (ACC_OS_OS216)
5238ACC_EXTERN_C unsigned short __far __pascal DosAllocHuge(unsigned short, unsigned short, unsigned short __far *, unsigned short, unsigned short);
5239ACC_EXTERN_C unsigned short __far __pascal DosFreeSeg(unsigned short);
5240#endif
5241#if (ACC_OS_DOS16 || ACC_OS_WIN16)
5242#if !defined(ACC_CC_AZTECC)
5243ACCLIB_PUBLIC(void __far*, acc_dos_alloc) (unsigned long size)
5244{
5245 void __far* p = 0;
5246 union REGS ri, ro;
5247 if ((long)size <= 0)
5248 return p;
5249 size = (size + 15) >> 4;
5250 if (size > 0xffffu)
5251 return p;
5252 ri.x.ax = 0x4800;
5253 ri.x.bx = (unsigned short) size;
5254 int86(0x21, &ri, &ro);
5255 if ((ro.x.cflag & 1) == 0)
5256 p = (void __far*) ACC_PTR_MK_FP(ro.x.ax, 0);
5257 return p;
5258}
5259ACCLIB_PUBLIC(int, acc_dos_free) (void __far* p)
5260{
5261 union REGS ri, ro;
5262 struct SREGS rs;
5263 if (!p)
5264 return 0;
5265 if (ACC_PTR_FP_OFF(p) != 0)
5266 return -1;
5267 segread(&rs);
5268 ri.x.ax = 0x4900;
5269 rs.es = ACC_PTR_FP_SEG(p);
5270 int86x(0x21, &ri, &ro, &rs);
5271 if (ro.x.cflag & 1)
5272 return -1;
5273 return 0;
5274}
5275#endif
5276#endif
5277#if (ACC_OS_OS216)
5278ACCLIB_PUBLIC(void __far*, acc_dos_alloc) (unsigned long size)
5279{
5280 void __far* p = 0;
5281 unsigned short sel = 0;
5282 if ((long)size <= 0)
5283 return p;
5284 if (DosAllocHuge((unsigned short)(size >> 16), (unsigned short)size, &sel, 0, 0) == 0)
5285 p = (void __far*) ACC_PTR_MK_FP(sel, 0);
5286 return p;
5287}
5288ACCLIB_PUBLIC(int, acc_dos_free) (void __far* p)
5289{
5290 if (!p)
5291 return 0;
5292 if (ACC_PTR_FP_OFF(p) != 0)
5293 return -1;
5294 if (DosFreeSeg(ACC_PTR_FP_SEG(p)) != 0)
5295 return -1;
5296 return 0;
5297}
5298#endif
5299#endif
5300#if defined(ACC_WANT_ACCLIB_HALLOC)
5301# undef ACC_WANT_ACCLIB_HALLOC
5302#define __ACCLIB_HALLOC_CH_INCLUDED 1
5303#if !defined(ACCLIB_PUBLIC)
5304# define ACCLIB_PUBLIC(r,f) r __ACCLIB_FUNCNAME(f)
5305#endif
5306#if (ACC_HAVE_MM_HUGE_PTR)
5307#if 1 && (ACC_OS_DOS16 && defined(BLX286))
5308# define __ACCLIB_HALLOC_USE_DAH 1
5309#elif 1 && (ACC_OS_DOS16 && defined(DOSX286))
5310# define __ACCLIB_HALLOC_USE_DAH 1
5311#elif 1 && (ACC_OS_OS216)
5312# define __ACCLIB_HALLOC_USE_DAH 1
5313#elif 1 && (ACC_OS_WIN16)
5314# define __ACCLIB_HALLOC_USE_GA 1
5315#elif 1 && (ACC_OS_DOS16) && (ACC_CC_BORLANDC) && defined(__DPMI16__)
5316# define __ACCLIB_HALLOC_USE_GA 1
5317#endif
5318#endif
5319#if (__ACCLIB_HALLOC_USE_DAH)
5320#if 0 && (ACC_OS_OS216)
5321#include <os2.h>
5322#else
5323ACC_EXTERN_C unsigned short __far __pascal