Go to the source code of this file.
|
| srn_value_t * | srn_apply_c (srn_context_t *ctx, srn_value_t *fn, srn_value_t *argv, uint32_t argc) |
| | Call Serene (lisp level) functions via C.
|
| |
| srn_value_t * | srn_call_cprimitive (srn_context_t *ctx, srn_cprim_fn_t fn, srn_value_t *argv, uint32_t argc) |
| |
| srn_value_t * | srn_call0 (srn_context_t *ctx, srn_value_t *fun) |
| |
| srn_value_t * | srn_call1 (srn_context_t *ctx, srn_value_t *fun, srn_value_t *a0) |
| |
| srn_value_t * | srn_call2 (srn_context_t *ctx, srn_value_t *fun, srn_value_t *a0, srn_value_t *a1) |
| |
◆ srn_cprim_fn_t
Call a C-ABI primitive from Serene (argv shape is uniform):
Definition at line 32 of file abi.h.
◆ srn_apply_c()
Call Serene (lisp level) functions via C.
Definition at line 26 of file abi.c.
26 {
29 }
31 if (cl == nullptr) {
33 }
35
36
37
38 return fnptr(ctx, argv, argc);
39}
#define IS_A(value_ref, field)
srn_value_t *(* srn_fnptr_t)(srn_context_t *ctx, srn_value_t *argv, uint32_t argc)
#define AS_CLOSURE(value_ref)
srn_fnptr_t fn
Entry point on the closure, duh!
#define PANIC_WITH_CTX(ctx, msg)
◆ srn_call0()
Definition at line 46 of file abi.c.
46 {
48}
srn_value_t * srn_apply_c(srn_context_t *ctx, srn_value_t *fn, srn_value_t *argv, uint32_t argc)
Call Serene (lisp level) functions via C.
◆ srn_call1()
Definition at line 49 of file abi.c.
◆ srn_call2()
Definition at line 53 of file abi.c.
◆ srn_call_cprimitive()
Definition at line 41 of file abi.c.
42 {
43 return f(ctx, argv, argc);
44}