1 /* Part of SWI-Prolog 2 3 Author: Jan Wielemaker 4 E-mail: J.Wielemaker@vu.nl 5 WWW: http://www.swi-prolog.org 6 Copyright (c) 2010-20120, University of Amsterdam 7 CWI, Amsterdam 8 All rights reserved. 9 10 Redistribution and use in source and binary forms, with or without 11 modification, are permitted provided that the following conditions 12 are met: 13 14 1. Redistributions of source code must retain the above copyright 15 notice, this list of conditions and the following disclaimer. 16 17 2. Redistributions in binary form must reproduce the above copyright 18 notice, this list of conditions and the following disclaimer in 19 the documentation and/or other materials provided with the 20 distribution. 21 22 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 25 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 26 COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 27 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 28 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 29 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 30 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 32 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 POSSIBILITY OF SUCH DAMAGE. 34 */ 35 36 #ifndef PL_LDPASS_H_INCLUDED 37 #define PL_LDPASS_H_INCLUDED 38 39 /******************************* 40 * LD-USING FUNCTIONS * 41 *******************************/ 42 43 #define allocGlobal(n) allocGlobal__LD(n PASS_LD) 44 #define getInputStream(t, k, s) getInputStream__LD(t, k, s PASS_LD) 45 #define getTextInputStream(t, s) getTextInputStream__LD(t, s PASS_LD) 46 #define getBinaryInputStream(t, s) getBinaryInputStream__LD(t, s PASS_LD) 47 #define getOutputStream(t, k, s) getOutputStream__LD(t, k, s PASS_LD) 48 #define getTextOutputStream(t, s) getTextOutputStream__LD(t, s PASS_LD) 49 #define getBinaryOutputStream(t, s) getBinaryOutputStream__LD(t, s PASS_LD) 50 #define getCharsString(s, l) getCharsString__LD(s, l PASS_LD) 51 #define getCharsWString(s, l) getCharsWString__LD(s, l PASS_LD) 52 #define compileTermToHeap(t, f) \ 53 compileTermToHeap__LD(t, NULL, NULL, f PASS_LD) 54 #define linkVal(p) linkVal__LD(p PASS_LD) 55 #define TrailAssignment(p) TrailAssignment__LD(p PASS_LD) 56 #define bindConst(p, c) bindConst__LD(p, c PASS_LD) 57 #define consPtr(p, ts) consPtr__LD(p, ts PASS_LD) 58 #define allocGlobalNoShift(n) allocGlobalNoShift__LD(n PASS_LD) 59 #define getProcDefinition(proc) getProcDefinition__LD(proc->definition PASS_LD) 60 #define popTermRef() popTermRef__LD(PASS_LD1) 61 #define pushWordAsTermRef(p) pushWordAsTermRef__LD(p PASS_LD) 62 #define lookupHTable(ht, n) lookupHTable__LD(ht, n PASS_LD) 63 #define pushPredicateAccess(def) (pushPredicateAccessObj(def PASS_LD)->generation) 64 #define popPredicateAccess(def) popPredicateAccess__LD(def PASS_LD) 65 #define popNPredicateAccess(cnt) popNPredicateAccess__LD(cnt PASS_LD) 66 #define nextClause(chp, argv, fr, def) nextClause__LD(chp, argv, fr, def PASS_LD) 67 #define lookupModule(name) lookupModule__LD(name PASS_LD) 68 #define isCurrentModule(name) isCurrentModule__LD(name PASS_LD) 69 #define acquireModule(name) acquireModule__LD(name PASS_LD) 70 #define isCurrentProcedure(f,m) isCurrentProcedure__LD(f, m PASS_LD) 71 #define resolveProcedure(f,m) resolveProcedure__LD(f, m PASS_LD) 72 #define ensureLocalSpace(n) likely(ensureLocalSpace__LD(n PASS_LD)) 73 #define ensureGlobalSpace(n,f) likely(ensureStackSpace__LD(n,0,f PASS_LD)) 74 #define ensureTrailSpace(n) likely(ensureStackSpace__LD(0,n,ALLOW_GC PASS_LD)) 75 #define ensureStackSpace(g,t) likely(ensureStackSpace__LD(g,t,ALLOW_GC PASS_LD)) 76 77 #define _PL_get_arg(n, t, a) _PL_get_arg__LD(n, t, a PASS_LD) 78 #define _PL_put_number(t, n) _PL_put_number__LD(t, n PASS_LD) 79 #define PL_new_term_ref() PL_new_term_ref__LD(PASS_LD1) 80 #define PL_new_term_ref_noshift() PL_new_term_ref_noshift__LD(PASS_LD1) 81 #define PL_new_term_refs(n) PL_new_term_refs__LD(n PASS_LD) 82 #define PL_reset_term_refs(t) PL_reset_term_refs__LD(t PASS_LD) 83 #define PL_copy_term_ref(t) PL_copy_term_ref__LD(t PASS_LD) 84 #define PL_unify(t1, t2) PL_unify__LD(t1, t2 PASS_LD) 85 #define PL_unify_integer(t, i) PL_unify_integer__LD(t, i PASS_LD) 86 #define PL_unify_int64(t, i) PL_unify_int64__LD(t, i PASS_LD) 87 #define PL_unify_functor(t, f) PL_unify_functor__LD(t, f PASS_LD) 88 #define PL_unify_term(t, ...) PL_unify_term__LD(t PASS_LD, __VA_ARGS__) 89 #define PL_unify_output(t1,t2) PL_unify_output__LD(t1, t2 PASS_LD) 90 #define PL_get_atom(t, a) PL_get_atom__LD(t, a PASS_LD) 91 #define PL_put_atom(t, a) PL_put_atom__LD(t, a PASS_LD) 92 #define PL_put_variable(t) PL_put_variable__LD(t PASS_LD) 93 #define PL_is_functor(t, f) PL_is_functor__LD(t, f PASS_LD) 94 #define PL_put_integer(t, i) PL_put_integer__LD(t, i PASS_LD) 95 #define PL_put_intptr(t, i) PL_put_intptr__LD(t, i PASS_LD) 96 #define PL_strip_module(q, m, t) PL_strip_module__LD(q, m, t, 0 PASS_LD) 97 #define PL_get_integer(t, i) PL_get_integer__LD(t, i PASS_LD) 98 #define PL_get_long(t, i) PL_get_long__LD(t, i PASS_LD) 99 #define PL_get_int64(t, i) PL_get_int64__LD(t, i PASS_LD) 100 #define PL_get_size_ex(t,i) PL_get_size_ex__LD(t,i PASS_LD) 101 #define PL_get_number(t, n) PL_get_number__LD(t, n PASS_LD) 102 #define PL_unify_number(t, n) PL_unify_number__LD(t, n PASS_LD) 103 #define PL_put_number(t, n) PL_put_number__LD(t, n PASS_LD) 104 #define PL_get_pointer(t, ptr) PL_get_pointer__LD(t, ptr PASS_LD) 105 #define PL_put_term(t1, t2) PL_put_term__LD(t1, t2 PASS_LD) 106 #define PL_get_functor(t, f) PL_get_functor__LD(t, f PASS_LD) 107 #define PL_unify_atom(t, a) PL_unify_atom__LD(t, a PASS_LD) 108 #define _PL_unify_atomic(t, a) PL_unify_atom__LD(t, a PASS_LD) 109 #define PL_unify_pointer(t, p) PL_unify_pointer__LD(t, p PASS_LD) 110 #define PL_is_variable(t) PL_is_variable__LD(t PASS_LD) 111 #define PL_is_atomic(t) PL_is_atomic__LD(t PASS_LD) 112 #define PL_get_list(l, h, t) PL_get_list__LD(l, h, t PASS_LD) 113 #define PL_is_atom(t) PL_is_atom__LD(t PASS_LD) 114 #define PL_unify_list(l, h, t) PL_unify_list__LD(l, h, t PASS_LD) 115 #define PL_cons_list(l, h, t) PL_cons_list__LD(l, h, t PASS_LD) 116 #define PL_get_text(l, t, f) PL_get_text__LD(l, t, f PASS_LD) 117 #define PL_unify_int64_ex(t, i) PL_unify_int64_ex__LD(t, i PASS_LD) 118 #define PL_pending(sig) PL_pending__LD(sig PASS_LD) 119 #define PL_clearsig(sig) PL_clearsig__LD(sig PASS_LD) 120 #define PL_same_term(t1, t2) PL_same_term__LD(t1, t2 PASS_LD) 121 #define PL_get_name_arity_sz(t,n,a) PL_get_name_arity_sz__LD(t,n,a PASS_LD) 122 123 #define PL_get_atom_ex(t, a) PL_get_atom_ex__LD(t, a PASS_LD) 124 #define PL_open_foreign_frame() PL_open_foreign_frame__LD(PASS_LD1) 125 #define PL_close_foreign_frame(id) PL_close_foreign_frame__LD(id PASS_LD) 126 #define PL_strip_module_ex(t,m,p) PL_strip_module_ex__LD(t,m,p PASS_LD) 127 #define var_name_ptr(p, n) var_name_ptr__LD(p, n PASS_LD) 128 #define classify_exception(ex) classify_exception__LD(ex PASS_LD) 129 #define classify_exception_p(p) classify_exception_p__LD(p PASS_LD) 130 #define PL_mark_string_buffers(m) PL_mark_string_buffers__LD(m PASS_LD) 131 #define PL_release_string_buffers_from_mark(m) \ 132 PL_release_string_buffers_from_mark__LD(m PASS_LD) 133 134 #endif /*PL_LDPASS_H_INCLUDED*/ 135