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