<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>cpl_port.h File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Generated by Doxygen 1.2.3-20001105 on Thu Mar 28 09:47:31 2002 --> <center> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> <a class="qindex" href="pages.html">Related Pages</a> </center> <hr><h1>cpl_port.h File Reference</h1><code>#include "cpl_config.h"</code><br> <code>#include <stdio.h></code><br> <code>#include <stdlib.h></code><br> <code>#include <math.h></code><br> <code>#include <stdarg.h></code><br> <code>#include <string.h></code><br> <code>#include <errno.h></code><br> <p> <a href="cpl_port_h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0> <tr><td colspan=2><br><h2>Defines</h2></td></tr> <tr><td nowrap align=right valign=top><a name="a3" doxytag="cpl_port.h::NULL"></a> #define </td><td valign=bottom><b>NULL</b> 0</td></tr> <tr><td nowrap align=right valign=top><a name="a4" doxytag="cpl_port.h::FALSE"></a> #define </td><td valign=bottom><b>FALSE</b> 0</td></tr> <tr><td nowrap align=right valign=top><a name="a5" doxytag="cpl_port.h::TRUE"></a> #define </td><td valign=bottom><b>TRUE</b> 1</td></tr> <tr><td nowrap align=right valign=top><a name="a6" doxytag="cpl_port.h::MIN"></a> #define </td><td valign=bottom><b>MIN</b>(a,b) ((a<b) ? a : b)</td></tr> <tr><td nowrap align=right valign=top><a name="a7" doxytag="cpl_port.h::MAX"></a> #define </td><td valign=bottom><b>MAX</b>(a,b) ((a>b) ? a : b)</td></tr> <tr><td nowrap align=right valign=top><a name="a8" doxytag="cpl_port.h::ABS"></a> #define </td><td valign=bottom><b>ABS</b>(x) ((x<0) ? (-1*(x)) : x)</td></tr> <tr><td nowrap align=right valign=top><a name="a9" doxytag="cpl_port.h::EQUALN"></a> #define </td><td valign=bottom><b>EQUALN</b>(a,b,n) (strncasecmp(a,b,n)==0)</td></tr> <tr><td nowrap align=right valign=top><a name="a10" doxytag="cpl_port.h::EQUAL"></a> #define </td><td valign=bottom><b>EQUAL</b>(a,b) (strcasecmp(a,b)==0)</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><b>CPL_SWAP16</b>(x) </td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><b>CPL_SWAP16PTR</b>(x) </td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><b>CPL_SWAP32</b>(x) </td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><b>CPL_SWAP32PTR</b>(x) </td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><b>CPL_SWAP64PTR</b>(x) </td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><b>CPL_SWAPDOUBLE</b>(p) </td></tr> <tr><td nowrap align=right valign=top><a name="a18" doxytag="cpl_port.h::CPL_LSBWORD16"></a> #define </td><td valign=bottom><b>CPL_LSBWORD16</b>(x) (x)</td></tr> <tr><td nowrap align=right valign=top><a name="a19" doxytag="cpl_port.h::CPL_MSBWORD16"></a> #define </td><td valign=bottom><b>CPL_MSBWORD16</b>(x) CPL_SWAP16(x)</td></tr> <tr><td nowrap align=right valign=top><a name="a20" doxytag="cpl_port.h::CPL_LSBWORD32"></a> #define </td><td valign=bottom><b>CPL_LSBWORD32</b>(x) (x)</td></tr> <tr><td nowrap align=right valign=top><a name="a21" doxytag="cpl_port.h::CPL_MSBWORD32"></a> #define </td><td valign=bottom><b>CPL_MSBWORD32</b>(x) CPL_SWAP32(x)</td></tr> <tr><td nowrap align=right valign=top><a name="a22" doxytag="cpl_port.h::CPL_LSBPTR16"></a> #define </td><td valign=bottom><b>CPL_LSBPTR16</b>(x) </td></tr> <tr><td nowrap align=right valign=top><a name="a23" doxytag="cpl_port.h::CPL_MSBPTR16"></a> #define </td><td valign=bottom><b>CPL_MSBPTR16</b>(x) CPL_SWAP16PTR(x)</td></tr> <tr><td nowrap align=right valign=top><a name="a24" doxytag="cpl_port.h::CPL_LSBPTR32"></a> #define </td><td valign=bottom><b>CPL_LSBPTR32</b>(x) </td></tr> <tr><td nowrap align=right valign=top><a name="a25" doxytag="cpl_port.h::CPL_MSBPTR32"></a> #define </td><td valign=bottom><b>CPL_MSBPTR32</b>(x) CPL_SWAP32PTR(x)</td></tr> <tr><td nowrap align=right valign=top><a name="a26" doxytag="cpl_port.h::CPL_LSBPTR64"></a> #define </td><td valign=bottom><b>CPL_LSBPTR64</b>(x) </td></tr> <tr><td nowrap align=right valign=top><a name="a27" doxytag="cpl_port.h::CPL_MSBPTR64"></a> #define </td><td valign=bottom><b>CPL_MSBPTR64</b>(x) CPL_SWAP64PTR(x)</td></tr> <tr><td nowrap align=right valign=top>#define </td><td valign=bottom><b>CPL_CVSID</b>(string) </td></tr> <tr><td colspan=2><br><h2>Typedefs</h2></td></tr> <tr><td nowrap align=right valign=top><a name="a29" doxytag="cpl_port.h::GInt32"></a> typedef int </td><td valign=bottom><b>GInt32</b></td></tr> <tr><td nowrap align=right valign=top><a name="a30" doxytag="cpl_port.h::GUInt32"></a> typedef unsigned int </td><td valign=bottom><b>GUInt32</b></td></tr> <tr><td nowrap align=right valign=top><a name="a31" doxytag="cpl_port.h::GInt16"></a> typedef short </td><td valign=bottom><b>GInt16</b></td></tr> <tr><td nowrap align=right valign=top><a name="a32" doxytag="cpl_port.h::GUInt16"></a> typedef unsigned short </td><td valign=bottom><b>GUInt16</b></td></tr> <tr><td nowrap align=right valign=top><a name="a33" doxytag="cpl_port.h::GByte"></a> typedef unsigned char </td><td valign=bottom><b>GByte</b></td></tr> <tr><td nowrap align=right valign=top><a name="a34" doxytag="cpl_port.h::GBool"></a> typedef int </td><td valign=bottom><b>GBool</b></td></tr> <tr><td nowrap align=right valign=top><a name="a35" doxytag="cpl_port.h::GIntBig"></a> typedef long </td><td valign=bottom><b>GIntBig</b></td></tr> <tr><td nowrap align=right valign=top><a name="a36" doxytag="cpl_port.h::GUIntBig"></a> typedef unsigned long </td><td valign=bottom><b>GUIntBig</b></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <p> Core portability definitions for CPL. <p> <hr><h2>Define Documentation</h2> <a name="a28" doxytag="cpl_port.h::CPL_CVSID"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> #define CPL_CVSID( </b></td> <td valign="bottom"><b> string ) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Initializer:</b><div class="fragment"><pre><font class="keyword">static</font> <font class="keywordtype">char</font> cpl_cvsid[] = string; \ <font class="keyword">static</font> <font class="keywordtype">char</font> *cvsid_aw()<font class="keyword"> </font>{ <font class="keywordflow">return</font>( cvsid_aw() ? ((<font class="keywordtype">char</font> *) NULL) : cpl_cvsid ); }</div></pre> </td> </tr> </table> <a name="a12" doxytag="cpl_port.h::CPL_SWAP16"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> #define CPL_SWAP16( </b></td> <td valign="bottom"><b> x ) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Initializer:</b><div class="fragment"><pre>\ ((GUInt16)( \ (((GUInt16)(x) & 0x00ffU) << 8) | \ (((GUInt16)(x) & 0xff00U) >> 8) ))</div></pre> </td> </tr> </table> <a name="a13" doxytag="cpl_port.h::CPL_SWAP16PTR"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> #define CPL_SWAP16PTR( </b></td> <td valign="bottom"><b> x ) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Initializer:</b><div class="fragment"><pre>\ { \ GByte byTemp, *pabyData = (GByte *) (x); \ \ byTemp = pabyData[0]; \ pabyData[0] = pabyData[1]; \ pabyData[1] = byTemp; \ }</div></pre> </td> </tr> </table> <a name="a14" doxytag="cpl_port.h::CPL_SWAP32"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> #define CPL_SWAP32( </b></td> <td valign="bottom"><b> x ) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Initializer:</b><div class="fragment"><pre>\ ((GUInt32)( \ (((GUInt32)(x) & (GUInt32)0x000000ffUL) << 24) | \ (((GUInt32)(x) & (GUInt32)0x0000ff00UL) << 8) | \ (((GUInt32)(x) & (GUInt32)0x00ff0000UL) >> 8) | \ (((GUInt32)(x) & (GUInt32)0xff000000UL) >> 24) ))</div></pre> </td> </tr> </table> <a name="a15" doxytag="cpl_port.h::CPL_SWAP32PTR"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> #define CPL_SWAP32PTR( </b></td> <td valign="bottom"><b> x ) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Initializer:</b><div class="fragment"><pre>\ { \ GByte byTemp, *pabyData = (GByte *) (x); \ \ byTemp = pabyData[0]; \ pabyData[0] = pabyData[3]; \ pabyData[3] = byTemp; \ byTemp = pabyData[1]; \ pabyData[1] = pabyData[2]; \ pabyData[2] = byTemp; \ }</div></pre> </td> </tr> </table> <a name="a16" doxytag="cpl_port.h::CPL_SWAP64PTR"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> #define CPL_SWAP64PTR( </b></td> <td valign="bottom"><b> x ) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Initializer:</b><div class="fragment"><pre>\ { \ GByte byTemp, *pabyData = (GByte *) (x); \ \ byTemp = pabyData[0]; \ pabyData[0] = pabyData[7]; \ pabyData[7] = byTemp; \ byTemp = pabyData[1]; \ pabyData[1] = pabyData[6]; \ pabyData[6] = byTemp; \ byTemp = pabyData[2]; \ pabyData[2] = pabyData[5]; \ pabyData[5] = byTemp; \ byTemp = pabyData[3]; \ pabyData[3] = pabyData[4]; \ pabyData[4] = byTemp; \ }</div></pre> </td> </tr> </table> <a name="a17" doxytag="cpl_port.h::CPL_SWAPDOUBLE"></a><p> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td nowrap valign="top"><b> #define CPL_SWAPDOUBLE( </b></td> <td valign="bottom"><b> p ) </table> </td> </tr> </table> <table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td> <p> <b>Initializer:</b><div class="fragment"><pre>{ \ <font class="keywordtype">double</font> _tmp = *(<font class="keywordtype">double</font> *)(p); \ ((GByte *)(p))[0] = ((GByte *)&_tmp)[7]; \ ((GByte *)(p))[1] = ((GByte *)&_tmp)[6]; \ ((GByte *)(p))[2] = ((GByte *)&_tmp)[5]; \ ((GByte *)(p))[3] = ((GByte *)&_tmp)[4]; \ ((GByte *)(p))[4] = ((GByte *)&_tmp)[3]; \ ((GByte *)(p))[5] = ((GByte *)&_tmp)[2]; \ ((GByte *)(p))[6] = ((GByte *)&_tmp)[1]; \ ((GByte *)(p))[7] = ((GByte *)&_tmp)[0]; \ }</div></pre> </td> </tr> </table> <hr><address><small>Generated at Thu Mar 28 09:47:31 2002 for GDAL by <a href="http://www.stack.nl/~dimitri/doxygen/index.html"> <img src="doxygen.gif" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.3-20001105 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, © 1997-2000</small></address> </body> </html>