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