PageRenderTime 30ms CodeModel.GetById 13ms app.highlight 11ms RepoModel.GetById 1ms app.codeStats 0ms

/contrib/tcsh/sh.types.h

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