A CFFI type for C data defined as an organization of data of simple type; in structures and unions, which are themselves aggregate types, they are represented by value.
This has two meanings; in any context, only one makes sense.
When using type translators, the foreign value is the lower-level Lisp
value derived from the object passed to
(see translate-to-foreign). This value should be a Lisp number or
a pointer (satisfies
pointerp), and it can be treated like any
general Lisp object; it only completes the transformation to a true
foreign value when passed through low-level code in the Lisp
implementation, such as the foreign function caller or indirect memory
addressing combined with a data move.
In other contexts, this refers to a value accessible by C, but which may only be accessed through CFFI functions. The closest you can get to such a foreign value is through a pointer Lisp object, which itself counts as a foreign value in only the previous sense.
A CFFI type that is ultimately represented as a builtin type; CFFI only provides extra semantics for Lisp that are invisible to C code or data.