37#if defined(_EXPORT_KERNEL)
67#include <noreturnstd.h>
88#define TermZERO ((Term)0)
91typedef void *YAP_PredEntryPtr;
93typedef size_t YAP_Arity;
95typedef YAP_Term YAP_Module;
97typedef YAP_Int YAP_handle_t;
99typedef void *YAP_PredEntryPtr;
101typedef YAP_Bool (*YAP_UserCPred)(void);
103typedef int (*YAP_agc_hook)(
void *_Atom);
107#include "../os/encoding.h"
109typedef encoding_t YAP_encoding_t;
112#include <android/asset_manager.h>
113#include <android/native_activity.h>
120 int (*cancel)(
int thread);
121 YAP_Term egoal, alias;
132 YAP_SOURCE_PL = 0x0030,
135 YAP_FOUND_BOOT_ERROR = 0x0100,
140#define YAP_ANY_FILE (0x00ff)
144 YAP_TAG_UNBOUND = 0x2,
149 YAP_TAG_LONG_INT = 0x40,
150 YAP_TAG_BIG_INT = 0x80,
151 YAP_TAG_RATIONAL = 0x100,
152 YAP_TAG_FLOAT = 0x200,
153 YAP_TAG_OPAQUE = 0x400,
154 YAP_TAG_APPL = 0x800,
155 YAP_TAG_DBREF = 0x1000,
156 YAP_TAG_STRING = 0x2000,
157 YAP_TAG_ARRAY = 0x4000
159#define YAP_BOOT_FROM_SAVED_CODE 1
160#define YAP_BOOT_FROM_SAVED_STACKS 2
161#define YAP_BOOT_ERROR -1
163#define YAP_WRITE_QUOTED 1
164#define YAP_WRITE_IGNORE_OPS 2
165#define YAP_WRITE_HANDLE_VARS 4
166#define YAP_WRITE_USE_PORTRAY 8
167#define YAP_WRITE_HANDLE_CYCLES 0x20
168#define YAP_WRITE_BACKQUOTE_STRING 0x80
169#define YAP_WRITE_ATTVAR_NONE 0x100
170#define YAP_WRITE_ATTVAR_DOTS 0x200
171#define YAP_WRITE_ATTVAR_PORTRAY 0x400
172#define YAP_WRITE_BLOB_PORTRAY 0x800
174#define YAP_CONSULT_MODE 0
175#define YAP_RECONSULT_MODE 1
176#define YAP_BOOT_MODE 2
178X_API YAP_file_type_t Yap_InitDefaults(
void *init_args,
char saved_state[],
179 int Argc,
char *Argv[]);
187 unsigned long b_entry;
188 unsigned long b_exit;
192 YAP_handle_t CurSlot;
193 YAP_handle_t EndSlot;
206 struct yami *q_p, *q_cp;
213typedef void (*YAP_halt_hook)(
int exit_code,
void *closure);
218typedef YAP_Int YAP_opaque_tag_t;
220typedef YAP_Bool (*YAP_Opaque_CallOnFail)(YAP_Term);
221typedef YAP_Bool (*YAP_Opaque_CallOnCut)(YAP_Term);
222typedef YAP_Bool (*YAP_Opaque_CallOnWrite)(FILE *, YAP_opaque_tag_t,
void *,
224typedef YAP_Int (*YAP_Opaque_CallOnGCMark)(YAP_opaque_tag_t,
void *, YAP_Term *,
226typedef YAP_Bool (*YAP_Opaque_CallOnGCRelocate)(YAP_opaque_tag_t,
void *,
227 YAP_Term *, YAP_Int);
230 YAP_Opaque_CallOnCut cut_handler;
232 YAP_Opaque_CallOnFail
234 YAP_Opaque_CallOnWrite write_handler;
235 YAP_Opaque_CallOnGCMark
237 YAP_Opaque_CallOnGCRelocate
241extern YAP_Opaque_CallOnWrite Yap_blob_write_handler_from_slot(YAP_Int slot);
242extern YAP_Opaque_CallOnGCMark Yap_blob_gc_mark_handler(YAP_Term t);
243extern YAP_Opaque_CallOnGCRelocate Yap_blob_gc_relocate_handler(YAP_Term t);
244extern YAP_Int Yap_blob_tag_from_slot(YAP_Int slot);
245extern void *Yap_blob_info_from_slot(YAP_Int slot);
259 InterruptMode = 0x10,
261 ConsoleGetcMode = 0x40,
262 ExtendStackMode = 0x80,
263 GrowHeapMode = 0x100,
264 GrowStackMode = 0x200,
266 ErrorHandlingMode = 0x800,
269 UserCCallMode = 0x4000,
271 SystemMode = 0x10000,
272 AsyncIntMode = 0x20000,
275 TopGoalMode = 0x40000
280 YAPC_MIXED_MODE_USER,
288typedef enum stream_f {
289 Free_Stream_f = 0x000001,
290 Input_Stream_f = 0x000002,
291 Output_Stream_f = 0x000004,
292 Append_Stream_f = 0x000008,
293 Eof_Stream_f = 0x000010,
294 Null_Stream_f = 0x000020,
295 Tty_Stream_f = 0x000040,
296 Socket_Stream_f = 0x000080,
297 Binary_Stream_f = 0x000100,
302 Past_Eof_Stream_f = 0x000800,
303 Push_Eof_Stream_f = 0x001000,
306 Promptable_Stream_f = 0x004000,
307 Client_Socket_Stream_f = 0x008000,
308 Server_Socket_Stream_f = 0x010000,
309 InMemory_Stream_f = 0x020000,
310 Pipe_Stream_f = 0x040000,
311 Popen_Stream_f = 0x080000,
312 User_Stream_f = 0x100000,
313 HAS_BOM_f = 0x200000,
316 RepError_Xml_f = 0x800000,
317 DoNotCloseOnAbort_Stream_f =
319 Readline_Stream_f = 0x2000000,
320 FreeOnClose_Stream_f =
322 CloseOnException_Stream_f =
331typedef uint64_t stream_flags_t;
340typedef enum yap_enum_reset_t {
343 YAP_RESET_FROM_RESTORE = 3
346typedef bool (*YAP_ModInit_t)(void);
opaque variables can interact with the system