This is the ffa Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Tue Jul 15 05:06:28 2025 GMT+0.
The main system appears first, followed by any subsystem dependency.
ffaForeign friendly arrays
Tamas K Papp
LLGPL
cffi (system).
cl-utilities (system).
metabang-bind (system).
iterate (system).
package.lisp (file).
types.lisp (file).
utils.lisp (file).
pointer.lisp (file).
Files are sorted by type and then listed depth-first from the systems components trees.
ffa/types.lisppackage.lisp (file).
ffa (system).
elt-type (function).
*cffi-and-lisp-types* (special variable).
elt-type-size (function).
ffa/utils.lisptypes.lisp (file).
ffa (system).
displace-array (function).
find-original-array (function).
ffa/pointer.lisputils.lisp (file).
ffa (system).
with-pointer-to-array (macro).
with-pointers-to-arrays (macro).
complex-mem-aref (function).
(setf complex-mem-aref) (function).
copy-array-from-pointer (function).
copy-array-to-pointer (function).
copy-to-pointer (macro).
iter% (macro).
part-type (function).
pin-to-pointer (macro).
valid-direction-p (function).
Packages are listed by definition order.
ffacl-utilities.
common-lisp.
iterate.
metabang.bind.
elt-type (function).
with-pointer-to-array (macro).
with-pointers-to-arrays (macro).
*cffi-and-lisp-types* (special variable).
complex-mem-aref (function).
(setf complex-mem-aref) (function).
copy-array-from-pointer (function).
copy-array-to-pointer (function).
copy-to-pointer (macro).
displace-array (function).
elt-type-size (function).
find-original-array (function).
iter% (macro).
part-type (function).
pin-to-pointer (macro).
valid-direction-p (function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
See the documentation.
ffa.
Same as with-pointer-to-array, but with multiple arrays, pointers, etc. parameter-lists needs to be a list of lists.
ffa.
Allocate memory area and establish desired mapping between array and pointer (copy in and/or out as needed). Array will be available at pointer, which is a local binding so you do whatever you want with it (change its value etc).
ffa.
Common iteration for all cases below. IMPORTANT: This macro captures pointer-index, size, array-index and index-offset.
ffa.
Use SBCL’s sb-sys:with-pinned-objects and sb-ext:array-storage-vector for mapping an array to a memory location. NOTE: checking that cffi-type matches the type of the array is the responsibility of the user of this macro. The total size of the array is checked.
ffa.
aref workaround for C99 complex types. Part-type is NOT checked.
ffa.
setf aref workaround for C99 complex types. Part-type is NOT checked.
ffa.
Copy size elements to an array (starting at index-offset) of element type lisp-type from the memory area that starts at pointer, coercing the elements if necessary.
ffa.
Copy size elements from array (starting at index-offset) of type lisp-type to the memory area that starts at pointer, coercing the elements if necessary.
ffa.
Make a displaced array from array with the given dimensions and the index-offset and the same element-type as array. Tries to displace from the original array.
ffa.
Find the original parent of a displaced array, return this and the sum of displaced index offsets.
ffa.
Return the appropriate part-type if cffi-type is complex, otherwise NIL.
ffa.
| Jump to: | (
C D E F I M P V W |
|---|
| Jump to: | (
C D E F I M P V W |
|---|
| Jump to: | *
S |
|---|
| Index Entry | Section | ||
|---|---|---|---|
| | |||
| * | |||
*cffi-and-lisp-types*: | Private special variables | ||
| | |||
| S | |||
Special Variable, *cffi-and-lisp-types*: | Private special variables | ||
| | |||
| Jump to: | *
S |
|---|
| Jump to: | F P S T U |
|---|
| Jump to: | F P S T U |
|---|