sh.types.h revision 167466
1303241Sdim/* $Header: /p/tcsh/cvsroot/tcsh/sh.types.h,v 3.43 2006/01/12 19:55:38 christos Exp $ */ 2303241Sdim/* sh.types.h: Do the necessary typedefs for each system. 3353358Sdim * Up till now I avoided making this into a separate file 4353358Sdim * But I just wanted to eliminate the whole mess from sh.h 5353358Sdim * In reality this should not be here! It is OS and MACHINE 6303241Sdim * dependent, even between different revisions of OS's... 7303241Sdim * Ideally there should be a way in c, to find out if something 8303241Sdim * was typedef'ed, but unfortunately we rely in cpp kludges. 9314564Sdim * Someday, this file will be removed... 10353358Sdim * 11353358Sdim * christos 12303241Sdim */ 13303241Sdim/*- 14303241Sdim * Copyright (c) 1980, 1991 The Regents of the University of California. 15303241Sdim * All rights reserved. 16321369Sdim * 17303241Sdim * Redistribution and use in source and binary forms, with or without 18303241Sdim * modification, are permitted provided that the following conditions 19303241Sdim * are met: 20303241Sdim * 1. Redistributions of source code must retain the above copyright 21353358Sdim * notice, this list of conditions and the following disclaimer. 22353358Sdim * 2. Redistributions in binary form must reproduce the above copyright 23353358Sdim * notice, this list of conditions and the following disclaimer in the 24303241Sdim * documentation and/or other materials provided with the distribution. 25314564Sdim * 3. Neither the name of the University nor the names of its contributors 26353358Sdim * may be used to endorse or promote products derived from this software 27314564Sdim * without specific prior written permission. 28314564Sdim * 29303241Sdim * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 30303241Sdim * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 31314564Sdim * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 32353358Sdim * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 33353358Sdim * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 34353358Sdim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 35353358Sdim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36303241Sdim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 37303241Sdim * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 38314564Sdim * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 39314564Sdim * SUCH DAMAGE. 40353358Sdim */ 41353358Sdim#ifndef _h_sh_types 42353358Sdim#define _h_sh_types 43353358Sdim 44353358Sdim 45353358Sdim/*** 46353358Sdim *** LynxOS 2.1 47303241Sdim ***/ 48303241Sdim#ifdef Lynx 49314564Sdim# ifndef _PID_T 50303241Sdim# define _PID_T 51353358Sdim# endif /* _PID_T */ 52353358Sdim#endif 53303241Sdim 54353358Sdim/*** 55353358Sdim *** MachTen 56353358Sdim ***/ 57314564Sdim#ifdef __MACHTEN__ 58353358Sdim# ifndef _PID_T 59353358Sdim# define _PID_T 60353358Sdim# endif 61353358Sdim#endif 62314564Sdim 63303241Sdim 64303241Sdim/*** 65314564Sdim *** Suns running sunos3.x - sunos4.1.x 66353358Sdim ***/ 67353358Sdim#if (defined(sun) || defined(__sun__)) && SYSVREL == 0 68353358Sdim# ifndef _PTR_T 69353358Sdim# define _PTR_T 70314564Sdim# ifdef __GNUC__ 71303241Sdim typedef void * ptr_t; 72303241Sdim# else 73353358Sdim typedef char * ptr_t; 74303241Sdim# endif /* __GNUC__ */ 75353358Sdim# endif /* _PTR_T */ 76303241Sdim# ifndef __sys_stdtypes_h 77314564Sdim# define __sys_stdtypes_h 78353358Sdim# ifndef __lucid 79353358Sdim typedef int pid_t; 80353358Sdim typedef unsigned int speed_t; 81303241Sdim# endif 82303241Sdim# endif /* __sys_stdtypes.h */ 83314564Sdim# ifndef _PID_T 84353358Sdim# define _PID_T 85353358Sdim# endif /* _PID_T */ 86353358Sdim# ifndef _SPEED_T 87303241Sdim# define _SPEED_T 88303241Sdim# endif /* _SPEED_T */ 89314564Sdim#endif /* (sun || __sun__) && SYSVREL == 0 */ 90353358Sdim 91353358Sdim 92353358Sdim/*** 93303241Sdim *** Hp's running hpux 7.0 or 8.0 94303241Sdim ***/ 95314564Sdim#ifdef __hpux 96353358Sdim 97353358Sdim# ifndef _PTR_T 98353358Sdim# define _PTR_T 99303241Sdim typedef void * ptr_t; 100303241Sdim# endif /* _PTR_T */ 101314564Sdim 102353358Sdim# ifndef _PID_T 103353358Sdim# define _PID_T 104353358Sdim typedef long pid_t; 105303241Sdim# endif /* _PID_T */ 106303241Sdim 107314564Sdim# ifndef _SPEED_T 108353358Sdim /* I thought POSIX was supposed to protect all typedefs! */ 109353358Sdim# define _SPEED_T 110353358Sdim# endif /* _SPEED_T */ 111303241Sdim 112303241Sdim# if HPUXVERSION < 1100 /* XXX: Not true for 11.0 */ 113314564Sdimextern uid_t getuid(), geteuid(); 114353358Sdimextern gid_t getgid(), getegid(); 115353358Sdimextern pid_t getpid(); 116353358Sdimextern pid_t fork(); 117303241Sdimextern void perror(); 118303241Sdimextern void _exit(); 119314564Sdimextern void abort(); 120353358Sdimextern void qsort(); 121353358Sdimextern void free(); 122353358Sdimextern unsigned int alarm(); 123314564Sdimextern unsigned int sleep(); 124353358Sdim# endif /* HPUXVERSION < 1100 */ 125303241Sdim# if HPUXVERSION < 800 /* XXX: Not true for 8.0 */ 126314564Sdimextern char *sbrk(); 127353358Sdim# endif /* HPUXVERSION < 800 */ 128353358Sdim#endif /* __hpux */ 129353358Sdim 130353358Sdim#if (defined(_MINIX) && !defined(_MINIX_VMD)) || defined(__EMX__) 131314564Sdimtypedef char * caddr_t; 132303241Sdim#endif /* (_MINIX && !_MINIX_VMD) || __EMX__ */ 133314564Sdim 134303241Sdim/*** 135353358Sdim *** hp9000s500 running hpux-5.2 136353358Sdim ***/ 137353358Sdim#ifdef hp9000s500 138353358Sdim# ifndef _PTR_T 139353358Sdim# define _PTR_T 140353358Sdim typedef char * ptr_t; 141353358Sdim# endif /* _PTR_T */ 142353358Sdim#endif /* hp9000s500 */ 143353358Sdim 144353358Sdim/*** 145353358Sdim *** Data General AViiON 88000 or Pentium, running dgux 5.4R3 or R4.11 146353358Sdim ***/ 147353358Sdim#ifdef DGUX 148353358Sdim# ifndef _PID_T 149353358Sdim# define _PID_T 150353358Sdim# endif /* _PID_T */ 151353358Sdim#endif /* DGUX */ 152353358Sdim 153353358Sdim 154353358Sdim/*** 155353358Sdim *** BSD RENO advertises itself as POSIX, but 156353358Sdim *** it is missing speed_t 157353358Sdim ***/ 158353358Sdim#ifdef RENO 159353358Sdim# ifndef _SPEED_T 160353358Sdim# define _SPEED_T 161353358Sdim typedef unsigned int speed_t; 162353358Sdim# endif /* _SPEED_T */ 163353358Sdim#endif /* RENO */ 164353358Sdim 165353358Sdim 166353358Sdim/*** 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 */ 398