1 /*************************************************************************
2 *									 *
3 *	 YAP Prolog 	%W% %G% 					 *
4 *	Yap Prolog was developed at NCCUP - Universidade do Porto	 *
5 *									 *
6 * Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997	 *
7 *									 *
8 **************************************************************************
9 *									 *
10 * File:		Yap.proto						 *
11 * mods:									 *
12 * comments:	Function declarations for YAP				 *
13 * version:      $Id: Yapproto.h,v 1.90 2008-08-07 20:51:23 vsc Exp $	 *
14 *************************************************************************/
15 
16 /* prototype file for Yap */
17 
18 #define STD_PROTO(F,A)  F A
19 #define STATIC_PROTO(F,A) static F A
20 
21 
22 /* absmi.c */
23 Int	     STD_PROTO(Yap_absmi,(int));
24 int	     STD_PROTO(Yap_absmiEND,(void));
25 
26 /* adtdefs.c */
27 Term	STD_PROTO(Yap_ArrayToList,(Term *,int));
28 int	STD_PROTO(Yap_GetName,(char *,UInt,Term));
29 Term	STD_PROTO(Yap_GetValue,(Atom));
30 int     STD_PROTO(Yap_HasOp,(Atom));
31 struct operator_entry *STD_PROTO(Yap_GetOpPropForAModuleHavingALock,(AtomEntry *, Term));
32 Atom	STD_PROTO(Yap_LookupAtom,(char *));
33 Atom	STD_PROTO(Yap_LookupMaybeWideAtom,(wchar_t *));
34 Atom	STD_PROTO(Yap_LookupMaybeWideAtomWithLength,(wchar_t *, size_t));
35 Atom	STD_PROTO(Yap_FullLookupAtom,(char *));
36 void	STD_PROTO(Yap_LookupAtomWithAddress,(char *,AtomEntry *));
37 Prop	STD_PROTO(Yap_NewPredPropByFunctor,(struct FunctorEntryStruct *, Term));
38 Prop	STD_PROTO(Yap_NewPredPropByAtom,(struct AtomEntryStruct *, Term));
39 Prop	STD_PROTO(Yap_PredPropByFunctorNonThreadLocal,(struct FunctorEntryStruct *, Term));
40 Prop	STD_PROTO(Yap_PredPropByAtomNonThreadLocal,(struct AtomEntryStruct *, Term));
41 Functor	STD_PROTO(Yap_UnlockedMkFunctor,(AtomEntry *,unsigned int));
42 Functor	STD_PROTO(Yap_MkFunctor,(Atom,unsigned int));
43 void	STD_PROTO(Yap_MkFunctorWithAddress,(Atom,unsigned int,FunctorEntry *));
44 void	STD_PROTO(Yap_PutValue,(Atom,Term));
45 void	STD_PROTO(Yap_ReleaseAtom,(Atom));
46 Term	STD_PROTO(Yap_StringToList,(char *));
47 Term	STD_PROTO(Yap_NStringToList,(char *, size_t));
48 Term	STD_PROTO(Yap_WideStringToList,(wchar_t *));
49 Term	STD_PROTO(Yap_NWideStringToList,(wchar_t *, size_t));
50 Term	STD_PROTO(Yap_StringToDiffList,(char *,Term));
51 Term	STD_PROTO(Yap_NStringToDiffList,(char *,Term, size_t));
52 Term	STD_PROTO(Yap_WideStringToDiffList,(wchar_t *,Term));
53 Term	STD_PROTO(Yap_NWideStringToDiffList,(wchar_t *,Term, size_t));
54 Term	STD_PROTO(Yap_StringToListOfAtoms,(char *));
55 Term	STD_PROTO(Yap_NStringToListOfAtoms,(char *, size_t));
56 Term	STD_PROTO(Yap_WideStringToListOfAtoms,(wchar_t *));
57 Term	STD_PROTO(Yap_NWideStringToListOfAtoms,(wchar_t *, size_t));
58 Term	STD_PROTO(Yap_NWideStringToDiffListOfAtoms,(wchar_t *, Term, size_t));
59 int     STD_PROTO(Yap_AtomIncreaseHold,(Atom));
60 int     STD_PROTO(Yap_AtomDecreaseHold,(Atom));
61 
62 Int	STD_PROTO(Yap_InitSlot,(Term));
63 Int     STD_PROTO(Yap_NewSlots,(int));
64 Term    STD_PROTO(Yap_GetFromSlot,(Int));
65 int     STD_PROTO(Yap_RecoverSlots,(int));
66 Term    STD_PROTO(Yap_GetPtrFromSlot,(Int));
67 Term   *STD_PROTO(Yap_AddressFromSlot,(Int));
68 void    STD_PROTO(Yap_PutInSlot,(Int, Term));
69 
70 
71 #ifdef SFUNC
72 Term	STD_PROTO(MkSFTerm,(Functor,int,Term *,Term));
73 CELL	STD_PROTO(*ArgsOfSFTerm,(Term));
74 #endif
75 
76 Prop	STD_PROTO(Yap_GetPredPropByAtom,(Atom, Term));
77 Prop	STD_PROTO(Yap_GetPredPropByFunc,(Functor, Term));
78 Prop	STD_PROTO(Yap_GetPredPropByAtomInThisModule,(Atom, Term));
79 Prop	STD_PROTO(Yap_GetPredPropByFuncInThisModule,(Functor, Term));
80 Prop	STD_PROTO(Yap_GetPredPropHavingLock,(Atom,unsigned int, Term));
81 Prop	STD_PROTO(Yap_GetExpProp,(Atom,unsigned int));
82 Prop	STD_PROTO(Yap_GetExpPropHavingLock,(AtomEntry *,unsigned int));
83 
84 /* agc.c */
85 void    STD_PROTO(Yap_atom_gc, (void));
86 void    STD_PROTO(Yap_init_agc, (void));
87 
88 /* alloc.c */
89 void	STD_PROTO(Yap_FreeCodeSpace,(char *));
90 char   *STD_PROTO(Yap_AllocAtomSpace,(unsigned long int));
91 char   *STD_PROTO(Yap_AllocCodeSpace,(unsigned long int));
92 char   *STD_PROTO(Yap_ReallocCodeSpace,(char *,unsigned long int));
93 ADDR	STD_PROTO(Yap_AllocFromForeignArea,(Int));
94 int     STD_PROTO(Yap_ExtendWorkSpace,(Int));
95 void	STD_PROTO(Yap_FreeAtomSpace,(char *));
96 int     STD_PROTO(Yap_FreeWorkSpace, (void));
97 void	STD_PROTO(Yap_InitMemory,(UInt,UInt,UInt));
98 void	STD_PROTO(Yap_InitExStacks,(int,int));
99 
100 /* amasm.c */
101 OPCODE	STD_PROTO(Yap_opcode,(op_numbers));
102 
103 /* analyst.c */
104 #ifdef ANALYST
105 void   STD_PROTO(Yap_InitAnalystPreds,(void));
106 #endif /* ANALYST */
107 
108 /* arrays.c */
109 void   STD_PROTO(Yap_InitArrayPreds,(void));
110 
111 /* attvar.c */
112 void   STD_PROTO(Yap_InitAttVarPreds,(void));
113 
114 /* bb.c */
115 void   STD_PROTO(Yap_InitBBPreds,(void));
116 
117 /* bignum.c */
118 Term   STD_PROTO(Yap_MkULLIntTerm, (YAP_ULONG_LONG));
119 Term   STD_PROTO(Yap_RatTermToApplTerm, (Term));
120 void   STD_PROTO(Yap_InitBigNums, (void));
121 
122 /* c_interface.c */
123 Int    STD_PROTO(YAP_Execute,(struct pred_entry *, CPredicate));
124 Int    STD_PROTO(YAP_ExecuteFirst,(struct pred_entry *, CPredicate));
125 Int    STD_PROTO(YAP_ExecuteNext,(struct pred_entry *, CPredicate));
126 Int    STD_PROTO(YAP_ExecuteOnCut,(struct pred_entry *, CPredicate));
127 
128 /* cdmgr.c */
129 Term	STD_PROTO(Yap_all_calls,(void));
130 Atom	STD_PROTO(Yap_ConsultingFile,(void));
131 struct pred_entry *STD_PROTO(Yap_PredForChoicePt,(choiceptr));
132 void	STD_PROTO(Yap_InitCdMgr,(void));
133 #ifdef  EMACS
134 int     STD_PROTO(where_new_clause, (Prop, int));
135 #endif
136 void	STD_PROTO(Yap_init_consult,(int, char *));
137 void	STD_PROTO(Yap_end_consult,(void));
138 void	STD_PROTO(Yap_Abolish,(struct pred_entry *));
139 void	STD_PROTO(Yap_BuildMegaClause,(struct pred_entry *));
140 void	STD_PROTO(Yap_EraseMegaClause,(yamop *,struct pred_entry *));
141 void	STD_PROTO(Yap_ResetConsultStack,(void));
142 
143 
144 /* cmppreds.c */
145 Int	STD_PROTO(Yap_compare_terms,(Term,Term));
146 void	STD_PROTO(Yap_InitCmpPreds,(void));
147 
148 /* compiler.c */
149 yamop  *STD_PROTO(Yap_cclause,(Term, Int, Term, Term));
150 
151 /* computils.c */
152 
153 /* corout.c */
154 void	STD_PROTO(Yap_InitCoroutPreds,(void));
155 #ifdef COROUTINING
156 Term	STD_PROTO(Yap_ListOfWokenGoals,(void));
157 void	STD_PROTO(Yap_WakeUp,(CELL *));
158 #endif
159 
160 /* dbase.c */
161 struct pred_entry  *STD_PROTO(Yap_FindLUIntKey,(Int));
162 int     STD_PROTO(Yap_DBTrailOverflow,(void));
163 CELL	STD_PROTO(Yap_EvalMasks,(Term,CELL *));
164 void	STD_PROTO(Yap_InitBackDB,(void));
165 void	STD_PROTO(Yap_InitDBPreds,(void));
166 
167 /* errors.c */
168 void	STD_PROTO(Yap_exit,(int));
169 yamop  *STD_PROTO(Yap_Error,(yap_error_number,Term,char *msg, ...));
170 
171 /* eval.c */
172 void	STD_PROTO(Yap_InitEval,(void));
173 
174 /* exec.c */
175 Term	STD_PROTO(Yap_ExecuteCallMetaCall,(Term));
176 void	STD_PROTO(Yap_InitExecFs,(void));
177 Int	STD_PROTO(Yap_JumpToEnv,(Term));
178 Term	STD_PROTO(Yap_RunTopGoal,(Term));
179 void	STD_PROTO(Yap_ResetExceptionTerm,(void));
180 Int	STD_PROTO(Yap_execute_goal,(Term, int, Term));
181 int	STD_PROTO(Yap_exec_absmi,(int));
182 void	STD_PROTO(Yap_trust_last,(void));
183 
184 /* gprof.c */
185 void	STD_PROTO(Yap_InitLowProf,(void));
186 #if  LOW_PROF
187 void	STD_PROTO(Yap_inform_profiler_of_clause,(struct yami *,struct yami *,struct pred_entry *,int));
188 #else
189 #define	Yap_inform_profiler_of_clause(A,B,C,D)
190 #endif
191 
192 /* globals.c */
193 Term	STD_PROTO(Yap_NewArena,(UInt,CELL *));
194 CELL   *STD_PROTO(Yap_GetFromArena,(Term *,UInt,UInt));
195 void	STD_PROTO(Yap_InitGlobals,(void));
196 Term	STD_PROTO(Yap_SaveTerm, (Term));
197 Term	STD_PROTO(Yap_SetGlobalVal, (Atom, Term));
198 Int	STD_PROTO(Yap_DeleteGlobal, (Atom));
199 void	STD_PROTO(Yap_AllocateDefaultArena, (Int, Int));
200 int	STD_PROTO(Yap_GrowGlobalArena, (UInt));
201 
202 /* grow.c */
203 Int     STD_PROTO(Yap_total_stack_shift_time,(void));
204 void    STD_PROTO(Yap_InitGrowPreds, (void));
205 UInt    STD_PROTO(Yap_InsertInGlobal, (CELL *, UInt));
206 int     STD_PROTO(Yap_growheap,      (int, UInt, void *));
207 int     STD_PROTO(Yap_growstack,     (long));
208 int     STD_PROTO(Yap_growtrail,     (long, int));
209 int     STD_PROTO(Yap_growglobal,    (CELL **));
210 CELL  **STD_PROTO(Yap_shift_visit,   (CELL **, CELL ***));
211 #ifdef THREADS
212 void   STD_PROTO(Yap_CopyThreadStacks, (int, int, int));
213 #endif
214 
215 /* heapgc.c */
216 Int  STD_PROTO(Yap_total_gc_time,(void));
217 void STD_PROTO(Yap_init_gc,(void));
218 int  STD_PROTO(Yap_is_gc_verbose, (void));
219 int  STD_PROTO(Yap_gc, (Int, CELL *, yamop *));
220 int  STD_PROTO(Yap_gcl, (UInt, Int, CELL *, yamop *));
221 
222 /* init.c */
223 #ifdef DEBUG
224 int	STD_PROTO(Yap_DebugPutc,(int,wchar_t));
225 void	STD_PROTO(Yap_DebugSetIFile,(char *));
226 void	STD_PROTO(Yap_DebugEndline,(void));
227 int	STD_PROTO(Yap_DebugGetc,(void));
228 #endif
229 int	STD_PROTO(Yap_IsOpType,(char *));
230 void	STD_PROTO(Yap_InitCPred,(char *, unsigned long int, CPredicate, UInt));
231 void	STD_PROTO(Yap_InitAsmPred,(char *, unsigned long int, int, CPredicate, UInt));
232 void	STD_PROTO(Yap_InitCmpPred,(char *, unsigned long int, CmpPredicate, UInt));
233 void	STD_PROTO(Yap_InitCPredBack,(char *, unsigned long int, unsigned int, CPredicate,CPredicate,UInt));
234 void	STD_PROTO(Yap_InitCPredBackCut,(char *, unsigned long int, unsigned int, CPredicate,CPredicate,CPredicate,UInt));
235 #ifdef CUT_C
236 void    STD_PROTO(Yap_InitCPredBack_,(char *, unsigned long int, unsigned int, CPredicate,CPredicate,CPredicate,UInt));
237 #endif
238 void	STD_PROTO(Yap_InitWorkspace,(UInt,UInt,UInt,UInt,UInt,int,int,int));
239 
240 #if defined(YAPOR) || defined(THREADS)
241 void	STD_PROTO(Yap_KillStacks,(int));
242 #else
243 void	STD_PROTO(Yap_KillStacks,(void));
244 #endif
245 void	STD_PROTO(Yap_InitYaamRegs,(void));
246 void    STD_PROTO(Yap_ReInitWallTime, (void));
247 int	STD_PROTO(Yap_OpDec,(int,char *,Atom,Term));
248 void    STD_PROTO(Yap_CloseScratchPad,(void));
249 
250 /* inlines.c */
251 void    STD_PROTO(Yap_InitInlines,(void));
252 int      STD_PROTO(Yap_eq,(Term, Term));
253 
254 /* iopreds.c */
255 void	STD_PROTO(Yap_InitPlIO,(void));
256 void	STD_PROTO(Yap_InitBackIO,(void));
257 void	STD_PROTO(Yap_InitIOPreds,(void));
258 #ifdef DEBUG
259 extern void Yap_DebugPlWrite (Term t);
260 extern void Yap_DebugErrorPutc (int n);
261 #endif
262 
263 /* depth_lim.c */
264 void	STD_PROTO(Yap_InitItDeepenPreds,(void));
265 
266 /* load_foreign.c */
267 void	STD_PROTO(Yap_InitLoadForeign,(void));
268 
269 /* mavar.c */
270 void	STD_PROTO(Yap_InitMaVarCPreds,(void));
271 Term    STD_PROTO(Yap_NewTimedVar,(Term));
272 Term    STD_PROTO(Yap_NewEmptyTimedVar,(void));
273 Term	STD_PROTO(Yap_ReadTimedVar,(Term));
274 Term    STD_PROTO(Yap_UpdateTimedVar,(Term, Term));
275 
276 /* modules.c */
277 Term    STD_PROTO(Yap_Module, (Term));
278 Term    STD_PROTO(Yap_Module_Name, (struct pred_entry *));
279 struct pred_entry *STD_PROTO(Yap_ModulePred, (Term));
280 void    STD_PROTO(Yap_NewModulePred, (Term, struct pred_entry *));
281 Term    STD_PROTO(Yap_StripModule, (Term, Term *));
282 void    STD_PROTO(Yap_InitModules, (void));
283 void    STD_PROTO(Yap_InitModulesC, (void));
284 
285 #if HAVE_MPI
286 /* mpi.c */
287 void    STD_PROTO(Yap_InitMPI,(void));
288 #endif
289 
290 #if HAVE_MPE
291 /* mpe.c */
292 void    STD_PROTO(Yap_InitMPE,(void));
293 #endif
294 
295 
296 /* other.c */
297 Term	STD_PROTO(Yap_MkApplTerm,(Functor,unsigned int,Term *));
298 Term	STD_PROTO(Yap_MkNewApplTerm,(Functor,unsigned int));
299 Term	STD_PROTO(Yap_MkNewPairTerm,(void));
300 Term	STD_PROTO(Yap_Globalise,(Term));
301 
302 
303 /* parser.c */
304 Term	STD_PROTO(Yap_Parse,(void));
305 
306 /* readutil.c */
307 void	STD_PROTO(Yap_InitReadUtil,(void));
308 
309 /* save.c */
310 int	STD_PROTO(Yap_SavedInfo,(char *,char *,CELL *,CELL *,CELL *));
311 int 	STD_PROTO(Yap_Restore,(char *, char *));
312 void	STD_PROTO(Yap_InitSavePreds,(void));
313 
314 /* scanner.c */
315 
316 /* sort.c */
317 void    STD_PROTO(Yap_InitSortPreds,(void));
318 
319 /* stdpreds.c */
320 void	STD_PROTO(Yap_InitBackCPreds,(void));
321 void	STD_PROTO(Yap_InitCPreds,(void));
322 void	STD_PROTO(Yap_show_statistics,(void));
323 void	STD_PROTO(Yap_signal,(yap_signals));
324 void	STD_PROTO(Yap_undo_signal,(yap_signals));
325 int	STD_PROTO(Yap_IsOpMaxPrio,(Atom));
326 
327 /* sysbits.c */
328 void	STD_PROTO(Yap_set_fpu_exceptions,(int));
329 UInt	STD_PROTO(Yap_cputime,(void));
330 Int	STD_PROTO(Yap_walltime,(void));
331 int	STD_PROTO(Yap_dir_separator,(int));
332 int	STD_PROTO(Yap_volume_header,(char *));
333 void	STD_PROTO(Yap_InitSysPath,(void));
334 int	STD_PROTO(Yap_signal_index,(const char *));
335 #ifdef MAC
336 void	STD_PROTO(Yap_SetTextFile,(char *));
337 #endif
338 int     STD_PROTO(Yap_getcwd,(const char *, int));
339 void    STD_PROTO(Yap_cputime_interval,(Int *,Int *));
340 void    STD_PROTO(Yap_systime_interval,(Int *,Int *));
341 void    STD_PROTO(Yap_walltime_interval,(Int *,Int *));
342 void	STD_PROTO(Yap_InitSysbits,(void));
343 void	STD_PROTO(Yap_InitSysPreds,(void));
344 void	STD_PROTO(Yap_InitTime,(void));
345 int     STD_PROTO(Yap_TrueFileName, (char *, char *, int));
346 int	STD_PROTO(Yap_ProcessSIGINT,(void));
347 double  STD_PROTO(Yap_random, (void));
348 #ifdef _WIN32
349 char	*STD_PROTO(Yap_RegistryGetString,(char *));
350 void	STD_PROTO(Yap_WinError,(char *));
351 #endif
352 
353 /* threads.c */
354 void   STD_PROTO(Yap_InitThreadPreds,(void));
355 
356 /* tracer.c */
357 #ifdef LOW_LEVEL_TRACER
358 void	STD_PROTO(Yap_InitLowLevelTrace,(void));
359 #endif
360 
361 /* udi.c */
362 void	STD_PROTO(Yap_udi_init,(void));
363 
364 /* unify.c */
365 int          STD_PROTO(Yap_rational_tree_loop, (CELL *, CELL *, CELL **, CELL **));
366 void         STD_PROTO(Yap_InitAbsmi,(void));
367 void         STD_PROTO(Yap_InitUnify,(void));
368 void         STD_PROTO(Yap_TrimTrail,(void));
369 int          STD_PROTO(Yap_IUnify,(register CELL d0,register CELL d1));
370 
371 /* userpreds.c */
372 void	STD_PROTO(Yap_InitUserCPreds,(void));
373 void	STD_PROTO(Yap_InitUserBacks,(void));
374 
375 /* utilpreds.c */
376 Term	STD_PROTO(Yap_CopyTerm,(Term));
377 int	STD_PROTO(Yap_Variant,(Term, Term));
378 int	STD_PROTO(Yap_ExportTerm,(Term, char *, size_t));
379 Term	STD_PROTO(Yap_ImportTerm,(char *));
380 int	STD_PROTO(Yap_IsListTerm,(Term));
381 Term	STD_PROTO(Yap_CopyTermNoShare,(Term));
382 int	STD_PROTO(Yap_SizeGroundTerm,(Term, int));
383 int	STD_PROTO(Yap_IsGroundTerm,(Term));
384 void	STD_PROTO(Yap_InitUtilCPreds,(void));
385 Int     STD_PROTO(Yap_TermHash,(Term, Int, Int, int));
386 /* yap.c */
387 
388 /* MYDDAS */
389 
390 #if defined MYDDAS_MYSQL || defined MYDDAS_ODBC
391 
392 /* myddas_initialization.c */
393 MYDDAS_GLOBAL          STD_PROTO(myddas_init_initialize_myddas,(void));
394 MYDDAS_UTIL_CONNECTION STD_PROTO(myddas_init_initialize_connection,(void *,void *,MYDDAS_UTIL_CONNECTION));
395 MYDDAS_UTIL_PREDICATE  STD_PROTO(myddas_init_initialize_predicate,(char *, int, char *,MYDDAS_UTIL_PREDICATE));
396 
397 #ifdef MYDDAS_STATS
398 /* myddas_statistics.c */
399 MYDDAS_GLOBAL          STD_PROTO(myddas_stats_initialize_global_stats,(MYDDAS_GLOBAL));
400 MYDDAS_STATS_STRUCT    STD_PROTO(myddas_stats_initialize_connection_stats,(void));
401 void                   STD_PROTO(myddas_stats_delete_stats_list,(MYDDAS_STATS_STRUCT));
402 #endif /* MYDDAS_STATS */
403 
404 #ifdef MYDDAS_MYSQL
405 /* myddas_util.c */
406 void                   STD_PROTO(myddas_util_table_write,(MYSQL_RES *));
407 #endif
408 Short                  STD_PROTO(myddas_util_connection_type,(void *));
409 MYDDAS_UTIL_CONNECTION STD_PROTO(myddas_util_add_connection,(void *,void *));
410 MYDDAS_UTIL_CONNECTION STD_PROTO(myddas_util_search_connection,(void *));
411 void                   STD_PROTO(myddas_util_delete_connection,(void *));
412 MYDDAS_UTIL_CONNECTION STD_PROTO(myddas_util_add_predicate,(char * ,Int , char *,void *));
413 MYDDAS_UTIL_PREDICATE  STD_PROTO(myddas_util_search_predicate,(char * ,Int , char *));
414 void                   STD_PROTO(myddas_util_delete_predicate,(MYDDAS_UTIL_PREDICATE));
415 
416 /* Get's the number of queries to save */
417 UInt                   STD_PROTO(myddas_util_get_total_multi_queries_number,(MYDDAS_UTIL_CONNECTION));
418 void                   STD_PROTO(myddas_util_set_total_multi_queries_number,(MYDDAS_UTIL_CONNECTION,UInt));
419 #ifdef MYDDAS_ODBC
420 /* Return enviromment identifier*/
421 SQLHENV                STD_PROTO(myddas_util_get_odbc_enviromment,(SQLHDBC));
422 #endif
423 
424 void *                 STD_PROTO(myddas_util_get_list_pred,(MYDDAS_UTIL_CONNECTION));
425 void *                 STD_PROTO(myddas_util_get_pred_next,(void *));
426 char *                 STD_PROTO(myddas_util_get_pred_module,(void *));
427 char *                 STD_PROTO(myddas_util_get_pred_name,(void *));
428 MyddasInt              STD_PROTO(myddas_util_get_pred_arity,(void *));
429 //DELETE THIS WHEN DB_STATS  IS COMPLETED
430 MyddasInt              STD_PROTO(get_myddas_top,(void));
431 
432 #ifdef DEBUG
433 void check_int(void);
434 #endif
435 
436 #endif /* MYDDAS_MYSQL || MYDDAS_ODBC */
437 
438 /* myddas_mysql.c */
439 #if defined MYDDAS_MYSQL
440 void    STD_PROTO(Yap_InitMYDDAS_MySQLPreds,(void));
441 void    STD_PROTO(Yap_InitBackMYDDAS_MySQLPreds,(void));
442 #endif
443 
444 /* myddas_odbc.c */
445 #if defined MYDDAS_ODBC
446 void    STD_PROTO(Yap_InitMYDDAS_ODBCPreds,(void));
447 void    STD_PROTO(Yap_InitBackMYDDAS_ODBCPreds,(void));
448 #endif
449 
450 /* myddas_shared.c */
451 #if defined MYDDAS_ODBC || defined MYDDAS_MYSQL
452 void    STD_PROTO(Yap_MYDDAS_delete_all_myddas_structs,(void));
453 void    STD_PROTO(Yap_InitMYDDAS_SharedPreds,(void));
454 void    STD_PROTO(Yap_InitBackMYDDAS_SharedPreds,(void));
455 #endif
456 
457 /* myddas_top_level.c */
458 #if defined MYDDAS_TOP_LEVEL && defined MYDDAS_MYSQL //&& defined HAVE_LIBREADLINE
459 void    STD_PROTO(Yap_InitMYDDAS_TopLevelPreds,(void));
460 #endif
461 
462 /* yap2swi.c */
463 void	STD_PROTO(Yap_swi_install,(void));
464 void    STD_PROTO(Yap_InitSWIHash,(void));
465 int     STD_PROTO(Yap_get_stream_handle,(Term, int, int, void *));
466 Term    STD_PROTO(Yap_get_stream_position,(void *));
467 
468 /* ypsocks.c */
469 void	STD_PROTO(Yap_InitSockets,(void));
470 #ifdef USE_SOCKET
471 void	STD_PROTO(Yap_init_socks,(char *, long));
472 #endif
473 
474 /* opt.preds.c */
475 void    STD_PROTO(Yap_init_optyap_preds,(void));
476 
477 
478 static inline
479 yamop *
gc_P(yamop * p,yamop * cp)480 gc_P(yamop *p, yamop *cp)
481 {
482   return (p->opc == Yap_opcode(_execute_cpred) ? cp : p);
483 }
484