• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </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 "&lt;&gt;" 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) &lt; (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) &gt; (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) &gt; (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