00001 #ifndef CONFIG_H
00002
00003 # define CONFIG_H
00004
00005
00006
00007
00008
00009
00010
00011 # if defined(sun) && defined(mc68000)
00012 # define M68K
00013 # define SUNOS
00014 # define mach_type_known
00015 # endif
00016 # if defined(hp9000s300)
00017 # define M68K
00018 # define HP
00019 # define mach_type_known
00020 # endif
00021 # if defined(vax)
00022 # define VAX
00023 # ifdef ultrix
00024 # define ULTRIX
00025 # else
00026 # define BSD
00027 # endif
00028 # define mach_type_known
00029 # endif
00030 # if defined(mips)
00031 # define MIPS
00032 # ifdef ultrix
00033 # define ULTRIX
00034 # else
00035 # define RISCOS
00036 # endif
00037 # define mach_type_known
00038 # endif
00039 # if defined(sequent) && defined(i386)
00040 # define I386
00041 # define SEQUENT
00042 # define mach_type_known
00043 # endif
00044 # if defined(sun) && defined(i386)
00045 # define I386
00046 # define SUNOS5
00047 # define mach_type_known
00048 # endif
00049 # if defined(__OS2__) && defined(__32BIT__)
00050 # define I386
00051 # define OS2
00052 # define mach_type_known
00053 # endif
00054 # if defined(ibm032)
00055 # define RT
00056 # define mach_type_known
00057 # endif
00058 # if defined(sun) && defined(sparc)
00059 # define SPARC
00060
00061 # include <errno.h>
00062 # ifdef ECHRNG
00063 # define SUNOS5
00064 # else
00065 # define SUNOS4
00066 # endif
00067 # define mach_type_known
00068 # endif
00069 # if defined(_IBMR2)
00070 # define IBMRS6000
00071 # define mach_type_known
00072 # endif
00073 # if defined(SCO)
00074 # define I386
00075 # define SCO
00076 # define mach_type_known
00077
00078 # endif
00079 # if defined(_AUX_SOURCE)
00080 # define M68K
00081 # define SYSV
00082 # define mach_type_known
00083 # endif
00084 # if defined(_PA_RISC1_0) || defined(_PA_RISC1_1)
00085 # define HP_PA
00086 # define mach_type_known
00087 # endif
00088 # if defined(linux) && defined(i386)
00089 # define I386
00090 # define LINUX
00091 # define mach_type_known
00092 # endif
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103 # ifndef mach_type_known
00104 --> unknown machine type
00105 # endif
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198 # ifdef M68K
00199 # define MACH_TYPE "M68K"
00200 # define ALIGNMENT 2
00201 # ifdef SUNOS
00202 # define OS_TYPE "SUNOS"
00203 extern char etext;
00204 # define DATASTART ((ptr_t)((((word) (&etext)) + 0x1ffff) & ~0x1ffff))
00205 # define HEURISTIC1
00206 # endif
00207 # ifdef HP
00208 # define OS_TYPE "HP"
00209 extern char etext;
00210 # define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
00211 # define STACKBOTTOM ((ptr_t) 0xffeffffc)
00212
00213 # endif
00214 # ifdef SYSV
00215 # define OS_TYPE "SYSV"
00216 extern etext;
00217 # define DATASTART ((ptr_t)((((word) (&etext)) + 0x3fffff) \
00218 & ~0x3fffff) \
00219 +((word)&etext & 0x1fff))
00220
00221
00222
00223
00224
00225
00226 # define STACKBOTTOM ((ptr_t)0xFFFFFFFE)
00227
00228
00229
00230
00231
00232 # endif
00233 # endif
00234
00235 # ifdef VAX
00236 # define MACH_TYPE "VAX"
00237 # define ALIGNMENT 4
00238 extern char etext;
00239 # define DATASTART ((ptr_t)(&etext))
00240 # ifdef BSD
00241 # define OS_TYPE "BSD"
00242 # define HEURISTIC1
00243
00244 # endif
00245 # ifdef ULTRIX
00246 # define OS_TYPE "ULTRIX"
00247 # define STACKBOTTOM ((ptr_t) 0x7fffc800)
00248 # endif
00249 # endif
00250
00251 # ifdef RT
00252 # define MACH_TYPE "RT"
00253 # define ALIGNMENT 4
00254 # define DATASTART ((ptr_t) 0x10000000)
00255 # define STACKBOTTOM ((ptr_t) 0x1fffd800)
00256 # endif
00257
00258 # ifdef SPARC
00259 # define MACH_TYPE "SPARC"
00260 # define ALIGNMENT 4
00261 extern int etext;
00262 # ifdef SUNOS5
00263 # define OS_TYPE "SUNOS5"
00264 # define DATASTART ((ptr_t)((((word) (&etext)) + 0x10003) & ~0x3))
00265
00266
00267
00268 # endif
00269 # ifdef SUNOS4
00270 # define OS_TYPE "SUNOS4"
00271 # define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
00272
00273 # endif
00274 # define HEURISTIC1
00275 # endif
00276
00277 # ifdef I386
00278 # define MACH_TYPE "I386"
00279 # define ALIGNMENT 4
00280 # ifdef SEQUENT
00281 # define OS_TYPE "SEQUENT"
00282 extern int etext;
00283 # define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
00284 # define STACKBOTTOM ((ptr_t) 0x3ffff000)
00285 # endif
00286 # ifdef SUNOS5
00287 # define OS_TYPE "SUNOS5"
00288 extern int etext;
00289 # define DATASTART ((ptr_t)((((word) (&etext)) + 0x1003) & ~0x3))
00290 extern int _start();
00291 # define STACKBOTTOM ((ptr_t)(&_start))
00292 # endif
00293 # ifdef SCO
00294 # define OS_TYPE "SCO"
00295 # define DATASTART ((ptr_t)((((word) (&etext)) + 0x3fffff) \
00296 & ~0x3fffff) \
00297 +((word)&etext & 0xfff))
00298 # define STACKBOTTOM ((ptr_t) 0x7ffffffc)
00299 # endif
00300 # ifdef LINUX
00301 # define OS_TYPE "LINUX"
00302 extern int etext;
00303 # define DATASTART ((ptr_t)((((word) (&etext)) + 0xfff) & ~0xfff))
00304 # define STACKBOTTOM ((ptr_t)0xc0000000)
00305 # endif
00306 # ifdef OS2
00307 # define OS_TYPE "OS2"
00308 # define DATASTART ((ptr_t)((((word) (&etext)) + 0x3fffff) \
00309 & ~0x3fffff) \
00310 +((word)&etext & 0xfff))
00311
00312
00313 # endif
00314 # endif
00315
00316 # ifdef NS32K
00317 # define MACH_TYPE "NS32K"
00318 # define ALIGNMENT 4
00319 extern char **environ;
00320 # define DATASTART ((ptr_t)(&environ))
00321
00322
00323
00324
00325 # define STACKBOTTOM ((ptr_t) 0xfffff000)
00326 # endif
00327
00328 # ifdef MIPS
00329 # define MACH_TYPE "MIPS"
00330 # define ALIGNMENT 4
00331 # define DATASTART 0x10000000
00332
00333
00334 # define HEURISTIC2
00335 # endif
00336
00337 # ifdef RS6000
00338 # define MACH_TYPE "RS6000"
00339 # define ALIGNMENT 4
00340 # define DATASTART ((ptr_t)0x20000000)
00341 # define STACKBOTTOM ((ptr_t)0x2ff80000)
00342 # endif
00343
00344 # ifdef HP_PA
00345 # define MACH_TYPE "HP_PA"
00346 # define ALIGNMENT 4
00347 extern int __data_start;
00348 # define DATASTART ((ptr_t)(&__data_start))
00349 # define HEURISTIC2
00350 # define STACK_GROWS_UP
00351 # endif
00352
00353 # ifndef STACK_GROWS_UP
00354 # define STACK_GROWS_DOWN
00355 # endif
00356
00357 # ifndef CPP_WORDSZ
00358 # define CPP_WORDSZ 32
00359 # endif
00360
00361 # ifndef OS_TYPE
00362 # define OS_TYPE ""
00363 # endif
00364
00365 # if CPP_WORDSZ != 32 && CPP_WORDSZ != 64
00366 -> bad word size
00367 # endif
00368
00369 # ifdef PCR
00370 # undef STACKBOTTOM
00371 # undef HEURISTIC1
00372 # undef HEURISTIC2
00373 # endif
00374
00375 # endif