diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2017-05-17 05:50:11 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2017-05-17 05:50:11 -0700 |
commit | 27514a0cde3a43f5c54c50a6899fb3a4666390ca (patch) | |
tree | c384b39596a851aa2330de70456d25e4b0f38fb2 /debug.h | |
parent | abc64add6a46971c3ccf422b1daae01f82f98d25 (diff) | |
download | txr-27514a0cde3a43f5c54c50a6899fb3a4666390ca.tar.gz txr-27514a0cde3a43f5c54c50a6899fb3a4666390ca.tar.bz2 txr-27514a0cde3a43f5c54c50a6899fb3a4666390ca.zip |
ffi: carray type to round out semantics.
The carray type deals with C array passing conventions
as a pointer to the first element of an array of
unknown size. It fills in the functionality gap not
covered by array and varray.
* ffi.c (carray_s): New symbol variable.
(ffi_carray_get, ffi_carray_put): New static functions.
(ffi_type_compile): Handle (carray <type>) syntax.
(struct carray): New struct type.
(carray_struct, carray_struct_checked, carray_print_op,
carray_mark_op, carray_destroy_op): New static functions.
(carray_borrowed_ops, carray_owned_ops): New static structs.
(make_carray, carray_set_length, carray_dup, carray_own,
carray_free, carray_type, length_carray, carray_get,
carray_vec, carray_blank, vec_carray, list_carray, carray_ref,
carray_refset): New functions.
(ffi_init): Initialize carray_s. Register
carray-set_length, carray_dup, carray_own,
carray-free, carray_type, length_carray,
carray-vec, array_blank, vec_carray, list_carray, carray_ref
and carray-refset intrinsics.
* ffi.h (carray_s): Declared.
(make_carray, carray_set_length, carray_dup, carray_own,
carray_free, carray_type, length_carray, carray_get,
carray_vec, carray_blank, vec_carray, list_carray, carray_ref,
carray_refset): Declared.
Diffstat (limited to 'debug.h')
0 files changed, 0 insertions, 0 deletions