summaryrefslogtreecommitdiffstats
path: root/ffi.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2017-06-12 06:10:21 -0700
committerKaz Kylheku <kaz@kylheku.com>2017-06-12 06:10:21 -0700
commit13265cb31f4f14e1c021929d7d4585c5588dcd9d (patch)
tree685b0ba5c7a7cb3321d9511ce4672f49a1fc1569 /ffi.c
parenta540359de7335436fe431e46ae18a9823c01155a (diff)
downloadtxr-13265cb31f4f14e1c021929d7d4585c5588dcd9d.tar.gz
txr-13265cb31f4f14e1c021929d7d4585c5588dcd9d.tar.bz2
txr-13265cb31f4f14e1c021929d7d4585c5588dcd9d.zip
ffi: add carrayp function.
* ffi.c (carrayp): New function. (ffi_init): Register carrayp intrinsic. * ffi.h (carrayp): Declared. * txr.1: Documented.
Diffstat (limited to 'ffi.c')
-rw-r--r--ffi.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ffi.c b/ffi.c
index 591c0d16..9dc0bb3a 100644
--- a/ffi.c
+++ b/ffi.c
@@ -4313,6 +4313,11 @@ val make_carray(val type, mem_t *data, cnum nelem, val ref)
return obj;
}
+val carrayp(val obj)
+{
+ return tnil(typeof(obj) == carray_s);
+}
+
val carray_set_length(val carray, val nelem)
{
struct carray *scry = carray_struct_checked(carray);
@@ -4868,6 +4873,7 @@ void ffi_init(void)
reg_fun(intern(lit("ffi-in"), user_package), func_n4(ffi_in));
reg_fun(intern(lit("ffi-get"), user_package), func_n2(ffi_get));
reg_fun(intern(lit("ffi-out"), user_package), func_n4(ffi_out));
+ reg_fun(intern(lit("carrayp"), user_package), func_n1(carrayp));
reg_fun(intern(lit("carray-set-length"), user_package), func_n2(carray_set_length));
reg_fun(intern(lit("carray-dup"), user_package), func_n1(carray_dup));
reg_fun(intern(lit("carray-own"), user_package), func_n1(carray_own));