221 |
SCM_SNARF_HERE(scm_t_rec_mutex c_name) \ |
SCM_SNARF_HERE(scm_t_rec_mutex c_name) \ |
222 |
SCM_SNARF_INIT(scm_i_plugin_rec_mutex_init (&c_name, &scm_i_plugin_rec_mutex)) |
SCM_SNARF_INIT(scm_i_plugin_rec_mutex_init (&c_name, &scm_i_plugin_rec_mutex)) |
223 |
|
|
224 |
|
#define SCM_SMOB(tag, scheme_name, size) \ |
225 |
|
SCM_SNARF_HERE(static scm_t_bits tag) \ |
226 |
|
SCM_SNARF_INIT((tag)=scm_make_smob_type((scheme_name), (size));) |
227 |
|
|
228 |
|
#define SCM_GLOBAL_SMOB(tag, scheme_name, size) \ |
229 |
|
SCM_SNARF_HERE(scm_t_bits tag) \ |
230 |
|
SCM_SNARF_INIT((tag)=scm_make_smob_type((scheme_name), (size));) |
231 |
|
|
232 |
|
#define SCM_SMOB_MARK(tag, c_name, arg) \ |
233 |
|
SCM_SNARF_HERE(static SCM c_name(SCM arg)) \ |
234 |
|
SCM_SNARF_INIT(scm_set_smob_mark((tag), (c_name));) |
235 |
|
|
236 |
|
#define SCM_GLOBAL_SMOB_MARK(tag, c_name, arg) \ |
237 |
|
SCM_SNARF_HERE(SCM c_name(SCM arg)) \ |
238 |
|
SCM_SNARF_INIT(scm_set_smob_mark((tag), (c_name));) |
239 |
|
|
240 |
|
#define SCM_SMOB_FREE(tag, c_name, arg) \ |
241 |
|
SCM_SNARF_HERE(static size_t c_name(SCM arg)) \ |
242 |
|
SCM_SNARF_INIT(scm_set_smob_free((tag), (c_name));) |
243 |
|
|
244 |
|
#define SCM_GLOBAL_SMOB_FREE(tag, c_name, arg) \ |
245 |
|
SCM_SNARF_HERE(size_t c_name(SCM arg)) \ |
246 |
|
SCM_SNARF_INIT(scm_set_smob_free((tag), (c_name));) |
247 |
|
|
248 |
|
#define SCM_SMOB_PRINT(tag, c_name, obj, port, pstate) \ |
249 |
|
SCM_SNARF_HERE(static int c_name(SCM obj, SCM port, scm_print_state* pstate)) \ |
250 |
|
SCM_SNARF_INIT(scm_set_smob_print((tag), (c_name));) |
251 |
|
|
252 |
|
#define SCM_GLOBAL_SMOB_PRINT(tag, c_name, obj, port, pstate) \ |
253 |
|
SCM_SNARF_HERE(int c_name(SCM obj, SCM port, scm_print_state* pstate)) \ |
254 |
|
SCM_SNARF_INIT(scm_set_smob_print((tag), (c_name));) |
255 |
|
|
256 |
|
#define SCM_SMOB_EQUALP(tag, c_name, obj1, obj2) \ |
257 |
|
SCM_SNARF_HERE(static SCM c_name(SCM obj1, SCM obj2)) \ |
258 |
|
SCM_SNARF_INIT(scm_set_smob_equalp((tag), (c_name));) |
259 |
|
|
260 |
|
#define SCM_GLOBAL_SMOB_EQUALP(tag, c_name, obj1, obj2) \ |
261 |
|
SCM_SNARF_HERE(SCM c_name(SCM obj1, SCM obj2)) \ |
262 |
|
SCM_SNARF_INIT(scm_set_smob_equalp((tag), (c_name));) |
263 |
|
|
264 |
|
#define SCM_SMOB_APPLY(tag, c_name, req, opt, rest, arglist) \ |
265 |
|
SCM_SNARF_HERE(static SCM c_name arglist) \ |
266 |
|
SCM_SNARF_INIT(scm_set_smob_apply((tag), (c_name), (req), (opt), (rest));) |
267 |
|
|
268 |
|
#define SCM_GLOBAL_SMOB_APPLY(tag, c_name, req, opt, rest, arglist) \ |
269 |
|
SCM_SNARF_HERE(SCM c_name arglist) \ |
270 |
|
SCM_SNARF_INIT(scm_set_smob_apply((tag), (c_name), (req), (opt), (rest));) |
271 |
|
|
272 |
|
|
273 |
#ifdef SCM_MAGIC_SNARF_DOCS |
#ifdef SCM_MAGIC_SNARF_DOCS |
274 |
#undef SCM_ASSERT |
#undef SCM_ASSERT |
275 |
#define SCM_ASSERT(_cond, _arg, _pos, _subr) ^^ argpos _arg _pos __LINE__ ^^ |
#define SCM_ASSERT(_cond, _arg, _pos, _subr) ^^ argpos _arg _pos __LINE__ ^^ |