xref: /titanic_44/usr/src/lib/libast/amd64/include/ast/ast_common.h (revision 3e14f97f673e8a630f076077de35afdd43dc1587)
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