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