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