#if defined(YAPOR) || defined(THREADS) UInt n_of_threads; UInt n_of_threads_created; UInt threads_total_time; lockvar bgl; worker_local wl[MAX_AGENTS]; #ifndef WL #define WL wl[worker_id] #endif #else worker_local wl; #ifndef WL #define WL wl #endif #endif #ifdef THREADS lockvar thread_handles_lock; struct thandle thread_handle[MAX_THREADS]; #endif UInt hole_size; struct malloc_state *av_; #if USE_DL_MALLOC struct memory_hole memory_holes[MAX_DLMALLOC_HOLES]; UInt nof_memory_holes; #endif #if USE_DL_MALLOC || (USE_SYSTEM_MALLOC && HAVE_MALLINFO) #ifndef HeapUsed #define HeapUsed Yap_givemallinfo() #endif Int heap_used; #else Int heap_used; #endif Int heap_max; ADDR heap_top; ADDR heap_lim; struct FREEB *free_blocks; #if defined(YAPOR) || defined(THREADS) lockvar free_blocks_lock; lockvar heap_used_lock; lockvar heap_top_lock; int heap_top_owner; #endif #if USE_THREADED_CODE opentry *op_rtable; #endif OPCODE execute_cpred_op_code; OPCODE expand_op_code; OPCODE fail_op; OPCODE index_op; OPCODE lockpred_op; OPCODE orlast_op; OPCODE undef_op; UInt n_of_atoms; UInt atom_hash_table_size; UInt wide_atom_hash_table_size; UInt n_of_wide_atoms; AtomHashEntry invisiblechain; AtomHashEntry *wide_hash_chain; AtomHashEntry *hash_chain; #include "tatoms.h" #ifdef EUROTRA Term term_dollar_u; #endif Term term_prolog; Term term_refound_var; Term user_module; Term idb_module; Term attributes_module; Term charsio_module; Term terms_module; Term system_module; Term readutil_module; Term hacks_module; Term arg_module; Term globals_module; Term swi_module; struct mod_entry *current_modules; yap_exec_mode execution_mode; struct pred_entry **pred_hash; #if defined(YAPOR) || defined(THREADS) rwlock_t pred_hash_rw_lock; #endif UInt preds_in_hash_table; UInt pred_hash_table_size; struct pred_entry *creep_code; struct pred_entry *undef_code; struct pred_entry *spy_code; struct pred_entry *pred_fail; struct pred_entry *pred_true; #ifdef COROUTINING struct pred_entry *wake_up_code; #endif struct pred_entry *pred_goal_expansion; struct pred_entry *pred_meta_call; struct pred_entry *pred_dollar_catch; struct pred_entry *pred_recorded_with_key; struct pred_entry *pred_log_upd_clause; struct pred_entry *pred_log_upd_clause_erase; struct pred_entry *pred_log_upd_clause0; struct pred_entry *pred_static_clause; struct pred_entry *pred_throw; struct pred_entry *pred_handle_throw; struct pred_entry *pred_is; struct pred_entry *pred_safe_call_cleanup; #ifdef YAPOR struct pred_entry *pred_getwork; struct pred_entry *pred_getwork_seq; #endif /* YAPOR */ #ifdef LOW_LEVEL_TRACER int yap_do_low_level_trace; #if defined(YAPOR) || defined(THREADS) lockvar low_level_trace_lock; #endif #endif UInt clause_space; UInt index_space_Tree; UInt index_space_EXT; UInt index_space_SW; UInt lu_clause_space; UInt lu_index_space_Tree; UInt lu_index_space_CP; UInt lu_index_space_EXT; UInt lu_index_space_SW; yamop comma_code[5]; yamop dummycode[1]; yamop failcode[1]; yamop nocode[1]; yamop env_for_trustfail[2]; yamop *trustfailcode; yamop env_for_yescode[2]; yamop *yescode; yamop rtrycode[1]; #ifdef BEAM yamop beam_retry_code[1]; #endif /* BEAM */ #ifdef YAPOR int seq_def; yamop getwork_code[1]; yamop getwork_seq_code[1]; yamop getwork_first_time[1]; #endif /* YAPOR */ #ifdef TABLING yamop table_load_answer_code[1]; yamop table_try_answer_code[1]; yamop table_answer_resolution_code[1]; yamop table_completion_code[1]; #endif /* TABLING */ yamop *debugger_p_before_spy; yamop *retry_recordedp_code; yamop *retry_recorded_k_code; int system_profiling; int system_call_counting; int system_pred_goal_expansion_all; int system_pred_goal_expansion_func; int system_pred_goal_expansion_on; int compiler_optimizer_on; int compiler_compile_mode; int compiler_profiling; int compiler_call_counting; int compiler_compile_arrays; #if defined(YAPOR) || defined(THREADS) lockvar dbterms_list_lock; #endif struct dbterm_list *dbterms_list; yamop *expand_clauses_first; yamop *expand_clauses_last; UInt expand_clauses; #if defined(YAPOR) || defined(THREADS) lockvar expand_clauses_list_lock; lockvar op_list_lock; #endif #ifdef DEBUG UInt new_cps; UInt live_cps; UInt dirty_cps; UInt freed_cps; #endif UInt expand_clauses_sz; struct udi_info *udi_control_blocks; Int static_predicates_marked; Prop *IntKeys; Prop *IntLUKeys; Prop *IntBBKeys; UInt int_keys_size; UInt int_keys_timestamp; UInt int_bb_keys_size; int update_mode; struct DB_STRUCT *db_erased_marker; struct logic_upd_clause *logdb_erased_marker; struct static_clause *dead_static_clauses; struct static_mega_clause *dead_mega_clauses; struct static_index *dead_static_indices; struct logic_upd_clause *db_erased_list; struct logic_upd_index *db_erased_ilist; #if defined(YAPOR) || defined(THREADS) lockvar dead_static_clauses_lock; lockvar dead_mega_clauses_lock; lockvar dead_static_indices_lock; #endif #ifdef COROUTINING int num_of_atts; UInt atts_size; #endif int allow_local_expansion; int allow_global_expansion; int allow_trail_expansion; UInt size_of_overflow; struct hold_entry *global_hold_entry; UInt agc_last_call; UInt agc_threshold; Agc_hook agc_hook; Int yap_flags_field[NUMBER_OF_YAP_FLAGS]; struct operator_entry *op_list; struct stream_desc *yap_streams; UInt n_of_file_aliases; UInt sz_of_file_aliases; struct AliasDescS *file_aliases; Atom atprompt; char prompt[MAX_PROMPT]; #if HAVE_LIBREADLINE char *readline_buf; char *readline_pos; #endif char *char_conversion_table; char *char_conversion_table2; UInt maxdepth; UInt axlist; UInt maxwriteargs; int parser_error_style; char *yap_lib_dir; void *last_wtime; int debugger_output_msg; #if LOW_PROF int profiler_on; int offline_profiler; FILE *f_prof; FILE *f_preds; UInt prof_preds; #endif /* LOW_PROF */ void *foreign_code_loaded; ADDR foreign_code_base; ADDR foreign_code_top; ADDR foreign_code_max;