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