/* This file, hglobals.h, was generated automatically by "yap -L misc/buildlocalglobal" please do not update, update H/GLOBALS instead */ // // File defining fields in the Yap_GLOBAL global structure // // these fields used to spread all over the place, because they must be used in 3 ways: // - they must be defined somewhere // - they have an #ifdef to get a shorter name // - they must be initialised somewhere // - they may be of interest to restore // // The defs include 3+ components: // Type // name in structured / global name // init code (optional) // restore code (optional) // // Stuff that must be shared by all threads or workers typedef struct global_data { // initialization: tell whether the system has been initialised and by whom. int Initialised_; int InitialisedFromPL_; int PL_Argc_; char** PL_Argv_; bool FAST_BOOT_FLAG_; // halt hooks struct halt_hook* HaltHooks_; fptr_t JIT_finalizer_; // stack overflow expansion/gc control int AllowLocalExpansion_; int AllowGlobalExpansion_; int AllowTrailExpansion_; UInt SizeOfOverflow_; // amount of space recovered in all garbage collections UInt AGcThreshold_; Agc_hook AGCHook_; /* multi-thread support */ #if THREADS /* number of threads and processes in system */ UInt NOfThreads_; /* number of threads created since start */ UInt NOfThreadsCreated_; /* total run time for dead threads */ UInt ThreadsTotalTime_; // Threads Array lockvar ThreadHandlesLock_; #endif #if defined(YAPOR) || defined(THREADS) // protect long critical regions lockvar BGL_; #endif #if defined(YAPOR) || defined(TABLING) struct global_optyap_data optyap_data_; #endif /* YAPOR || TABLING */ // whether Yap is responsible for signal handling int PrologShouldHandleInterrupts_; /* This is the guy who actually started the system, and who has the correct registers */ #if defined(THREADS) pthread_t master_thread_; struct thread_mbox* named_mboxes_; lockvar mboxq_lock_; UInt mbox_count_; struct swi_mutex* WithMutex_; #endif /* THREADS */ // streams struct stream_desc* Stream_; #if defined(THREADS)||defined(YAPOR) lockvar StreamDescLock_; #endif // access to yap initial arguments char** argv_; int argc_; // extensions to Terms #ifdef COROUTINING /* array with the ops for your favourite extensions */ ext_op attas_[attvars_ext+1]; #endif // agc.c int agc_calls_; YAP_ULONG_LONG agc_collected_; /* total time spent in GC */ Int tot_agc_time_; /* number of heap objects in all garbage collections */ Int tot_agc_recovered_; //arrays.c #if HAVE_MMAP struct MMAP_ARRAY_BLOCK* mmap_arrays_; #endif #ifdef DEBUG //computils.c char Option_[20]; YP_FILE* logfile_; //init.c //int output_msg =FALSE #endif #if defined(COFF) || defined(A_OUT) // loada_coff.c && load_aout.c char Executable_[YAP_FILENAME_MAX]; #endif int OpaqueHandlersCount_; struct opaque_handler_struct* OpaqueHandlers_; #if __simplescalar__ char pwd_[YAP_FILENAME_MAX]; #endif //udi.c //struct udi_control_block RtreeCmd void const char* RestoreFile_; //gprof.c Int ProfCalls_; Int ProfGCs_; Int ProfHGrows_; Int ProfSGrows_; Int ProfMallocs_; Int ProfIndexing_; Int ProfOn_; Int ProfOns_; struct RB_red_blk_node* ProfilerRoot_; struct RB_red_blk_node* ProfilerNil_; char* DIRNAME_; #if LOW_PROF int ProfilerOn_; FILE* FProf_; FILE* FPreds_; #endif /* LOW_PROF */ // Mutexes #if THREADS struct swi_mutex* FreeMutexes_; struct swi_mutex* mutex_backbone_; lockvar MUT_ACCESS_; #endif char* Home_; /* ISO char conversion: I will make no comments */ char* CharConversionTable_; char* CharConversionTable2_; /* max priority */ int MaxPriority_; /// alias table access struct AliasDescS* FileAliases_; int NOfFileAliases_; int SzOfFileAliases_; struct vfs* VFS_; } w_shared;