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