1/* @(#)port.h.in 8.13 (Berkeley) 6/12/96 */ 2 3/* 4 * Declare the basic types, if they aren't already declared. Named and 5 * some system's db.h files protect them with __BIT_TYPES_DEFINED__. 6 */ 7#ifndef __BIT_TYPES_DEFINED__ 8#define __BIT_TYPES_DEFINED__ 9@u_int8_decl@ 10@int16_decl@ 11@u_int16_decl@ 12@int32_decl@ 13@u_int32_decl@ 14#endif 15 16@u_char_decl@ 17@u_short_decl@ 18@u_int_decl@ 19@u_long_decl@ 20 21/* 22 * XXX 23 * Handle function prototypes. This steps on name space that vi doesn't 24 * control, but all of the other solutions are worse. 25 */ 26#undef __P 27#if defined(__STDC__) || defined(__cplusplus) 28#define __P(protos) protos /* ANSI C prototypes */ 29#else 30#define __P(protos) () /* K&R C preprocessor */ 31#endif 32 33/* 34 * XXX 35 * Some versions of System V changed the number of arguments to gettimeofday 36 * without changing the name. 37 */ 38#ifdef HAVE_BROKEN_GETTIMEOFDAY 39#define gettimeofday(tv, tz) gettimeofday(tv) 40#endif 41 42/* 43 * XXX 44 * If we don't have mmap, we fake it with read and write, but we'll 45 * still need the header information. 46 */ 47#ifndef HAVE_SYS_MMAN_H 48#define MAP_SHARED 1 /* share changes */ 49#define MAP_PRIVATE 2 /* changes are private */ 50#define PROT_READ 0x1 /* pages can be read */ 51#define PROT_WRITE 0x2 /* pages can be written */ 52#define PROT_EXEC 0x4 /* pages can be executed */ 53#endif 54 55/* 56 * XXX 57 * POSIX 1003.1 names for file descriptors. 58 */ 59#ifndef STDERR_FILENO 60#define STDIN_FILENO 0 /* ANSI C #defines */ 61#define STDOUT_FILENO 1 62#define STDERR_FILENO 2 63#endif 64 65/* 66 * XXX 67 * POSIX 1003.1 names for seek settings. 68 */ 69#ifndef SEEK_END 70#define SEEK_SET 0 /* POSIX 1003.1 seek values */ 71#define SEEK_CUR 1 72#define SEEK_END 2 73#endif 74 75/* 76 * Hack _POSIX_VDISABLE to \377 since Ultrix doesn't honor _POSIX_VDISABLE 77 * (treats it as ^@). The symptom is that the ^@ keystroke immediately 78 * drops core. 79 */ 80#ifdef HAVE_BROKEN_VDISABLE 81#undef _POSIX_VDISABLE 82#define _POSIX_VDISABLE ((unsigned char)'\377') 83#endif 84 85/* 86 * XXX 87 * POSIX 1003.1 tty disabling character. 88 */ 89#ifndef _POSIX_VDISABLE 90#define _POSIX_VDISABLE 0 /* Some systems used 0. */ 91#endif 92 93/* 94 * XXX 95 * 4.4BSD extension to only set the software termios bits. 96 */ 97#ifndef TCSASOFT /* 4.4BSD extension. */ 98#define TCSASOFT 0 99#endif 100 101/* 102 * XXX 103 * POSIX 1003.1 maximum path length. 104 */ 105#ifndef MAXPATHLEN 106#ifdef PATH_MAX 107#define MAXPATHLEN PATH_MAX 108#else 109#define MAXPATHLEN 1024 110#endif 111#endif 112 113/* 114 * XXX 115 * MIN, MAX, historically in <sys/param.h> 116 */ 117#ifndef MAX 118#define MAX(_a,_b) ((_a)<(_b)?(_b):(_a)) 119#endif 120#ifndef MIN 121#define MIN(_a,_b) ((_a)<(_b)?(_a):(_b)) 122#endif 123 124/* 125 * XXX 126 * "DB" isn't always portable, and we want the private information. 127 */ 128#define DB L__DB 129#undef pgno_t /* IRIX has its own version. */ 130#define pgno_t L__db_pgno_t 131 132/* 133 * XXX 134 * 4.4BSD extension to provide lock values in the open(2) call. 135 */ 136#ifndef O_EXLOCK 137#define O_EXLOCK 0 138#endif 139 140#ifndef O_SHLOCK 141#define O_SHLOCK 0 142#endif 143 144/* 145 * XXX 146 * POSIX 1003.1 bad file format errno. 147 */ 148#ifndef EFTYPE 149#define EFTYPE EINVAL 150#endif 151 152/* 153 * XXX 154 * POSIX 1003.2 RE length limit. 155 */ 156#ifndef _POSIX2_RE_DUP_MAX 157#define _POSIX2_RE_DUP_MAX 255 158#endif 159 160/* 161 * XXX 162 * 4.4BSD extension to determine if a program dropped core from the exit 163 * status. 164 */ 165#ifndef WCOREDUMP 166#define WCOREDUMP(a) 0 167#endif 168 169/* 170 * XXX 171 * Endian-ness of the machine. 172 */ 173#if !defined(LITTLE_ENDIAN) 174#define LITTLE_ENDIAN 1234 175#endif 176#if !defined(BIG_ENDIAN) 177#define BIG_ENDIAN 4321 178#endif 179#if !defined(BYTE_ORDER) 180#if WORDS_BIGENDIAN == 1 181#define BYTE_ORDER BIG_ENDIAN 182#else 183#define BYTE_ORDER LITTLE_ENDIAN 184#endif 185#endif 186