xref: /freebsd/contrib/tcsh/sh.types.h (revision 1b6c76a2fe091c74f08427e6c870851025a9cf67)
1 /* $Header: /src/pub/tcsh/sh.types.h,v 3.38 2000/07/04 19:46:23 christos Exp $ */
2 /* sh.types.h: Do the necessary typedefs for each system.
3  *             Up till now I avoided making this into a separate file
4  *	       But I just wanted to eliminate the whole mess from sh.h
5  *	       In reality this should not be here! It is OS and MACHINE
6  *	       dependent, even between different revisions of OS's...
7  *	       Ideally there should be a way in c, to find out if something
8  *	       was typedef'ed, but unfortunately we rely in cpp kludges.
9  *	       Someday, this file will be removed...
10  *
11  *						christos
12  */
13 /*-
14  * Copyright (c) 1980, 1991 The Regents of the University of California.
15  * All rights reserved.
16  *
17  * Redistribution and use in source and binary forms, with or without
18  * modification, are permitted provided that the following conditions
19  * are met:
20  * 1. Redistributions of source code must retain the above copyright
21  *    notice, this list of conditions and the following disclaimer.
22  * 2. Redistributions in binary form must reproduce the above copyright
23  *    notice, this list of conditions and the following disclaimer in the
24  *    documentation and/or other materials provided with the distribution.
25  * 3. All advertising materials mentioning features or use of this software
26  *    must display the following acknowledgement:
27  *	This product includes software developed by the University of
28  *	California, Berkeley and its contributors.
29  * 4. Neither the name of the University nor the names of its contributors
30  *    may be used to endorse or promote products derived from this software
31  *    without specific prior written permission.
32  *
33  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
34  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
35  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
36  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
37  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
38  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
39  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
40  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
41  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
42  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
43  * SUCH DAMAGE.
44  */
45 #ifndef _h_sh_types
46 #define _h_sh_types
47 
48 
49 /***
50  *** LynxOS 2.1
51  ***/
52 #ifdef Lynx
53 # ifndef _SIGMASK_T
54 #  define _SIGMASK_T
55     typedef long sigmask_t;
56 # endif /* _SIGMASK_T */
57 # ifndef _PID_T
58 #  define _PID_T
59 # endif /* _PID_T */
60 #endif
61 
62 /***
63  *** MachTen
64  ***/
65 #ifdef __MACHTEN__
66 # ifndef _PID_T
67 #  define _PID_T
68 # endif
69 #endif
70 
71 
72 /***
73  *** Suns running sunos3.x - sunos4.1.x
74  ***/
75 #if (defined(sun) || defined(__sun__)) && SYSVREL == 0
76 /* This used to be long, but lint dissagrees... */
77 # ifndef _SIGMASK_T
78 #  define _SIGMASK_T
79     typedef int sigmask_t;
80 # endif /* _SIGMASK_T */
81 # ifndef _PTR_T
82 #  define _PTR_T
83 #   ifdef __GNUC__
84     typedef void * ptr_t;
85 #   else
86     typedef char * ptr_t;
87 #   endif /* __GNUC__ */
88 # endif /* _PTR_T */
89 # ifndef _SIZE_T
90 #  define _SIZE_T
91 # endif /* _SIZE_T */
92 # ifndef __sys_stdtypes_h
93 #  define __sys_stdtypes_h
94 #   ifndef __lucid
95      typedef int pid_t;
96      typedef unsigned int speed_t;
97 #   endif
98 # endif /* __sys_stdtypes.h */
99 # ifndef _PID_T
100 #  define _PID_T
101 # endif /* _PID_T */
102 # ifndef _SPEED_T
103 #  define _SPEED_T
104 # endif /* _SPEED_T */
105 # ifndef SUNOS4
106 #  ifndef MACH
107 #   ifndef _UID_T
108 #    define _UID_T
109       typedef int uid_t;
110 #   endif /* _UID_T */
111 #   ifndef _GID_T
112 #    define _GID_T
113       typedef int gid_t;
114 #   endif /* _GID_T */
115 #  endif /* !MACH */
116 # endif /* !SUNOS4 */
117 #endif /* (sun || __sun__) && SYSVREL == 0 */
118 
119 
120 /***
121  *** Hp's running hpux 7.0 or 8.0
122  ***/
123 #ifdef __hpux
124 # ifndef _SIZE_T
125 #  define _SIZE_T
126     typedef unsigned int size_t;
127 # endif /* _SIZE_T */
128 
129 # ifndef _PTR_T
130 #  define _PTR_T
131     typedef void * ptr_t;
132 # endif /* _PTR_T */
133 
134 # ifndef _PID_T
135 #  define _PID_T
136     typedef long pid_t;
137 # endif /* _PID_T */
138 
139 # ifndef _SIGMASK_T
140 #  define _SIGMASK_T
141     typedef long sigmask_t;
142 # endif /* _SIGMASK_T */
143 
144 # ifndef _SPEED_T
145    /* I thought POSIX was supposed to protect all typedefs! */
146 #  define _SPEED_T
147 # endif /* _SPEED_T */
148 
149 extern uid_t getuid(), geteuid();
150 extern gid_t getgid(), getegid();
151 extern sigmask_t sigblock();
152 extern sigmask_t sigsetmask();
153 extern pid_t getpid();
154 extern pid_t fork();
155 extern void perror();
156 extern void _exit();
157 extern void abort();
158 extern void qsort();
159 extern void free();
160 extern unsigned int alarm();
161 extern unsigned int sleep();
162 # if HPUXVERSION < 800	/* XXX: Not true for 8.0 */
163 extern void sigpause();
164 extern sigmask_t sigspace();
165 extern int lstat();
166 extern int readlink();
167 extern int sigvector();
168 extern int gethostname();
169 extern int ioctl();
170 extern int nice();
171 extern char *sbrk();
172 # endif /* HPUXVERSION < 800 */
173 #endif /* __hpux */
174 
175 #if (defined(_MINIX) && !defined(_MINIX_VMD)) || defined(__EMX__) || defined(COHERENT)
176 typedef char * caddr_t;
177 #endif /* (_MINIX && !_MINIX_VMD) || __EMX__ || COHERENT */
178 
179 /***
180  *** hp9000s500 running hpux-5.2
181  ***/
182 #ifdef hp9000s500
183 # ifndef _PTR_T
184 #  define _PTR_T
185     typedef char * ptr_t;
186 # endif /* _PTR_T */
187 #endif /* hp9000s500 */
188 
189 /***
190  *** Data General AViiON 88000 or Pentium, running dgux 5.4R3 or R4.11
191  ***/
192 #ifdef DGUX
193 # ifndef _SIZE_T
194 #  define _SIZE_T size_t
195     typedef unsigned int size_t;
196 # endif /* _SIZE_T */
197 # ifndef _PID_T
198 #  define _PID_T
199 # endif /* _PID_T */
200 #endif /* DGUX */
201 
202 
203 /***
204  *** Intel 386, ISC 386/ix v2.0.2
205  ***/
206 #ifdef ISC202
207 # ifndef _SIZE_T
208 #  define _SIZE_T
209 # endif /* _SIZE_T */
210 #endif /* ISC202 */
211 
212 /***
213  *** a PFU/Fujitsu A-xx computer SX/A Edition 60 or later
214  ***/
215 #ifdef SXA
216 # ifndef _SIZE_T
217 #  define _SIZE_T
218 # endif /* _SIZE_T */
219 #endif /* SXA */
220 
221 /***
222  *** a stellar 2600, running stellix 2.3
223  ***/
224 #ifdef stellar
225 # ifndef _SIZE_T
226 #  define _SIZE_T
227 # endif /* _SIZE_T */
228 #endif /* stellar */
229 
230 /***
231  *** BSD systems, pre and post 4.3
232  ***/
233 #ifdef BSD
234 # ifndef _SIZE_T
235 #  define _SIZE_T
236 # endif /* _SIZE_T */
237 #endif /* BSD */
238 
239 
240 /***
241  *** BSD RENO advertises itself as POSIX, but
242  *** it is missing speed_t
243  ***/
244 #ifdef RENO
245 # ifndef _SPEED_T
246 #  define _SPEED_T
247    typedef unsigned int speed_t;
248 # endif /* _SPEED_T */
249 #endif /* RENO */
250 
251 
252 /***
253  *** NeXT OS 3.x
254  ***/
255 #ifdef NeXT
256 # ifndef _SPEED_T
257 #  define _SPEED_T
258    typedef unsigned int speed_t;
259 # endif /* _SPEED_T */
260 #endif /* NeXT */
261 
262 /***
263  *** Utah's HPBSD
264  *** some posix & 4.4 BSD changes (pid_t is a short)
265  ***/
266 #ifdef HPBSD
267 # ifndef _PID_T
268 #  define _PID_T
269 # endif /* _PID_T */
270 #endif /* HPBSD */
271 
272 
273 /***
274  *** Pyramid, BSD universe
275  *** In addition to the size_t
276  ***/
277 #ifdef pyr
278 # ifndef _PID_T
279 #  define _PID_T
280    typedef short pid_t;
281 # endif /* _PID_T */
282 #endif /* pyr */
283 
284 
285 /***
286  *** rs6000, ibm370, ps2, rt: running flavors of aix.
287  ***/
288 #ifdef IBMAIX
289 # ifndef _SIZE_T
290 #  define _SIZE_T
291 # endif /* _SIZE_T */
292 # ifndef aiws
293 #  ifndef _PID_T
294 #   define _PID_T
295 #  endif /* _PID_T */
296 # endif /* !aiws */
297 # ifdef _IBMR2
298 #  ifndef _SPEED_T
299 #   define _SPEED_T
300 #  endif /* _SPEED_T */
301 # endif /* _IBMR2 */
302 #endif /* IBMAIX */
303 
304 
305 /***
306  *** Ultrix...
307  ***/
308 #if defined(ultrix) || defined(__ultrix)
309 # ifndef _SIZE_T
310 #  define _SIZE_T
311 # endif /* _SIZE_T */
312 # ifndef _PID_T
313 #  define _PID_T
314 # endif /* _PID_T */
315 # ifndef _PTR_T
316 #  define _PTR_T
317     typedef void * ptr_t;
318 # endif /* _PTR_T */
319 #endif /* ultrix || __ultrix */
320 
321 
322 /***
323  *** Silicon graphics IRIS4D running IRIX3_3
324  ***/
325 #if defined(IRIS4D) && defined(IRIX3_3)
326 # ifndef _PID_T
327 #  define _PID_T
328 # endif /* _PID_T */
329 #endif /* IRIS4D && IRIX3_3 */
330 
331 
332 /***
333  *** Sequent
334  ***/
335 #ifdef sequent
336 # ifndef _SIZE_T
337 #  define _SIZE_T
338 # endif /* _SIZE_T */
339 #endif /* sequent */
340 
341 /***
342  *** Apple AUX.
343  ***/
344 #ifdef OREO
345 # ifndef _SIZE_T
346 #  define _SIZE_T
347 # endif /* _SIZE_T */
348 # ifndef _PID_T
349 #  define _PID_T
350 # endif /* _PID_T */
351 #endif /* OREO */
352 
353 /***
354  *** Intel 386, Hypercube
355  ***/
356 #ifdef INTEL
357 # ifndef _SIZE_T
358 #  define _SIZE_T
359 # endif /* _SIZE_T */
360 #endif /* INTEL */
361 
362 /***
363  *** Concurrent (Masscomp) running RTU 4.1A & RTU 5.0.
364  **** [RTU 6.0 from mike connor]
365  *** Added, DAS DEC-90.
366  ***/
367 #ifdef	masscomp
368 # ifndef _SIZE_T
369 #  define _SIZE_T
370 # endif /* _SIZE_T */
371 # ifdef RTU6
372 #  ifndef _PID_T
373 #   define _PID_T
374 #  endif /* _PID_T */
375 #  ifndef _SPEED_T
376 #   define _SPEED_T
377 #  endif /* _SPEED_T */
378 #endif /* RTU6 */
379 #endif	/* masscomp */
380 
381 /***
382  *** Encore multimax running umax 4.2
383  ***/
384 #ifdef	ns32000
385 # ifdef __TYPES_DOT_H__
386 #  ifndef _SIZE_T
387 #   define _SIZE_T
388 #  endif /* _SIZE_T */
389 # endif /* __TYPES_DOT_H__ */
390 #endif	/* ns32000 */
391 
392 /***
393  *** Silicon Graphics IRIS 3000
394  ***
395  ***/
396 #ifdef IRIS3D
397 # ifndef _SIZE_T
398 #  define _SIZE_T
399 # endif /* _SIZE_T */
400 #endif /* IRIS3D */
401 
402 /*
403  * Motorola MPC running R32V2 (sysV88)
404  */
405 #ifdef sysV88
406 # ifndef _SIZE_T
407 #  define _SIZE_T
408 # endif /* _SIZE_T */
409 # ifndef _PID_T
410 #  define _PID_T
411 # endif /* _PID_T */
412 #endif /* sysV88 */
413 
414 /*
415  * Amdahl running UTS (Sys V3)
416  */
417 #ifdef uts
418 # ifndef _SIZE_T
419 #  define _SIZE_T
420 # endif /* _SIZE_T */
421 # ifndef _PID_T
422 #  define _PID_T
423 # endif /* _PID_T */
424 #endif /* uts */
425 
426 /*
427  * Tektronix 4300 running UTek 4.0 (BSD 4.2)
428  */
429 #ifdef UTek
430 # ifndef _SIZE_T
431 #  define _SIZE_T
432 # endif /* _SIZE_T */
433 # ifndef _UID_T
434 #  define _UID_T
435    typedef int uid_t;
436 # endif /* _UID_T */
437 # ifndef _GID_T
438 #  define _GID_T
439    typedef int gid_t;
440 # endif /* _GID_T */
441 #endif /* UTek */
442 
443 /*
444  * Tektronix XD88/10 running UTekV (Sys V3)
445  */
446 #ifdef UTekV
447 # ifndef _SIZE_T
448 #  define _SIZE_T
449 # endif /* _SIZE_T */
450 # ifndef _PID_T
451 #  define _PID_T
452 # endif /* _PID_T */
453 #endif /* UTekV*/
454 
455 /*
456  * UnixPC aka u3b1
457  */
458 #ifdef UNIXPC
459 # ifdef types_h
460 #  ifndef _SIZE_T
461 #   define _SIZE_T
462 #  endif /* _SIZE_T */
463 # endif /* types_h */
464 #endif /* UNIXPC */
465 
466 /*
467  * NS32000 OPUS
468  */
469 #ifdef OPUS
470 # ifndef _SIZE_T
471 #  define _SIZE_T
472 # endif /* _SIZE_T */
473 #endif /* OPUS */
474 
475 /*
476  * BBN Butterfly gp1000
477  */
478 #ifdef butterfly
479 # ifndef _PID_T
480 #  define _PID_T
481 # endif /* _PID_T */
482 #endif /* butterfly */
483 
484 /*
485  * Convex
486  */
487 #ifdef convex
488 # if defined(__SIZE_T) && !defined(_SIZE_T)
489 #  define _SIZE_T
490 # endif /* __SIZE_T && !_SIZE_T */
491 #endif /* convex */
492 
493 /*
494  * Alliant FX-2800/FX-80
495  */
496 #ifdef alliant
497 # ifndef _PID_T
498 #  define _PID_T
499 # endif /* _PID_T */
500 # ifdef mc68000
501    typedef int   pid_t; /* FX-80 */
502 # else
503    typedef short pid_t;	/* FX-2800 */
504 # endif
505 #endif /* alliant */
506 
507 /*
508  * DNIX
509  */
510 #ifdef DNIX
511 # ifndef _PID_T
512 #  define _PID_T
513 # endif /* _PID_T */
514 #endif /* DNIX */
515 
516 /*
517  *  Apollo running Domain/OS SR10.3 or greater
518  */
519 #ifdef apollo
520 # ifndef _PID_T
521 #  define _PID_T
522    typedef int pid_t;	/* Older versions might not like that */
523 # endif /* _PID_T */
524 #endif /* apollo */
525 
526 /*
527  *  Vax running VMS_POSIX
528  */
529 #ifdef _VMS_POSIX
530 # ifndef _SIZE_T
531 #  define _SIZE_T
532 # endif /* _SIZE_T */
533 #endif /* _VMS_POSIX */
534 
535 /***
536  *** a pdp/11, running 2BSD
537  ***/
538 #ifdef pdp11
539 # ifndef _PID_T
540 #  define _PID_T
541 # endif /* _PID_T */
542 #endif /* pdp11 */
543 
544 /***
545  *** a Harris, running CX/UX
546  ***/
547 #ifdef _CX_UX
548 # ifndef _PID_T
549 #  define _PID_T
550 # endif /* _PID_T */
551 #endif /* _CX_UX */
552 
553 /***
554  *** Catch all for non POSIX and/or non ANSI systems.
555  *** Systems up to spec *should* define these automatically
556  *** I am open to suggestions on how to do this correctly!
557  ***/
558 
559 #ifndef __STDC__
560 
561 # ifndef _SIZE_T
562 #  define _SIZE_T
563    typedef int size_t;		/* As sun comments ??? : meaning I take it */
564 # endif /* _SIZE_T */		/* Until we make the world ANSI... */
565 
566 #endif  /* ! __STDC__ */
567 
568 #ifndef POSIX
569 
570 # ifndef _PID_T
571 #  define _PID_T
572     typedef int pid_t;
573 # endif /* _PID_T */
574 
575 # ifndef _SPEED_T
576 #  define _SPEED_T
577     typedef unsigned int speed_t;
578 # endif /* _SPEED_T */
579 
580 # ifndef _PTR_T
581 #  define _PTR_T
582     typedef char * ptr_t;
583 #endif /* _PTR_T */
584 
585 # ifndef _IOCTL_T
586 #  define _IOCTL_T
587     typedef char * ioctl_t;	/* Third arg of ioctl */
588 # endif /* _IOCTL_T */
589 
590 #endif /* ! POSIX */
591 
592 
593 
594 /***
595  *** This is our own junk types.
596  ***/
597 #ifndef _PTR_T
598 # define _PTR_T
599     typedef void * ptr_t;
600 #endif /* _PTR_T */
601 
602 #ifndef _SIGMASK_T
603 # define _SIGMASK_T
604     typedef int sigmask_t;
605 #endif /* _SIGMASK_T */
606 
607 #ifndef _IOCTL_T
608 # define _IOCTL_T
609     typedef void * ioctl_t;	/* Third arg of ioctl */
610 #endif /* _IOCTL_T */
611 
612 #endif /* _h_sh_types */
613