This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/misc/GLOBALS

148 lines
3.6 KiB
Plaintext
Raw Normal View History

//
// 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
START_GLOBAL_DATA
// initialization: tell whether the system has been initialised and by whom.
int Initialised =FALSE
int InitialisedFromPL =FALSE
int PL_Argc =0
char** PL_Argv =NULL
// halt hooks
struct halt_hook* HaltHooks =NULL
// stack overflow expansion/gc control
int AllowLocalExpansion =TRUE
int AllowGlobalExpansion =TRUE
int AllowTrailExpansion =TRUE
UInt SizeOfOverflow =0
// amount of space recovered in all garbage collections
UInt AGcThreshold =10000
Agc_hook AGCHook =NULL
2014-06-22 17:35:05 +01:00
#if __ANDROID__
// no need to perform initialization, it is done before we start the Prolog engine.
struct AAssetManager* assetManager =GLOBAL_assetManager
#endif
/* multi-thread support */
#if THREADS
/* number of threads and processes in system */
UInt NOfThreads =1
/* number of threads created since start */
UInt NOfThreadsCreated =1
/* total run time for dead threads */
UInt ThreadsTotalTime =0L
// Threads Array
lockvar ThreadHandlesLock MkLock
#endif
#if defined(YAPOR) || defined(THREADS)
// protect long critical regions
lockvar BGL MkLock
#endif
#if defined(YAPOR) || defined(TABLING)
struct global_optyap_data optyap_data void
#endif /* YAPOR || TABLING */
// whether Yap is responsible for signal handling
int PrologShouldHandleInterrupts void
/* This is the guy who actually started the system, and who has the correct registers */
#if defined(THREADS)
pthread_t master_thread void
#endif /* THREADS */
// streams
2014-03-06 02:09:48 +00:00
struct io_stream* stdout =Soutput
struct io_stream* stderr =Serror
// access to yap initial arguments
char** argv void
int argc void
// extensions to Terms
#ifdef COROUTINING
/* array with the ops for your favourite extensions */
ext_op attas[attvars_ext+1] void
#endif
// agc.c
int agc_calls void
YAP_ULONG_LONG agc_collected void
/* total time spent in GC */
Int tot_agc_time =0
/* number of heap objects in all garbage collections */
Int tot_agc_recovered =0
//arrays.c
#if HAVE_MMAP
struct MMAP_ARRAY_BLOCK* mmap_arrays =NULL
#endif
#ifdef DEBUG
//computils.c
char Option[20] void
YP_FILE* logfile void
//init.c
2011-06-20 14:49:24 +01:00
//int output_msg =FALSE
#endif
#if defined(COFF) || defined(A_OUT)
// loada_coff.c && load_aout.c
char Executable[YAP_FILENAME_MAX] void
#endif
int OpaqueHandlersCount =0
struct opaque_handler_struct* OpaqueHandlers =NULL
#if __simplescalar__
char pwd[YAP_FILENAME_MAX] void
#endif
//udi.c
//struct udi_control_block RtreeCmd void
2013-01-18 14:29:41 +00:00
char* RestoreFile void
//gprof.c
Int ProfCalls void
Int ProfGCs void
Int ProfHGrows void
Int ProfSGrows void
Int ProfMallocs void
Int ProfIndexing void
Int ProfOn void
Int ProfOns void
struct RB_red_blk_node* ProfilerRoot void
struct RB_red_blk_node* ProfilerNil void
char* DIRNAME =NULL
#if LOW_PROF
int ProfilerOn =FALSE
FILE* FProf =NULL
FILE* FPreds =NULL
#endif /* LOW_PROF */
END_GLOBAL_DATA