forked from zsaleeba/picoc
-
Notifications
You must be signed in to change notification settings - Fork 2
/
platform.h
147 lines (134 loc) · 4.21 KB
/
platform.h
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/* all platform-specific includes and defines go in this file */
#ifndef PLATFORM_H
#define PLATFORM_H
/* configurable options */
/* select your host type (or do it in the Makefile):
* #define UNIX_HOST
* #define FLYINGFOX_HOST
* #define SURVEYOR_HOST
* #define SRV1_UNIX_HOST
* #define UMON_HOST
* #define WIN32 (predefined on MSVC)
*/
#define LARGE_INT_POWER_OF_TEN 1000000000 /* the largest power of ten which fits in an int on this architecture */
#if defined(__hppa__) || defined(__sparc__)
#define ALIGN_TYPE double /* the default data type to use for alignment */
#else
#define ALIGN_TYPE void * /* the default data type to use for alignment */
#endif
#define GLOBAL_TABLE_SIZE 97 /* global variable table */
#define STRING_TABLE_SIZE 97 /* shared string table size */
#define STRING_LITERAL_TABLE_SIZE 97 /* string literal table size */
#define RESERVED_WORD_TABLE_SIZE 97 /* reserved word table size */
#define PARAMETER_MAX 16 /* maximum number of parameters to a function */
#define LINEBUFFER_MAX 256 /* maximum number of characters on a line */
#define LOCAL_TABLE_SIZE 11 /* size of local variable table (can expand) */
#define STRUCT_TABLE_SIZE 11 /* size of struct/union member table (can expand) */
#define INTERACTIVE_PROMPT_START "starting picoc " PICOC_VERSION "\n"
#define INTERACTIVE_PROMPT_STATEMENT "picoc> "
#define INTERACTIVE_PROMPT_LINE " > "
/* host platform includes */
#ifdef UNIX_HOST
# define USE_MALLOC_STACK /* stack is allocated using malloc() */
# define USE_MALLOC_HEAP /* heap is allocated using malloc() */
# include <stdio.h>
# include <stdlib.h>
# include <ctype.h>
# include <string.h>
# include <assert.h>
# include <sys/types.h>
# include <sys/stat.h>
# include <unistd.h>
# include <stdarg.h>
# include <setjmp.h>
# ifndef NO_FP
# include <math.h>
# define PICOC_MATH_LIBRARY
# define USE_READLINE
# undef BIG_ENDIAN
# if defined(__powerpc__) || defined(__hppa__) || defined(__sparc__)
# define BIG_ENDIAN
# endif
# endif
extern jmp_buf ExitBuf;
#else
# ifdef WIN32
# define USE_MALLOC_STACK /* stack is allocated using malloc() */
# define USE_MALLOC_HEAP /* heap is allocated using malloc() */
# include <stdio.h>
# include <stdlib.h>
# include <ctype.h>
# include <string.h>
# include <assert.h>
# include <sys/types.h>
# include <sys/stat.h>
# include <stdarg.h>
# include <setjmp.h>
# include <math.h>
# define PICOC_MATH_LIBRARY
# undef BIG_ENDIAN
extern jmp_buf ExitBuf;
# else
# ifdef FLYINGFOX_HOST
# define HEAP_SIZE (16*1024) /* space for the heap and the stack */
# define NO_HASH_INCLUDE
# include <stdlib.h>
# include <ctype.h>
# include <string.h>
# include <sys/types.h>
# include <stdarg.h>
# include <setjmp.h>
# include <math.h>
# define assert(x)
# define BUILTIN_MINI_STDLIB
# undef BIG_ENDIAN
# else
# ifdef SURVEYOR_HOST
# define HEAP_SIZE C_HEAPSIZE
# define NO_FP
# define NO_CTYPE
# define NO_HASH_INCLUDE
# define NO_MODULUS
# include <cdefBF537.h>
# include "../string.h"
# include "../print.h"
# include "../srv.h"
# include "../setjmp.h"
# include "../stdarg.h"
# include "../colors.h"
# include "../neural.h"
# include "../gps.h"
# include "../i2c.h"
# include "../jpeg.h"
# include "../malloc.h"
# include "../xmodem.h"
# define assert(x)
# undef BIG_ENDIAN
# define NO_CALLOC
# define NO_REALLOC
# define BROKEN_FLOAT_CASTS
# define BUILTIN_MINI_STDLIB
# else
# ifdef UMON_HOST
# define HEAP_SIZE (128*1024) /* space for the heap and the stack */
# define NO_FP
# define BUILTIN_MINI_STDLIB
# include <stdlib.h>
# include <string.h>
# include <ctype.h>
# include <sys/types.h>
# include <stdarg.h>
# include <math.h>
# include "monlib.h"
# define assert(x)
# define malloc mon_malloc
# define calloc(a,b) mon_malloc(a*b)
# define realloc mon_realloc
# define free mon_free
# endif
# endif
# endif
extern int ExitBuf[];
# endif
#endif
#endif /* PLATFORM_H */