Implemented a resizable heap abstraction over mmap(). Allows us to
[panda.git] / src / st-universe.h
blobbc8684a1d94e07faa0b055ac739f0c8193f4bdf3
1 /*
2 * st-universe.h
4 * Copyright (C) 2008 Vincent Geddes
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 * THE SOFTWARE.
25 #ifndef __ST_UNIVERSE_H__
26 #define __ST_UNIVERSE_H__
28 #include <st-types.h>
29 #include <st-memory.h>
30 #include <st-processor.h>
32 extern st_oop
33 st_nil,
34 st_true,
35 st_false,
36 st_symbol_table,
37 st_smalltalk,
39 st_undefined_object_class,
40 st_metaclass_class,
41 st_behavior_class,
42 st_smi_class,
43 st_large_integer_class,
44 st_float_class,
45 st_character_class,
46 st_true_class,
47 st_false_class,
48 st_array_class,
49 st_byte_array_class,
50 st_word_array_class,
51 st_float_array_class,
52 st_set_class,
53 st_dictionary_class,
54 st_association_class,
55 st_string_class,
56 st_symbol_class,
57 st_wide_string_class,
58 st_compiled_method_class,
59 st_method_context_class,
60 st_block_context_class,
62 st_selector_doesNotUnderstand,
63 st_selector_mustBeBoolean,
64 st_selector_startupSystem,
65 st_selector_cannotReturn;
67 enum {
68 ST_SPECIAL_PLUS,
69 ST_SPECIAL_MINUS,
70 ST_SPECIAL_LT,
71 ST_SPECIAL_GT,
72 ST_SPECIAL_LE,
73 ST_SPECIAL_GE,
74 ST_SPECIAL_EQ,
75 ST_SPECIAL_NE,
76 ST_SPECIAL_MUL,
77 ST_SPECIAL_DIV,
78 ST_SPECIAL_MOD,
79 ST_SPECIAL_BITSHIFT,
80 ST_SPECIAL_BITAND,
81 ST_SPECIAL_BITOR,
82 ST_SPECIAL_BITXOR,
83 ST_SPECIAL_AT,
84 ST_SPECIAL_ATPUT,
85 ST_SPECIAL_SIZE,
86 ST_SPECIAL_VALUE,
87 ST_SPECIAL_VALUE_ARG,
88 ST_SPECIAL_IDEQ,
89 ST_SPECIAL_CLASS,
90 ST_SPECIAL_NEW,
91 ST_SPECIAL_NEW_ARG,
93 ST_NUM_SPECIALS,
96 extern st_memory *memory;
98 extern st_oop st_specials[ST_NUM_SPECIALS];
100 void st_bootstrap_universe (void);
102 st_oop st_global_get (const char *name);
104 bool st_verbose_mode (void) ST_GNUC_PURE;
106 st_processor *proc;
108 #endif /* __ST_UNIVERSE_H__ */