64 volatile bitmap members;
74 Int pending_prune_cp_offset;
78 volatile int pending_prune_ltt;
81#ifdef TABLING_INNER_CUTS
82 struct table_subgoal_solution_frame *table_solutions;
86 volatile int number_owners;
88 struct suspension_frame *suspensions;
89 struct or_frame *nearest_suspension_node;
94#define OrFr_lock(X) ((X)->lock)
95#define OrFr_alternative(X) ((X)->alternative)
96#define OrFr_members(X) ((X)->members)
98#define GetOrFr_node(X) offset_to_cptr((X)->node_offset)
99#define SetOrFr_node(X,V) ((X)->node_offset = cptr_to_offset(V))
101#define OrFr_node(X) ((X)->node)
102#define GetOrFr_node(X) ((X)->node)
103#define SetOrFr_node(X,V) ((X)->node = V)
105#define OrFr_nearest_livenode(X) ((X)->nearest_livenode)
106#define OrFr_depth(X) ((X)->depth)
108#define Get_OrFr_pend_prune_cp(X) offset_to_cptr_with_null((X)->pending_prune_cp_offset)
109#define Set_OrFr_pend_prune_cp(X,V) ((X)->pending_prune_cp_offset = cptr_to_offset_with_null(V))
111#define OrFr_pend_prune_cp(X) ((X)->pending_prune_cp)
112#define Get_OrFr_pend_prune_cp(X) ((X)->pending_prune_cp)
113#define Set_OrFr_pend_prune_cp(X,V) ((X)->pending_prune_cp = (V))
115#define OrFr_pend_prune_ltt(X) ((X)->pending_prune_ltt)
116#define OrFr_nearest_leftnode(X) ((X)->nearest_leftnode)
117#define OrFr_qg_solutions(X) ((X)->query_solutions)
118#define OrFr_tg_solutions(X) ((X)->table_solutions)
119#define OrFr_owners(X) ((X)->number_owners)
121#define OrFr_next_on_stack(X) ((X)->next_on_stack)
123#define OrFr_next_on_stack(X) ((X)->next)
125#define OrFr_suspensions(X) ((X)->suspensions)
126#define OrFr_nearest_suspnode(X) ((X)->nearest_suspension_node)
127#define OrFr_next(X) ((X)->next)
142#define SolFr_ltt(X) ((X)->ltt)
143#define SolFr_first(X) ((X)->first)
144#define SolFr_last(X) ((X)->last)
145#define SolFr_next(X) ((X)->next)
158#define AnsFr_answer(X) ((X)->answer)
159#define AnsFr_next(X) ((X)->next)
163#ifdef TABLING_INNER_CUTS
168typedef struct table_subgoal_solution_frame{
171 struct table_subgoal_answer_frame *first_answer_frame;
172 struct table_subgoal_answer_frame *last_answer_frame;
173 struct table_subgoal_solution_frame *ltt_next;
174 struct table_subgoal_solution_frame *next;
177#define TgSolFr_gen_cp(X) ((X)->generator_choice_point)
178#define TgSolFr_ltt(X) ((X)->ltt)
179#define TgSolFr_first(X) ((X)->first_answer_frame)
180#define TgSolFr_last(X) ((X)->last_answer_frame)
181#define TgSolFr_ltt_next(X) ((X)->ltt_next)
182#define TgSolFr_next(X) ((X)->next)
190typedef struct table_subgoal_answer_frame{
191 volatile int next_free_slot;
193 struct table_subgoal_answer_frame *next;
196#define TgAnsFr_free_slot(X) ((X)->next_free_slot)
197#define TgAnsFr_answer(X,N) ((X)->answer[N])
198#define TgAnsFr_next(X) ((X)->next)