.

'ffi_type_uchar'
     The C 'unsigned char' type.

'ffi_type_schar'
     The C 'signed char' type.  (Note that there is not an exact
     equivalent to the C 'char' type in 'libffi'; ordinarily you should
     either use 'ffi_type_schar' or 'ffi_type_uchar' depending on
     whether 'char' is signed.)

'ffi_type_ushort'
     The C 'unsigned short' type.

'ffi_type_sshort'
     The C 'short' type.

'ffi_type_uint'
     The C 'unsigned int' type.

'ffi_type_sint'
     The C 'int' type.

'ffi_type_ulong'
     The C 'unsigned long' type.

'ffi_type_slong'
     The C 'long' type.

'ffi_type_longdouble'
     On platforms that have a C 'long double' type, this is defined.  On
     other platforms, it is not.

'ffi_type_pointer'
     A generic 'void *' pointer.  You should use this for all pointers,
     regardless of their real type.

'ffi_type_complex_float'
     The C '_Complex float' type.

'ffi_type_complex_double'
     The C '_Complex double' type.

'ffi_type_complex_longdouble'
     The C '_Complex long double' type.  On platforms that have a C
     'long double' type, this is defined.  On other platforms, it is
     not.

   Each of these is of type 'ffi_type', so you must take the address
when passing to 'ffi_prep_cif'.

