1 /* sh.types.h: Do the necessary typedefs for each system. 2 * Up till now I avoided making this into a separate file 3 * But I just wanted to eliminate the whole mess from sh.h 4 * In reality this should not be here! It is OS and MACHINE 5 * dependent, even between different revisions of OS's... 6 * Ideally there should be a way in c, to find out if something 7 * was typedef'ed, but unfortunately we rely in cpp kludges. 8 * Someday, this file will be removed... 9 * 10 * christos 11 */ 12 /*- 13 * Copyright (c) 1980, 1991 The Regents of the University of California. 14 * All rights reserved. 15 * 16 * Redistribution and use in source and binary forms, with or without 17 * modification, are permitted provided that the following conditions 18 * are met: 19 * 1. Redistributions of source code must retain the above copyright 20 * notice, this list of conditions and the following disclaimer. 21 * 2. Redistributions in binary form must reproduce the above copyright 22 * notice, this list of conditions and the following disclaimer in the 23 * documentation and/or other materials provided with the distribution. 24 * 3. Neither the name of the University nor the names of its contributors 25 * may be used to endorse or promote products derived from this software 26 * without specific prior written permission. 27 * 28 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 29 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 31 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 32 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 37 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 38 * SUCH DAMAGE. 39 */ 40 #ifndef _h_sh_types 41 #define _h_sh_types 42 43 44 /*** 45 *** LynxOS 2.1 46 ***/ 47 #ifdef Lynx 48 # ifndef _PID_T 49 # define _PID_T 50 # endif /* _PID_T */ 51 #endif 52 53 /*** 54 *** MachTen 55 ***/ 56 #ifdef __MACHTEN__ 57 # ifndef _PID_T 58 # define _PID_T 59 # endif 60 #endif 61 62 63 /*** 64 *** Suns running sunos3.x - sunos4.1.x 65 ***/ 66 #if (defined(sun) || defined(__sun__)) && SYSVREL == 0 67 # ifndef _PTR_T 68 # define _PTR_T 69 # ifdef __GNUC__ 70 typedef void * ptr_t; 71 # else 72 typedef char * ptr_t; 73 # endif /* __GNUC__ */ 74 # endif /* _PTR_T */ 75 # ifndef __sys_stdtypes_h 76 # define __sys_stdtypes_h 77 # ifndef __lucid 78 typedef int pid_t; 79 typedef unsigned int speed_t; 80 # endif 81 # endif /* __sys_stdtypes.h */ 82 # ifndef _PID_T 83 # define _PID_T 84 # endif /* _PID_T */ 85 # ifndef _SPEED_T 86 # define _SPEED_T 87 # endif /* _SPEED_T */ 88 #endif /* (sun || __sun__) && SYSVREL == 0 */ 89 90 91 /*** 92 *** Hp's running hpux 7.0 or 8.0 93 ***/ 94 #ifdef __hpux 95 96 # ifndef _PTR_T 97 # define _PTR_T 98 typedef void * ptr_t; 99 # endif /* _PTR_T */ 100 101 # ifndef _PID_T 102 # define _PID_T 103 typedef long pid_t; 104 # endif /* _PID_T */ 105 106 # ifndef _SPEED_T 107 /* I thought POSIX was supposed to protect all typedefs! */ 108 # define _SPEED_T 109 # endif /* _SPEED_T */ 110 111 # if HPUXVERSION < 1100 /* XXX: Not true for 11.0 */ 112 extern uid_t getuid(), geteuid(); 113 extern gid_t getgid(), getegid(); 114 extern pid_t getpid(); 115 extern pid_t fork(); 116 extern void perror(); 117 extern void _exit(); 118 extern void abort(); 119 extern void qsort(); 120 extern void free(); 121 extern unsigned int alarm(); 122 extern unsigned int sleep(); 123 # endif /* HPUXVERSION < 1100 */ 124 # if HPUXVERSION < 800 /* XXX: Not true for 8.0 */ 125 extern char *sbrk(); 126 # endif /* HPUXVERSION < 800 */ 127 #endif /* __hpux */ 128 129 #if (defined(_MINIX) && !defined(_MINIX_VMD)) || defined(__EMX__) 130 typedef char * caddr_t; 131 #endif /* (_MINIX && !_MINIX_VMD) || __EMX__ */ 132 133 /*** 134 *** hp9000s500 running hpux-5.2 135 ***/ 136 #ifdef hp9000s500 137 # ifndef _PTR_T 138 # define _PTR_T 139 typedef char * ptr_t; 140 # endif /* _PTR_T */ 141 #endif /* hp9000s500 */ 142 143 /*** 144 *** Data General AViiON 88000 or Pentium, running dgux 5.4R3 or R4.11 145 ***/ 146 #ifdef DGUX 147 # ifndef _PID_T 148 # define _PID_T 149 # endif /* _PID_T */ 150 #endif /* DGUX */ 151 152 153 /*** 154 *** BSD RENO advertises itself as POSIX, but 155 *** it is missing speed_t 156 ***/ 157 #ifdef RENO 158 # ifndef _SPEED_T 159 # define _SPEED_T 160 typedef unsigned int speed_t; 161 # endif /* _SPEED_T */ 162 #endif /* RENO */ 163 164 165 /*** 166 *** NeXT OS 3.x 167 ***/ 168 #ifdef NeXT 169 # ifndef _SPEED_T 170 # define _SPEED_T 171 typedef unsigned int speed_t; 172 # endif /* _SPEED_T */ 173 #endif /* NeXT */ 174 175 /*** 176 *** Utah's HPBSD 177 *** some posix & 4.4 BSD changes (pid_t is a short) 178 ***/ 179 #ifdef HPBSD 180 # ifndef _PID_T 181 # define _PID_T 182 # endif /* _PID_T */ 183 #endif /* HPBSD */ 184 185 186 /*** 187 *** Pyramid, BSD universe 188 *** In addition to the size_t 189 ***/ 190 #ifdef pyr 191 # ifndef _PID_T 192 # define _PID_T 193 typedef short pid_t; 194 # endif /* _PID_T */ 195 #endif /* pyr */ 196 197 198 /*** 199 *** rs6000, ibm370, ps2, rt: running flavors of aix. 200 ***/ 201 #ifdef IBMAIX 202 # ifndef aiws 203 # ifndef _PID_T 204 # define _PID_T 205 # endif /* _PID_T */ 206 # endif /* !aiws */ 207 # ifdef _IBMR2 208 # ifndef _SPEED_T 209 # define _SPEED_T 210 # endif /* _SPEED_T */ 211 # endif /* _IBMR2 */ 212 #endif /* IBMAIX */ 213 214 215 /*** 216 *** Ultrix... 217 ***/ 218 #if defined(ultrix) || defined(__ultrix) 219 # ifndef _PID_T 220 # define _PID_T 221 # endif /* _PID_T */ 222 # ifndef _PTR_T 223 # define _PTR_T 224 typedef void * ptr_t; 225 # endif /* _PTR_T */ 226 #endif /* ultrix || __ultrix */ 227 228 229 /*** 230 *** Silicon graphics IRIS4D running IRIX3_3 231 ***/ 232 #if defined(IRIS4D) && defined(IRIX3_3) 233 # ifndef _PID_T 234 # define _PID_T 235 # endif /* _PID_T */ 236 #endif /* IRIS4D && IRIX3_3 */ 237 238 239 /*** 240 *** Apple AUX. 241 ***/ 242 #ifdef OREO 243 # ifndef _PID_T 244 # define _PID_T 245 # endif /* _PID_T */ 246 #endif /* OREO */ 247 248 /*** 249 *** Concurrent (Masscomp) running RTU 4.1A & RTU 5.0. 250 **** [RTU 6.0 from mike connor] 251 *** Added, DAS DEC-90. 252 ***/ 253 #ifdef masscomp 254 # ifdef RTU6 255 # ifndef _PID_T 256 # define _PID_T 257 # endif /* _PID_T */ 258 # ifndef _SPEED_T 259 # define _SPEED_T 260 # endif /* _SPEED_T */ 261 #endif /* RTU6 */ 262 #endif /* masscomp */ 263 264 /* 265 * Motorola MPC running R32V2 (sysV88) 266 */ 267 #ifdef sysV88 268 # ifndef _PID_T 269 # define _PID_T 270 # endif /* _PID_T */ 271 #endif /* sysV88 */ 272 273 /* 274 * Amdahl running UTS (Sys V3) 275 */ 276 #ifdef uts 277 # ifndef _PID_T 278 # define _PID_T 279 # endif /* _PID_T */ 280 #endif /* uts */ 281 282 /* 283 * Tektronix XD88/10 running UTekV (Sys V3) 284 */ 285 #ifdef UTekV 286 # ifndef _PID_T 287 # define _PID_T 288 # endif /* _PID_T */ 289 #endif /* UTekV*/ 290 291 /* 292 * BBN Butterfly gp1000 293 */ 294 #ifdef butterfly 295 # ifndef _PID_T 296 # define _PID_T 297 # endif /* _PID_T */ 298 #endif /* butterfly */ 299 300 /* 301 * Alliant FX-2800/FX-80 302 */ 303 #ifdef alliant 304 # ifndef _PID_T 305 # define _PID_T 306 # endif /* _PID_T */ 307 # ifdef mc68000 308 typedef int pid_t; /* FX-80 */ 309 # else 310 typedef short pid_t; /* FX-2800 */ 311 # endif 312 #endif /* alliant */ 313 314 /* 315 * DNIX 316 */ 317 #ifdef DNIX 318 # ifndef _PID_T 319 # define _PID_T 320 # endif /* _PID_T */ 321 #endif /* DNIX */ 322 323 /* 324 * Apollo running Domain/OS SR10.3 or greater 325 */ 326 #ifdef apollo 327 # ifndef _PID_T 328 # define _PID_T 329 typedef int pid_t; /* Older versions might not like that */ 330 # endif /* _PID_T */ 331 #endif /* apollo */ 332 333 /*** 334 *** a pdp/11, running 2BSD 335 ***/ 336 #ifdef pdp11 337 # ifndef _PID_T 338 # define _PID_T 339 # endif /* _PID_T */ 340 #endif /* pdp11 */ 341 342 /*** 343 *** a Harris, running CX/UX 344 ***/ 345 #ifdef _CX_UX 346 # ifndef _PID_T 347 # define _PID_T 348 # endif /* _PID_T */ 349 #endif /* _CX_UX */ 350 351 /*** 352 *** Catch all for non POSIX and/or non ANSI systems. 353 *** Systems up to spec *should* define these automatically 354 *** I am open to suggestions on how to do this correctly! 355 ***/ 356 357 #ifndef POSIX 358 359 # ifndef _PID_T 360 # define _PID_T 361 typedef int pid_t; 362 # endif /* _PID_T */ 363 364 # ifndef _SPEED_T 365 # define _SPEED_T 366 typedef unsigned int speed_t; 367 # endif /* _SPEED_T */ 368 369 # ifndef _PTR_T 370 # define _PTR_T 371 typedef char * ptr_t; 372 #endif /* _PTR_T */ 373 374 # ifndef _IOCTL_T 375 # define _IOCTL_T 376 typedef char * ioctl_t; /* Third arg of ioctl */ 377 # endif /* _IOCTL_T */ 378 379 #endif /* ! POSIX */ 380 381 382 383 /*** 384 *** This is our own junk types. 385 ***/ 386 #ifndef _PTR_T 387 # define _PTR_T 388 typedef void * ptr_t; 389 #endif /* _PTR_T */ 390 391 #ifndef _IOCTL_T 392 # define _IOCTL_T 393 typedef void * ioctl_t; /* Third arg of ioctl */ 394 #endif /* _IOCTL_T */ 395 396 #endif /* _h_sh_types */ 397