summaryrefslogtreecommitdiff
path: root/usr.bin/xlint/lint1/param.h
blob: 8de3345d7e57b0e5481de5c4e480a8a03a9772d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/*	$OpenBSD: param.h,v 1.7 1997/03/25 17:07:40 rahnds Exp $	*/
/*	$NetBSD: param.h,v 1.6 1996/04/01 21:47:57 mark Exp $	*/

/*
 * Copyright (c) 1994, 1995 Jochen Pohl
 * All Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *      This product includes software developed by Jochen Pohl for
 *	The NetBSD Project.
 * 4. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

/*
 * Minimun size of string buffer. If this is not enough, the buffer
 * is enlarged in steps of STRBLEN bytes.
 */
#define	STRBLEN		256

/*
 * This defines the size of memory blocks which are used to allocate
 * memory in larger chunks.
 */
#define	MBLKSIZ		((size_t)0x4000)

/*
 * Sizes of hash tables
 * Should be a prime. Possible primes are
 * 307, 401, 503, 601, 701, 809, 907, 1009, 1103, 1201, 1301, 1409, 1511.
 *
 * HSHSIZ1	symbol table 1st pass
 * HSHSIZ2	symbol table 2nd pass
 * THSHSIZ2	type table 2nd pass
 */
#define	HSHSIZ1		503
#define HSHSIZ2		1009
#define	THSHSIZ2	1009

/*
 * Should be set to 1 if the difference of two pointers is of type long
 * or the value of sizeof is of type unsigned long.
 */
#ifdef __alpha__
#define PTRDIFF_IS_LONG		1
#define SIZEOF_IS_ULONG		1
#elif __i386__
#define PTRDIFF_IS_LONG		0
#define SIZEOF_IS_ULONG		0
#elif __m68k__
#define PTRDIFF_IS_LONG		0
#define SIZEOF_IS_ULONG		0
#elif __mips__
#define PTRDIFF_IS_LONG		0
#define SIZEOF_IS_ULONG		0
#elif __ns32k__
#define PTRDIFF_IS_LONG		0
#define SIZEOF_IS_ULONG		0
#elif __sparc__
#define PTRDIFF_IS_LONG		0
#define SIZEOF_IS_ULONG		0
#elif __vax__
#define PTRDIFF_IS_LONG         0
#define SIZEOF_IS_ULONG         0
#elif __arm32__
#define PTRDIFF_IS_LONG		0
#define SIZEOF_IS_ULONG		0
#elif __powerpc__
#define PTRDIFF_IS_LONG		0
#define SIZEOF_IS_ULONG		0
#elif __mvme88k__
#define PTRDIFF_IS_LONG		0
#define SIZEOF_IS_ULONG		0
#else
#error unknown machine type
#endif

/*
 * Make sure this matches wchar_t.
 */
#define WCHAR	SHORT

#ifndef __GNUC__
#ifndef lint
#ifndef QUAD_MAX	/* necessary for mkdep */
#define QUAD_MAX	LONG_MAX
#define QUAD_MIN	LONG_MIN
#define UQUAD_MAX	ULONG_MAX
#endif
typedef	long	quad_t;
typedef	u_long	u_quad_t;
#endif
#endif


/*
 * long double only in ANSI C.
 */
#ifdef __STDC__
typedef	long double ldbl_t;
#else
typedef	double	ldbl_t;
#endif

/*
 * Some traditional compilers are not able to assign structures.
 */
#ifdef __STDC__
#define STRUCT_ASSIGN(dest, src)	(dest) = (src)
#else
#define STRUCT_ASSIGN(dest, src)	(void)memcpy(&(dest), &(src), \
						     sizeof (dest));
#endif