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/H/generated/hglobals.h
2016-02-29 03:13:23 +00:00

145 lines
3.9 KiB
C

/* This file, hglobals.h, was generated automatically by "yap -L misc/buildlocalglobal"
please do not update, update misc/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_;
#if __ANDROID__
// no need to perform initialization, it is done before we start the Prolog engine.
struct AAssetManager* assetManager_;
char* AssetsWD_;
#endif
/* 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_;
} w_shared;