1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> 3<title>oscl_base_macros.h Source File</title> 4<link href="doxygen.css" rel="stylesheet" type="text/css"> 5</head><body> 6<!-- Generated by Doxygen 1.2.18 --> 7<center> 8<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> </center> 9<hr><h1>oscl_base_macros.h</h1><a href="oscl__base__macros_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">// -*- c++ -*-</span> 1000002 <span class="comment">// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =</span> 1100003 1200004 <span class="comment">// O S C L B A S E _ M A C R O S</span> 1300005 1400006 <span class="comment">// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =</span> 1500007 1600018 <span class="preprocessor">#ifndef OSCL_BASE_MACROS_H_INCLUDED</span> 1700019 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_BASE_MACROS_H_INCLUDED</span> 1800020 <span class="preprocessor"></span> 1900021 <span class="comment">// Pick up any platform-specific definitions for the common</span> 2000022 <span class="comment">// macros.</span> 2100023 <span class="preprocessor">#include "<a class="code" href="osclconfig_8h.html">osclconfig.h</a>"</span> 2200024 2300025 <span class="comment">// Define default values for the common macros</span> 2400026 <span class="preprocessor">#ifndef OSCL_EXPORT_REF</span> 2500027 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_EXPORT_REF</span> 2600028 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 2700029 <span class="preprocessor"></span> 2800030 <span class="preprocessor">#ifndef OSCL_IMPORT_REF</span> 2900031 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_IMPORT_REF</span> 3000032 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 3100033 <span class="preprocessor"></span> 3200035 <span class="comment">//static const char NULL_TERM_CHAR = '\0';</span> 3300036 <span class="preprocessor">#ifndef NULL_TERM_CHAR</span> 34<a name="l00037"></a><a class="code" href="group__osclbase.html#a80">00037</a> <span class="preprocessor"></span><span class="preprocessor">#define NULL_TERM_CHAR '\0'</span> 3500038 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 3600039 <span class="preprocessor"></span> 3700041 <span class="preprocessor">#ifndef NULL</span> 38<a name="l00042"></a><a class="code" href="group__osclbase.html#a81">00042</a> <span class="preprocessor"></span><span class="preprocessor">#define NULL (0)</span> 3900043 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 4000044 <span class="preprocessor"></span> 4100045 <span class="preprocessor">#if (OSCL_DISABLE_INLINES)</span> 4200046 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_INLINE</span> 4300047 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_COND_EXPORT_REF OSCL_EXPORT_REF</span> 4400048 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_COND_IMPORT_REF OSCL_IMPORT_REF</span> 4500049 <span class="preprocessor"></span><span class="preprocessor">#else</span> 46<a name="l00050"></a><a class="code" href="group__osclbase.html#a82">00050</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_INLINE inline</span> 47<a name="l00051"></a><a class="code" href="group__osclbase.html#a83">00051</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_COND_EXPORT_REF</span> 48<a name="l00052"></a><a class="code" href="group__osclbase.html#a84">00052</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_COND_IMPORT_REF</span> 4900053 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 5000054 <span class="preprocessor"></span> 5100055 <span class="comment">//this macro may not be defined in all configurations</span> 5200056 <span class="comment">//so a default is defined here.</span> 5300057 5400059 55<a name="l00064"></a><a class="code" href="group__osclbase.html#a85">00064</a> <span class="preprocessor">#define OSCL_CONST_CAST(type,exp) ((type)(exp))</span> 56<a name="l00065"></a><a class="code" href="group__osclbase.html#a86">00065</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_STATIC_CAST(type,exp) ((type)(exp))</span> 57<a name="l00066"></a><a class="code" href="group__osclbase.html#a87">00066</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_REINTERPRET_CAST(type,exp) ((type)(exp))</span> 58<a name="l00067"></a><a class="code" href="group__osclbase.html#a88">00067</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_DYNAMIC_CAST(type, exp) ((type)(exp))</span> 5900068 <span class="preprocessor"></span> 6000069 61<a name="l00084"></a><a class="code" href="group__osclbase.html#a89">00084</a> <span class="preprocessor">#define OSCL_UNUSED_ARG(vbl) (void)(vbl)</span> 62<a name="l00085"></a><a class="code" href="group__osclbase.html#a90">00085</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_UNUSED_RETURN(value) return value</span> 6300086 <span class="preprocessor"></span> 6400087 <span class="comment">/* The __TFS__ macro is used to optionally expand to "<>" depending on the</span> 6500088 <span class="comment"> * compiler. Some compilers require it to indicate that the friend function</span> 6600089 <span class="comment"> * is a template function as specified in the standard, but others don't</span> 6700090 <span class="comment"> * like it so it will handled with a macro expansion that depends on the</span> 6800091 <span class="comment"> * compiler.</span> 6900092 <span class="comment"> */</span> 7000093 <span class="preprocessor">#ifndef __TFS__</span> 7100094 <span class="preprocessor"></span><span class="preprocessor">#define __TFS__</span> 7200095 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 7300096 <span class="preprocessor"></span> 74<a name="l00097"></a><a class="code" href="group__osclbase.html#a91">00097</a> <span class="preprocessor">#define OSCL_MIN(a,b) ((a) < (b) ? (a) : (b))</span> 75<a name="l00098"></a><a class="code" href="group__osclbase.html#a92">00098</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_MAX(a,b) ((a) > (b) ? (a) : (b))</span> 76<a name="l00099"></a><a class="code" href="group__osclbase.html#a93">00099</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_ABS(a) ((a) > (0) ? (a) : -(a))</span> 7700100 <span class="preprocessor"></span> 7800101 <span class="comment">// the syntax for explicitly calling the destructor varies on some platforms</span> 7900102 <span class="comment">// below is the default syntax as defined in the C++ standard</span> 8000103 <span class="preprocessor">#ifndef OSCL_TEMPLATED_DESTRUCTOR_CALL</span> 81<a name="l00104"></a><a class="code" href="group__osclbase.html#a94">00104</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_TEMPLATED_DESTRUCTOR_CALL(type,simple_type) type :: ~simple_type ()</span> 8200105 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 8300106 <span class="preprocessor"></span> 8400107 8500108 <span class="comment">/*</span> 8600109 <span class="comment"> * The OSCL_UNSIGNED_CONST macro is used to optionally add a suffix to the</span> 8700110 <span class="comment"> * end of integer constants to identify them as unsigned constants. It is</span> 8800111 <span class="comment"> * usually only necessary to do that for very large constants that are too</span> 8900112 <span class="comment"> * big to fit within the range of a signed integer. Some compilers will issue</span> 9000113 <span class="comment"> * warnings for that. The default behavior will be to add no suffix.</span> 9100114 <span class="comment"> */</span> 9200115 9300116 <span class="preprocessor">#ifndef OSCL_UNSIGNED_CONST</span> 94<a name="l00117"></a><a class="code" href="group__osclbase.html#a95">00117</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_UNSIGNED_CONST(x) x</span> 9500118 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 9600119 <span class="preprocessor"></span> 9700120 <span class="comment">/*</span> 9800121 <span class="comment"> * These macros are used by MTP to avoid byte aligning structures.</span> 9900122 <span class="comment"> */</span> 10000123 <span class="preprocessor">#ifndef OSCL_PACKED_VAR</span> 101<a name="l00124"></a><a class="code" href="group__osclbase.html#a96">00124</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_PACKED_VAR "error"</span> 10200125 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 10300126 <span class="preprocessor"></span> 10400127 <span class="preprocessor">#ifndef OSCL_BEGIN_PACKED</span> 105<a name="l00128"></a><a class="code" href="group__osclbase.html#a97">00128</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_BEGIN_PACKED "error"</span> 10600129 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 10700130 <span class="preprocessor"></span> 10800131 <span class="preprocessor">#ifndef OSCL_END_PACKED</span> 109<a name="l00132"></a><a class="code" href="group__osclbase.html#a98">00132</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_END_PACKED "error"</span> 11000133 <span class="preprocessor"></span><span class="preprocessor">#endif</span> 11100134 <span class="preprocessor"></span> 11200137 <span class="preprocessor">#endif // OSCL_BASE_MACROS_H_INCLUDED</span> 113</pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small> 114<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small> 115</small></address> 116</body> 117</html> 118