1167465Smp/* $Header: /p/tcsh/cvsroot/tcsh/sh.types.h,v 3.43 2006/01/12 19:55:38 christos Exp $ */ 259243Sobrien/* sh.types.h: Do the necessary typedefs for each system. 359243Sobrien * Up till now I avoided making this into a separate file 459243Sobrien * But I just wanted to eliminate the whole mess from sh.h 559243Sobrien * In reality this should not be here! It is OS and MACHINE 659243Sobrien * dependent, even between different revisions of OS's... 759243Sobrien * Ideally there should be a way in c, to find out if something 859243Sobrien * was typedef'ed, but unfortunately we rely in cpp kludges. 959243Sobrien * Someday, this file will be removed... 1059243Sobrien * 1159243Sobrien * christos 1259243Sobrien */ 1359243Sobrien/*- 1459243Sobrien * Copyright (c) 1980, 1991 The Regents of the University of California. 1559243Sobrien * All rights reserved. 1659243Sobrien * 1759243Sobrien * Redistribution and use in source and binary forms, with or without 1859243Sobrien * modification, are permitted provided that the following conditions 1959243Sobrien * are met: 2059243Sobrien * 1. Redistributions of source code must retain the above copyright 2159243Sobrien * notice, this list of conditions and the following disclaimer. 2259243Sobrien * 2. Redistributions in binary form must reproduce the above copyright 2359243Sobrien * notice, this list of conditions and the following disclaimer in the 2459243Sobrien * documentation and/or other materials provided with the distribution. 25100616Smp * 3. Neither the name of the University nor the names of its contributors 2659243Sobrien * may be used to endorse or promote products derived from this software 2759243Sobrien * without specific prior written permission. 2859243Sobrien * 2959243Sobrien * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 3059243Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 3159243Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 3259243Sobrien * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 3359243Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 3459243Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 3559243Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3659243Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 3759243Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3859243Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3959243Sobrien * SUCH DAMAGE. 4059243Sobrien */ 4159243Sobrien#ifndef _h_sh_types 4259243Sobrien#define _h_sh_types 4359243Sobrien 4459243Sobrien 4559243Sobrien/*** 4659243Sobrien *** LynxOS 2.1 4759243Sobrien ***/ 4859243Sobrien#ifdef Lynx 4959243Sobrien# ifndef _PID_T 5059243Sobrien# define _PID_T 5159243Sobrien# endif /* _PID_T */ 5259243Sobrien#endif 5359243Sobrien 5459243Sobrien/*** 5559243Sobrien *** MachTen 5659243Sobrien ***/ 5759243Sobrien#ifdef __MACHTEN__ 5859243Sobrien# ifndef _PID_T 5959243Sobrien# define _PID_T 6059243Sobrien# endif 6159243Sobrien#endif 6259243Sobrien 6359243Sobrien 6459243Sobrien/*** 6559243Sobrien *** Suns running sunos3.x - sunos4.1.x 6659243Sobrien ***/ 6759243Sobrien#if (defined(sun) || defined(__sun__)) && SYSVREL == 0 6859243Sobrien# ifndef _PTR_T 6959243Sobrien# define _PTR_T 7059243Sobrien# ifdef __GNUC__ 7159243Sobrien typedef void * ptr_t; 7259243Sobrien# else 7359243Sobrien typedef char * ptr_t; 7459243Sobrien# endif /* __GNUC__ */ 7559243Sobrien# endif /* _PTR_T */ 7659243Sobrien# ifndef __sys_stdtypes_h 7759243Sobrien# define __sys_stdtypes_h 7859243Sobrien# ifndef __lucid 7959243Sobrien typedef int pid_t; 8059243Sobrien typedef unsigned int speed_t; 8159243Sobrien# endif 8259243Sobrien# endif /* __sys_stdtypes.h */ 8359243Sobrien# ifndef _PID_T 8459243Sobrien# define _PID_T 8559243Sobrien# endif /* _PID_T */ 8659243Sobrien# ifndef _SPEED_T 8759243Sobrien# define _SPEED_T 8859243Sobrien# endif /* _SPEED_T */ 8959243Sobrien#endif /* (sun || __sun__) && SYSVREL == 0 */ 9059243Sobrien 9159243Sobrien 9259243Sobrien/*** 9359243Sobrien *** Hp's running hpux 7.0 or 8.0 9459243Sobrien ***/ 9559243Sobrien#ifdef __hpux 9659243Sobrien 9759243Sobrien# ifndef _PTR_T 9859243Sobrien# define _PTR_T 9959243Sobrien typedef void * ptr_t; 10059243Sobrien# endif /* _PTR_T */ 10159243Sobrien 10259243Sobrien# ifndef _PID_T 10359243Sobrien# define _PID_T 10459243Sobrien typedef long pid_t; 10559243Sobrien# endif /* _PID_T */ 10659243Sobrien 10759243Sobrien# ifndef _SPEED_T 10859243Sobrien /* I thought POSIX was supposed to protect all typedefs! */ 10959243Sobrien# define _SPEED_T 11059243Sobrien# endif /* _SPEED_T */ 11159243Sobrien 112131962Smp# if HPUXVERSION < 1100 /* XXX: Not true for 11.0 */ 11359243Sobrienextern uid_t getuid(), geteuid(); 11459243Sobrienextern gid_t getgid(), getegid(); 11559243Sobrienextern pid_t getpid(); 11659243Sobrienextern pid_t fork(); 11759243Sobrienextern void perror(); 11859243Sobrienextern void _exit(); 11959243Sobrienextern void abort(); 12059243Sobrienextern void qsort(); 12159243Sobrienextern void free(); 12259243Sobrienextern unsigned int alarm(); 12359243Sobrienextern unsigned int sleep(); 124131962Smp# endif /* HPUXVERSION < 1100 */ 12559243Sobrien# if HPUXVERSION < 800 /* XXX: Not true for 8.0 */ 12659243Sobrienextern char *sbrk(); 12759243Sobrien# endif /* HPUXVERSION < 800 */ 12859243Sobrien#endif /* __hpux */ 12959243Sobrien 130167465Smp#if (defined(_MINIX) && !defined(_MINIX_VMD)) || defined(__EMX__) 13159243Sobrientypedef char * caddr_t; 132167465Smp#endif /* (_MINIX && !_MINIX_VMD) || __EMX__ */ 13359243Sobrien 13459243Sobrien/*** 13559243Sobrien *** hp9000s500 running hpux-5.2 13659243Sobrien ***/ 13759243Sobrien#ifdef hp9000s500 13859243Sobrien# ifndef _PTR_T 13959243Sobrien# define _PTR_T 14059243Sobrien typedef char * ptr_t; 14159243Sobrien# endif /* _PTR_T */ 14259243Sobrien#endif /* hp9000s500 */ 14359243Sobrien 14459243Sobrien/*** 14559243Sobrien *** Data General AViiON 88000 or Pentium, running dgux 5.4R3 or R4.11 14659243Sobrien ***/ 14759243Sobrien#ifdef DGUX 14859243Sobrien# ifndef _PID_T 14959243Sobrien# define _PID_T 15059243Sobrien# endif /* _PID_T */ 15159243Sobrien#endif /* DGUX */ 15259243Sobrien 15359243Sobrien 15459243Sobrien/*** 15559243Sobrien *** BSD RENO advertises itself as POSIX, but 15659243Sobrien *** it is missing speed_t 15759243Sobrien ***/ 15859243Sobrien#ifdef RENO 15959243Sobrien# ifndef _SPEED_T 16059243Sobrien# define _SPEED_T 16159243Sobrien typedef unsigned int speed_t; 16259243Sobrien# endif /* _SPEED_T */ 16359243Sobrien#endif /* RENO */ 16459243Sobrien 16559243Sobrien 16659243Sobrien/*** 16759243Sobrien *** NeXT OS 3.x 16859243Sobrien ***/ 16959243Sobrien#ifdef NeXT 17059243Sobrien# ifndef _SPEED_T 17159243Sobrien# define _SPEED_T 17259243Sobrien typedef unsigned int speed_t; 17359243Sobrien# endif /* _SPEED_T */ 17459243Sobrien#endif /* NeXT */ 17559243Sobrien 17659243Sobrien/*** 17759243Sobrien *** Utah's HPBSD 17859243Sobrien *** some posix & 4.4 BSD changes (pid_t is a short) 17959243Sobrien ***/ 18059243Sobrien#ifdef HPBSD 18159243Sobrien# ifndef _PID_T 18259243Sobrien# define _PID_T 18359243Sobrien# endif /* _PID_T */ 18459243Sobrien#endif /* HPBSD */ 18559243Sobrien 18659243Sobrien 18759243Sobrien/*** 18859243Sobrien *** Pyramid, BSD universe 18959243Sobrien *** In addition to the size_t 19059243Sobrien ***/ 19159243Sobrien#ifdef pyr 19259243Sobrien# ifndef _PID_T 19359243Sobrien# define _PID_T 19459243Sobrien typedef short pid_t; 19559243Sobrien# endif /* _PID_T */ 19659243Sobrien#endif /* pyr */ 19759243Sobrien 19859243Sobrien 19959243Sobrien/*** 20059243Sobrien *** rs6000, ibm370, ps2, rt: running flavors of aix. 20159243Sobrien ***/ 20259243Sobrien#ifdef IBMAIX 20359243Sobrien# ifndef aiws 20459243Sobrien# ifndef _PID_T 20559243Sobrien# define _PID_T 20659243Sobrien# endif /* _PID_T */ 20759243Sobrien# endif /* !aiws */ 20859243Sobrien# ifdef _IBMR2 20959243Sobrien# ifndef _SPEED_T 21059243Sobrien# define _SPEED_T 21159243Sobrien# endif /* _SPEED_T */ 21259243Sobrien# endif /* _IBMR2 */ 21359243Sobrien#endif /* IBMAIX */ 21459243Sobrien 21559243Sobrien 21659243Sobrien/*** 21759243Sobrien *** Ultrix... 21859243Sobrien ***/ 21959243Sobrien#if defined(ultrix) || defined(__ultrix) 22059243Sobrien# ifndef _PID_T 22159243Sobrien# define _PID_T 22259243Sobrien# endif /* _PID_T */ 22359415Sobrien# ifndef _PTR_T 22459415Sobrien# define _PTR_T 22559415Sobrien typedef void * ptr_t; 22659415Sobrien# endif /* _PTR_T */ 22759243Sobrien#endif /* ultrix || __ultrix */ 22859243Sobrien 22959243Sobrien 23059243Sobrien/*** 23159243Sobrien *** Silicon graphics IRIS4D running IRIX3_3 23259243Sobrien ***/ 23359243Sobrien#if defined(IRIS4D) && defined(IRIX3_3) 23459243Sobrien# ifndef _PID_T 23559243Sobrien# define _PID_T 23659243Sobrien# endif /* _PID_T */ 23759243Sobrien#endif /* IRIS4D && IRIX3_3 */ 23859243Sobrien 23959243Sobrien 24059243Sobrien/*** 24159243Sobrien *** Apple AUX. 24259243Sobrien ***/ 24359243Sobrien#ifdef OREO 24459243Sobrien# ifndef _PID_T 24559243Sobrien# define _PID_T 24659243Sobrien# endif /* _PID_T */ 24759243Sobrien#endif /* OREO */ 24859243Sobrien 24959243Sobrien/*** 25059243Sobrien *** Concurrent (Masscomp) running RTU 4.1A & RTU 5.0. 25159243Sobrien **** [RTU 6.0 from mike connor] 25259243Sobrien *** Added, DAS DEC-90. 25359243Sobrien ***/ 25459243Sobrien#ifdef masscomp 25559243Sobrien# ifdef RTU6 25659243Sobrien# ifndef _PID_T 25759243Sobrien# define _PID_T 25859243Sobrien# endif /* _PID_T */ 25959243Sobrien# ifndef _SPEED_T 26059243Sobrien# define _SPEED_T 26159243Sobrien# endif /* _SPEED_T */ 26259243Sobrien#endif /* RTU6 */ 26359243Sobrien#endif /* masscomp */ 26459243Sobrien 26559243Sobrien/* 26659243Sobrien * Motorola MPC running R32V2 (sysV88) 26759243Sobrien */ 26859243Sobrien#ifdef sysV88 26959243Sobrien# ifndef _PID_T 27059243Sobrien# define _PID_T 27159243Sobrien# endif /* _PID_T */ 27259243Sobrien#endif /* sysV88 */ 27359243Sobrien 27459243Sobrien/* 27559243Sobrien * Amdahl running UTS (Sys V3) 27659243Sobrien */ 27759243Sobrien#ifdef uts 27859243Sobrien# ifndef _PID_T 27959243Sobrien# define _PID_T 28059243Sobrien# endif /* _PID_T */ 28159243Sobrien#endif /* uts */ 28259243Sobrien 28359243Sobrien/* 28459243Sobrien * Tektronix XD88/10 running UTekV (Sys V3) 28559243Sobrien */ 28659243Sobrien#ifdef UTekV 28759243Sobrien# ifndef _PID_T 28859243Sobrien# define _PID_T 28959243Sobrien# endif /* _PID_T */ 29059243Sobrien#endif /* UTekV*/ 29159243Sobrien 29259243Sobrien/* 29359243Sobrien * BBN Butterfly gp1000 29459243Sobrien */ 29559243Sobrien#ifdef butterfly 29659243Sobrien# ifndef _PID_T 29759243Sobrien# define _PID_T 29859243Sobrien# endif /* _PID_T */ 29959243Sobrien#endif /* butterfly */ 30059243Sobrien 30159243Sobrien/* 30259243Sobrien * Alliant FX-2800/FX-80 30359243Sobrien */ 30459243Sobrien#ifdef alliant 30559243Sobrien# ifndef _PID_T 30659243Sobrien# define _PID_T 30759243Sobrien# endif /* _PID_T */ 30859243Sobrien# ifdef mc68000 30959243Sobrien typedef int pid_t; /* FX-80 */ 31059243Sobrien# else 31159243Sobrien typedef short pid_t; /* FX-2800 */ 31259243Sobrien# endif 31359243Sobrien#endif /* alliant */ 31459243Sobrien 31559243Sobrien/* 31659243Sobrien * DNIX 31759243Sobrien */ 31859243Sobrien#ifdef DNIX 31959243Sobrien# ifndef _PID_T 32059243Sobrien# define _PID_T 32159243Sobrien# endif /* _PID_T */ 32259243Sobrien#endif /* DNIX */ 32359243Sobrien 32459243Sobrien/* 32559243Sobrien * Apollo running Domain/OS SR10.3 or greater 32659243Sobrien */ 32759243Sobrien#ifdef apollo 32859243Sobrien# ifndef _PID_T 32959243Sobrien# define _PID_T 33059243Sobrien typedef int pid_t; /* Older versions might not like that */ 33159243Sobrien# endif /* _PID_T */ 33259243Sobrien#endif /* apollo */ 33359243Sobrien 33459243Sobrien/*** 33559243Sobrien *** a pdp/11, running 2BSD 33659243Sobrien ***/ 33759243Sobrien#ifdef pdp11 33859243Sobrien# ifndef _PID_T 33959243Sobrien# define _PID_T 34059243Sobrien# endif /* _PID_T */ 34159243Sobrien#endif /* pdp11 */ 34259243Sobrien 34359243Sobrien/*** 34459243Sobrien *** a Harris, running CX/UX 34559243Sobrien ***/ 34659243Sobrien#ifdef _CX_UX 34759243Sobrien# ifndef _PID_T 34859243Sobrien# define _PID_T 34959243Sobrien# endif /* _PID_T */ 35059243Sobrien#endif /* _CX_UX */ 35159243Sobrien 35259243Sobrien/*** 35359243Sobrien *** Catch all for non POSIX and/or non ANSI systems. 35459243Sobrien *** Systems up to spec *should* define these automatically 35559243Sobrien *** I am open to suggestions on how to do this correctly! 35659243Sobrien ***/ 35759243Sobrien 35859243Sobrien#ifndef POSIX 35959243Sobrien 36059243Sobrien# ifndef _PID_T 36159243Sobrien# define _PID_T 36259243Sobrien typedef int pid_t; 36359243Sobrien# endif /* _PID_T */ 36459243Sobrien 36559243Sobrien# ifndef _SPEED_T 36659243Sobrien# define _SPEED_T 36759243Sobrien typedef unsigned int speed_t; 36859243Sobrien# endif /* _SPEED_T */ 36959243Sobrien 37059243Sobrien# ifndef _PTR_T 37159243Sobrien# define _PTR_T 37259243Sobrien typedef char * ptr_t; 37359243Sobrien#endif /* _PTR_T */ 37459243Sobrien 37559243Sobrien# ifndef _IOCTL_T 37659243Sobrien# define _IOCTL_T 37759243Sobrien typedef char * ioctl_t; /* Third arg of ioctl */ 37859243Sobrien# endif /* _IOCTL_T */ 37959243Sobrien 38059243Sobrien#endif /* ! POSIX */ 38159243Sobrien 38259243Sobrien 38359243Sobrien 38459243Sobrien/*** 38559243Sobrien *** This is our own junk types. 38659243Sobrien ***/ 38759243Sobrien#ifndef _PTR_T 38859243Sobrien# define _PTR_T 38959243Sobrien typedef void * ptr_t; 39059243Sobrien#endif /* _PTR_T */ 39159243Sobrien 39259243Sobrien#ifndef _IOCTL_T 39359243Sobrien# define _IOCTL_T 39459243Sobrien typedef void * ioctl_t; /* Third arg of ioctl */ 39559243Sobrien#endif /* _IOCTL_T */ 39659243Sobrien 39759243Sobrien#endif /* _h_sh_types */ 398