149 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
  /* 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_;
 | 
						|
#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_;
 | 
						|
/// alias table access
 | 
						|
  struct AliasDescS*  FileAliases_;
 | 
						|
  int  NOfFileAliases_;
 | 
						|
  int  SzOfFileAliases_;
 | 
						|
} w_shared;
 |