From 86d5c1a3fcf5f9fcbcbf312eea3d6fad7f6bd10d Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 26 Jun 2017 06:39:24 -0700 Subject: New cptr functions cptr-cast and int-cptr. * eval.c (eval_init): Register new intrinsics cptr-cast and int-cptr. * lib.c (cptr_cast, int_cptr): New functions. * lib.h (cptr_cast, int_cptr): Declared. * txr.1: Documented. --- lib.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'lib.c') diff --git a/lib.c b/lib.c index 80d056b4..fc70090a 100644 --- a/lib.c +++ b/lib.c @@ -7558,6 +7558,17 @@ val cptr_free(val cptr) return cptr; } +val cptr_cast(val to_type, val cptr) +{ + mem_t *ptr = cptr_handle(cptr, nil, lit("cptr-cast")); + return cptr_typed(ptr, to_type, 0); +} + +val int_cptr(val cptr) +{ + return num(coerce(cnum, cptr_handle(cptr, nil, lit("int-cptr")))); +} + mem_t *cptr_handle(val cptr, val type_sym, val self) { if (type(cptr) != CPTR) -- cgit v1.2.3