xref: /freebsd/contrib/tcsh/sh.types.h (revision 4f29da19bd44f0e99f021510460a81bf754c21d2)
1 /* $Header: /src/pub/tcsh/sh.types.h,v 3.42 2005/03/03 19:57:07 kim 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 __sys_stdtypes_h
86 #  define __sys_stdtypes_h
87 #   ifndef __lucid
88      typedef int pid_t;
89      typedef unsigned int speed_t;
90 #   endif
91 # endif /* __sys_stdtypes.h */
92 # ifndef _PID_T
93 #  define _PID_T
94 # endif /* _PID_T */
95 # ifndef _SPEED_T
96 #  define _SPEED_T
97 # endif /* _SPEED_T */
98 #endif /* (sun || __sun__) && SYSVREL == 0 */
99 
100 
101 /***
102  *** Hp's running hpux 7.0 or 8.0
103  ***/
104 #ifdef __hpux
105 
106 # ifndef _PTR_T
107 #  define _PTR_T
108     typedef void * ptr_t;
109 # endif /* _PTR_T */
110 
111 # ifndef _PID_T
112 #  define _PID_T
113     typedef long pid_t;
114 # endif /* _PID_T */
115 
116 # ifndef _SIGMASK_T
117 #  define _SIGMASK_T
118     typedef long sigmask_t;
119 # endif /* _SIGMASK_T */
120 
121 # ifndef _SPEED_T
122    /* I thought POSIX was supposed to protect all typedefs! */
123 #  define _SPEED_T
124 # endif /* _SPEED_T */
125 
126 # if HPUXVERSION < 1100	/* XXX: Not true for 11.0 */
127 extern uid_t getuid(), geteuid();
128 extern gid_t getgid(), getegid();
129 extern sigmask_t sigblock();
130 extern sigmask_t sigsetmask();
131 extern pid_t getpid();
132 extern pid_t fork();
133 extern void perror();
134 extern void _exit();
135 extern void abort();
136 extern void qsort();
137 extern void free();
138 extern unsigned int alarm();
139 extern unsigned int sleep();
140 # endif /* HPUXVERSION < 1100 */
141 # if HPUXVERSION < 800	/* XXX: Not true for 8.0 */
142 extern void sigpause();
143 extern sigmask_t sigspace();
144 extern char *sbrk();
145 # endif /* HPUXVERSION < 800 */
146 #endif /* __hpux */
147 
148 #if (defined(_MINIX) && !defined(_MINIX_VMD)) || defined(__EMX__) || defined(COHERENT)
149 typedef char * caddr_t;
150 #endif /* (_MINIX && !_MINIX_VMD) || __EMX__ || COHERENT */
151 
152 /***
153  *** hp9000s500 running hpux-5.2
154  ***/
155 #ifdef hp9000s500
156 # ifndef _PTR_T
157 #  define _PTR_T
158     typedef char * ptr_t;
159 # endif /* _PTR_T */
160 #endif /* hp9000s500 */
161 
162 /***
163  *** Data General AViiON 88000 or Pentium, running dgux 5.4R3 or R4.11
164  ***/
165 #ifdef DGUX
166 # ifndef _PID_T
167 #  define _PID_T
168 # endif /* _PID_T */
169 #endif /* DGUX */
170 
171 
172 /***
173  *** BSD RENO advertises itself as POSIX, but
174  *** it is missing speed_t
175  ***/
176 #ifdef RENO
177 # ifndef _SPEED_T
178 #  define _SPEED_T
179    typedef unsigned int speed_t;
180 # endif /* _SPEED_T */
181 #endif /* RENO */
182 
183 
184 /***
185  *** NeXT OS 3.x
186  ***/
187 #ifdef NeXT
188 # ifndef _SPEED_T
189 #  define _SPEED_T
190    typedef unsigned int speed_t;
191 # endif /* _SPEED_T */
192 #endif /* NeXT */
193 
194 /***
195  *** Utah's HPBSD
196  *** some posix & 4.4 BSD changes (pid_t is a short)
197  ***/
198 #ifdef HPBSD
199 # ifndef _PID_T
200 #  define _PID_T
201 # endif /* _PID_T */
202 #endif /* HPBSD */
203 
204 
205 /***
206  *** Pyramid, BSD universe
207  *** In addition to the size_t
208  ***/
209 #ifdef pyr
210 # ifndef _PID_T
211 #  define _PID_T
212    typedef short pid_t;
213 # endif /* _PID_T */
214 #endif /* pyr */
215 
216 
217 /***
218  *** rs6000, ibm370, ps2, rt: running flavors of aix.
219  ***/
220 #ifdef IBMAIX
221 # ifndef aiws
222 #  ifndef _PID_T
223 #   define _PID_T
224 #  endif /* _PID_T */
225 # endif /* !aiws */
226 # ifdef _IBMR2
227 #  ifndef _SPEED_T
228 #   define _SPEED_T
229 #  endif /* _SPEED_T */
230 # endif /* _IBMR2 */
231 #endif /* IBMAIX */
232 
233 
234 /***
235  *** Ultrix...
236  ***/
237 #if defined(ultrix) || defined(__ultrix)
238 # ifndef _PID_T
239 #  define _PID_T
240 # endif /* _PID_T */
241 # ifndef _PTR_T
242 #  define _PTR_T
243     typedef void * ptr_t;
244 # endif /* _PTR_T */
245 #endif /* ultrix || __ultrix */
246 
247 
248 /***
249  *** Silicon graphics IRIS4D running IRIX3_3
250  ***/
251 #if defined(IRIS4D) && defined(IRIX3_3)
252 # ifndef _PID_T
253 #  define _PID_T
254 # endif /* _PID_T */
255 #endif /* IRIS4D && IRIX3_3 */
256 
257 
258 /***
259  *** Apple AUX.
260  ***/
261 #ifdef OREO
262 # ifndef _PID_T
263 #  define _PID_T
264 # endif /* _PID_T */
265 #endif /* OREO */
266 
267 /***
268  *** Concurrent (Masscomp) running RTU 4.1A & RTU 5.0.
269  **** [RTU 6.0 from mike connor]
270  *** Added, DAS DEC-90.
271  ***/
272 #ifdef	masscomp
273 # ifdef RTU6
274 #  ifndef _PID_T
275 #   define _PID_T
276 #  endif /* _PID_T */
277 #  ifndef _SPEED_T
278 #   define _SPEED_T
279 #  endif /* _SPEED_T */
280 #endif /* RTU6 */
281 #endif	/* masscomp */
282 
283 /*
284  * Motorola MPC running R32V2 (sysV88)
285  */
286 #ifdef sysV88
287 # ifndef _PID_T
288 #  define _PID_T
289 # endif /* _PID_T */
290 #endif /* sysV88 */
291 
292 /*
293  * Amdahl running UTS (Sys V3)
294  */
295 #ifdef uts
296 # ifndef _PID_T
297 #  define _PID_T
298 # endif /* _PID_T */
299 #endif /* uts */
300 
301 /*
302  * Tektronix XD88/10 running UTekV (Sys V3)
303  */
304 #ifdef UTekV
305 # ifndef _PID_T
306 #  define _PID_T
307 # endif /* _PID_T */
308 #endif /* UTekV*/
309 
310 /*
311  * BBN Butterfly gp1000
312  */
313 #ifdef butterfly
314 # ifndef _PID_T
315 #  define _PID_T
316 # endif /* _PID_T */
317 #endif /* butterfly */
318 
319 /*
320  * Alliant FX-2800/FX-80
321  */
322 #ifdef alliant
323 # ifndef _PID_T
324 #  define _PID_T
325 # endif /* _PID_T */
326 # ifdef mc68000
327    typedef int   pid_t; /* FX-80 */
328 # else
329    typedef short pid_t;	/* FX-2800 */
330 # endif
331 #endif /* alliant */
332 
333 /*
334  * DNIX
335  */
336 #ifdef DNIX
337 # ifndef _PID_T
338 #  define _PID_T
339 # endif /* _PID_T */
340 #endif /* DNIX */
341 
342 /*
343  *  Apollo running Domain/OS SR10.3 or greater
344  */
345 #ifdef apollo
346 # ifndef _PID_T
347 #  define _PID_T
348    typedef int pid_t;	/* Older versions might not like that */
349 # endif /* _PID_T */
350 #endif /* apollo */
351 
352 /***
353  *** a pdp/11, running 2BSD
354  ***/
355 #ifdef pdp11
356 # ifndef _PID_T
357 #  define _PID_T
358 # endif /* _PID_T */
359 #endif /* pdp11 */
360 
361 /***
362  *** a Harris, running CX/UX
363  ***/
364 #ifdef _CX_UX
365 # ifndef _PID_T
366 #  define _PID_T
367 # endif /* _PID_T */
368 #endif /* _CX_UX */
369 
370 /***
371  *** Catch all for non POSIX and/or non ANSI systems.
372  *** Systems up to spec *should* define these automatically
373  *** I am open to suggestions on how to do this correctly!
374  ***/
375 
376 #ifndef POSIX
377 
378 # ifndef _PID_T
379 #  define _PID_T
380     typedef int pid_t;
381 # endif /* _PID_T */
382 
383 # ifndef _SPEED_T
384 #  define _SPEED_T
385     typedef unsigned int speed_t;
386 # endif /* _SPEED_T */
387 
388 # ifndef _PTR_T
389 #  define _PTR_T
390     typedef char * ptr_t;
391 #endif /* _PTR_T */
392 
393 # ifndef _IOCTL_T
394 #  define _IOCTL_T
395     typedef char * ioctl_t;	/* Third arg of ioctl */
396 # endif /* _IOCTL_T */
397 
398 #endif /* ! POSIX */
399 
400 
401 
402 /***
403  *** This is our own junk types.
404  ***/
405 #ifndef _PTR_T
406 # define _PTR_T
407     typedef void * ptr_t;
408 #endif /* _PTR_T */
409 
410 #ifndef _SIGMASK_T
411 # define _SIGMASK_T
412     typedef int sigmask_t;
413 #endif /* _SIGMASK_T */
414 
415 #ifndef _IOCTL_T
416 # define _IOCTL_T
417     typedef void * ioctl_t;	/* Third arg of ioctl */
418 #endif /* _IOCTL_T */
419 
420 #endif /* _h_sh_types */
421