factor/vm/callstack.h

23 lines
917 B
C
Raw Normal View History

2007-10-02 17:53:05 -04:00
F_FASTCALL void save_callstack_bottom(F_STACK_FRAME *callstack_bottom);
2007-10-06 22:52:55 -04:00
__attribute__((noinline)) void save_callstack_top(F_STACK_FRAME *callstack_top);
2007-10-02 17:53:05 -04:00
#define FIRST_STACK_FRAME(stack) (F_STACK_FRAME *)((stack) + 1)
typedef void (*CALLSTACK_ITER)(F_STACK_FRAME *frame);
2007-10-05 17:30:10 -04:00
void iterate_callstack(CELL top, CELL bottom, CALLSTACK_ITER iterator);
2007-10-02 17:53:05 -04:00
void iterate_callstack_object(F_CALLSTACK *stack, CALLSTACK_ITER iterator);
2007-10-05 17:30:10 -04:00
F_STACK_FRAME *frame_successor(F_STACK_FRAME *frame);
2007-10-02 17:53:05 -04:00
CELL frame_executing(F_STACK_FRAME *frame);
2007-10-06 22:52:55 -04:00
CELL frame_scan(F_STACK_FRAME *frame);
2007-10-02 17:53:05 -04:00
CELL frame_type(F_STACK_FRAME *frame);
DECLARE_PRIMITIVE(callstack);
DECLARE_PRIMITIVE(set_datastack);
DECLARE_PRIMITIVE(set_retainstack);
DECLARE_PRIMITIVE(set_callstack);
DECLARE_PRIMITIVE(callstack_to_array);
DECLARE_PRIMITIVE(innermost_stack_frame_quot);
DECLARE_PRIMITIVE(innermost_stack_frame_scan);
DECLARE_PRIMITIVE(set_innermost_stack_frame_quot);