| 
									
										
										
										
											2005-05-31 08:24:24 +00:00
										 |  |  | /**********************************************************************
 | 
					
						
							|  |  |  |                                                                 | 
					
						
							|  |  |  |                        The OPTYap Prolog system                 | 
					
						
							|  |  |  |   OPTYap extends the Yap Prolog system to support or-parallel tabling | 
					
						
							|  |  |  |                                                                 | 
					
						
							|  |  |  |   Copyright:   R. Rocha and NCC - University of Porto, Portugal | 
					
						
							|  |  |  |   File:        opt.proto.h | 
					
						
							| 
									
										
										
										
											2005-11-04 01:17:17 +00:00
										 |  |  |   version:     $Id: opt.proto.h,v 1.12 2005-11-04 01:17:17 vsc Exp $    | 
					
						
							| 
									
										
										
										
											2005-05-31 08:24:24 +00:00
										 |  |  |                                                                       | 
					
						
							|  |  |  | **********************************************************************/ | 
					
						
							| 
									
										
										
										
											2001-04-09 19:54:03 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* -------------- **
 | 
					
						
							|  |  |  | **  opt.memory.c  ** | 
					
						
							|  |  |  | ** -------------- */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-11-05 16:12:25 +00:00
										 |  |  | #ifdef YAPOR
 | 
					
						
							| 
									
										
										
										
											2001-04-09 19:54:03 +00:00
										 |  |  | #ifdef SHM_MEMORY_MAPPING_SCHEME
 | 
					
						
							|  |  |  | void shm_map_memory(int id, int size, void *shmaddr); | 
					
						
							|  |  |  | #else /* MMAP_MEMORY_MAPPING_SCHEME */
 | 
					
						
							|  |  |  | void open_mapfile(long); | 
					
						
							|  |  |  | void close_mapfile(void); | 
					
						
							| 
									
										
										
										
											2003-11-05 16:12:25 +00:00
										 |  |  | #endif /* MEMORY_MAPPING_SCHEME */
 | 
					
						
							| 
									
										
										
										
											2001-04-09 19:54:03 +00:00
										 |  |  | void map_memory(long HeapArea, long GlobalLocalArea, long TrailAuxArea, int n_workers); | 
					
						
							|  |  |  | void unmap_memory(void); | 
					
						
							|  |  |  | void remap_memory(void); | 
					
						
							|  |  |  | #endif /* YAPOR */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* ------------ **
 | 
					
						
							|  |  |  | **  opt.misc.c  ** | 
					
						
							|  |  |  | ** ------------ */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void itos(int i, char *s); | 
					
						
							|  |  |  | void information_message(const char *mesg,...); | 
					
						
							|  |  |  | #if defined(YAPOR_ERRORS) || defined(TABLING_ERRORS)
 | 
					
						
							|  |  |  | void error_message(const char *mesg, ...); | 
					
						
							|  |  |  | #endif /* YAPOR_ERRORS || TABLING_ERRORS */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* ------------ **
 | 
					
						
							|  |  |  | **  opt.init.c  ** | 
					
						
							|  |  |  | ** ------------ */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-11-04 01:17:17 +00:00
										 |  |  | void Yap_init_global(int max_table_size, int n_workers, int sch_loop, int delay_load); | 
					
						
							| 
									
										
										
										
											2001-04-09 19:54:03 +00:00
										 |  |  | void init_local(void); | 
					
						
							|  |  |  | void make_root_frames(void); | 
					
						
							|  |  |  | #ifdef YAPOR
 | 
					
						
							|  |  |  | void init_workers(void); | 
					
						
							|  |  |  | #endif /* YAPOR */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* ------------- **
 | 
					
						
							|  |  |  | **  opt.preds.c  ** | 
					
						
							|  |  |  | ** ------------- */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef YAPOR
 | 
					
						
							|  |  |  | void finish_yapor(void); | 
					
						
							|  |  |  | #endif /* YAPOR */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* ------------- **
 | 
					
						
							|  |  |  | **  tab.tries.c  ** | 
					
						
							|  |  |  | ** ------------- */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef TABLING
 | 
					
						
							| 
									
										
										
										
											2005-08-01 15:40:39 +00:00
										 |  |  | sg_fr_ptr subgoal_search(yamop *preg, CELL **Yaddr); | 
					
						
							| 
									
										
										
										
											2001-04-09 19:54:03 +00:00
										 |  |  | ans_node_ptr answer_search(sg_fr_ptr sg_fr, CELL *subs_ptr); | 
					
						
							| 
									
										
										
										
											2009-09-27 02:31:31 +01:00
										 |  |  | void load_answer(ans_node_ptr ans_node, CELL *subs_ptr); | 
					
						
							|  |  |  | #ifdef GLOBAL_TRIE
 | 
					
						
							|  |  |  | CELL *load_substitution_variable(gt_node_ptr current_node, CELL *aux_stack_ptr); | 
					
						
							|  |  |  | #endif /* GLOBAL_TRIE */
 | 
					
						
							| 
									
										
										
										
											2001-04-09 19:54:03 +00:00
										 |  |  | void private_completion(sg_fr_ptr sg_fr); | 
					
						
							| 
									
										
										
										
											2009-09-27 02:31:31 +01:00
										 |  |  | #ifdef GLOBAL_TRIE
 | 
					
						
							|  |  |  | void free_subgoal_trie_branch(sg_node_ptr node, int nodes_left, int position); | 
					
						
							|  |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2009-08-05 05:48:00 +01:00
										 |  |  | void free_subgoal_trie_branch(sg_node_ptr node, int nodes_left, int nodes_extra, int position); | 
					
						
							| 
									
										
										
										
											2009-09-27 02:31:31 +01:00
										 |  |  | #endif /* GLOBAL_TRIE */
 | 
					
						
							| 
									
										
										
										
											2009-08-05 05:48:00 +01:00
										 |  |  | void free_answer_trie_branch(ans_node_ptr node, int position); | 
					
						
							| 
									
										
										
										
											2001-04-09 19:54:03 +00:00
										 |  |  | void update_answer_trie(sg_fr_ptr sg_fr); | 
					
						
							| 
									
										
										
										
											2009-09-27 02:31:31 +01:00
										 |  |  | void show_table(tab_ent_ptr tab_ent, int show_mode); | 
					
						
							|  |  |  | #ifdef GLOBAL_TRIE
 | 
					
						
							|  |  |  | void show_global_trie(void); | 
					
						
							|  |  |  | #endif /* GLOBAL_TRIE */
 | 
					
						
							| 
									
										
										
										
											2001-04-09 19:54:03 +00:00
										 |  |  | #endif /* TABLING */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* --------------- **
 | 
					
						
							|  |  |  | **  tab.suspend.c  ** | 
					
						
							|  |  |  | ** --------------- */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(TABLING) && defined(YAPOR)
 | 
					
						
							|  |  |  | void public_completion(void); | 
					
						
							|  |  |  | void complete_suspension_frames(or_fr_ptr or_fr); | 
					
						
							|  |  |  | void suspend_branch(void); | 
					
						
							|  |  |  | void resume_suspension_frame(susp_fr_ptr resume_fr, or_fr_ptr top_or_fr); | 
					
						
							|  |  |  | #endif /* TABLING && YAPOR */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* ------------- **
 | 
					
						
							|  |  |  | **  or.engine.c  ** | 
					
						
							|  |  |  | ** ------------- */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef ENV_COPY
 | 
					
						
							|  |  |  | void make_root_choice_point(void); | 
					
						
							|  |  |  | void free_root_choice_point(void); | 
					
						
							|  |  |  | int q_share_work(int p); | 
					
						
							|  |  |  | void p_share_work(void); | 
					
						
							|  |  |  | #endif /* ENV_COPY */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* ---------------- **
 | 
					
						
							|  |  |  | **  or.cowengine.c  ** | 
					
						
							|  |  |  | ** ---------------- */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef ACOW
 | 
					
						
							|  |  |  | void make_root_choice_point(void); | 
					
						
							|  |  |  | void free_root_choice_point(void); | 
					
						
							|  |  |  | int q_share_work(int p); | 
					
						
							|  |  |  | int p_share_work(void); | 
					
						
							|  |  |  | #endif /* ACOW */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* ---------------- **
 | 
					
						
							|  |  |  | **  or.sbaengine.c  ** | 
					
						
							|  |  |  | ** ---------------- */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef SBA
 | 
					
						
							|  |  |  | void make_root_choice_point(void); | 
					
						
							|  |  |  | void free_root_choice_point(void); | 
					
						
							|  |  |  | int q_share_work(int p); | 
					
						
							|  |  |  | void p_share_work(void); | 
					
						
							|  |  |  | #endif /* SBA */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* ---------------- **
 | 
					
						
							|  |  |  | **  or.scheduler.c  ** | 
					
						
							|  |  |  | ** ---------------- */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef YAPOR
 | 
					
						
							|  |  |  | int get_work(void); | 
					
						
							|  |  |  | #endif /* YAPOR */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* ---------- **
 | 
					
						
							|  |  |  | **  or.cut.c  ** | 
					
						
							|  |  |  | ** ---------- */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef YAPOR
 | 
					
						
							|  |  |  | void prune_shared_branch(choiceptr prune_cp); | 
					
						
							|  |  |  | #endif /* YAPOR */
 |