CIGI API Version 2.7.1 
CIGI API : Users' Guide
Compiler Issues

Compiler Issues

The compiler used must have certain capabilities to ensure that the API messaging routines work as expected.
 

Structure Alignment

The compiler used must be capable and must set the alignment of structures to double word boundaries. A referenced double field of a CIGI packet structure inside of the message buffer can cause an exception when accessed, if not aligned properly. Many compilers are set to the proper structure alignment by default, and most commercial compilers have this option. A solution to this possible problem has been worked, but is not included in the implementation because it would add additional runtime overhead to the API. It will be resolved if it becomes an issue.
 

C++ Function Decorations

Because compilers decorate functions differently for the C and C++ languages, the extern "C" directive is needed when using CIGI files with C++. The following code illustrates how the CIGI header files would be included in a C++ project.
 
Example 1
extern "C" { #include <cigi_icd.h> #include <cigi_api.h> #include <cigi_helper.h> }

 

Known Compiler Issues

The following table lists the known issues with specific compilers.
 
Compiler Version Platform Description
cc (MIPSpro Compilers) All (Latest version tested: Version 7.30) SGI / IRIX Release 6.5 IP32 Packets that do not fall on double-word boundaries within the buffer cause a core dump when accessed. To fix this, use the CIGI_FORCE_DWORD_ALIGN preprocessor definition.
SourceForge LogoBoeing
******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ******** ********