sh.types.h revision 145479
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 */ 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 */ 421