00001 /* include/qthread/common.h. Generated from common.h.in by configure. */ 00002 /* -*- Mode: C -*- 00003 * ------------------------------------------------------------------ 00004 * DO NOT EDIT THIS FILE! It has been automatically generated. 00005 * ------------------------------------------------------------------ 00006 */ 00007 00008 #ifndef QTHREAD_COMMON_H 00009 #define QTHREAD_COMMON_H 00010 00011 /* Whether C compiler supports GCC style inline assembly */ 00012 #define HAVE_GCC_INLINE_ASSEMBLY 1 00013 00014 /* Architecture type of assembly to use */ 00015 #define QTHREAD_ASSEMBLY_ARCH QTHREAD_POWERPC32 00016 00017 /* use mutexes when incrementing, rather than architecture-specific assembly 00018 */ 00019 /* #undef QTHREAD_MUTEX_INCREMENT */ 00020 00021 /* use inlined functions */ 00022 /* #undef QTHREAD_INLINE */ 00023 00024 /* Allow functions to be inlined */ 00025 #define QINLINE inline 00026 00027 /* Define if bitfields are in forward order */ 00028 #define BITFIELD_ORDER_FORWARD 1 00029 00030 /* Define if bitfields are in reverse order */ 00031 /* #undef BITFIELD_ORDER_REVERSE */ 00032 00033 /* The size of `void*', as computed by sizeof. */ 00034 #define SIZEOF_VOIDP 4 00035 00036 /* support ROSE extensions */ 00037 /* #undef QTHREAD_USE_ROSE_EXTENSIONS */ 00038 00039 /* compile for the SST */ 00040 /* #undef SST */ 00041 00042 /* Define to use the SST primitives */ 00043 /* #undef QTHREAD_SST_PRIMITIVES */ 00044 00045 /* alignment of aligned_t */ 00046 #define QTHREAD_ALIGNMENT_ALIGNED_T 4 00047 00048 /* size of aligned_t */ 00049 #define QTHREAD_SIZEOF_ALIGNED_T 4 00050 00051 /* builtins supported */ 00052 /* #undef QTHREAD_ATOMIC_BUILTINS */ 00053 00054 /* builtin cas supported */ 00055 /* #undef QTHREAD_ATOMIC_CAS */ 00056 00057 /* if the compiler supports __sync_val_compare_and_swap on 32-bit ints */ 00058 /* #undef QTHREAD_ATOMIC_CAS32 */ 00059 00060 /* if the compiler supports __sync_val_compare_and_swap on 64-bit ints */ 00061 /* #undef QTHREAD_ATOMIC_CAS64 */ 00062 00063 /* if the compiler supports __sync_val_compare_and_swap on pointers */ 00064 /* #undef QTHREAD_ATOMIC_CAS_PTR */ 00065 00066 /* builtin incr supported */ 00067 /* #undef QTHREAD_ATOMIC_INCR */ 00068 00069 /* ia64intrin.h available */ 00070 /* #undef HAVE_IA64INTRIN_H */ 00071 00072 /* if ia64intrin is needed */ 00073 /* #undef QTHREAD_NEEDS_IA64INTRIN */ 00074 00075 /* specifying data alignment is allowed */ 00076 #define QTHREAD_ALIGNEDDATA_ALLOWED 1 00077 00078 /* if the compiler supports __attribute__((malloc)) */ 00079 #define Q_MALLOC __attribute__((malloc)) 00080 00081 /* if the compiler supports __attribute__((unused)) */ 00082 #define Q_UNUSED __attribute__((unused)) 00083 00084 /* Define to the equivalent of the C99 'restrict' keyword, or to 00085 nothing if this is not supported. Do not define if restrict is 00086 supported directly. */ 00087 #define restrict __restrict 00088 /* Work around a bug in Sun C++: it does not support _Restrict or 00089 __restrict__, even though the corresponding Sun C compiler ends up with 00090 "#define restrict _Restrict" or "#define restrict __restrict__" in the 00091 previous line. Perhaps some future version of Sun C++ will work with 00092 restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ 00093 #if defined __SUNPRO_CC && !defined __RESTRICT 00094 # define _Restrict 00095 # define __restrict__ 00096 #endif 00097 00098 /* Work around another bug in Sun C++: it does not support __asm__, even though 00099 * their C compiler DOES. */ 00100 #if defined(__SUNPRO_CC) 00101 # define __asm__ asm 00102 # define __volatile__ volatile 00103 #endif 00104 00105 /* Architecture defines */ 00106 #define QTHREAD_UNSUPPORTED 0 00107 #define QTHREAD_IA32 1 00108 #define QTHREAD_AMD64 2 00109 #define QTHREAD_IA64 3 00110 #define QTHREAD_ALPHA 4 00111 #define QTHREAD_MIPS 5 00112 #define QTHREAD_POWERPC32 6 00113 #define QTHREAD_POWERPC64 7 00114 #define QTHREAD_SPARCV9_32 8 00115 #define QTHREAD_SPARCV9_64 9 00116 #define QTHREAD_TILE 10 00117 00118 #endif