2009-08-17 16:37:04 -04:00
|
|
|
namespace factor
|
|
|
|
{
|
|
|
|
|
|
|
|
struct factorvm {
|
2009-08-17 16:37:04 -04:00
|
|
|
|
|
|
|
// contexts
|
|
|
|
void reset_datastack();
|
|
|
|
void reset_retainstack();
|
|
|
|
void fix_stacks();
|
|
|
|
void save_stacks();
|
|
|
|
context *alloc_context();
|
|
|
|
void dealloc_context(context *old_context);
|
|
|
|
void nest_stacks();
|
|
|
|
void unnest_stacks();
|
|
|
|
void init_stacks(cell ds_size_, cell rs_size_);
|
|
|
|
bool stack_to_array(cell bottom, cell top);
|
|
|
|
cell array_to_stack(array *array, cell bottom);
|
|
|
|
inline void vmprim_datastack();
|
|
|
|
inline void vmprim_retainstack();
|
|
|
|
inline void vmprim_set_datastack();
|
|
|
|
inline void vmprim_set_retainstack();
|
|
|
|
inline void vmprim_check_datastack();
|
2009-08-17 16:37:04 -04:00
|
|
|
|
|
|
|
// run
|
|
|
|
inline void vmprim_getenv();
|
|
|
|
inline void vmprim_setenv();
|
|
|
|
inline void vmprim_exit();
|
|
|
|
inline void vmprim_micros();
|
|
|
|
inline void vmprim_sleep();
|
|
|
|
inline void vmprim_set_slot();
|
|
|
|
inline void vmprim_load_locals();
|
|
|
|
cell clone_object(cell obj_);
|
|
|
|
inline void vmprim_clone();
|
2009-08-17 16:37:04 -04:00
|
|
|
// next method here:
|
|
|
|
|
2009-08-17 16:37:04 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
extern factorvm *vm;
|
|
|
|
|
|
|
|
}
|