137 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
//
 | 
						|
// 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
 | 
						|
 | 
						|
 | 
						|
/* 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 
 | 
						|
YP_FILE*			stdout					=stdout
 | 
						|
YP_FILE*			stderr					=stderr	
 | 
						|
 | 
						|
// 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
 | 
						|
//int  				output_msg 				=FALSE
 | 
						|
#endif
 | 
						|
 | 
						|
//gprof.c
 | 
						|
Int 				ProfCalls				void 
 | 
						|
Int				ProfGCs 				void
 | 
						|
Int				ProfHGrows 				void
 | 
						|
Int				ProfSGrows 				void
 | 
						|
Int				ProfMallocs 				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 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	
 | 
						|
 | 
						|
 | 
						|
 | 
						|
END_GLOBAL_DATA
 | 
						|
 |