00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef _PORTDEFS_H
00043 #define _PORTDEFS_H
00044
00045 #if defined(__mips)
00046 #include <sgidefs.h>
00047 #elif defined(_UNICOS)
00048 #include <sys/param.h>
00049 #include <sys/types.h>
00050 #ifdef _CRAYT3E
00051 #define _UINT64_TYPEDEF 1
00052 #elif RELEASE_LEVEL >= 9100
00053 #define _UINT64_TYPEDEF 1
00054 #endif
00055 #elif defined(_SOLARIS)
00056 #include <cray/solaris.h>
00057 #endif
00058
00059
00060
00061
00062
00063 #include <limits.h>
00064
00065 #define BYTES_PER_WORD sizeof(int)
00066 #define BITS_PER_WORD (BYTES_PER_WORD * CHAR_BIT)
00067 #define _BYTES_PER_LONG sizeof(long)
00068 #define _BITS_PER_LONG (_BYTES_PER_LONG * CHAR_BIT)
00069
00070 #if defined(_CRAYIEEE) || !defined(_UNICOS)
00071 #define IEEE_FLOATING_POINT
00072 #endif
00073
00074
00075 #if defined(__mips) || defined(_LITTLE_ENDIAN)
00076 typedef signed char int8;
00077 typedef unsigned char uint8;
00078 typedef short int16;
00079 typedef unsigned short uint16;
00080 #endif
00081
00082
00083
00084
00085
00086
00087
00088 #if defined(_LITTLE_ENDIAN)
00089
00090 typedef int int32;
00091 typedef unsigned int uint32;
00092
00093 #if defined(_LP64)
00094 typedef long long int64;
00095 typedef unsigned long long uint64;
00096 #else
00097 typedef long long int64;
00098 typedef unsigned long long uint64;
00099 #endif
00100
00101 #elif _MIPS_SZLONG == 64
00102
00103 typedef long long int64;
00104 typedef unsigned long long uint64;
00105 typedef int int32;
00106 typedef unsigned int uint32;
00107
00108
00109 #elif defined(_WORD32)
00110
00111
00112
00113 typedef long long int64;
00114 typedef unsigned long long uint64;
00115 typedef int int32;
00116 typedef unsigned int uint32;
00117
00118
00119 #elif defined(_CRAY1) || defined(_CRAYMPP)
00120
00121 typedef long int64;
00122 #if !_UINT64_TYPEDEF
00123 #define _UINT64_TYPEDEF 1
00124 typedef unsigned long uint64;
00125 #endif
00126 typedef short int32;
00127 typedef unsigned short uint32;
00128
00129 #endif
00130
00131
00132
00133
00134 #if defined(_CRAY1) || defined(_CRAYMPP)
00135 #define _PRAGMA_INLINE_2(name) _Pragma(#name)
00136 #define _PRAGMA_INLINE(name) _PRAGMA_INLINE_2(inline name)
00137 #else
00138 #define _PRAGMA_INLINE(name)
00139 #endif
00140
00141 #ifndef _UNICOS
00142
00143
00144
00145
00146
00147
00148 #define EFLEFIRST 1000
00149 #define EFLELAST 1999
00150
00151
00152
00153
00154
00155
00156 #include <sys/types.h>
00157
00158 extern char *strnrstrn(const char *_s1, size_t _n1, const char *_s2,
00159 size_t _n2);
00160
00161 extern char *strnstrn(const char *_s1, size_t _n1, const char *_s2,
00162 size_t _n2);
00163
00164
00165
00166
00167
00168
00169 #define INTRINSICS_PARM_TYPE unsigned long
00170
00171 extern int _count(INTRINSICS_PARM_TYPE x);
00172 #if !defined(__mips) || \
00173 (defined(__mips) && !(defined(__INLINE_INTRINSICS) && \
00174 defined(_COMPILER_VERSION) && (_COMPILER_VERSION>= 730)))
00175
00176 extern long _dshiftl(INTRINSICS_PARM_TYPE x, INTRINSICS_PARM_TYPE y, int b);
00177 extern long _dshiftr(INTRINSICS_PARM_TYPE x, INTRINSICS_PARM_TYPE y, int b);
00178 extern int _leadz(INTRINSICS_PARM_TYPE x);
00179 extern long _mask(int n);
00180 extern long _maskr(int n);
00181 extern long _maskl(int n);
00182 #endif
00183
00184 #ifdef __mips
00185 extern void
00186 movbit_(void *a, long long *az, long long *nz, void *b, long long *bz);
00187 extern void
00188 movbitz_(void *a, long long *az, long long *nz, void *b, long long *bz);
00189 extern long _pack(long *up, char *cp, long bc, int tc);
00190 extern long _unpack(char *cp, long *up, long bc, int tc);
00191 #elif defined(_LITTLE_ENDIAN)
00192 extern void
00193 movbit_(void *a, int64 *az, int64 *nz, void *b, int64 *bz);
00194 extern void
00195 movbitz_(void *a, int64 *az, int64 *nz, void *b, int64 *bz);
00196 extern long _pack(long *up, char *cp, long bc, int tc);
00197 extern long _unpack(char *cp, long *up, long bc, int tc);
00198 #endif
00199
00200
00201
00202
00203
00204
00205
00206 #define restrict
00207 #define _gsys_qtape(x) (0)
00208 #define O_RAW 0x0
00209
00210 #ifdef _SOLARIS
00211 #define LOADED(x) (x != NULL)
00212 #define LOADED_DATA(x) (x != NULL)
00213 #else
00214 #define LOADED(x) (1)
00215 #define LOADED_DATA(x) (1)
00216 #endif
00217
00218 #endif
00219
00220
00221
00222
00223 #undef UNIX_NAMING_CONVENTION
00224
00225
00226
00227
00228
00229
00230
00231 #if !defined(_SOLARIS) && !defined(__mips) && !defined(_ABSOFT) && !defined(_LITTLE_ENDIAN)
00232 #define COMPLEX_AS_SCALAR
00233 #else
00234 #undef COMPLEX_AS_SCALAR
00235 #endif
00236
00237 #endif