U8, U16, U32 data type changes
[o-du/l2.git] / src / cm / envdep.h
1 /*******************************************************************************
2 ################################################################################
3 #   Copyright (c) [2017-2019] [Radisys]                                        #
4 #                                                                              #
5 #   Licensed under the Apache License, Version 2.0 (the "License");            #
6 #   you may not use this file except in compliance with the License.           #
7 #   You may obtain a copy of the License at                                    #
8 #                                                                              #
9 #       http://www.apache.org/licenses/LICENSE-2.0                             #
10 #                                                                              #
11 #   Unless required by applicable law or agreed to in writing, software        #
12 #   distributed under the License is distributed on an "AS IS" BASIS,          #
13 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
14 #   See the License for the specific language governing permissions and        #
15 #   limitations under the License.                                             #
16 ################################################################################
17 *******************************************************************************/
18
19 /********************************************************************20**
20   
21      Name:     environment dependent
22   
23      Type:     C include file
24   
25      Desc:     Environment dependent defines required by the
26                by TRILLIUM software. The defines in this file need to
27                be changed by the customer to reflect the
28                processor family under which the TRILLIUM software
29                will run.
30   
31      File:     envdep.h
32   
33 *********************************************************************21*/
34 #ifndef __ENVDEPH__
35 #define __ENVDEPH__
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41 /* envdep_h_001.main_70: Additions */
42 /* envdep_h_001.main_73: Not required for SUNOS */
43 #ifdef SS_LINUX
44 #ifndef _GNU_SOURCE
45 #include <stdint.h>
46 #define __USE_UNIX98
47 #endif /* _GNU_SOURCE */
48 #endif /* SS_LINUX */
49 /*envdep_h_001.main_75 : RMIOS related changes*/
50 #ifdef SS_RMIOS
51 #include "printk.h"
52 #endif
53
54 \f
55 /* conversion of MSCDOS and MSCUNIX for backwards compatibility */
56
57 #ifdef MSCDOS              /* microsoft, dos */
58 #define ANSI               /* ansi */
59 #define DOS                /* dos */
60 #define MSC51              /* microsoft */
61 #else                      /* not microsoft, dos */
62 #ifdef MSCUNIX             /* microsoft, unix */
63 #define ANSI               /* ansi */
64 #define UNIX               /* unix */
65 #define MSC51              /* microsoft */
66 #else                      /* not microsoft, dos or unix */
67 #endif
68 #endif
69
70 /* ensure microsoft 7.0 backwards compatible with microsoft 5.1 */
71
72 #ifdef MSC70
73 #define MSC51
74 #endif
75
76 /* ensure microsoft 6.0 backwards compatible with microsoft 5.1 */
77
78 #ifdef MSC60
79 #define MSC51
80 #endif
81
82 /* default to sunos 5.1 for sunos */
83
84 #ifdef SUNOS
85 #define SUNOS51
86 #endif
87
88 /* ensure sunos 4.1 backwards compatible with sunos */
89
90 #ifdef SUNOS41
91 #ifndef SUNOS
92 #define SUNOS
93 #endif
94 #endif
95
96 /* ensure sunos 5.1 backwards compatible with sunos */
97
98 #ifdef SUNOS51
99 #ifndef SUNOS
100 #define SUNOS
101 #endif
102 #endif
103
104 /* ensure elvis backwards compatible with sunos */
105 #ifdef ELVIS_STACK
106 #ifndef SUNOS
107 #define SUNOS
108 #endif
109 #endif
110
111 #ifdef ELVIS_APP
112 #ifndef SUNOS
113 #define SUNOS
114 #endif
115 #endif
116
117 #ifdef POWER_STACK
118 #define UNIX
119 #define AIX
120 #define PROC_PPC
121 #endif /* POWER_STACK */
122
123 /* Fujitsu ALC evalutation board */
124 #ifdef ALC_EVAL              
125 #define PROC_68349
126 #define PROC_68XXX
127 #define SOLMRI43
128 #endif /* ALC_EVAL */
129
130 /* argument manipulation for ansi or non ansi function prototypes */
131
132 #ifdef ANSI                /* ansi */
133 #define ARGS(m)            m
134 #else                      /* non ansi */
135 #define ARGS(m)            ()
136 #endif
137
138 /* type definition for ansi or non ansi pointers */
139 #ifdef ANSI
140 typedef void *Ptr; /* ANSI vanilla pointer type definition */
141 #else
142 typedef char *Ptr; /* K&R vanilla pointer type definition */
143 #endif
144
145 \f
146 /**********************************************************************
147    memory models
148 **********************************************************************/
149
150 /*
151    these defines are arranged first by environment (DOS, UNIX, SUNOS or
152    embedded) followed by compiler (microsoft c, borland, unix or
153    microtec c) as appropriate.
154 */
155 /*envdep_h_001.main_77 SSI-4GMX specfic changes*/
156 #ifndef SS_4GMX_LCORE
157 /* envdep_h_001.main_76  Force definition of WIN32 when detecting WIN64 */
158 #if  defined(_WIN32) || defined(_WIN64)                     /* dos, nt win32 */
159 #ifndef WIN32
160   #define WIN32
161 #endif
162 #endif
163 #endif
164
165 #ifdef  WIN32                     /* dos, nt win32 */
166 #define INTERRPT                    /* interrupt */
167 #define ASM                       /* in-line assembly code */
168 #define ISR_PUSH_ENV              /* isr push environment */
169 #define ISR_POP_ENV               /* isr pop environment */
170  
171 #define M_I86CM                     /* Intel 80x86 compact model */
172  
173 #define BIOSKEY _bios_keybrd
174 #define BIOSTOD _bios_timeofday
175 #define DOSKEEP _dos_keep
176 #define DOSGETDATE _dos_getdate
177 #define DOSGETTIME _dos_gettime
178 #define DOSDATE dosdate_t
179 #define DOSTIME dostime_t
180 #define DOSSIZE size_t
181 #define DOSENABLE _enable
182 #define DOSDISABLE _disable
183 #define DOSGETVECT _dos_getvect
184 #define DOSSETVECT _dos_setvect
185 #define DOSINT86 int86
186 #define DOSINT86X int86x
187 #define DOSMALLOC malloc
188 #define DOSEXIT _exit
189 #define NEAR _NEAR
190  
191 #define KEYBRD_READY  _KEYBRD_READY
192 #define KEYBRD_READ   _KEYBRD_READ
193 #define TIME_GETCLOCK _TIME_GETCLOCK
194 #endif /* WIN32 */
195  
196 /*envdep_h_001.main_75 : RMIOS related changes*/
197 #ifdef SS_RMIOS
198 #define INTERRPT                 /* interrupt */
199 #define ASM                       /* in-line assembly code */
200 #define ISR_PUSH_ENV              /* isr push environment */
201 #define ISR_POP_ENV               /* isr pop environment */
202 #endif
203
204 #if (defined(VXWORKS_PENTIUM) || defined(VXWORKS_DIAB))
205 #define INTERRPT                    /* interrupt */
206 #define ASM                       /* in-line assembly code */
207 #define ISR_PUSH_ENV              /* isr push environment */
208 #define ISR_POP_ENV               /* isr pop environment */
209
210 #define M_I86CM                     /* Intel 80x86 compact model */
211
212 #define BIOSKEY _bios_keybrd
213 #define BIOSTOD _bios_timeofday
214 #define DOSKEEP _dos_keep
215 #define DOSGETDATE _dos_getdate
216 #define DOSGETTIME _dos_gettime
217 #define DOSDATE dosdate_t
218 #define DOSTIME dostime_t
219 #define DOSSIZE size_t
220 #define DOSENABLE _enable
221 #define DOSDISABLE _disable
222 #define DOSGETVECT _dos_getvect
223 #define DOSSETVECT _dos_setvect
224 #define DOSINT86 int86
225 #define DOSINT86X int86x 
226 #define DOSMALLOC malloc
227 #define DOSEXIT _exit
228 #define NEAR _NEAR
229
230 #define KEYBRD_READY  _KEYBRD_READY
231 #define KEYBRD_READ   _KEYBRD_READ
232 #define TIME_GETCLOCK _TIME_GETCLOCK
233 #endif /* VXWORKS_PENTIUM */
234
235
236 #ifdef DOS                        /* dos */
237 #ifdef MSC51                      /* dos, microsoft c */
238 #ifdef M_I86HM                    /* Intel 80x86 huge model */
239 #define INTERRPT _interrupt      /* interrupt */
240 #else
241 #define INTERRPT _interrupt far  /* interrupt */
242 #endif /* M_I86HM */
243 #define ASM                       /* in-line assembly code */
244 #define ISR_PUSH_ENV              /* isr push environment */
245 #define ISR_POP_ENV               /* isr pop environment */
246 #define BIOSKEY _bios_keybrd
247 #define BIOSTOD _bios_timeofday
248 #define DOSGETDATE _dos_getdate
249 #define DOSGETTIME _dos_gettime
250 #define DOSDATE dosdate_t
251 #define DOSTIME dostime_t
252 #define DOSENABLE _enable
253 #define DOSDISABLE _disable
254 #define DOSGETVECT _dos_getvect
255 #define DOSSETVECT _dos_setvect
256 #define DOSEXIT _exit
257 #define NEAR _NEAR
258 #define KEYBRD_READY  _KEYBRD_READY
259 #define KEYBRD_READ   _KEYBRD_READ
260 #define TIME_GETCLOCK _TIME_GETCLOCK
261
262 #ifdef M_I86SM                    /* Intel 80x86 small model */
263 #define I86SM
264 #endif /* M_I86SM */
265
266 #ifdef M_I86MM                    /* Intel 80x86 medium model */
267 #define I86MM
268 #endif /* M_I86MM */
269
270 #ifdef M_I86CM                    /* Intel 80x86 compact model */
271 #define I86CM
272 #endif /* M_I86CM */
273
274 #ifdef M_I86LM                    /* Intel 80x86 large model */
275 #define I86LM
276 #endif /* M_I86LM */
277
278 #ifdef M_I86HM                    /* Intel 80x86 huge model */
279 #define I86HM
280 #endif /* M_I86HM */
281 #else  /* not MSC51*/ 
282 #ifdef BOR31                      /* dos, borland c */
283 #define INTERRPT _interrupt far  /* interrupt */
284 #define ASM                       /* in-line assembly code */
285 #define ISR_PUSH_ENV              /* isr push environment */
286 #define ISR_POP_ENV               /* isr pop environment */
287
288 #define I86LM                     /* Intel 80x86 large model */
289
290 #define BIOSKEY _bios_keybrd
291 #define BIOSTOD _bios_timeofday
292 #define DOSKEEP _dos_keep
293 #define DOSGETDATE _dos_getdate
294 #define DOSGETTIME _dos_gettime
295 #define DOSDATE dosdate_t
296 #define DOSTIME dostime_t
297 #define DOSSIZE size_t
298 #define DOSENABLE _enable
299 #define DOSDISABLE _disable
300 #define DOSGETVECT _dos_getvect
301 #define DOSSETVECT _dos_setvect
302 #define DOSINT86 int86
303 #define DOSINT86X int86x
304 #define DOSMALLOC malloc
305 #define DOSEXIT _exit
306 #define NEAR _NEAR
307
308 #define KEYBRD_READY  _KEYBRD_READY
309 #define KEYBRD_READ   _KEYBRD_READ
310 #define TIME_GETCLOCK _TIME_GETCLOCK
311 #else  /* not BOR31 */
312 #endif /* BOR31 */
313 #endif /* MSC51 */
314 #else  /* not DOS */
315 #ifdef UNIX                       /* unix */
316 #define INTERRPT                 /* interrupt */
317 #define ASM                       /* in-line assembly code */
318 #define ISR_PUSH_ENV              /* isr push environment */
319 #define ISR_POP_ENV               /* isr pop environment */
320
321
322 #ifdef __alpha                    /* alpha */
323 #define ALPHA
324 #undef OTHMOD
325 #endif /* __alpha */
326 #else /* not UNIX */
327 #ifdef SUNOS                      /* sun os */
328 #define PROC_SPARC                /* sparc model */
329 #define UNIX                      /* unix */
330
331 #define INTERRPT                 /* interrupt */
332 #define ASM                       /* in-line assembly code */
333 #define ISR_PUSH_ENV              /* isr push environment */
334 #define ISR_POP_ENV               /* isr pop environment */
335 #else /* not SUNOS */
336 #ifdef HPOS                       /* HP os */
337 #define PROC_PARISC               /* HP PA model */
338 #define UNIX                      /* unix */
339
340 #define INTERRPT                  /* interrupt */
341 #define ASM                       /* in-line assembly code */
342 #define ISR_PUSH_ENV              /* isr push environment */
343 #define ISR_POP_ENV               /* isr pop enviroment */
344 #else /* not HPOS */
345 #ifdef MOTADS                     /* embedded, motorola ads */
346 #define PROC_68302                /* enable 68302 specific defines */
347 #define M68                       /* motorola 68000 */
348
349 #ifdef DOSMRI42D                  /* DOS microtec c cross-compiler */
350 #define MRI68K                    /* microtec 68K c compiler */
351 #define INTERRPT interrupt       /* interrupt */
352 #define ASM asm                   /* in-line assembly code */
353 #define ISR_PUSH_ENV ASM(" movem.l d2-d7/a2-a6,-(a7)") /* isr push environment */
354 #define ISR_POP_ENV  ASM(" movem.l (a7)+,d2-d7/a2-a6") /* isr pop environment */
355 #endif /* DOSMRI42D */
356
357 #ifdef SOLMRI43                   /* solaris microtec c cross-compiler */
358 #define MRI68K                    /* microtec 68K c compiler */
359 #define INTERRPT interrupt       /* interrupt */
360 #define ASM asm                   /* in-line assembly code */
361 #define ISR_PUSH_ENV ASM(" movem.l d2-d7/a2-a6,-(a7)") /* isr push environment */
362 #define ISR_POP_ENV  ASM(" movem.l (a7)+,d2-d7/a2-a6") /* isr pop environment */
363 #endif /* SOLMRI43 */
364
365 #ifdef SOLOAS186                  /* solaris oasys c cross-compiler */
366 #define INTERRPT                 /* interrupt */
367 #ifdef ANSI
368 #define ASM __asm                 /* in-line assembly code */
369 #else /* not ANSI */
370 #define ASM asm                   /* in-line assembly code */
371 #endif /* ANSI */
372 #define ISR_PUSH_ENV              /* isr push environment */
373 #define ISR_POP_ENV               /* isr pop environment */
374 #endif /* SOLOAS186 */
375
376 #else /* not MOTADS */
377 #ifdef ELVIS                      /* elvis specific (not sun os) */
378 #define M68                       /* motorola 68000 */
379
380 #ifdef DOSMRI42D                  /* DOS microtec c cross-compiler */
381 #define MRI68K                    /* microtec 68K c compiler */
382 #define INTERRPT interrupt       /* interrupt */
383 #define ASM asm                   /* in-line assembly code */
384 #define ISR_PUSH_ENV ASM(" movem.l d2-d7/a2-a6,-(a7)") /* isr push environment */
385 #define ISR_POP_ENV  ASM(" movem.l (a7)+,d2-d7/a2-a6") /* isr pop environment */
386 #endif /* DOSMRI42D */
387
388 #ifdef SOLMRI43                   /* solaris microtec c cross-compiler */
389 #define MRI68K                    /* microtec 68K c compiler */
390 #define INTERRPT interrupt       /* interrupt */
391 #define ASM asm                   /* in-line assembly code */
392 #define ISR_PUSH_ENV ASM(" movem.l d2-d7/a2-a6,-(a7)") /* isr push environment */
393 #define ISR_POP_ENV  ASM(" movem.l (a7)+,d2-d7/a2-a6") /* isr pop environment */
394 #endif /* SOLMRI43 */
395
396 #ifdef SOLOAS186                  /* solaris oasys c cross-compiler */
397 #define INTERRPT                 /* interrupt */
398 #ifdef ANSI
399 #define ASM __asm                 /* in-line assembly code */
400 #else /* not ANSI */
401 #define ASM asm                   /* in-line assembly code */
402 #endif /* ANSI */
403 #define ISR_PUSH_ENV              /* isr push environment */
404 #define ISR_POP_ENV               /* isr pop environment */
405 #endif /* SOLOAS186 */
406
407 #else /* not ELVIS */
408
409 #ifdef MSC51                      /* embedded, microsoft c */
410 #ifdef M_I86HM                    /* Intel 80x86 huge model */
411 #define INTERRPT _interrupt      /* interrupt */
412 #else /* not M_I86HM */
413 #define INTERRPT _interrupt far  /* interrupt */
414 #endif /* M_I86HM */
415 #define ASM                       /* in-line assembly code */
416 #define ISR_PUSH_ENV              /* isr push environment */
417 #define ISR_POP_ENV               /* isr pop environment */
418 #define BIOSKEY _bios_keybrd
419 #define BIOSTOD _bios_timeofday
420 #define DOSGETDATE _dos_getdate
421 #define DOSGETTIME _dos_gettime
422 #define DOSDATE dosdate_t
423 #define DOSTIME dostime_t
424 #define DOSENABLE _enable
425 #define DOSDISABLE _disable
426 #define DOSGETVECT _dos_getvect
427 #define DOSSETVECT _dos_setvect
428 #define DOSEXIT _exit
429 #define NEAR _NEAR
430
431 #define KEYBRD_READY  _KEYBRD_READY
432 #define KEYBRD_READ   _KEYBRD_READ
433 #define TIME_GETCLOCK _TIME_GETCLOCK
434
435 #ifdef M_I86SM                    /* Intel 80x86 small model */
436 #define I86SM
437 #endif /* M_I86SM */
438
439 #ifdef M_I86MM                    /* Intel 80x86 medium model */
440 #define I86MM
441 #endif /* M_I86MM */
442
443 #ifdef M_I86CM                    /* Intel 80x86 compact model */
444 #define I86CM
445 #endif /* M_I86CM */
446
447 #ifdef M_I86LM                    /* Intel 80x86 large model */
448 #define I86LM
449 #endif /* M_I86CM */
450
451 #ifdef M_I86HM                    /* Intel 80x86 huge model */
452 #define I86HM
453 #endif /* M_I86HM */
454 #else  /* not MSC51 */
455 #ifdef BOR31                      /* embedded, borland c */
456 #define INTERRPT                 /* interrupt */
457 #define ASM                       /* in-line assembly code */
458 #define ISR_PUSH_ENV              /* isr push environment */
459 #define ISR_POP_ENV               /* isr pop environment */
460 #define I86LM                     /* Intel 80x86 large model */
461
462 #define BIOSKEY _bios_keybrd
463 #define BIOSTOD _bios_timeofday
464 #define DOSKEEP _dos_keep
465 #define DOSGETDATE _dos_getdate
466 #define DOSGETTIME _dos_gettime
467 #define DOSDATE dosdate_t
468 #define DOSTIME dostime_t
469 #define DOSSIZE size_t
470 #define DOSENABLE _enable
471 #define DOSDISABLE _disable
472 #define DOSGETVECT _dos_getvect
473 #define DOSSETVECT _dos_setvect
474 #define DOSINT86 int86
475 #define DOSINT86X int86x
476 #define DOSMALLOC malloc
477 #define DOSEXIT _exit
478 #define NEAR _NEAR
479
480 #define KEYBRD_READY  _KEYBRD_READY
481 #define KEYBRD_READ   _KEYBRD_READ
482 #define TIME_GETCLOCK _TIME_GETCLOCK
483 #else  /* not BOR31 */
484 #ifdef DOSMRI42D                  /* dos microtec c cross-compiler */
485 #define MRI68K                    /* microtec 68K c compiler */
486 #define INTERRPT interrupt       /* interrupt */
487 #define ASM asm                   /* in-line assembly code */
488 #define ISR_PUSH_ENV ASM(" movem.l d2-d7/a2-a6,-(a7)") /* isr push environment */
489 #define ISR_POP_ENV  ASM(" movem.l (a7)+,d2-d7/a2-a6") /* isr pop environment */
490 #ifdef _M68
491 #define M68                       /* motorola 68000 */
492 #endif /* _M68 */
493 #else  /* DOSMRI42D */
494 #ifdef SOLMRI43                   /* solaris microtec c cross-compiler */
495 #define MRI68K                    /* microtec 68K c compiler */
496 #define INTERRPT interrupt       /* interrupt */
497 #define ASM asm                   /* in-line assembly code */
498 #define ISR_PUSH_ENV ASM(" movem.l d2-d7/a2-a6,-(a7)") /* isr push environment */
499 #define ISR_POP_ENV  ASM(" movem.l (a7)+,d2-d7/a2-a6") /* isr pop environment */
500 #ifdef _M68
501 #define M68                       /* motorola 68000 */
502 #endif /* _M68 */
503 #else  /* not SOLMRI43 */
504 #ifdef SOLOAS186                  /* solaris oasys c cross-compiler */
505 #define INTERRPT                 /* interrupt */
506 #ifdef ANSI
507 #define ASM __asm                 /* in-line assembly code */
508 #else /* not ANSI */
509 #define ASM asm                   /* in-line assembly code */
510 #endif /* ANSI */
511 #define ISR_PUSH_ENV              /* isr push environment */
512 #define ISR_POP_ENV               /* isr pop environment */
513 #ifdef m68k                       /* motorola 68000 series */
514 #define M68                       /* motorola 68000 */
515 #endif /* m68k */
516 #else  /* not SOLOAS186 */
517 #ifdef MOTDCI_68360
518 #define M68
519 #define PROC_68XXX
520 #define PROC_68360
521 #ifdef __GNUC__
522 #define INTERRPT
523 #define ASM __asm__                /* in-line assembly code */
524 #define ISR_PUSH_ENV               /* isr push environment */
525 #define ISR_POP_ENV                /* isr pop environment */
526 #else
527 #ifdef _MCC68K
528 #define INTERRPT interrupt
529 #define ASM asm                    /* in-line assembly code */
530 #define ISR_PUSH_ENV ASM(" movem.l d2-d7/a2-a6,-(a7)") /* isr push env */
531 #define ISR_POP_ENV  ASM(" movem.l (a7)+,d2-d7/a2-a6") /* isr pop env */
532 #endif /* _MCC68K */
533 #endif /* __GNUCC__ */
534 #else
535 #ifdef QUICCADS
536 #define M68
537 #define PROC_68XXX
538 #define PROC_68360
539 #ifdef __GNUC__
540 #define INTERRPT
541 #define ASM __asm__                /* in-line assembly code */
542 #define ISR_PUSH_ENV               /* isr push environment */
543 #define ISR_POP_ENV                /* isr pop environment */
544 #else /* not gnu cc */
545 #ifdef _MCC68K
546 #define INTERRPT interrupt
547 #define ASM asm                    /* in-line assembly code */
548 #define ISR_PUSH_ENV ASM(" movem.l d2-d7/a2-a6,-(a7)") /* isr push env */
549 #define ISR_POP_ENV  ASM(" movem.l (a7)+,d2-d7/a2-a6") /* isr pop env */
550 #endif /* _MCC68K */
551 #endif /* __GNUCC__ */
552 #else
553 #ifdef ALC_EVAL
554 #ifdef SOLMRI43
555 #define MRI68K                    /* microtec 68K c compiler */
556 #define INTERRPT interrupt        /* interrupt */
557 #define ASM asm                   /* in-line assembly code */
558 #define ISR_PUSH_ENV ASM(" movem.l d2-d7/a2-a6,-(a7)") /* isr push environment */
559 #define ISR_POP_ENV  ASM(" movem.l (a7)+,d2-d7/a2-a6") /* isr pop environment */
560 #ifdef _M68
561 #define M68                       /* motorola 68000 */
562 #endif /* _M68 */
563 #endif /* SOLMRI43 */
564 #else
565 #ifdef GSIP302
566 #define M68
567 #define PROC_68XXX
568 #define PROC_68302
569 #ifdef __GNUC__
570 #define INTERRPT
571 #define ASM __asm__                /* in-line assembly code */
572 #define ISR_PUSH_ENV               /* isr push environment */
573 #define ISR_POP_ENV                /* isr pop environment */
574 #else /* not gnu cc */
575 #ifdef _MCC68K
576 #define INTERRPT interrupt
577 #define ASM asm                    /* in-line assembly code */
578 #define ISR_PUSH_ENV ASM(" movem.l d2-d7/a2-a6,-(a7)") /* isr push env */
579 #define ISR_POP_ENV  ASM(" movem.l (a7)+,d2-d7/a2-a6") /* isr pop env */
580 #endif /* _MCC68K */
581 #endif /* __GNUCC__ */
582 #else  /* not GSIP302 */
583 #ifdef VB_360
584 #define M68
585 #define PROC_68XXX
586 #define PROC_68360
587 #ifdef __GNUC__
588 #define INTERRPT
589 #define ASM __asm__                /* in-line assembly code */
590 #define ISR_PUSH_ENV               /* isr push environment */
591 #define ISR_POP_ENV                /* isr pop environment */
592 #else
593 #ifdef _MCC68K
594 #define INTERRPT interrupt
595 #define ASM asm                    /* in-line assembly code */
596 #define ISR_PUSH_ENV ASM(" movem.l d2-d7/a2-a6,-(a7)") /* isr push env */
597 #define ISR_POP_ENV  ASM(" movem.l (a7)+,d2-d7/a2-a6") /* isr pop env */
598 #endif /* _MCC68K */
599 #endif /* __GNUCC__ */
600 #else  /* not VB_360 */
601 #ifdef PQ_PPC860                   /* Force PowerQUICC board */
602 #define PROC_PPC                   /* any PowerPC processor */
603 #define PROC_PPC860                /* MPC860 processor */
604 #ifdef __GNUC__                    /* gnu C compiler */
605 #define INTERRPT
606 #define ASM __asm__                /* in-line assembly code */
607 #define ISR_PUSH_ENV               /* isr push environment */
608 #define ISR_POP_ENV                /* isr pop environment */
609 #else
610 #ifdef _MCCPPC                     /* micortech C compiler */
611 #define INTERRPT
612 #define ASM asm                    /* in-line assembly code */
613 #define ISR_PUSH_ENV               /* isr push env */
614 #define ISR_POP_ENV                /* isr pop env */
615 #endif /* _MCC68K */
616 #endif /* __GNUCC__ */
617 #else  /* NOT PQ_PPC860 */
618 #ifdef PCORE
619 #define PROC_PPC
620 #define PROC_PPC604
621 #ifdef __GNUC__
622 #define INTERRPT
623 #define ASM __asm__                /* in-line assembly code */
624 #define ISR_PUSH_ENV               /* isr push environment */
625 #define ISR_POP_ENV                /* isr pop environment */
626 #else
627 #ifdef _MCCPPC
628 #define INTERRPT
629 #define ASM asm                    /* in-line assembly code */
630 #define ISR_PUSH_ENV               /* isr push env */
631 #define ISR_POP_ENV                /* isr pop env */
632 #endif /* _MCC68K */
633 #endif /* __GNUCC__ */
634 #else  /* PCORE */
635 #ifdef SS_PS                       /* pSOS RTOS */
636 #define INTERRPT 
637 #define ASM  __asm                 /* in-line assembly code */
638 #define ISR_PUSH_ENV               /* isr push env */
639 #define ISR_POP_ENV                /* isr pop env */
640 #else /* not SS_PS */
641 #define OTHMOD                     /* other model */
642 #endif /* SS_PS */
643 #endif /* PCORE */
644 #endif /* PQ_PPC860 */
645 #endif /* VB_360 */
646 #endif /* GSIP302 */
647 #endif /* ALC_EVAL */
648 #endif /* QUICCADS */
649 #endif /* MOTDCI_68360 */
650 #endif /* SOLOAS186 */
651 #endif /* SOLMRI43 */
652 #endif /* DOSMRI42D */
653 #endif /* BOR31 */
654 #endif /* MSC51 */
655 #endif /* ELVIS */
656 #endif /* MOTADS */
657 #endif /* HPOS */
658 #endif /* SUNOS */
659 #endif /* UNIX */
660 #endif /* DOS */
661
662 \f  
663 /**********************************************************************
664    typedefs
665 **********************************************************************/
666
667 /*
668    these typedefs are arranged first by environment (DOS, UNIX or
669    embedded) followed by compiler (microsoft c, borland c, unix or
670    microtec c) as appropriate.
671 */
672
673 #ifdef DOS                        /* dos */
674 #ifdef MSC51                      /* dos, microsoft c */
675
676 typedef unsigned char   Bool;     /* boolean */
677 typedef char            S8;       /* signed - 8 bits */
678
679 typedef int             S16;      /* signed - 16 bits */
680
681 typedef long            S32;      /* signed - 32 bits */
682 /* envdep_h_001.main_71 */
683 typedef __int64                  S64;     /* signed - 64 bits */
684
685 /*
686    void
687
688    note: if typedef Void is set to S16 then RETVOID must be set
689    to: return(ROK). if typedef Void is set to void then RETVOID
690    must be set to: return
691 */
692
693 /* envdep_h_001.main_78 Change typedef void to #define void*/
694 #define Void void               
695
696 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
697 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
698 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
699 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
700 typedef Void (INTERRPT *PIF) ARGS((void ));     /* pointer to interrupt function */
701
702 #else /* not MSC51 */
703 #ifdef BOR31                      /* dos, borland c */
704
705 typedef unsigned char   Bool;     /* boolean */
706 typedef char            S8;       /* signed - 8 bits */
707
708 typedef int             S16;      /* signed - 16 bits */
709
710 typedef long            S32;      /* signed - 32 bits */
711
712 /*
713    void
714
715    note: if typedef Void is set to S16 then RETVOID must be set
716    to: return(ROK). if typedef Void is set to void then RETVOID
717    must be set to: return
718 */
719
720 typedef void Void;                /* void */
721
722 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
723 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
724 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
725 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
726 typedef Void (INTERRPT far *PIF) ARGS((void )); /* pointer to interrupt function */
727
728 #else /* not BOR31 */
729 #endif /* BOR31 */
730 #endif /* MSC51 */
731 #else  /* not DOS */
732 #ifdef UNIX                       /* unix */
733
734 typedef unsigned char   Bool;     /* boolean */
735 /*envdep_h_001.main_77 SSI-4GMX specfic changes*/
736 #if !(defined(SS_4GMX_LCORE) || defined(SS_4GMX_UCORE))
737 typedef char            S8;       /* signed - 8 bits */
738 #else
739 /*envdep_h_001.main_78 :removed signed to supress sprintf' differ in signedness warnings */
740 typedef char     S8;       /* signed - 8 bits*/
741 #endif
742
743 typedef short           S16;      /* signed - 16 bits */
744
745 #if !(defined(ALPHA) || defined(BIT_64))
746 typedef long            S32;      /* signed - 32 bits */
747 /* envdep_h_001.main_71 */
748 #ifdef SS_LINUX
749 /* envdep_h_001.main_79 RVDT compiler warning fix */
750 #ifndef SS_4GMX_LCORE
751 /* envdep_h_001.main_72: Support for C89 standard */
752 __extension__ typedef long long       S64;      /* signed - 64 bits */
753 #else
754 typedef long long       S64;      /* signed - 64 bits */
755 #define Void void /* RVDT compiler warning fix */
756 #endif /* SS_4GMX_LCORE */
757 #else
758 typedef long long       S64;      /* signed - 64 bits */
759 #endif /* SS_LINUX */
760 #else /* ALPHA  & BIT_64 */
761 typedef int             S32;      /* signed - 32 bits */
762 /* envdep_h_001.main_71 */
763 typedef long            S64;      /* signed - 64 bits */
764 #endif /* ALPHA  & BIT_64 */
765 /* 1. Added F32 and F64 */
766 #ifdef SS_FLOAT
767 typedef float           F32;      /* float - 32 bits */
768 typedef double          F64;      /* double - 64 bits */
769 #endif /* SS_FLOAT */
770
771 /*
772    void
773
774    note: if typedef Void is set to S16 then RETVOID must be set
775    to: return(ROK). if typedef Void is set to void then RETVOID
776    must be set to: return
777 */
778
779 #ifdef __cplusplus
780 #define Void void
781 #else
782 /* envdep_h_001.main_79 RVDT compiler warning fix */
783 #ifndef SS_4GMX_LCORE
784 typedef void Void;                /* void */
785 #endif
786 #endif
787
788 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
789 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
790 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
791 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning VOID */
792 typedef Void (INTERRPT *PIF) ARGS((void ));    /* pointer to interrupt function */
793
794 #else /* not UNIX */
795 #ifdef PROC_68302                 /* embedded, motorola ads */
796 #ifdef DOSMRI42D                  /* dos microtec c cross-compiler */
797
798 typedef unsigned char   Bool;     /* boolean */
799 typedef char            S8;       /* signed - 8 bits */
800
801 typedef short           S16;      /* signed - 16 bits */
802
803 typedef int             S32;      /* signed - 32 bits */
804
805 #ifndef ANSI
806 /* size_t is not defined, for some odd reason, in mcc68k's stddef.h */
807 typedef unsigned size_t;          /* size_t */
808 #endif /* not ANSI */
809
810 /*
811    void
812
813    note: if typedef Void is set to S16 then RETVOID must be set
814    to: return(ROK). if typedef Void is set to void then RETVOID
815    must be set to: return
816 */
817
818 typedef void  Void;               /* void */
819 typedef Void  VOID;               /* void */
820
821 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
822 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
823 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
824 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
825 typedef Void (*PIF) ARGS((void )); /* pointer to interrupt function */
826
827 #else /* not DOSMRI42D */
828 #ifdef SOLMRI43                   /* solaris microtec c cross-compiler */
829
830 typedef unsigned char   Bool;     /* boolean */
831 typedef char            S8;       /* signed - 8 bits */
832
833 typedef short           S16;      /* signed - 16 bits */
834
835 typedef int             S32;      /* signed - 32 bits */
836
837 /*
838    void
839
840    note: if typedef Void is set to S16 then RETVOID must be set
841    to: return(ROK). if typedef Void is set to void then RETVOID
842    must be set to: return
843 */
844
845 typedef void  Void;               /* void */
846 typedef Void  VOID;               /* void */
847
848 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
849 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
850 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
851 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
852 typedef Void (*PIF) ARGS((void ));    /* pointer to interrupt function */
853
854 #else  /* not SOLMRI43 */
855 #ifdef SOLOAS186                  /* solaris oasys c cross-compiler */
856
857 typedef unsigned char   Bool;     /* boolean */
858 typedef char            S8;       /* signed - 8 bits */
859
860 typedef short           S16;      /* signed - 16 bits */
861
862 typedef int             S32;      /* signed - 32 bits */
863
864 /*
865    void
866
867    note: if typedef Void is set to S16 then RETVOID must be set
868    to: return(ROK). if typedef Void is set to void then RETVOID
869    must be set to: return
870 */
871
872 typedef void  Void;               /* void */
873 typedef Void  VOID;               /* void */
874
875 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
876 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
877 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
878 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
879 typedef Void (INTERRPT *PIF) ARGS((void )); /* pointer to interrupt function */
880
881 #else /* not SOLOAS186 */
882 #ifdef __GNUC__    /* if  GNUC cross compiler */
883
884 typedef unsigned char   Bool;     /* boolean */
885 typedef char            S8;       /* signed - 8 bits */
886
887 typedef short           S16;      /* signed - 16 bits */
888
889 typedef int             S32;      /* signed - 32 bits */
890 /* envdep_h_001.main_71 */
891 typedef long long       S64;      /* signed - 64 bits */
892 /* 1. Added F32 and F64 types  */
893 #ifdef SS_FLOAT
894 typedef float           F32;      /* float - 32 bits */
895 typedef double          F64;      /* double - 64 bits */
896 #endif /* SS_FLOAT */
897
898 /*
899    void
900
901    note: if typedef Void is set to S16 then RETVOID must be set
902    to: return(ROK). if typedef Void is set to void then RETVOID
903    must be set to: return
904 */
905
906 typedef void  Void;               /* void */
907 typedef Void  VOID;               /* void */
908
909 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
910 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
911 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
912 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
913 typedef Void (INTERRPT *PIF) ARGS((void )); /* pointer to interrupt function */
914
915 #else /* not __GNUC__ */
916 #endif /* __GNUC */
917 #endif /* SOLOAS186 */
918 #endif /* SOLMRI43 */
919 #endif /* DOSMRI42D */
920 #else  /* not PROC_68302 */
921 #ifdef PROC_68040
922
923 #ifdef SOLMRI43                   /* solaris microtec c cross-compiler */
924 typedef unsigned char   Bool;     /* boolean */
925 typedef char            S8;       /* signed - 8 bits */
926
927 typedef short           S16;      /* signed - 16 bits */
928
929 typedef int             S32;      /* signed - 32 bits */
930
931 /*
932    void
933
934    note: if typedef Void is set to S16 then RETVOID must be set
935    to: return(ROK). if typedef Void is set to void then RETVOID
936    must be set to: return
937 */
938
939 typedef void  Void;               /* void */
940 typedef Void  VOID;               /* void */
941
942 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
943 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
944 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
945 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
946 typedef INTERRPT Void (*PIF) ARGS((void)); /* pointer to interrupt function */
947 #endif /* SOLMRI43 */
948 #else /* not PROC_68040 */
949 #ifdef PROC_68360
950
951 typedef unsigned char   Bool;     /* boolean */
952 typedef char            S8;       /* signed - 8 bits */
953
954 typedef short           S16;      /* signed - 16 bits */
955
956 typedef long            S32;      /* signed - 32 bits */
957
958 /*
959    void
960
961    note: if typedef Void is set to S16 then RETVOID must be set
962    to: return(ROK). if typedef Void is set to void then RETVOID
963    must be set to: return
964 */
965
966 typedef void Void;                /* void */
967
968 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
969 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
970 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
971 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
972 typedef INTERRPT Void (*PIF) ARGS((void )); /* pointer to interrupt function */
973
974 #else /* not PROC_68360 */
975
976 #ifdef WIN32
977 typedef unsigned char   Bool;     /* boolean */
978 typedef char            S8;       /* signed - 8 bits */
979
980 typedef short           S16;      /* signed - 16 bits */
981  
982 typedef int             S32;      /* signed - 32 bits */
983 /* envdep_h_001.main_76  Take care of the windows compiler non compliance
984  * to ANSI-C for data type ranges
985 */ 
986 typedef long long          S64;      /* signed - 64 bits */
987
988 /* 1. Added F32 and F64 types  */
989 #ifdef SS_FLOAT
990 typedef float           F32;      /* float - 32 bits */
991 typedef double          F64;      /* double - 64 bits */
992 #endif /* SS_FLOAT */
993 /*
994    void
995  
996    note: if typedef Void is set to S16 then RETVOID must be set
997    to: return(ROK). if typedef Void is set to void then RETVOID
998    must be set to: return
999 */
1000  
1001 typedef void Void;                /* void */
1002  
1003 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
1004 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
1005 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
1006 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
1007 typedef Void (INTERRPT *PIF) ARGS((void )); /* pointer to interrupt function */
1008
1009 #else /* not WIN32 */
1010 #ifdef PROC_68349
1011 typedef unsigned char   Bool;     /* boolean */
1012 typedef char            S8;       /* signed - 8 bits */
1013
1014 typedef short           S16;      /* signed - 16 bits */
1015
1016 typedef long            S32;      /* signed - 32 bits */
1017
1018 /*
1019    void
1020
1021    note: if typedef Void is set to S16 then RETVOID must be set
1022    to: return(ROK). if typedef Void is set to void then RETVOID
1023    must be set to: return
1024 */
1025
1026 typedef void Void;                /* void */
1027
1028 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
1029 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
1030 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
1031 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
1032 typedef INTERRPT Void (*PIF) ARGS((void )); /* pointer to interrupt function */
1033
1034 #else  /* not PROC_68349 */
1035
1036 #ifdef PROC_PPC
1037 typedef unsigned char   Bool;     /* boolean */
1038 typedef char            S8;       /* signed - 8 bits */
1039  
1040 typedef short           S16;      /* signed - 16 bits */
1041 #ifndef BIT_64
1042 typedef long            S32;      /* signed - 32 bits */
1043
1044 /* envdep_h_001.main_74 - additions */
1045 typedef long long          S64;         /* signed - 64 bits */
1046 #else /* BIT_64 */
1047 typedef int             S32;      /* signed - 32 bits */
1048 typedef long            S64;      /* signed - 64 bits */
1049 #endif /* BIT_64 */
1050
1051 /* 1. Added F32 and F64 types  */
1052 #ifdef SS_FLOAT
1053 typedef float           F32;      /* float - 32 bits */
1054 typedef double          F64;      /* double - 64 bits */
1055 #endif /* SS_FLOAT */
1056 /*
1057    void
1058  
1059    note: if typedef Void is set to S16 then RETVOID must be set
1060    to: return(ROK). if typedef Void is set to void then RETVOID
1061    must be set to: return
1062 */
1063
1064 typedef void Void;                /* void */
1065  
1066 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
1067 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
1068 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
1069 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
1070 typedef INTERRPT Void (*PIF) ARGS((void )); /* pointer to interrupt function */
1071  
1072 #else /* not PROC_PPC */
1073
1074 #ifdef SS_PS
1075 typedef unsigned char   Bool;     /* boolean */
1076 typedef char            S8;       /* signed - 8 bits */
1077  
1078 typedef short           S16;      /* signed - 16 bits */
1079  
1080 #ifndef BIT_64
1081 typedef long            S32;      /* signed - 32 bits */
1082
1083 /* envdep_h_001.main_71 - additions */
1084 typedef int64_t         S64;            /* signed - 64 bits */
1085 #else /* BIT_64 */
1086 typedef int             S32;      /* signed - 32 bits */
1087 typedef long            S64;      /* signed - 64 bits */
1088 #endif /* BIT_64 */
1089
1090 /*
1091    void
1092  
1093    note: if typedef Void is set to S16 then RETVOID must be set
1094    to: return(ROK). if typedef Void is set to void then RETVOID
1095    must be set to: return
1096 */
1097  
1098 typedef void Void;                /* void */
1099  
1100 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
1101 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
1102 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
1103 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
1104 typedef Void (INTERRPT *PIF) ARGS((void )); /* pointer to interrupt function */
1105  
1106 #else /* not SS_PS */
1107
1108 typedef unsigned char   Bool;     /* boolean */
1109 typedef char            S8;       /* signed - 8 bits */
1110
1111 typedef int             S16;      /* signed - 16 bits */
1112
1113 typedef long            S32;      /* signed - 32 bits */
1114
1115 /*
1116    void
1117
1118    note: if typedef Void is set to S16 then RETVOID must be set
1119    to: return(ROK). if typedef Void is set to void then RETVOID
1120    must be set to: return
1121 */
1122
1123 typedef void Void;                /* void */
1124
1125 typedef S8   (*PFS8) ARGS((void ));   /* pointer to function returning S8 */
1126 typedef S16  (*PFS16) ARGS((void ));  /* pointer to function returning S16 */
1127 typedef S32  (*PFS32) ARGS((void ));  /* pointer to function returning S32 */
1128 typedef Void (*PFVOID) ARGS((void )); /* pointer to function returning Void */
1129 typedef INTERRPT Void (*PIF) ARGS((void )); /* pointer to interrupt function */
1130
1131 #endif /* SS_PS */
1132 #endif /* PROC_PPC */
1133 #endif /* PROC_68349 */
1134 #endif /* WIN32 */
1135 #endif /* PROC_68360 */
1136 #endif /* PROC_68040 */
1137 #endif /* PROC_68302 */
1138 #endif /* UNIX */
1139 #endif /* DOS */
1140
1141 \f
1142 /* scope control keywords */
1143   
1144 #ifdef PUBLIC
1145 #undef PUBLIC
1146 #define PUBLIC                    /* public is c default scope */
1147 #else /* not PUBLIC */
1148 #define PUBLIC
1149 #endif /* PUBLIC */
1150
1151 #ifdef PRIVATE
1152 #undef PRIVATE
1153 #define PRIVATE       static      /* private is c static scope */
1154 #else /* not PRIVATE */
1155 #define PRIVATE       static      /* private is c static scope */
1156 #endif /* PRIVATE */
1157
1158 #ifdef EXTERN
1159 #undef EXTERN
1160 #define EXTERN  extern
1161 #else /* not EXTERN */
1162 #define EXTERN  extern
1163 #endif /* EXTERN */
1164
1165
1166 #ifdef ANSI
1167 #define CONSTANT const            /* constant */
1168 #else
1169 #define CONSTANT
1170 #endif /* ANSI */
1171
1172 #ifdef _MCC68K                    /* microtec 68K cross compiler */
1173
1174 #ifdef VOLATILE
1175 #undef VOLATILE
1176 #define VOLATILE     volatile     /* volatile */
1177 #else
1178 #define VOLATILE    volatile
1179 #endif
1180
1181 #if _STR_CMP(_VERSION,"4.4") >= 0  /* MCC68K only, check version */
1182 #ifdef INLINE
1183 #undef INLINE
1184 #define INLINE       inline       /* inline */
1185 #else /* not INLINE */
1186 #define INLINE       inline       /* inline */
1187 #endif /* INLINE */
1188 #else
1189 #define INLINE                    /* no inline */
1190 #endif /* __STR_CMP */
1191 #else /* not _MCC68K */
1192 #ifdef __GNUC__
1193 #ifndef __STRICT_ANSI__
1194 #ifdef INLINE
1195 #undef INLINE
1196 #define INLINE __inline__
1197 #else /* not inline */
1198 #define INLINE __inline__
1199 #endif /* INLINE */
1200 #else /* not strict ansi */
1201 #ifdef INLINE
1202 #undef INLINE
1203 #define INLINE
1204 #else /* not inline */
1205 #define INLINE
1206 #endif /* INLINE */
1207 #endif /* __STRICT_ANSI */
1208 #ifdef VOLATILE
1209 #undef VOLATILE
1210 #define VOLATILE     volatile     /* volatile */
1211 #else /* volatile */
1212 #define VOLATILE    volatile
1213 #endif
1214 #else /* not gnuc */
1215 #ifdef WIN32
1216 #ifdef VOLATILE
1217 #undef VOLATILE
1218 #define VOLATILE  volatile
1219 #else /* VOLATILE */
1220 #define VOLATILE  volatile
1221 #endif /* VOLATILE */
1222
1223 #ifdef INLINE
1224 #undef INLINE
1225 #define INLINE
1226 #else
1227 #define INLINE
1228 #endif /* INLINE */
1229 #else /* not WIN32 */
1230
1231 #ifdef VOLATILE
1232 #undef VOLATILE
1233 #define VOLATILE                  /* volatile */
1234 #else
1235 #define VOLATILE                  /* volatile */
1236 #endif /* VOLATILE */
1237
1238 #ifdef INLINE
1239 #undef INLINE
1240 #define INLINE
1241 #else
1242 #define INLINE
1243 #endif /* INLINE */
1244
1245 #endif /* WIN32 */
1246 #endif /* __GNUC__ */
1247 #endif /* _MCC68K */
1248
1249 /*envdep_h_001.main_77 SSI-4GMX specfic changes*/
1250 /*envdep_h_001.main_78 : removed SSI-4GMX specfic changes*/
1251 #ifdef VOLATILE
1252 #undef VOLATILE
1253 #define VOLATILE volatile
1254 #else
1255 #define VOLATILE volatile
1256 #endif
1257
1258 #ifdef __cplusplus
1259 #ifdef INLINE
1260 #undef INLINE
1261 #endif
1262 #define INLINE
1263 #endif
1264
1265 \f
1266 /**********************************************************************
1267    prototypes for sprintf
1268 **********************************************************************/
1269
1270 /*envdep_h_001.main_75 : RMIOS related changes*/
1271 #ifndef SS_RMIOS
1272 #ifndef STDIO_INCLD
1273
1274 #ifdef SUNOS41
1275 EXTERN  S8 *sprintf ARGS((S8 *buffer, CONSTANT S8 *format, /* args */ ...));
1276 #else
1277 #ifdef SUNOS51
1278 #else /* not SUNOS51 */
1279 #ifdef HPOS 
1280 EXTERN int sprintf ARGS((S8 *s, CONSTANT S8 *format, /* args */ ... ));
1281 #else
1282 #ifdef _MCC68K
1283 EXTERN Void sprintf ARGS((S8 *outbuf, S8 *fmt, /* args */ ...)); /* td68k.x */
1284 #else
1285 /* other os */
1286 #ifdef WIN32
1287 EXTERN  int sprintf ARGS((S8 *buffer,CONSTANT S8 *format, /* args */ ...)); 
1288 #else
1289 #ifdef VW
1290 EXTERN  int sprintf ARGS((S8 *buffer,CONSTANT S8 *format, /* args */ ...)); 
1291 #else
1292 #ifdef SS_PS
1293 EXTERN  int sprintf ARGS((S8 *buffer,CONSTANT S8 *format, /* args */ ...)); 
1294 #endif /* SS_PS */
1295 #endif /* VW */
1296 #endif /* WIN32 */
1297 #endif /* _MCC68K */
1298 #endif /* HPOS */
1299 #endif /* SUNOS51 */
1300 #endif /* SUNOS41 */
1301 #endif /* STDIO_INCLD */
1302 #endif /*SS_RMIOS*/
1303
1304 \f
1305 /**********************************************************************
1306    defines for pointers, pointer sizes, stack alignment and registers
1307 **********************************************************************/
1308
1309 /*
1310    defines are provided for: intel 80x86 small, intel 80x86 medium,
1311    intel 80x86 compact, intel 80x86 large, intel huge, motorola 68000,
1312    sparc, vax and other processors.
1313 */
1314  
1315 #ifdef I86SM          /* Intel 80x86 small model */
1316
1317 #define NULLP         0                /* null pointer */
1318 #define NULLD         0L               /* null data */
1319 #define PTR           uint16_t         /* pointer */
1320 #define PTRSIZE       sizeof(uint16_t) /* pointer size */
1321 #define STKALIGN      2           /* stack alignment */
1322
1323 #define REG1          register    /* register 1 - highest priority */
1324 #define REG2          register    /* register 2 */
1325 #define REG3                      /* register 3 */
1326 #define REG4                      /* register 4 */
1327 #define REG5                      /* register 5 */
1328 #define REG6                      /* register 6 */
1329 #define REG7                      /* register 7 */
1330 #define REG8                      /* register 8 - lowest priority */
1331
1332 #define FAR                       /* for small model */
1333 #define PTRSTRIDE     1           /* stride */
1334 #define MEM_SEG                   /* memory - segmented */
1335 #endif /* I86SM */
1336
1337 #ifdef I86MM          /* Intel 80x86 medium model */
1338
1339 #define NULLP         0                /* null pointer */
1340 #define NULLD         0L               /* null data */
1341 #define PTR           uint16_t         /* pointer */
1342 #define PTRSIZE       sizeof(uint16_t) /* pointer size */
1343 #define STKALIGN      2           /* stack alignment */
1344
1345 #define REG1          register    /* register 1 - highest priority */
1346 #define REG2          register    /* register 2 */
1347 #define REG3                      /* register 3 */
1348 #define REG4                      /* register 4 */
1349 #define REG5                      /* register 5 */
1350 #define REG6                      /* register 6 */
1351 #define REG7                      /* register 7 */
1352 #define REG8                      /* register 8 - lowest priority */
1353
1354 #define FAR                       /* for medium model */
1355 #define PTRSTRIDE     1           /* stride */
1356 #define MEM_SEG                   /* memory - segmented */
1357 #endif /* I86MM */
1358
1359 #ifdef I86CM          /* Intel 80x86 compact model */
1360
1361 #define NULLP         0L          /* null pointer */
1362 #define NULLD         0L          /* null data */
1363 #ifndef BIT_64
1364 #define PTR           uint32_t         /* pointer */
1365 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1366 /* #define PTRFAR                     pointer far */
1367 #define STKALIGN      4           /* stack alignment */
1368 #else /* BIT_64 */
1369 #define PTR           uint64_t         /* pointer */
1370 /* envdep_h_001.main_78:Warning fix*/
1371 #define PTRSIZE       sizeof(uint64_t) /* pointer size */
1372 /* #define PTRFAR                     pointer far */
1373 #define STKALIGN      8           /* stack alignment */
1374 #endif /* BIT_64 */
1375
1376
1377 #define REG1          register    /* register 1 - highest priority */
1378 #define REG2          register    /* register 2 */
1379 #define REG3                      /* register 3 */
1380 #define REG4                      /* register 4 */
1381 #define REG5                      /* register 5 */
1382 #define REG6                      /* register 6 */
1383 #define REG7                      /* register 7 */
1384 #define REG8                      /* register 8 - lowest priority */
1385
1386 #define FAR           far         /* for compact model */
1387 #define PTRSTRIDE     1           /* stride */
1388 #define MEM_SEG                   /* memory - segmented */
1389 #endif /* I86CM */
1390
1391 \f
1392 #ifdef I86LM          /* Intel 80x86 large model */
1393
1394 #define NULLP         0L          /* null pointer */
1395 #define NULLD         0L          /* null data */
1396 #ifndef BIT_64
1397 #define PTR           uint32_t         /* pointer */
1398 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1399 #define PTRFAR                    /* pointer far */
1400 #define STKALIGN      4           /* stack alignment */
1401 #else /* BIT_64 */
1402 #define PTR           uint64_t         /* pointer */
1403 /* envdep_h_001.main_78:Warning fix*/
1404 #define PTRSIZE       sizeof(uint64_t) /* pointer size */
1405 /* #define PTRFAR                     pointer far */
1406 #define STKALIGN      8           /* stack alignment */
1407 #endif /* BIT_64 */
1408
1409 #define REG1          register    /* register 1 - highest priority */
1410 #define REG2          register    /* register 2 */
1411 #define REG3                      /* register 3 */
1412 #define REG4                      /* register 4 */
1413 #define REG5                      /* register 5 */
1414 #define REG6                      /* register 6 */
1415 #define REG7                      /* register 7 */
1416 #define REG8                      /* register 8 - lowest priority */
1417
1418 #define FAR           far         /* for large model */
1419 #define PTRSTRIDE     1           /* stride */
1420 #define MEM_SEG                   /* memory - segmented */
1421 #endif /* I86LM */
1422
1423 #ifdef I86HM          /* Intel 80x86 huge model */
1424
1425 #define NULLP         0L          /* null pointer */
1426 #define NULLD         0L          /* null data */
1427 #ifndef BIT_64
1428 #define PTR           uint32_t         /* pointer */
1429 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1430 #define PTRFAR                    /* pointer far */
1431 #define STKALIGN      4           /* stack alignment */
1432 #else  /* BIT_64 */
1433 #define PTR           uint64_t         /* pointer */
1434 #define PTRSIZE       sizeof(uint64_t) /* pointer size */
1435 #define PTRFAR                    /* pointer far */
1436 #define STKALIGN      8           /* stack alignment */
1437 #endif  /* BIT_64 */
1438
1439 #define REG1          register    /* register 1 - highest priority */
1440 #define REG2          register    /* register 2 */
1441 #define REG3                      /* register 3 */
1442 #define REG4                      /* register 4 */
1443 #define REG5                      /* register 5 */
1444 #define REG6                      /* register 6 */
1445 #define REG7                      /* register 7 */
1446 #define REG8                      /* register 8 - lowest priority */
1447
1448 #define FAR           far         /* for huge model */
1449 #define PTRSTRIDE     1           /* stride */
1450 #define MEM_SEG                   /* memory - segmented */
1451 #endif /* I86HM */
1452
1453 #ifdef PROC_68XXX                 /* Motorola 68040 model */
1454
1455 #define NULLP         0L          /* null pointer */
1456 #define NULLD         0L          /* null data */
1457 #define PTR           uint32_t         /* pointer */
1458 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1459 /* #define PTRFAR                     pointer far */
1460 #define STKALIGN      4           /* stack alignment */
1461
1462 #define REG1          register    /* register 1 - highest priority */
1463 #define REG2          register    /* register 2 */
1464 #define REG3          register    /* register 3 */
1465 #define REG4          register    /* register 4 */
1466 #define REG5          register    /* register 5 */
1467 #define REG6          register    /* register 6 */
1468 #define REG7          register    /* register 7 */
1469 #define REG8          register    /* register 8 - lowest priority */
1470
1471 #define FAR                       /* for large model */
1472
1473 #ifdef PROC_68302
1474 #define PTRSTRIDE     2           /* stride (simulation case: e.g. for elvis) */
1475 #else
1476 #ifdef PROC_68040
1477 #define PTRSTRIDE     4           /* stride (simulation case: e.g. for elvis) */
1478 #else /* other */
1479 #define PTRSTRIDE     4           /* stride (simulation case: e.g. for elvis) */
1480 #endif /* PROC_68040 */
1481 #endif /* PROC_68302 */
1482
1483 #define MEM_NONSEG                /* memory - non-segmented */
1484 #endif /* PROC_68XXX */
1485
1486 \f
1487 #ifdef PROC_SPARC                 /* SPARC */
1488
1489 #define NULLP         0L          /* null pointer */
1490 #define NULLD         0L          /* null data */
1491 #ifndef BIT_64
1492 #define PTR           uint32_t         /* pointer */
1493 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1494 /* #define PTRFAR                     pointer far */
1495 #define STKALIGN      4           /* stack alignment */
1496 #else  /* BIT_64 */
1497 #define PTR           uint64_t         /* pointer */
1498 #define PTRSIZE       sizeof(uint64_t) /* pointer size */
1499 /* #define PTRFAR                     pointer far */
1500 #define STKALIGN      8           /* stack alignment */
1501 #endif /* BIT_64 */
1502
1503 #define REG1          register    /* register 1 - highest priority */
1504 #define REG2          register    /* register 2 */
1505 #define REG3          register    /* register 3 */
1506 #define REG4          register    /* register 4 */
1507 #define REG5          register    /* register 5 */
1508 #define REG6          register    /* register 6 */
1509 #define REG7          register    /* register 7 */
1510 /*envdep_h_001.main_77 SSI-4GMX specfic changes*/
1511 #ifndef SS_4GMX_LCORE
1512 #define REG8          register    /* register 8 - lowest priority */
1513 #endif
1514
1515 #define FAR                       /* for large model */
1516 #define PTRSTRIDE     4           /* stride */
1517 #define MEM_NONSEG                /* memory - non-segmented */
1518 #endif /* PROC_SPARC */
1519 #ifdef PROC_PARISC                /* HP PA RISC */
1520
1521 #define NULLP         0L          /* null pointer */
1522 #define NULLD         0L          /* null data */
1523 #ifndef BIT_64
1524 #define PTR           uint32_t         /* pointer */
1525 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1526 /* #define PTRFAR                     pointer far */
1527 #define STKALIGN      4           /* stack alignment */
1528 #else
1529 #define PTR           uint64_t         /* pointer */
1530 #define PTRSIZE       sizeof(uint64_t) /* pointer size */
1531 /* #define PTRFAR                     pointer far */
1532 #define STKALIGN      8           /* stack alignment */
1533 #endif /* BIT_64 */
1534
1535 #define REG1          register    /* register 1 - highest priority */
1536 #define REG2          register    /* register 2 */
1537 #define REG3          register    /* register 3 */
1538 #define REG4          register    /* register 4 */
1539 #define REG5          register    /* register 5 */
1540 #define REG6          register    /* register 6 */
1541 #define REG7          register    /* register 7 */
1542 #define REG8          register    /* register 8 - lowest priority */
1543
1544 #define FAR                       /* for large model */
1545 #define PTRSTRIDE     4           /* stride */
1546 #define MEM_NONSEG                /* memory - non-segmented */
1547 #endif /* PROC_PARISC */
1548 \f
1549 /*envdep_h_001.main_75 : RMIOS related changes*/
1550 #ifdef SS_RMIOS
1551 #define SPtr2l(ptr)             ((unsigned long)(ptr))
1552 #define SPtr2ll(ptr)    ((unsigned long long)(unsigned long)(ptr))
1553 #define SL2Ptr(l)               ((PTR)(l))
1554 #define SLL2Ptr(ll)             ((PTR)(ll & 0xFFFFFFFF))
1555
1556 #define NULLP         0L          /* null pointer */
1557 #define NULLD         0L          /* null data */
1558 #ifndef BIT_64
1559 #define PTR           uint32_t         /* pointer */
1560 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1561 #define STKALIGN      4           /* stack alignment */
1562 #else  /* BIT_64 */
1563 #define PTR           uint64_t         /* pointer */
1564 #define PTRSIZE       sizeof(uint64_t) /* pointer size */
1565 #define STKALIGN      8           /* stack alignment */
1566 #endif /* BIT_64 */
1567
1568 #define REG1          register    /* register 1 - highest priority */
1569 #define REG2          register    /* register 2 */
1570 #define REG3          register    /* register 3 */
1571 #define REG4          register    /* register 4 */
1572 #define REG5          register    /* register 5 */
1573 #define REG6          register    /* register 6 */
1574 #define REG7          register    /* register 7 */
1575 #define REG8          register    /* register 8 - lowest priority */
1576 #endif
1577
1578 #ifdef VAX            /* VAX */
1579
1580 #define NULLP         0L          /* null pointer */
1581 #define NULLD         0L          /* null data */
1582 #define PTR           uint32_t         /* pointer */
1583 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1584 /* #define PTRFAR                     pointer far */
1585 #define STKALIGN      4           /* stack alignment */
1586
1587 #define REG1          register    /* register 1 - highest priority */
1588 #define REG2          register    /* register 2 */
1589 #define REG3          register    /* register 3 */
1590 #define REG4          register    /* register 4 */
1591 #define REG5          register    /* register 5 */
1592 #define REG6          register    /* register 6 */
1593 #define REG7          register    /* register 7 */
1594 #define REG8          register    /* register 8 - lowest priority */
1595
1596 #define FAR                       /* for large model */
1597 #define PTRSTRIDE     2           /* stride */
1598 #define MEM_NONSEG                /* memory - non-segmented */
1599 #endif
1600
1601 \f
1602 #ifdef ALPHA          /* ALPHA */
1603
1604 #define NULLP         0L          /* null pointer */
1605 #define NULLD         0L          /* null data */
1606 #define PTR           uint64_t         /* pointer */
1607 #define PTRSIZE       sizeof(uint64_t) /* pointer size */
1608 /* #define PTRFAR                     pointer far */
1609 #define STKALIGN      8           /* stack alignment */
1610
1611 #define REG1          register    /* register 1 - highest priority */
1612 #define REG2          register    /* register 2 */
1613 #define REG3          register    /* register 3 */
1614 #define REG4          register    /* register 4 */
1615 #define REG5          register    /* register 5 */
1616 #define REG6          register    /* register 6 */
1617 #define REG7          register    /* register 7 */
1618 #define REG8          register    /* register 8 - lowest priority */
1619
1620 #define FAR                       /* for large model */
1621 #define PTRSTRIDE     2           /* stride */
1622 #define MEM_NONSEG                /* memory - non-segmented */
1623 #endif
1624
1625 #ifdef PROC_68360                 /* Motorola 68040 model */
1626
1627 #define NULLP         0L          /* null pointer */
1628 #define NULLD         0L          /* null data */
1629 #define PTR           uint32_t         /* pointer */
1630 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1631 /* #define PTRFAR                     pointer far */
1632 #define STKALIGN      4           /* stack alignment */
1633
1634 #define REG1          register    /* register 1 - highest priority */
1635 #define REG2          register    /* register 2 */
1636 #define REG3          register    /* register 3 */
1637 #define REG4          register    /* register 4 */
1638 #define REG5          register    /* register 5 */
1639 #define REG6          register    /* register 6 */
1640 #define REG7          register    /* register 7 */
1641 #define REG8          register    /* register 8 - lowest priority */
1642
1643 #define FAR                       /* for large model */
1644
1645 #define PTRSTRIDE     4           /* stride (simulation case: e.g. for elvis) */
1646 #define MEM_NONSEG                /* memory - non-segmented */
1647 #endif /* PROC_68360 */
1648
1649 \f
1650 #ifdef PROC_PPC                   /* SPARC */
1651
1652 #define NULLP         0L          /* null pointer */
1653 #define NULLD         0L          /* null data */
1654 #ifndef BIT_64
1655 #define PTR           uint32_t         /* pointer */
1656 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1657 /* #define PTRFAR                     pointer far */
1658 #define STKALIGN      4           /* stack alignment */
1659 #else  /* BIT_64 */
1660 #define PTR           uint64_t         /* pointer */
1661 #define PTRSIZE       sizeof(uint64_t) /* pointer size */
1662 /* #define PTRFAR                     pointer far */
1663 #define STKALIGN      8           /* stack alignment */
1664 #endif /* BIT_64 */
1665
1666 #define REG1          register    /* register 1 - highest priority */
1667 #define REG2          register    /* register 2 */
1668 #define REG3          register    /* register 3 */
1669 #define REG4          register    /* register 4 */
1670 #define REG5          register    /* register 5 */
1671 #define REG6          register    /* register 6 */
1672 #define REG7          register    /* register 7 */
1673 #define REG8          register    /* register 8 - lowest priority */
1674
1675 #define FAR                       /* for large model */
1676 #define PTRSTRIDE     4           /* stride */
1677 #define MEM_NONSEG                /* memory - non-segmented */
1678 #endif /* PROC_PPC */
1679
1680 \f
1681 #ifdef SS_PS                      /* 32-bit pSOS */
1682 #define NULLP         0L          /* null pointer */
1683 #define NULLD         0L          /* null data */
1684 #ifndef BIT_64
1685 #define PTR           uint32_t         /* pointer */
1686 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1687 #define STKALIGN      4           /* stack alignment */
1688 #else  /* BIT_64 */
1689 #define PTR           uint64_t         /* pointer */
1690 #define PTRSIZE       sizeof(uint64_t) /* pointer size */
1691 #define STKALIGN      8           /* stack alignment */
1692 #endif /* BIT_64 */
1693
1694
1695 #define REG1          register    /* register 1 - highest priority */
1696 #define REG2          register    /* register 2 */
1697 #define REG3          register    /* register 3 */
1698 #define REG4          register    /* register 4 */
1699 #define REG5          register    /* register 5 */
1700 #define REG6          register    /* register 6 */
1701 #define REG7          register    /* register 7 */
1702 #define REG8          register    /* register 8 - lowest priority */
1703
1704 #define FAR                       /* for large model */
1705 #define PTRSTRIDE     4           /* stride */
1706 #endif /* SS_PS */
1707
1708 \f
1709 #ifdef OTHMOD         /* All other models */
1710
1711 #define NULLP         0L          /* null pointer */
1712 #define NULLD         0L          /* null data */
1713 /* envdep_h_001.main_76    WIN32 and WIN64 falls here, so be sure PTR is correctly defined
1714  * when compiling 64bits 
1715  */
1716 /*envdep_h_001.main_77 SSI-4GMX specfic changes*/
1717 #ifndef SS_4GMX_LCORE
1718 #ifdef _WIN64
1719 #define PTR           uint64_t         /* pointer */
1720 #define PTRSIZE       sizeof(uint64_t) /* pointer size */
1721 #define STKALIGN      8           /* stack alignment */
1722 #else /* _WIN64 */
1723 #define PTR           uint32_t         /* pointer */
1724 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1725 #define STKALIGN      4           /* stack alignment */
1726 #endif
1727 #else
1728 #define PTR           uint32_t         /* pointer */
1729 #define PTRSIZE       sizeof(uint32_t) /* pointer size */
1730 #define STKALIGN      4           /* stack alignment */
1731 #endif
1732
1733 #define REG1          register    /* register 1 - highest priority */
1734 #define REG2          register    /* register 2 */
1735 #define REG3          register    /* register 3 */
1736 #define REG4          register    /* register 4 */
1737 #define REG5          register    /* register 5 */
1738 #define REG6          register    /* register 6 */
1739 #define REG7          register    /* register 7 */
1740 #define REG8          register    /* register 8 - lowest priority */
1741
1742 #define FAR                       /* for large model */
1743 #define PTRSTRIDE     2           /* stride */
1744 #define MEM_NONSEG                /* memory - non-segmented */
1745 #endif
1746
1747 \f
1748 /* pointer alignment macro */
1749
1750 #define PTRALIGN(s) ((PTR)(s) % PTRSTRIDE ? ((PTR)(s) + (PTRSTRIDE - ((PTR)(s) % PTRSTRIDE))) : (PTR)(s))
1751 /*
1752  * This macro (DATAALIGN) should only be used in our
1753  * static memory algorithms (SGetSBuf). 
1754  *
1755  * Otherwise, use at your own risk!
1756  */
1757 #define DATAALIGN(s) ((Size)(s) % PTRSTRIDE ? ((Size)(s) - (PTRSTRIDE - ((Size)(s) % PTRSTRIDE))) : (Size)(s))
1758
1759 \f
1760 /* message function type macro */
1761
1762
1763 \f
1764 /* typedef and defines for argument manipulation */
1765   
1766 typedef S8               *ARGTYPE;
1767
1768 #define ARG(argp,type)     *((type*)argp)
1769
1770 #define ARGINC(argp,type)  argp=(ARGTYPE)(argp + (sizeof(type) < STKALIGN ? STKALIGN : sizeof(type)))
1771
1772 /* Unused function parameter macro */
1773
1774 #ifdef UNUSED
1775 #undef UNUSED
1776 #define UNUSED(x) (x=x)
1777 #else
1778 #define UNUSED(x) (x=x)
1779 #endif /* UNUSED */
1780
1781 \f
1782 /**********************************************************************
1783    defines for trace
1784 **********************************************************************/
1785
1786 /*
1787
1788    there is one additional trace macro which turns on trace macros 0 - 4
1789    and pushes the text within trace macros 0 - 4 onto a stack. the text
1790    is popped of of the stack upon RETVOID or RETVALUE. this macro is:
1791
1792    TRACE5  - trace call stack
1793
1794 */
1795   
1796 #ifdef TRACE5           /* trace 5 - call stack */
1797
1798 #define T5M 64          /* trace 5 - maximum call stack height */
1799 extern S8 *t5s[];       /* trace 5 - call stack */
1800 extern S16 t5t;         /* trace 5 - top of call stack */
1801 #ifdef ERRCHK
1802 extern Void FAR exit(int);
1803 #endif
1804 #endif
1805
1806 \f  
1807 /**********************************************************************
1808    returns
1809 **********************************************************************/
1810
1811 /*
1812    these returns are arranged first by environment (DOS, UNIX or
1813    embedded) followed by compiler (microsoft c, borland c, unix or
1814    microtec c) as appropriate.
1815 */
1816
1817 #ifdef DOS                        /* dos */
1818 #ifdef MSC51                      /* dos, microsoft c */
1819 #ifdef TRACE5
1820 #define RETVOID     return(--t5t?(Void) 0 :(Void) 0)  /* return void */
1821 /* envdep_h_001.main_76: Removed void type casting */
1822 #define RETVALUE(v) return(--t5t?(v):(v)) /* return value */
1823 #else
1824 #define RETVOID     return        /* void */
1825 #define RETVALUE(v) return(v)     /* return value */
1826 #endif
1827 #else                             /* not microsoft c */
1828 #ifdef BOR31                      /* dos, borland c */
1829 #ifdef TRACE5
1830 #define RETVOID     return(--t5t?(Void) 0 :(Void) 0)  /* return void */
1831 /* envdep_h_001.main_76: Removed void type casting */
1832 #define RETVALUE(v) return(--t5t?(v):(v)) /* return value */
1833 #else
1834 #define RETVOID     return        /* void */
1835 #define RETVALUE(v) return(v)     /* return value */
1836 #endif
1837 #else                             /* not borland c */
1838 #endif
1839 #endif
1840 #else                             /* not dos */
1841 #ifdef UNIX                       /* unix */
1842 #ifdef TRACE5
1843 #define RETVOID     return(--t5t?(Void) 0 :(Void) 0)  /* return void */
1844 /* envdep_h_001.main_76: Removed void type casting */
1845 #define RETVALUE(v) return(--t5t?(v):(v)) /* return value */
1846
1847 #else
1848 #define RETVOID     return        /* void */
1849 #define RETVALUE(v) return(v)     /* return value */
1850 #endif
1851 #else                             /* not unix */
1852 #ifdef MOTADS                     /* embedded, motorola ads */
1853 #ifdef DOSMRI42D                  /* dos microtec c cross-compiler */
1854 #ifdef TRACE5
1855 #define RETVOID     return(--t5t?(Void) 0 :(Void) 0)  /* return void */
1856 /* envdep_h_001.main_76: Removed void type casting */
1857 #define RETVALUE(v) return(--t5t?(v):(v)) /* return value */
1858 #else
1859 #define RETVOID     return        /* void */
1860 #define RETVALUE(v) return(v)     /* return value */
1861 #endif
1862 #else                             /* not dos microtec c */
1863 #ifdef SOLMRI43                   /* solaris microtec c cross-compiler */
1864 #ifdef TRACE5
1865 #define RETVOID     return(--t5t?(Void) 0 :(Void) 0)  /* return void */
1866 /* envdep_h_001.main_76: Removed void type casting */
1867 #define RETVALUE(v) return(--t5t?(v):(v)) /* return value */
1868 #else
1869 #define RETVOID     return        /* void */
1870 #define RETVALUE(v) return(v)     /* return value */
1871 #endif
1872 #else                             /* not solaris microtec c cross-compiler */
1873 #ifdef SOLOAS186                  /* solaris oasys c cross-compiler */
1874 #ifdef TRACE5
1875 #define RETVOID     return(--t5t?(Void) 0 :(Void) 0)  /* return void */
1876 /* envdep_h_001.main_76: Removed void type casting */
1877 #define RETVALUE(v) return(--t5t?(v):(v)) /* return value */
1878 #else
1879 #define RETVOID     return        /* void */
1880 #define RETVALUE(v) return(v)     /* return value */
1881 #endif
1882 #else                             /* not microtec c, not oasys c */
1883 #endif
1884 #endif
1885 #endif
1886 #else                             /* not motorola ads */
1887 #ifdef TRACE5
1888 #define RETVOID     return(--t5t?(Void) 0 :(Void) 0)  /* return void */
1889 /* envdep_h_001.main_76: Removed void type casting */
1890 #define RETVALUE(v) return(--t5t?(v):(v)) /* return value */
1891 #else
1892 #define RETVOID     return        /* void */
1893 #define RETVALUE(v) return(v)     /* return value */
1894 #endif
1895 #endif                            /* motorola ads */
1896 #endif                            /* unix */
1897 #endif                            /* dos */
1898
1899
1900 /* General Macros - Moved from envind.h */
1901 #ifndef HPOS
1902 #ifdef MIN
1903 #undef MIN
1904 #define MIN(x, y) ((x) > (y) ? (y) : (x))            /* get minimum value */
1905 #else
1906 #define MIN(x, y) ((x) > (y) ? (y) : (x))            /* get minimum value */
1907 #endif /* MIN */
1908
1909 #ifdef MAX
1910 #undef MAX
1911 #define MAX(x, y) ((x) > (y) ? (x) : (y))            /* get maximum value */
1912 #else
1913 #define MAX(x, y) ((x) > (y) ? (x) : (y))            /* get maximum value */
1914 #endif /* MAX */
1915 #endif /* HPOS */
1916
1917
1918 \f
1919 /*
1920
1921    The following defines are used as switches throughout the
1922    TRILLIUM software 
1923
1924    PORTVER   Portable version
1925    MOSVER    MOS version
1926
1927    LCINT     Loosely coupled - isdn network layer
1928    TCINT     Tightly coupled - isdn network layer 
1929    LCXNT     Loosely coupled - x.25 network layer
1930    TCXNT     Tightly coupled - x.25 network layer 
1931    LCDAT     Loosely coupled - data link layer
1932    TCDAT     Tightly coupled - data link layer 
1933    LCMAC     Loosely coupled - mac layer
1934    TCMAC     Tightly coupled - mac layer
1935    LCLM      Loosely coupled - layer management
1936    TCLM      Tightly coupled - layer management
1937
1938    ANSI      ansi
1939
1940    DOS       dos environment
1941    UNIX      unix environment
1942  
1943    MSC51     microsoft c 5.1 compiler
1944    MSC60     microsoft c 6.0 compiler
1945    MSC70     microsoft c 7.0 compiler
1946    DOSMRI42D dos microtec c 4.2D cross-compiler
1947    SOLMRI43  solaris microtec c 4.3 cross-compiler
1948    SOLOAS186 solaris oasys 1.8.6 cross-compiler
1949    BOR31     borland c 3.1 compiler
1950
1951    SUNOS     sun os environment
1952    SUNOS41   sun os 4.1 environment and compiler
1953    SUNOS51   sun os 5.1 environment and compiler
1954   
1955    MSCDOS    microsoft c, DOS environment - being phased out
1956    MSCUNIX   microsoft c, UNIX environment - being phased out
1957
1958    UC2       Franklin UC2A interface
1959    WT3       Retix WT-330 interface
1960    FUT       Dassault AT-FUT interface
1961    MDP       Dassault MOS/Driver interface
1962
1963    ERRCHK    Error check
1964
1965    TRC0      Trace 0 - MOS support functions
1966    TRC1      Trace 1 - MOS interface functions
1967    TRC2      Trace 2 - layer support functions
1968    TRC3      Trace 3 - layer interface functions
1969    TRC4      Trace 4 - interrupt service functions
1970
1971    X28X29    X.28 and X.29 support
1972
1973 */
1974     
1975 #ifdef TENB_TTI_PERF
1976 #define TTI_THRESHOLD_VALUE 800
1977 #endif
1978
1979 #ifdef __cplusplus
1980 }
1981 #endif
1982
1983
1984 #endif /* __ENVDEPH__ */
1985
1986 \f  
1987 /********************************************************************30**
1988   
1989          End of file
1990 **********************************************************************/