A special include file called ``SWI-Prolog.h'' should be included with each C-source file that is to be loaded via the foreign interface. This C-header file defines various data types, macros and functions that can be used to communicate with SWI-Prolog. Functions and macros can be divided into the following categories: