sh.types.h revision 145479
1276789Sdim/* $Header: /src/pub/tcsh/sh.types.h,v 3.42 2005/03/03 19:57:07 kim Exp $ */ 2276789Sdim/* 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 6276789Sdim * dependent, even between different revisions of OS's... 7276789Sdim * Ideally there should be a way in c, to find out if something 8276789Sdim * was typedef'ed, but unfortunately we rely in cpp kludges. 9276789Sdim * Someday, this file will be removed... 10276789Sdim * 11360784Sdim * christos 12276789Sdim */ 13360784Sdim/*- 14360784Sdim * Copyright (c) 1980, 1991 The Regents of the University of California. 15360784Sdim * All rights reserved. 16360784Sdim * 17360784Sdim * Redistribution and use in source and binary forms, with or without 18360784Sdim * modification, are permitted provided that the following conditions 19360784Sdim * are met: 20360784Sdim * 1. Redistributions of source code must retain the above copyright 21360784Sdim * notice, this list of conditions and the following disclaimer. 22360784Sdim * 2. Redistributions in binary form must reproduce the above copyright 23360784Sdim * notice, this list of conditions and the following disclaimer in the 24360784Sdim * documentation and/or other materials provided with the distribution. 25360784Sdim * 3. Neither the name of the University nor the names of its contributors 26360784Sdim * may be used to endorse or promote products derived from this software 27360784Sdim * without specific prior written permission. 28360784Sdim * 29296417Sdim * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 30276789Sdim * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 31276789Sdim * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 32276789Sdim * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 33276789Sdim * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 34276789Sdim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 35276789Sdim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 36276789Sdim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 37276789Sdim * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 38276789Sdim * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 39276789Sdim * SUCH DAMAGE. 40276789Sdim */ 41276789Sdim#ifndef _h_sh_types 42309124Sdim#define _h_sh_types 43309124Sdim 44309124Sdim 45309124Sdim/*** 46309124Sdim *** LynxOS 2.1 47309124Sdim ***/ 48309124Sdim#ifdef Lynx 49276789Sdim# ifndef _SIGMASK_T 50360784Sdim# define _SIGMASK_T 51360784Sdim typedef long sigmask_t; 52360784Sdim# endif /* _SIGMASK_T */ 53360784Sdim# ifndef _PID_T 54360784Sdim# define _PID_T 55360784Sdim# endif /* _PID_T */ 56360784Sdim#endif 57360784Sdim 58360784Sdim/*** 59360784Sdim *** MachTen 60296417Sdim ***/ 61360784Sdim#ifdef __MACHTEN__ 62360784Sdim# ifndef _PID_T 63360784Sdim# define _PID_T 64360784Sdim# endif 65360784Sdim#endif 66360784Sdim 67360784Sdim 68360784Sdim/*** 69360784Sdim *** Suns running sunos3.x - sunos4.1.x 70360784Sdim ***/ 71360784Sdim#if (defined(sun) || defined(__sun__)) && SYSVREL == 0 72360784Sdim/* This used to be long, but lint dissagrees... */ 73360784Sdim# ifndef _SIGMASK_T 74360784Sdim# define _SIGMASK_T 75360784Sdim typedef int sigmask_t; 76360784Sdim# endif /* _SIGMASK_T */ 77360784Sdim# ifndef _PTR_T 78360784Sdim# define _PTR_T 79360784Sdim# ifdef __GNUC__ 80360784Sdim typedef void * ptr_t; 81360784Sdim# else 82360784Sdim typedef char * ptr_t; 83360784Sdim# endif /* __GNUC__ */ 84360784Sdim# endif /* _PTR_T */ 85360784Sdim# ifndef __sys_stdtypes_h 86276789Sdim# define __sys_stdtypes_h 87296417Sdim# ifndef __lucid 88296417Sdim typedef int pid_t; 89296417Sdim typedef unsigned int speed_t; 90276789Sdim# endif 91309124Sdim# endif /* __sys_stdtypes.h */ 92360784Sdim# ifndef _PID_T 93360784Sdim# define _PID_T 94360784Sdim# endif /* _PID_T */ 95360784Sdim# ifndef _SPEED_T 96360784Sdim# define _SPEED_T 97360784Sdim# endif /* _SPEED_T */ 98360784Sdim#endif /* (sun || __sun__) && SYSVREL == 0 */ 99360784Sdim 100360784Sdim 101360784Sdim/*** 102360784Sdim *** Hp's running hpux 7.0 or 8.0 103296417Sdim ***/ 104360784Sdim#ifdef __hpux 105360784Sdim 106360784Sdim# ifndef _PTR_T 107276789Sdim# define _PTR_T 108276789Sdim typedef void * ptr_t; 109321369Sdim# endif /* _PTR_T */ 110321369Sdim 111321369Sdim# ifndef _PID_T 112321369Sdim# define _PID_T 113321369Sdim typedef long pid_t; 114321369Sdim# endif /* _PID_T */ 115296417Sdim 116321369Sdim# ifndef _SIGMASK_T 117321369Sdim# define _SIGMASK_T 118321369Sdim typedef long sigmask_t; 119276789Sdim# endif /* _SIGMASK_T */ 120276789Sdim 121296417Sdim# ifndef _SPEED_T 122276789Sdim /* I thought POSIX was supposed to protect all typedefs! */ 123276789Sdim# define _SPEED_T 124276789Sdim# endif /* _SPEED_T */ 125321369Sdim 126321369Sdim# if HPUXVERSION < 1100 /* XXX: Not true for 11.0 */ 127321369Sdimextern uid_t getuid(), geteuid(); 128321369Sdimextern gid_t getgid(), getegid(); 129276789Sdimextern 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