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