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 141da2e3ebdSchin#define _ast_intmax_t _ast_int8_t 142da2e3ebdSchin#define _ast_intmax_long 1 143da2e3ebdSchin#define _ast_intswap 7 144da2e3ebdSchin 145*b30d1939SAndy Fiddaman#define _ast_sizeof_short 2 /* sizeof(short) */ 146*b30d1939SAndy Fiddaman#define _ast_sizeof_int 4 /* sizeof(int) */ 147*b30d1939SAndy Fiddaman#define _ast_sizeof_long 8 /* sizeof(long) */ 148*b30d1939SAndy Fiddaman#define _ast_sizeof_size_t 8 /* sizeof(size_t) */ 149*b30d1939SAndy Fiddaman#define _ast_sizeof_pointer 8 /* sizeof(pointer) */ 150*b30d1939SAndy Fiddaman#define _ast_sizeof_float 4 /* sizeof(float) */ 151*b30d1939SAndy Fiddaman#define _ast_sizeof_double 8 /* sizeof(double) */ 152*b30d1939SAndy Fiddaman#define _ast_sizeof_long_double 16 /* sizeof(long_double) */ 153*b30d1939SAndy Fiddaman 154da2e3ebdSchin#define _ast_flt4_t float 155da2e3ebdSchin#define _ast_flt8_t double 156da2e3ebdSchin#define _ast_flt16_t long double 157da2e3ebdSchin#define _ast_fltmax_t _ast_flt16_t 158da2e3ebdSchin#define _typ_int8_t 1 /* int8_t is a type */ 159da2e3ebdSchin#define _typ_uint8_t 1 /* uint8_t is a type */ 160da2e3ebdSchin#define _typ_int16_t 1 /* int16_t is a type */ 161da2e3ebdSchin#define _typ_uint16_t 1 /* uint16_t is a type */ 162da2e3ebdSchin#define _typ_int32_t 1 /* int32_t is a type */ 163da2e3ebdSchin#define _typ_uint32_t 1 /* uint32_t is a type */ 164da2e3ebdSchin#define _typ_int64_t 1 /* int64_t is a type */ 165da2e3ebdSchin#define _typ_uint64_t 1 /* uint64_t is a type */ 166da2e3ebdSchin#define _typ_intmax_t 1 /* intmax_t is a type */ 167da2e3ebdSchin#define _typ_uintmax_t 1 /* uintmax_t is a type */ 168*b30d1939SAndy Fiddaman#define _typ_uintptr_t 1 /* uintptr_t is a type */ 169da2e3ebdSchin 170da2e3ebdSchin#ifndef va_listref 171da2e3ebdSchin#ifndef va_start 172da2e3ebdSchin#if __STD_C 173da2e3ebdSchin#include <stdarg.h> 174da2e3ebdSchin#else 175da2e3ebdSchin#include <varargs.h> 176da2e3ebdSchin#endif 177da2e3ebdSchin#endif 17834f9b3eeSRoland Mainz#define va_listref(p) (&(p)) /* pass va_list to varargs function */ 17934f9b3eeSRoland Mainz#define va_listval(p) (*(p)) /* retrieve va_list from va_arg(ap,va_listarg) */ 18034f9b3eeSRoland Mainz#define va_listarg va_list* /* va_arg() va_list type */ 181da2e3ebdSchin#endif 182da2e3ebdSchin#ifndef _AST_STD_H 183da2e3ebdSchin# if __STD_C && _hdr_stddef 184da2e3ebdSchin# include <stddef.h> 185da2e3ebdSchin# endif 186da2e3ebdSchin# if _sys_types 187da2e3ebdSchin# include <sys/types.h> 188da2e3ebdSchin# endif 189da2e3ebdSchin# if _hdr_stdint 190da2e3ebdSchin# include <stdint.h> 191da2e3ebdSchin# else 192da2e3ebdSchin# if _hdr_inttypes 193da2e3ebdSchin# include <inttypes.h> 194da2e3ebdSchin# endif 195da2e3ebdSchin# endif 196da2e3ebdSchin#endif 197da2e3ebdSchin#if !_typ_size_t 198da2e3ebdSchin# define _typ_size_t 1 199da2e3ebdSchin typedef int size_t; 200da2e3ebdSchin#endif 201da2e3ebdSchin#if !_typ_ssize_t 202da2e3ebdSchin# define _typ_ssize_t 1 203da2e3ebdSchin typedef int ssize_t; 204da2e3ebdSchin#endif 205da2e3ebdSchin#ifndef _AST_STD_H 206da2e3ebdSchin# define _def_map_ast 1 207da2e3ebdSchin# if !_def_map_ast 208da2e3ebdSchin# include <ast_map.h> 209da2e3ebdSchin# endif 210da2e3ebdSchin#endif 211da2e3ebdSchin 212da2e3ebdSchin#endif 213