The Foreign Function Interface</> <para>FIXME: The material in the &CMUCL; manual about the foreign function interface should be reviewed, reformatted in DocBook, lightly edited for &SBCL;, and substituted into this manual. But in the meantime, the original &CMUCL; manual is still 95+% correct for the &SBCL; version of the foreign function interface. (The main difference is that the package names have changed. CMU CL's FFI is in two packages named <quote><literal>ALIEN</></> and <quote><literal>C-CALL</></>. The corresponding SBCL FFI is in a single package named <quote><literal>SB-ALIEN</></>.) <!-- FIXME: Oh, and I seem to remember that the CMUCL manual was out of date about how to test for a null pointer, there's a builtin operator to do it, you don't need to do the nasty idiom the manual says you need to do. --> <!-- FIXME: Also, the CMU CL alien documentation claims you can just do (DEFINE-ALIEN-VARIABLE "errno" INT), but it's wrong. That fails with the multithreading hacks hacks now built into the C library. --> <!-- FIXME: Also, we support not only LOAD-FOREIGN but also LOAD-1-FOREIGN. --> See the sections <itemizedlist> <listitem><para>Type Translations</></> <listitem><para>System Area Pointers</></> <listitem><para>Alien Objects</></> <listitem><para>Alien Types</></> <listitem><para>Alien Operations</></> <listitem><para>Alien Variables</></> <listitem><para>Alien Function Calls</></> </itemizedlist> </para> </chapter>