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