284 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			284 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
  /* This file, hlocals.h, was generated automatically by "yap -L misc/buildlocalglobal"
 | 
						|
     please do not update, update H/LOCALS instead */
 | 
						|
 | 
						|
// Stuff that must be considered local to a thread or worker
 | 
						|
typedef struct worker_local {
 | 
						|
// Streams
 | 
						|
  int  c_input_stream_;
 | 
						|
  int  c_output_stream_;
 | 
						|
  int  c_error_stream_;
 | 
						|
  bool  sockets_io_;
 | 
						|
  bool  within_print_message_;
 | 
						|
//
 | 
						|
// Used by the prompts to check if they are after a newline, and then a
 | 
						|
// prompt should be output, or if we are in the middle of a line.
 | 
						|
//
 | 
						|
  bool  newline_;
 | 
						|
  Atom  AtPrompt_;
 | 
						|
  char  Prompt_[MAX_PROMPT+1];
 | 
						|
  encoding_t  encoding_;
 | 
						|
  bool  quasi_quotations_;
 | 
						|
  UInt  default_priority_;
 | 
						|
  bool  eot_before_eof_;
 | 
						|
  UInt  max_depth_;
 | 
						|
  UInt  max_list_;
 | 
						|
  UInt  max_write_args_;
 | 
						|
// Restore info
 | 
						|
  CELL*  OldASP_;
 | 
						|
  CELL*  OldLCL0_;
 | 
						|
  tr_fr_ptr  OldTR_;
 | 
						|
  CELL*  OldGlobalBase_;
 | 
						|
  CELL*  OldH_;
 | 
						|
  CELL*  OldH0_;
 | 
						|
  ADDR  OldTrailBase_;
 | 
						|
  ADDR  OldTrailTop_;
 | 
						|
  ADDR  OldHeapBase_;
 | 
						|
  ADDR  OldHeapTop_;
 | 
						|
  Int  ClDiff_;
 | 
						|
  Int  GDiff_;
 | 
						|
  Int  HDiff_;
 | 
						|
  Int  GDiff0_;
 | 
						|
  CELL*  GSplit_;
 | 
						|
  Int  LDiff_;
 | 
						|
  Int  TrDiff_;
 | 
						|
  Int  XDiff_;
 | 
						|
  Int  DelayDiff_;
 | 
						|
  Int  BaseDiff_;
 | 
						|
// Reduction counters
 | 
						|
  YAP_ULONG_LONG  ReductionsCounter_;
 | 
						|
  YAP_ULONG_LONG  PredEntriesCounter_;
 | 
						|
  YAP_ULONG_LONG  RetriesCounter_;
 | 
						|
  int  ReductionsCounterOn_;
 | 
						|
  int  PredEntriesCounterOn_;
 | 
						|
  int  RetriesCounterOn_;
 | 
						|
// support for consulting files
 | 
						|
/* current consult stack */
 | 
						|
  union CONSULT_OBJ*  ConsultSp_;
 | 
						|
/* current maximum number of cells in consult stack */
 | 
						|
  UInt  ConsultCapacity_;
 | 
						|
/* top of consult stack  */
 | 
						|
  union CONSULT_OBJ*  ConsultBase_;
 | 
						|
/* low-water mark for consult  */
 | 
						|
  union CONSULT_OBJ*  ConsultLow_;
 | 
						|
  Term  VarNames_;
 | 
						|
  Atom  SourceFileName_;
 | 
						|
  UInt  SourceFileLineno_;
 | 
						|
//global variables
 | 
						|
  Term  GlobalArena_;
 | 
						|
  UInt  GlobalArenaOverflows_;
 | 
						|
  Int  ArenaOverflows_;
 | 
						|
  Int  DepthArenas_;
 | 
						|
  int  ArithError_;
 | 
						|
  struct pred_entry*  LastAssertedPred_;
 | 
						|
  struct pred_entry*  TmpPred_;
 | 
						|
  char*  ScannerStack_;
 | 
						|
  struct scanner_extra_alloc*  ScannerExtraBlocks_;
 | 
						|
/// worker control information
 | 
						|
/// pointer to an exception term, from throw
 | 
						|
  struct DB_TERM*  BallTerm_;
 | 
						|
/// stack limit after which the stack is managed by C-code.
 | 
						|
  Int  CBorder_;
 | 
						|
/// max number of signals (uint64_t)
 | 
						|
  UInt  MaxActiveSignals_;
 | 
						|
/// actual life signals
 | 
						|
  uint64_t  Signals_;
 | 
						|
/// indexing help data?
 | 
						|
  UInt  IPredArity_;
 | 
						|
  yamop*  ProfEnd_;
 | 
						|
  int  DoingUndefp_;
 | 
						|
  Int  StartCharCount_;
 | 
						|
  Int  StartLineCount_;
 | 
						|
  Int  StartLinePos_;
 | 
						|
  scratch_block  ScratchPad_;
 | 
						|
#ifdef  COROUTINING
 | 
						|
  Term  WokenGoals_;
 | 
						|
  Term  AttsMutableList_;
 | 
						|
#endif
 | 
						|
// gc_stuff
 | 
						|
  Term  GcGeneration_;
 | 
						|
  Term  GcPhase_;
 | 
						|
  UInt  GcCurrentPhase_;
 | 
						|
  UInt  GcCalls_;
 | 
						|
  Int  TotGcTime_;
 | 
						|
  YAP_ULONG_LONG  TotGcRecovered_;
 | 
						|
  Int  LastGcTime_;
 | 
						|
  Int  LastSSTime_;
 | 
						|
  CELL*  OpenArray_;
 | 
						|
/* in a single gc */
 | 
						|
  Int  total_marked_;
 | 
						|
  Int  total_oldies_;
 | 
						|
  struct choicept*  current_B_;
 | 
						|
  CELL*  prev_HB_;
 | 
						|
  CELL*  HGEN_;
 | 
						|
  CELL**  iptop_;
 | 
						|
#if defined(GC_NO_TAGS)
 | 
						|
  char*  bp_;
 | 
						|
#endif
 | 
						|
  tr_fr_ptr  sTR_;
 | 
						|
  tr_fr_ptr  sTR0_;
 | 
						|
  tr_fr_ptr  new_TR_;
 | 
						|
  struct gc_mark_continuation*  cont_top0_;
 | 
						|
  struct gc_mark_continuation*  cont_top_;
 | 
						|
  int  discard_trail_entries_;
 | 
						|
  gc_ma_hash_entry  gc_ma_hash_table_[GC_MAVARS_HASH_SIZE];
 | 
						|
  gc_ma_hash_entry*  gc_ma_h_top_;
 | 
						|
  gc_ma_hash_entry*  gc_ma_h_list_;
 | 
						|
  UInt  gc_timestamp_;
 | 
						|
  ADDR  db_vec_;
 | 
						|
  ADDR  db_vec0_;
 | 
						|
  struct RB_red_blk_node*  db_root_;
 | 
						|
  struct RB_red_blk_node*  db_nil_;
 | 
						|
  sigjmp_buf  gc_restore_;
 | 
						|
  CELL*  extra_gc_cells_;
 | 
						|
  CELL*  extra_gc_cells_base_;
 | 
						|
  CELL*  extra_gc_cells_top_;
 | 
						|
  UInt  extra_gc_cells_size_;
 | 
						|
  struct array_entry*  DynamicArrays_;
 | 
						|
  struct static_array_entry*  StaticArrays_;
 | 
						|
  struct global_entry*  GlobalVariables_;
 | 
						|
  int  AllowRestart_;
 | 
						|
// Thread Local Area for Fast Storage of Intermediate Compiled Code
 | 
						|
  struct mem_blk*  CMemFirstBlock_;
 | 
						|
  UInt  CMemFirstBlockSz_;
 | 
						|
// Variable used by the compiler to store number of permanent vars in a clause
 | 
						|
  int  nperm_;
 | 
						|
// Thread Local Area for Labels
 | 
						|
  Int*  LabelFirstArray_;
 | 
						|
  UInt  LabelFirstArraySz_;
 | 
						|
// Thread Local Area for SWI-Prolog emulation routines.
 | 
						|
// struct PL_local_data*		PL_local_data_p				=Yap_InitThreadIO(wid)
 | 
						|
#ifdef THREADS
 | 
						|
  struct thandle  ThreadHandle_;
 | 
						|
#endif /* THREADS */
 | 
						|
#if defined(YAPOR) || defined(TABLING)
 | 
						|
  struct local_optyap_data  optyap_data_;
 | 
						|
  UInt  TabMode_;
 | 
						|
#endif /* YAPOR || TABLING */
 | 
						|
  int  InterruptsDisabled_;
 | 
						|
  struct open_query_struct*  execution_;
 | 
						|
#if LOW_LEVEL_TRACER
 | 
						|
  Int  total_choicepoints_;
 | 
						|
#endif
 | 
						|
  int  consult_level_;
 | 
						|
// Variables related to memory allocation
 | 
						|
  ADDR  LocalBase_;
 | 
						|
  ADDR  GlobalBase_;
 | 
						|
  ADDR  TrailBase_;
 | 
						|
  ADDR  TrailTop_;
 | 
						|
  char*  ErrorMessage_;
 | 
						|
  Term  Error_Term_;
 | 
						|
  yap_error_number  Error_TYPE_;
 | 
						|
const char*  Error_File_;
 | 
						|
const char*  Error_Function_;
 | 
						|
  int  Error_Lineno_;
 | 
						|
  size_t  Error_Size_;
 | 
						|
  char  ErrorSay_[MAX_ERROR_MSG_SIZE];
 | 
						|
  jmp_buf  IOBotch_;
 | 
						|
  TokEntry*  tokptr_;
 | 
						|
  TokEntry*  toktide_;
 | 
						|
  VarEntry*  VarTable_;
 | 
						|
  VarEntry*  AnonVarTable_;
 | 
						|
  Term  Comments_;
 | 
						|
  CELL*  CommentsTail_;
 | 
						|
  CELL*  CommentsNextChar_;
 | 
						|
  wchar_t*  CommentsBuff_;
 | 
						|
  size_t  CommentsBuffPos_;
 | 
						|
  size_t  CommentsBuffLim_;
 | 
						|
  sigjmp_buf  RestartEnv_;
 | 
						|
  char  FileNameBuf_[YAP_FILENAME_MAX];
 | 
						|
  char  FileNameBuf2_[YAP_FILENAME_MAX];
 | 
						|
// Prolog State
 | 
						|
  UInt  BreakLevel_;
 | 
						|
  Int  PrologMode_;
 | 
						|
  int  CritLocks_;
 | 
						|
// Prolog execution and state flags
 | 
						|
  union flagTerm*  Flags_;
 | 
						|
  UInt  flagCount_;
 | 
						|
//analyst.c
 | 
						|
/* used to find out how many instructions of each kind are executed */
 | 
						|
#ifdef ANALYST
 | 
						|
  YAP_ULONG_LONG  opcount_[_std_top+1];
 | 
						|
  YAP_ULONG_LONG  2opcount[_std_top+1][_std_top+1]_;
 | 
						|
#endif /* ANALYST */
 | 
						|
//dbase.c
 | 
						|
  struct db_globs*  s_dbg_;
 | 
						|
//eval.c
 | 
						|
  yap_error_number  matherror_;
 | 
						|
  Term  mathtt_;
 | 
						|
  char*  mathstring_;
 | 
						|
  yap_error_number  CurrentError_;
 | 
						|
//grow.c
 | 
						|
  int  heap_overflows_;
 | 
						|
  Int  total_heap_overflow_time_;
 | 
						|
  int  stack_overflows_;
 | 
						|
  Int  total_stack_overflow_time_;
 | 
						|
  int  delay_overflows_;
 | 
						|
  Int  total_delay_overflow_time_;
 | 
						|
  int  trail_overflows_;
 | 
						|
  Int  total_trail_overflow_time_;
 | 
						|
  int  atom_table_overflows_;
 | 
						|
  Int  total_atom_table_overflow_time_;
 | 
						|
//load_dyld
 | 
						|
#ifdef LOAD_DYLD
 | 
						|
  int  dl_errno_;
 | 
						|
#endif
 | 
						|
//tracer.c
 | 
						|
#ifdef LOW_LEVEL_TRACER
 | 
						|
  int  do_trace_primitives_;
 | 
						|
#endif
 | 
						|
//quick loader
 | 
						|
  struct export_atom_hash_entry_struct  *ExportAtomHashChain_;
 | 
						|
  UInt  ExportAtomHashTableSize_;
 | 
						|
  UInt  ExportAtomHashTableNum_;
 | 
						|
  struct export_functor_hash_entry_struct  *ExportFunctorHashChain_;
 | 
						|
  UInt  ExportFunctorHashTableSize_;
 | 
						|
  UInt  ExportFunctorHashTableNum_;
 | 
						|
  struct export_pred_entry_hash_entry_struct  *ExportPredEntryHashChain_;
 | 
						|
  UInt  ExportPredEntryHashTableSize_;
 | 
						|
  UInt  ExportPredEntryHashTableNum_;
 | 
						|
  struct export_dbref_hash_entry_struct  *ExportDBRefHashChain_;
 | 
						|
  UInt  ExportDBRefHashTableSize_;
 | 
						|
  UInt  ExportDBRefHashTableNum_;
 | 
						|
  struct import_atom_hash_entry_struct  **ImportAtomHashChain_;
 | 
						|
  UInt  ImportAtomHashTableSize_;
 | 
						|
  UInt  ImportAtomHashTableNum_;
 | 
						|
  struct import_functor_hash_entry_struct  **ImportFunctorHashChain_;
 | 
						|
  UInt  ImportFunctorHashTableSize_;
 | 
						|
  UInt  ImportFunctorHashTableNum_;
 | 
						|
  struct import_opcode_hash_entry_struct  **ImportOPCODEHashChain_;
 | 
						|
  UInt  ImportOPCODEHashTableSize_;
 | 
						|
  struct import_pred_entry_hash_entry_struct  **ImportPredEntryHashChain_;
 | 
						|
  UInt  ImportPredEntryHashTableSize_;
 | 
						|
  UInt  ImportPredEntryHashTableNum_;
 | 
						|
  struct import_dbref_hash_entry_struct  **ImportDBRefHashChain_;
 | 
						|
  UInt  ImportDBRefHashTableSize_;
 | 
						|
  UInt  ImportDBRefHashTableNum_;
 | 
						|
  yamop  *ImportFAILCODE_;
 | 
						|
#if __ANDROID__
 | 
						|
// current virtual directory.
 | 
						|
  struct AAssetManager*  assetManager_;
 | 
						|
  char*  InAssetDir_;
 | 
						|
#endif
 | 
						|
// exo indexing
 | 
						|
  UInt  ibnds_[256];
 | 
						|
  struct index_t*  exo_it_;
 | 
						|
  CELL*  exo_base_;
 | 
						|
  UInt  exo_arity_;
 | 
						|
  UInt  exo_arg_;
 | 
						|
// atom completion
 | 
						|
  struct scan_atoms*  search_atoms_;
 | 
						|
  struct pred_entry*  SearchPreds_;
 | 
						|
// Slots
 | 
						|
  yhandle_t  CurSlot_;
 | 
						|
  yhandle_t  NSlots_;
 | 
						|
  CELL*  SlotBase_;
 | 
						|
// Mutexes
 | 
						|
  struct swi_mutex*  Mutexes_;
 | 
						|
  Term  SourceModule_;
 | 
						|
  Term  Including_;
 | 
						|
  size_t  MAX_SIZE_;
 | 
						|
/* last call to walltime. */
 | 
						|
  uint64_t  LastWTime_;
 | 
						|
} w_local;
 |