/* 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 // initialization: tell whether the system has been initialised and by whom. EXTERNAL int GLOBAL_Initialised; EXTERNAL int GLOBAL_InitialisedFromPL; EXTERNAL int GLOBAL_PL_Argc; EXTERNAL char** GLOBAL_PL_Argv; EXTERNAL bool GLOBAL_FAST_BOOT_FLAG; // halt hooks EXTERNAL struct halt_hook* GLOBAL_HaltHooks; EXTERNAL fptr_t GLOBAL_JIT_finalizer; // stack overflow expansion/gc control EXTERNAL int GLOBAL_AllowLocalExpansion; EXTERNAL int GLOBAL_AllowGlobalExpansion; EXTERNAL int GLOBAL_AllowTrailExpansion; EXTERNAL UInt GLOBAL_SizeOfOverflow; // amount of space recovered in all garbage collections EXTERNAL UInt GLOBAL_AGcThreshold; EXTERNAL Agc_hook GLOBAL_AGCHook; #if __ANDROID__ // no need to perform initialization, it is done before we start the Prolog engine. EXTERNAL struct AAssetManager* GLOBAL_assetManager; EXTERNAL char* GLOBAL_AssetsWD; #endif /* multi-thread support */ #if THREADS /* number of threads and processes in system */ EXTERNAL UInt GLOBAL_NOfThreads; /* number of threads created since start */ EXTERNAL UInt GLOBAL_NOfThreadsCreated; /* total run time for dead threads */ EXTERNAL UInt GLOBAL_ThreadsTotalTime; // Threads Array EXTERNAL lockvar GLOBAL_ThreadHandlesLock; #endif #if defined(YAPOR) || defined(THREADS) // protect long critical regions EXTERNAL lockvar GLOBAL_BGL; #endif #if defined(YAPOR) || defined(TABLING) EXTERNAL struct global_optyap_data GLOBAL_optyap_data; #endif /* YAPOR || TABLING */ // whether Yap is responsible for signal handling EXTERNAL int GLOBAL_PrologShouldHandleInterrupts; /* This is the guy who actually started the system, and who has the correct registers */ #if defined(THREADS) EXTERNAL pthread_t GLOBAL_master_thread; EXTERNAL struct thread_mbox* GLOBAL_named_mboxes; EXTERNAL lockvar GLOBAL_mboxq_lock; EXTERNAL UInt GLOBAL_mbox_count; EXTERNAL struct swi_mutex* GLOBAL_WithMutex; #endif /* THREADS */ // streams EXTERNAL struct stream_desc* GLOBAL_Stream; #if defined(THREADS)||defined(YAPOR) EXTERNAL lockvar GLOBAL_StreamDescLock; #endif // access to yap initial arguments EXTERNAL char** GLOBAL_argv; EXTERNAL int GLOBAL_argc; // extensions to Terms #ifdef COROUTINING /* array with the ops for your favourite extensions */ EXTERNAL ext_op GLOBAL_attas[attvars_ext+1]; #endif // agc.c EXTERNAL int GLOBAL_agc_calls; EXTERNAL YAP_ULONG_LONG GLOBAL_agc_collected; /* total time spent in GC */ EXTERNAL Int GLOBAL_tot_agc_time; /* number of heap objects in all garbage collections */ EXTERNAL Int GLOBAL_tot_agc_recovered; //arrays.c #if HAVE_MMAP EXTERNAL struct MMAP_ARRAY_BLOCK* GLOBAL_mmap_arrays; #endif #ifdef DEBUG //computils.c EXTERNAL char GLOBAL_Option[20]; EXTERNAL YP_FILE* GLOBAL_logfile; //init.c //int output_msg =FALSE #endif #if defined(COFF) || defined(A_OUT) // loada_coff.c && load_aout.c EXTERNAL char GLOBAL_Executable[YAP_FILENAME_MAX]; #endif EXTERNAL int GLOBAL_OpaqueHandlersCount; EXTERNAL struct opaque_handler_struct* GLOBAL_OpaqueHandlers; #if __simplescalar__ EXTERNAL char GLOBAL_pwd[YAP_FILENAME_MAX]; #endif //udi.c //struct udi_control_block RtreeCmd void EXTERNAL const char* GLOBAL_RestoreFile; //gprof.c EXTERNAL Int GLOBAL_ProfCalls; EXTERNAL Int GLOBAL_ProfGCs; EXTERNAL Int GLOBAL_ProfHGrows; EXTERNAL Int GLOBAL_ProfSGrows; EXTERNAL Int GLOBAL_ProfMallocs; EXTERNAL Int GLOBAL_ProfIndexing; EXTERNAL Int GLOBAL_ProfOn; EXTERNAL Int GLOBAL_ProfOns; EXTERNAL struct RB_red_blk_node* GLOBAL_ProfilerRoot; EXTERNAL struct RB_red_blk_node* GLOBAL_ProfilerNil; EXTERNAL char* GLOBAL_DIRNAME; #if LOW_PROF EXTERNAL int GLOBAL_ProfilerOn; EXTERNAL FILE* GLOBAL_FProf; EXTERNAL FILE* GLOBAL_FPreds; #endif /* LOW_PROF */ // Mutexes #if THREADS EXTERNAL struct swi_mutex* GLOBAL_FreeMutexes; EXTERNAL struct swi_mutex* GLOBAL_mutex_backbone; EXTERNAL lockvar GLOBAL_MUT_ACCESS; #endif EXTERNAL char* GLOBAL_Home; /* ISO char conversion: I will make no comments */ EXTERNAL char* GLOBAL_CharConversionTable; EXTERNAL char* GLOBAL_CharConversionTable2; /* max priority */ EXTERNAL int GLOBAL_MaxPriority; /// alias table access EXTERNAL struct AliasDescS* GLOBAL_FileAliases; EXTERNAL int GLOBAL_NOfFileAliases; EXTERNAL int GLOBAL_SzOfFileAliases;