source: trunk/third/tcsh/sh.types.h @ 22036

Revision 22036, 8.8 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r22035, which included commits to RCS files with non-trunk default branches.
Line 
1/* $Header: /afs/dev.mit.edu/source/repository/third/tcsh/sh.types.h,v 1.1.1.3 2005-06-03 14:35:36 ghudson 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 */
127extern uid_t getuid(), geteuid();
128extern gid_t getgid(), getegid();
129extern sigmask_t sigblock();
130extern sigmask_t sigsetmask();
131extern pid_t getpid();
132extern pid_t fork();
133extern void perror();
134extern void _exit();
135extern void abort();
136extern void qsort();
137extern void free();
138extern unsigned int alarm();
139extern unsigned int sleep();
140# endif /* HPUXVERSION < 1100 */
141# if HPUXVERSION < 800  /* XXX: Not true for 8.0 */
142extern void sigpause();
143extern sigmask_t sigspace();
144extern char *sbrk();
145# endif /* HPUXVERSION < 800 */
146#endif /* __hpux */
147
148#if (defined(_MINIX) && !defined(_MINIX_VMD)) || defined(__EMX__) || defined(COHERENT)
149typedef 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 */
Note: See TracBrowser for help on using the repository browser.