1*b30d1939SAndy Fiddaman/* : : generated from contrib/ast/src/lib/libast/features/common by iffe version 2012-07-17 : : */
2da2e3ebdSchin#ifndef _AST_COMMON_H
3da2e3ebdSchin#define _AST_COMMON_H	1
4da2e3ebdSchin#define _sys_types	1	/* #include <sys/types.h> ok */
5da2e3ebdSchin#define _hdr_pthread	1	/* #include <pthread.h> ok */
6da2e3ebdSchin#define _hdr_stdarg	1	/* #include <stdarg.h> ok */
7da2e3ebdSchin#define _hdr_stddef	1	/* #include <stddef.h> ok */
8da2e3ebdSchin#define _hdr_stdint	1	/* #include <stdint.h> ok */
9da2e3ebdSchin#define _hdr_inttypes	1	/* #include <inttypes.h> ok */
10da2e3ebdSchin#define _hdr_unistd	1	/* #include <unistd.h> ok */
11da2e3ebdSchin#define _hdr_time	1	/* #include <time.h> ok */
12da2e3ebdSchin#define _sys_time	1	/* #include <sys/time.h> ok */
13da2e3ebdSchin#define _sys_times	1	/* #include <sys/times.h> ok */
14da2e3ebdSchin#define _hdr_stdlib	1	/* #include <stdlib.h> ok */
15da2e3ebdSchin#define _typ_long_double	1	/* long double is a type */
16da2e3ebdSchin#define _typ_size_t	1	/* size_t is a type */
17da2e3ebdSchin#define _typ_ssize_t	1	/* ssize_t is a type */
18*b30d1939SAndy Fiddaman#define _hdr_stdio	1	/* #include <stdio.h> ok */
19*b30d1939SAndy Fiddaman#define _typ___va_list	1	/* __va_list is a type */
20da2e3ebdSchin#define _sys_stat	1	/* #include <sys/stat.h> ok */
21da2e3ebdSchin#define _sys_socket	1	/* #include <sys/socket.h> ok */
22da2e3ebdSchin#define _std_proto	1	/* standard C prototypes ok */
23da2e3ebdSchin#define _ptr_void	1	/* standard C void* ok */
24da2e3ebdSchin/* disable non-standard linux/gnu inlines */
25da2e3ebdSchin#ifdef __GNUC__
26da2e3ebdSchin#	undef	__OPTIMIZE_SIZE__
27da2e3ebdSchin#	define	__OPTIMIZE_SIZE__	1
28da2e3ebdSchin#endif
29da2e3ebdSchin
30da2e3ebdSchin/* __STD_C indicates that the language is ANSI-C or C++ */
31da2e3ebdSchin#if !defined(__STD_C) && __STDC__
32da2e3ebdSchin#	define	__STD_C		1
33da2e3ebdSchin#endif
34da2e3ebdSchin#if !defined(__STD_C) && (__cplusplus || c_plusplus)
35da2e3ebdSchin#	define __STD_C		1
36da2e3ebdSchin#endif
37da2e3ebdSchin#if !defined(__STD_C) && _std_proto
38da2e3ebdSchin#	define __STD_C		1
39da2e3ebdSchin#endif
40da2e3ebdSchin#if !defined(__STD_C)
41da2e3ebdSchin#	define __STD_C		0
42da2e3ebdSchin#endif
43da2e3ebdSchin
44da2e3ebdSchin/* extern symbols must be protected against C++ name mangling */
45da2e3ebdSchin#ifndef _BEGIN_EXTERNS_
46da2e3ebdSchin#	if __cplusplus || c_plusplus
47da2e3ebdSchin#		define _BEGIN_EXTERNS_	extern "C" {
48da2e3ebdSchin#		define _END_EXTERNS_	}
49da2e3ebdSchin#	else
50da2e3ebdSchin#		define _BEGIN_EXTERNS_
51da2e3ebdSchin#		define _END_EXTERNS_
52da2e3ebdSchin#	endif
53da2e3ebdSchin#endif
54da2e3ebdSchin
55da2e3ebdSchin/* _ARG_ simplifies function prototyping among flavors of C */
56da2e3ebdSchin#ifndef _ARG_
57da2e3ebdSchin#	if __STD_C
58da2e3ebdSchin#		define _ARG_(x)	x
59da2e3ebdSchin#	else
60da2e3ebdSchin#		define _ARG_(x)	()
61da2e3ebdSchin#	endif
62da2e3ebdSchin#endif
63da2e3ebdSchin
64da2e3ebdSchin/* _NIL_ simplifies defining nil pointers to a given type */
65da2e3ebdSchin#ifndef _NIL_
66da2e3ebdSchin#	define _NIL_(x)	((x)0)
67da2e3ebdSchin#endif
68da2e3ebdSchin
69*b30d1939SAndy Fiddaman/* __INLINE__, if defined, is the inline keyword */
70da2e3ebdSchin#if !defined(__INLINE__) && defined(__cplusplus)
71da2e3ebdSchin#	define __INLINE__	inline
72da2e3ebdSchin#endif
73da2e3ebdSchin#if !defined(__INLINE__) && defined(_WIN32) && !defined(__GNUC__)
74da2e3ebdSchin#	define __INLINE__	__inline
75da2e3ebdSchin#endif
76da2e3ebdSchin
77da2e3ebdSchin/* Void_t is defined so that Void_t* can address any type */
78da2e3ebdSchin#ifndef Void_t
79da2e3ebdSchin#	if __STD_C
80da2e3ebdSchin#		define Void_t		void
81da2e3ebdSchin#	else
82da2e3ebdSchin#		define Void_t		char
83da2e3ebdSchin#	endif
84da2e3ebdSchin#endif
85da2e3ebdSchin
86da2e3ebdSchin/* windows variants and veneers */
87da2e3ebdSchin#if !defined(_WINIX) && (_UWIN || __CYGWIN__ || __EMX__)
88da2e3ebdSchin#	define _WINIX		1
89da2e3ebdSchin#endif
90da2e3ebdSchin
91da2e3ebdSchin/* dynamic linked library external scope handling */
92da2e3ebdSchin#ifdef __DYNAMIC__
93da2e3ebdSchin#	undef	__DYNAMIC__
94da2e3ebdSchin#	ifndef _DLL
95da2e3ebdSchin#		define _DLL		1
96da2e3ebdSchin#	endif
97da2e3ebdSchin#endif
98da2e3ebdSchin#if _dll_import
99da2e3ebdSchin#	if _BLD_STATIC && !_BLD_DLL
100da2e3ebdSchin#		undef	_DLL
101da2e3ebdSchin#	else
102da2e3ebdSchin#		if !_UWIN && !defined(_DLL)
103da2e3ebdSchin#			define _DLL		1
104da2e3ebdSchin#		endif
105da2e3ebdSchin#	endif
106da2e3ebdSchin#	if !defined(__EXPORT__) && _BLD_DLL
107da2e3ebdSchin#		define __EXPORT__	__declspec(dllexport)
108da2e3ebdSchin#	endif
109da2e3ebdSchin#	if !defined(__IMPORT__) && ( _BLD_DLL || defined(_DLL) )
110da2e3ebdSchin#		define __IMPORT__	__declspec(dllimport)
111da2e3ebdSchin#	endif
112da2e3ebdSchin#	if _BLD_DLL && _UWIN
113da2e3ebdSchin#	define __DYNAMIC__(v)		(_ast_getdll()->_ast_ ## v)
114da2e3ebdSchin#	endif
115da2e3ebdSchin#endif
116da2e3ebdSchin#if !defined(_astimport)
117da2e3ebdSchin#	if defined(__IMPORT__) && defined(_DLL)
118da2e3ebdSchin#		define _astimport	__IMPORT__
119da2e3ebdSchin#	else
120da2e3ebdSchin#		define _astimport	extern
121da2e3ebdSchin#	endif
122da2e3ebdSchin#endif
123da2e3ebdSchin#if _dll_import && ( !_BLD_DLL || _WINIX && !_UWIN )
124da2e3ebdSchin#	ifdef __STDC__
125da2e3ebdSchin#	define __EXTERN__(T,obj)	extern T obj; T* _imp__ ## obj = &obj
126da2e3ebdSchin#	define __DEFINE__(T,obj,val)	T obj = val; T* _imp__ ## obj = &obj
127da2e3ebdSchin#	else
128da2e3ebdSchin#	define __EXTERN__(T,obj)	extern T obj; T* _imp__/**/obj = &obj
129da2e3ebdSchin#	define __DEFINE__(T,obj,val)	T obj = val; T* _imp__/**/obj = &obj
130da2e3ebdSchin#	endif
131da2e3ebdSchin#else
132da2e3ebdSchin#	define __EXTERN__(T,obj)	extern T obj
133da2e3ebdSchin#	define __DEFINE__(T,obj,val)	T obj = val
134da2e3ebdSchin#endif
135da2e3ebdSchin
136da2e3ebdSchin#define _ast_LL	1	/* LL numeric suffix supported */
137da2e3ebdSchin#define _ast_int1_t		char
138da2e3ebdSchin#define _ast_int2_t		short
139da2e3ebdSchin#define _ast_int4_t		int
140da2e3ebdSchin#define _ast_int8_t		long long
141da2e3ebdSchin#define _ast_intmax_t		_ast_int8_t
142da2e3ebdSchin#define _ast_intswap		7
143da2e3ebdSchin
144*b30d1939SAndy Fiddaman#define _ast_sizeof_short	2	/* sizeof(short) */
145*b30d1939SAndy Fiddaman#define _ast_sizeof_int		4	/* sizeof(int) */
146*b30d1939SAndy Fiddaman#define _ast_sizeof_long	4	/* sizeof(long) */
147*b30d1939SAndy Fiddaman#define _ast_sizeof_size_t	4	/* sizeof(size_t) */
148*b30d1939SAndy Fiddaman#define _ast_sizeof_pointer	4	/* sizeof(pointer) */
149*b30d1939SAndy Fiddaman#define _ast_sizeof_float	4	/* sizeof(float) */
150*b30d1939SAndy Fiddaman#define _ast_sizeof_double	8	/* sizeof(double) */
151*b30d1939SAndy Fiddaman#define _ast_sizeof_long_double	12	/* sizeof(long_double) */
152*b30d1939SAndy Fiddaman
153da2e3ebdSchin#define _ast_flt4_t		float
154da2e3ebdSchin#define _ast_flt8_t		double
155da2e3ebdSchin#define _ast_flt12_t		long double
156da2e3ebdSchin#define _ast_fltmax_t		_ast_flt12_t
157da2e3ebdSchin#define _typ_int8_t	1	/* int8_t is a type */
158da2e3ebdSchin#define _typ_uint8_t	1	/* uint8_t is a type */
159da2e3ebdSchin#define _typ_int16_t	1	/* int16_t is a type */
160da2e3ebdSchin#define _typ_uint16_t	1	/* uint16_t is a type */
161da2e3ebdSchin#define _typ_int32_t	1	/* int32_t is a type */
162da2e3ebdSchin#define _typ_uint32_t	1	/* uint32_t is a type */
163da2e3ebdSchin#define _typ_int64_t	1	/* int64_t is a type */
164da2e3ebdSchin#define _typ_uint64_t	1	/* uint64_t is a type */
165da2e3ebdSchin#define _typ_intmax_t	1	/* intmax_t is a type */
166da2e3ebdSchin#define _typ_uintmax_t	1	/* uintmax_t is a type */
167*b30d1939SAndy Fiddaman#define _typ_uintptr_t	1	/* uintptr_t is a type */
168da2e3ebdSchin
169da2e3ebdSchin#ifndef va_listref
170da2e3ebdSchin#ifndef	va_start
171da2e3ebdSchin#if __STD_C
172da2e3ebdSchin#include <stdarg.h>
173da2e3ebdSchin#else
174da2e3ebdSchin#include <varargs.h>
175da2e3ebdSchin#endif
176da2e3ebdSchin#endif
17734f9b3eeSRoland Mainz#define va_listref(p) (p)	/* pass va_list to varargs function */
17834f9b3eeSRoland Mainz#define va_listval(p) (p)	/* retrieve va_list from va_arg(ap,va_listarg) */
17934f9b3eeSRoland Mainz#define va_listarg va_list	/* va_arg() va_list type */
180da2e3ebdSchin#endif
181da2e3ebdSchin#ifndef _AST_STD_H
182da2e3ebdSchin#	if __STD_C && _hdr_stddef
183da2e3ebdSchin#	include	<stddef.h>
184da2e3ebdSchin#	endif
185da2e3ebdSchin#	if _sys_types
186da2e3ebdSchin#	include	<sys/types.h>
187da2e3ebdSchin#	endif
188da2e3ebdSchin#	if _hdr_stdint
189da2e3ebdSchin#	include	<stdint.h>
190da2e3ebdSchin#	else
191da2e3ebdSchin#		if _hdr_inttypes
192da2e3ebdSchin#		include	<inttypes.h>
193da2e3ebdSchin#		endif
194da2e3ebdSchin#	endif
195da2e3ebdSchin#endif
196da2e3ebdSchin#if !_typ_size_t
197da2e3ebdSchin#	define _typ_size_t	1
198da2e3ebdSchin	typedef int size_t;
199da2e3ebdSchin#endif
200da2e3ebdSchin#if !_typ_ssize_t
201da2e3ebdSchin#	define _typ_ssize_t	1
202da2e3ebdSchin	typedef int ssize_t;
203da2e3ebdSchin#endif
204da2e3ebdSchin#ifndef _AST_STD_H
205da2e3ebdSchin#	define _def_map_ast	1
206da2e3ebdSchin#	if !_def_map_ast
207da2e3ebdSchin#		include <ast_map.h>
208da2e3ebdSchin#	endif
209da2e3ebdSchin#endif
210da2e3ebdSchin
211da2e3ebdSchin#endif
212