Merge from vendor branch OPENSSH:
[dragonfly.git] / contrib / bc / h / const.h
1 /* const.h: Constants for bc. */
2
3 /*  This file is part of GNU bc.
4     Copyright (C) 1991, 1992, 1993, 1994, 1997 Free Software Foundation, Inc.
5
6     This program is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License , or
9     (at your option) any later version.
10
11     This program is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with this program; see the file COPYING.  If not, write to
18     the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
19
20     You may contact the author by:
21        e-mail:  phil@cs.wwu.edu
22       us-mail:  Philip A. Nelson
23                 Computer Science Department, 9062
24                 Western Washington University
25                 Bellingham, WA 98226-9062
26        
27 *************************************************************************/
28
29
30 /* Define INT_MAX and LONG_MAX if not defined.  Assuming 32 bits... */
31
32 #ifndef INT_MAX
33 #define INT_MAX 0x7FFFFFFF
34 #endif
35 #ifndef LONG_MAX
36 #define LONG_MAX 0x7FFFFFFF
37 #endif
38
39
40 /* Define constants in some reasonable size.  The next 4 constants are
41    POSIX constants. */
42
43 #ifdef BC_BASE_MAX
44   /* <limits.h> on a POSIX.2 system may have defined these.  Override. */
45 # undef BC_BASE_MAX
46 # undef BC_SCALE_MAX
47 # undef BC_STRING_MAX
48 # undef BC_DIM_MAX
49 #endif
50
51 #define BC_BASE_MAX   INT_MAX
52 #define BC_SCALE_MAX  INT_MAX
53 #define BC_STRING_MAX INT_MAX
54
55
56 /* Definitions for arrays. */
57
58 #define BC_DIM_MAX    65535       /* this should be NODE_SIZE^NODE_DEPTH-1 */
59
60 #define   NODE_SIZE        16     /* Must be a power of 2. */
61 #define   NODE_MASK       0xf     /* Must be NODE_SIZE-1. */
62 #define   NODE_SHIFT        4     /* Number of 1 bits in NODE_MASK. */
63 #define   NODE_DEPTH        4
64
65
66 /* Other BC limits defined but not part of POSIX. */
67
68 #define BC_LABEL_GROUP 64
69 #define BC_LABEL_LOG    6
70 #define BC_MAX_SEGS    16    /* Code segments. */
71 #define BC_SEG_SIZE  1024
72 #define BC_SEG_LOG     10
73
74 /* Maximum number of variables, arrays and functions and the
75    allocation increment for the dynamic arrays. */
76
77 #define MAX_STORE   32767
78 #define STORE_INCR     32
79
80 /* Other interesting constants. */
81
82 #define FALSE 0
83 #define TRUE  1
84
85 /* for use with lookup (). */
86 #define SIMPLE   0
87 #define ARRAY    1
88 #define FUNCT    2
89 #define FUNCTDEF 3
90
91 #define EXTERN extern
92 #ifdef __STDC__
93 #define CONST const
94 #define VOID  void
95 #else
96 #define CONST
97 #define VOID
98 #endif
99
100 /* Include the version definition. */
101 #include "version.h"