<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>GDAL: cpl_port.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.2-20100208 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> </div> <div class="contents"> <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 <ctype.h></code><br/> <code>#include <limits.h></code><br/> <code>#include <time.h></code><br/> <code>#include <errno.h></code><br/> <code>#include <locale.h></code><br/> <p><a href="cpl__port_8h_source.html">Go to the source code of this file.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a68ee33a0dd985971eb7d559685890b1e"></a><!-- doxytag: member="cpl_port.h::CPL_FRMT_GIB" ref="a68ee33a0dd985971eb7d559685890b1e" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_FRMT_GIB</b> "%lld"</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2cd7ccbf5388e3fad5b0854065ed0828"></a><!-- doxytag: member="cpl_port.h::CPL_FRMT_GUIB" ref="a2cd7ccbf5388e3fad5b0854065ed0828" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_FRMT_GUIB</b> "%llu"</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b6fab294833d2308743cf5a5e3d774c"></a><!-- doxytag: member="cpl_port.h::CPL_C_START" ref="a6b6fab294833d2308743cf5a5e3d774c" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_C_START</b> extern "C" {</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5f31d2c123bf9d2eb97744c553383566"></a><!-- doxytag: member="cpl_port.h::CPL_C_END" ref="a5f31d2c123bf9d2eb97744c553383566" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_C_END</b> }</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aace85ef57344582821cd3ef75beff5b4"></a><!-- doxytag: member="cpl_port.h::CPL_ODLL" ref="aace85ef57344582821cd3ef75beff5b4" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_ODLL</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d3a7f2be351daf4831eb9c53bc20a35"></a><!-- doxytag: member="cpl_port.h::FORCE_CDECL" ref="a9d3a7f2be351daf4831eb9c53bc20a35" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>FORCE_CDECL</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7bed5aa42e51539b792c9c1f9d9ebbf"></a><!-- doxytag: member="cpl_port.h::CPL_INLINE" ref="ae7bed5aa42e51539b792c9c1f9d9ebbf" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_INLINE</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aace5f63d46eef1ea5a3f7469b879cd9d"></a><!-- doxytag: member="cpl_port.h::CPLIsNan" ref="aace5f63d46eef1ea5a3f7469b879cd9d" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPLIsNan</b>(x) isnan(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a49b2983c9a294c008fc20a57e13eff94"></a><!-- doxytag: member="cpl_port.h::CPLIsInf" ref="a49b2983c9a294c008fc20a57e13eff94" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPLIsInf</b>(x) FALSE</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8a9f0a30b551836785d3ffcad30257a"></a><!-- doxytag: member="cpl_port.h::CPLIsFinite" ref="af8a9f0a30b551836785d3ffcad30257a" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPLIsFinite</b>(x) (!isnan(x))</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a54abd141208a1c8b2268c001def80cc5"></a><!-- doxytag: member="cpl_port.h::CPL_IS_LSB" ref="a54abd141208a1c8b2268c001def80cc5" args="" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_IS_LSB</b> 1</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>CPL_SWAP16</b>(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>CPL_SWAP16PTR</b>(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>CPL_SWAP32</b>(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>CPL_SWAP32PTR</b>(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>CPL_SWAP64PTR</b>(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad9b741506a2c1d919f176496c08a4ad1"></a><!-- doxytag: member="cpl_port.h::CPL_SWAPDOUBLE" ref="ad9b741506a2c1d919f176496c08a4ad1" args="(p)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_SWAPDOUBLE</b>(p) CPL_SWAP64PTR(p)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a89816534091c9600537e1940d0dad5"></a><!-- doxytag: member="cpl_port.h::CPL_LSBWORD16" ref="a4a89816534091c9600537e1940d0dad5" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_LSBWORD16</b>(x) (x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad29139b5adaec56061d0c81a3c785109"></a><!-- doxytag: member="cpl_port.h::CPL_MSBWORD16" ref="ad29139b5adaec56061d0c81a3c785109" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_MSBWORD16</b>(x) CPL_SWAP16(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acbecf40ecb41dd7f973fbc850bce19e4"></a><!-- doxytag: member="cpl_port.h::CPL_LSBWORD32" ref="acbecf40ecb41dd7f973fbc850bce19e4" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_LSBWORD32</b>(x) (x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae600e8bab6cf8505c8df950097d7439e"></a><!-- doxytag: member="cpl_port.h::CPL_MSBWORD32" ref="ae600e8bab6cf8505c8df950097d7439e" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_MSBWORD32</b>(x) CPL_SWAP32(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3b0d44b1367f4e666f879198c2aee852"></a><!-- doxytag: member="cpl_port.h::CPL_LSBPTR16" ref="a3b0d44b1367f4e666f879198c2aee852" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_LSBPTR16</b>(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aecf74ba471e460a0ff49c198e327c910"></a><!-- doxytag: member="cpl_port.h::CPL_MSBPTR16" ref="aecf74ba471e460a0ff49c198e327c910" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_MSBPTR16</b>(x) CPL_SWAP16PTR(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d4314906e1cb7335752a2495be37181"></a><!-- doxytag: member="cpl_port.h::CPL_LSBPTR32" ref="a6d4314906e1cb7335752a2495be37181" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_LSBPTR32</b>(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a727af4d9833144fd7a6caff69e0909c2"></a><!-- doxytag: member="cpl_port.h::CPL_MSBPTR32" ref="a727af4d9833144fd7a6caff69e0909c2" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_MSBPTR32</b>(x) CPL_SWAP32PTR(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1626733fe6ccd6bbc1491c8d6025f041"></a><!-- doxytag: member="cpl_port.h::CPL_LSBPTR64" ref="a1626733fe6ccd6bbc1491c8d6025f041" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_LSBPTR64</b>(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c0fc135da1ac4a90cd99d02edc45df8"></a><!-- doxytag: member="cpl_port.h::CPL_MSBPTR64" ref="a7c0fc135da1ac4a90cd99d02edc45df8" args="(x)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_MSBPTR64</b>(x) CPL_SWAP64PTR(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cpl__port_8h.html#a755da5fa59538492400a5bd307c031a1">CPL_LSBINT16PTR</a>(x) ((*(GByte*)(x)) | ((*(GByte*)((x)+1)) << 8))</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cpl__port_8h.html#af72e1057b319104ad747034145ec37ec">CPL_LSBINT32PTR</a>(x)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>CPL_CVSID</b>(string)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab555219f8d323e6054c93dde4a8b2f8"></a><!-- doxytag: member="cpl_port.h::CPL_PRINT_FUNC_FORMAT" ref="aab555219f8d323e6054c93dde4a8b2f8" args="(format_idx, arg_idx)" --> #define </td><td class="memItemRight" valign="bottom"><b>CPL_PRINT_FUNC_FORMAT</b>(format_idx, arg_idx)</td></tr> <tr><td colspan="2"><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af19adaeb9a6dd7c664fc6f79e426854a"></a><!-- doxytag: member="cpl_port.h::GInt32" ref="af19adaeb9a6dd7c664fc6f79e426854a" args="" --> typedef int </td><td class="memItemRight" valign="bottom"><b>GInt32</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa623244ca15b034795eb015e4dec224d"></a><!-- doxytag: member="cpl_port.h::GUInt32" ref="aa623244ca15b034795eb015e4dec224d" args="" --> typedef unsigned int </td><td class="memItemRight" valign="bottom"><b>GUInt32</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5908e4f9dfeafe8ffea41b7df0f46401"></a><!-- doxytag: member="cpl_port.h::GInt16" ref="a5908e4f9dfeafe8ffea41b7df0f46401" args="" --> typedef short </td><td class="memItemRight" valign="bottom"><b>GInt16</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae3f75cbefcae55ad473e17f37c9f87aa"></a><!-- doxytag: member="cpl_port.h::GUInt16" ref="ae3f75cbefcae55ad473e17f37c9f87aa" args="" --> typedef unsigned short </td><td class="memItemRight" valign="bottom"><b>GUInt16</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7fbc84d3d1f7a40973be07382e28401"></a><!-- doxytag: member="cpl_port.h::GByte" ref="ae7fbc84d3d1f7a40973be07382e28401" args="" --> typedef unsigned char </td><td class="memItemRight" valign="bottom"><b>GByte</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7554474b2a855e1415bb69e72748046a"></a><!-- doxytag: member="cpl_port.h::GBool" ref="a7554474b2a855e1415bb69e72748046a" args="" --> typedef int </td><td class="memItemRight" valign="bottom"><b>GBool</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4f1fd7d2338bb38f28bdf32a0724e83"></a><!-- doxytag: member="cpl_port.h::GIntBig" ref="af4f1fd7d2338bb38f28bdf32a0724e83" args="" --> typedef long long </td><td class="memItemRight" valign="bottom"><b>GIntBig</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f0794a0fb78d55ba284a414191dbc93"></a><!-- doxytag: member="cpl_port.h::GUIntBig" ref="a4f0794a0fb78d55ba284a414191dbc93" args="" --> typedef unsigned long long </td><td class="memItemRight" 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 class="anchor" id="a73385aba7e32e9929e7af5ceee576379"></a><!-- doxytag: member="cpl_port.h::CPL_CVSID" ref="a73385aba7e32e9929e7af5ceee576379" args="(string)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define CPL_CVSID</td> <td>(</td> <td class="paramtype">string </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keyword">static</span> <span class="keywordtype">char</span> cpl_cvsid[] = string; \ <span class="keyword">static</span> <span class="keywordtype">char</span> *cvsid_aw() { <span class="keywordflow">return</span>( cvsid_aw() ? ((<span class="keywordtype">char</span> *) NULL) : cpl_cvsid ); } </pre></div> </div> </div> <a class="anchor" id="a755da5fa59538492400a5bd307c031a1"></a><!-- doxytag: member="cpl_port.h::CPL_LSBINT16PTR" ref="a755da5fa59538492400a5bd307c031a1" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define CPL_LSBINT16PTR</td> <td>(</td> <td class="paramtype">x </td> <td class="paramname"></td> <td> ) </td> <td> ((*(GByte*)(x)) | ((*(GByte*)((x)+1)) << 8))</td> </tr> </table> </div> <div class="memdoc"> <p>Return a Int16 from the 2 bytes ordered in LSB order at address x </p> </div> </div> <a class="anchor" id="af72e1057b319104ad747034145ec37ec"></a><!-- doxytag: member="cpl_port.h::CPL_LSBINT32PTR" ref="af72e1057b319104ad747034145ec37ec" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define CPL_LSBINT32PTR</td> <td>(</td> <td class="paramtype">x </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">((*(GByte*)(x)) | ((*(GByte*)((x)+1)) << 8) | \ ((*(GByte*)((x)+2)) << 16) | ((*(GByte*)((x)+3)) << 24)) </pre></div><p>Return a Int32 from the 4 bytes ordered in LSB order at address x </p> </div> </div> <a class="anchor" id="a89aa1f2fe53343bac285d174cdb01fcf"></a><!-- doxytag: member="cpl_port.h::CPL_SWAP16" ref="a89aa1f2fe53343bac285d174cdb01fcf" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define CPL_SWAP16</td> <td>(</td> <td class="paramtype">x </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">((GUInt16)( \ (((GUInt16)(x) & 0x00ffU) << 8) | \ (((GUInt16)(x) & 0xff00U) >> 8) )) </pre></div> </div> </div> <a class="anchor" id="ae258b3cb94fca3ab38f5c7e2d4f235e2"></a><!-- doxytag: member="cpl_port.h::CPL_SWAP16PTR" ref="ae258b3cb94fca3ab38f5c7e2d4f235e2" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define CPL_SWAP16PTR</td> <td>(</td> <td class="paramtype">x </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">{ \ GByte byTemp, *_pabyDataT = (GByte *) (x); \ \ byTemp = _pabyDataT[0]; \ _pabyDataT[0] = _pabyDataT[1]; \ _pabyDataT[1] = byTemp; \ } </pre></div> </div> </div> <a class="anchor" id="a9566d5e15283625250737afde23eb993"></a><!-- doxytag: member="cpl_port.h::CPL_SWAP32" ref="a9566d5e15283625250737afde23eb993" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define CPL_SWAP32</td> <td>(</td> <td class="paramtype">x </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">((GUInt32)( \ (((GUInt32)(x) & (GUInt32)0x000000ffUL) << 24) | \ (((GUInt32)(x) & (GUInt32)0x0000ff00UL) << 8) | \ (((GUInt32)(x) & (GUInt32)0x00ff0000UL) >> 8) | \ (((GUInt32)(x) & (GUInt32)0xff000000UL) >> 24) )) </pre></div> </div> </div> <a class="anchor" id="a4833afef89c20664ee490ac98d4f13a4"></a><!-- doxytag: member="cpl_port.h::CPL_SWAP32PTR" ref="a4833afef89c20664ee490ac98d4f13a4" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define CPL_SWAP32PTR</td> <td>(</td> <td class="paramtype">x </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">{ \ GByte byTemp, *_pabyDataT = (GByte *) (x); \ \ byTemp = _pabyDataT[0]; \ _pabyDataT[0] = _pabyDataT[3]; \ _pabyDataT[3] = byTemp; \ byTemp = _pabyDataT[1]; \ _pabyDataT[1] = _pabyDataT[2]; \ _pabyDataT[2] = byTemp; \ } </pre></div> </div> </div> <a class="anchor" id="a449e7c6a7346a23690fcaa1391d1ae2f"></a><!-- doxytag: member="cpl_port.h::CPL_SWAP64PTR" ref="a449e7c6a7346a23690fcaa1391d1ae2f" args="(x)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define CPL_SWAP64PTR</td> <td>(</td> <td class="paramtype">x </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">{ \ GByte byTemp, *_pabyDataT = (GByte *) (x); \ \ byTemp = _pabyDataT[0]; \ _pabyDataT[0] = _pabyDataT[7]; \ _pabyDataT[7] = byTemp; \ byTemp = _pabyDataT[1]; \ _pabyDataT[1] = _pabyDataT[6]; \ _pabyDataT[6] = byTemp; \ byTemp = _pabyDataT[2]; \ _pabyDataT[2] = _pabyDataT[5]; \ _pabyDataT[5] = byTemp; \ byTemp = _pabyDataT[3]; \ _pabyDataT[3] = _pabyDataT[4]; \ _pabyDataT[4] = byTemp; \ } </pre></div> </div> </div> </div> <hr> Generated for GDAL by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.6.2-20100208. </body> </html>