| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> |
| <title>oscl_scheduler.h Source File</title> |
| <link href="doxygen.css" rel="stylesheet" type="text/css"> |
| </head><body> |
| <!-- Generated by Doxygen 1.2.18 --> |
| <center> |
| <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> |
| <hr><h1>oscl_scheduler.h</h1><a href="oscl__scheduler_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 |
| 00013 <span class="preprocessor">#ifndef OSCL_SCHEDULER_H_INCLUDED</span> |
| 00014 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_SCHEDULER_H_INCLUDED</span> |
| 00015 <span class="preprocessor"></span> |
| 00016 <span class="preprocessor">#ifndef OSCL_SCHEDULER_TYPES_H_INCLUDED</span> |
| 00017 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__scheduler__types_8h.html">oscl_scheduler_types.h</a>"</span> |
| 00018 <span class="preprocessor">#endif</span> |
| 00019 <span class="preprocessor"></span> |
| 00020 <span class="preprocessor">#ifndef OSCL_SCHEDULER_AO_H_INCLUDED</span> |
| 00021 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__scheduler__ao_8h.html">oscl_scheduler_ao.h</a>"</span> |
| 00022 <span class="preprocessor">#endif</span> |
| 00023 <span class="preprocessor"></span> |
| 00024 <span class="preprocessor">#ifndef OSCL_SCHEDULER_THREADCONTEXT_H_INCLUDED</span> |
| 00025 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__scheduler__threadcontext_8h.html">oscl_scheduler_threadcontext.h</a>"</span> |
| 00026 <span class="preprocessor">#endif</span> |
| 00027 <span class="preprocessor"></span> |
| 00028 <span class="preprocessor">#ifndef OSCL_MUTEX_H_INCLUDED</span> |
| 00029 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__mutex_8h.html">oscl_mutex.h</a>"</span> |
| 00030 <span class="preprocessor">#endif</span> |
| 00031 <span class="preprocessor"></span> |
| 00032 <span class="preprocessor">#ifndef OSCL_SEMAPHORE_H_INCLUDED</span> |
| 00033 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__semaphore_8h.html">oscl_semaphore.h</a>"</span> |
| 00034 <span class="preprocessor">#endif</span> |
| 00035 <span class="preprocessor"></span> |
| 00036 <span class="preprocessor">#ifndef OSCL_SCHEDULER_READYQ_H_INCLUDED</span> |
| 00037 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__scheduler__readyq_8h.html">oscl_scheduler_readyq.h</a>"</span> |
| 00038 <span class="preprocessor">#endif</span> |
| 00039 <span class="preprocessor"></span> |
| 00040 <span class="preprocessor">#ifndef OSCL_DEFALLOC_H_INCLUDED</span> |
| 00041 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__defalloc_8h.html">oscl_defalloc.h</a>"</span> |
| 00042 <span class="preprocessor">#endif</span> |
| 00043 <span class="preprocessor"></span> |
| 00044 <span class="preprocessor">#ifndef OSCL_MEM_H_INCLUDED</span> |
| 00045 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__mem_8h.html">oscl_mem.h</a>"</span> |
| 00046 <span class="preprocessor">#endif</span> |
| 00047 <span class="preprocessor"></span> |
| 00048 <span class="keyword">class </span><a class="code" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a>; |
| 00049 <span class="keyword">class </span>OsclCoeActiveScheduler; |
| 00050 |
| 00051 |
| <a name="l00055"></a><a class="code" href="classOsclScheduler.html">00055</a> <span class="keyword">class </span><a class="code" href="classOsclScheduler.html">OsclScheduler</a> |
| 00056 { |
| 00057 <span class="keyword">public</span>: |
| 00067 OSCL_IMPORT_REF <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classOsclScheduler.html#d0">Init</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> *alloc = <a class="code" href="group__osclbase.html#a81">NULL</a>, <span class="keywordtype">int</span> nreserve = 20); |
| 00068 |
| 00069 |
| 00074 OSCL_IMPORT_REF <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classOsclScheduler.html#d1">Cleanup</a>(); |
| 00075 }; |
| 00076 |
| 00077 |
| <a name="l00082"></a><a class="code" href="group__osclproc.html#a9">00082</a> <span class="preprocessor">#define PVSCHEDNAMELEN 30</span> |
| 00083 <span class="preprocessor"></span> |
| 00084 <span class="keyword">class </span><a class="code" href="classPVSchedulerStopper.html">PVSchedulerStopper</a>; |
| 00085 <span class="keyword">class </span>PVJump; |
| 00086 <span class="keyword">class </span><a class="code" href="classPVLogger.html">PVLogger</a>; |
| 00087 |
| <a name="l00095"></a><a class="code" href="classOsclSchedulerObserver.html">00095</a> <span class="keyword">class </span><a class="code" href="classOsclSchedulerObserver.html">OsclSchedulerObserver</a> |
| 00096 { |
| 00097 <span class="keyword">public</span>: |
| 00107 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSchedulerObserver.html#a0">OsclSchedulerTimerCallback</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* aContext, uint32 aDelayMsec) = 0; |
| 00108 |
| 00118 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclSchedulerObserver.html#a1">OsclSchedulerReadyCallback</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* aContext) = 0; |
| 00119 |
| <a name="l00120"></a><a class="code" href="classOsclSchedulerObserver.html#a2">00120</a> <span class="keyword">virtual</span> <a class="code" href="classOsclSchedulerObserver.html#a2">~OsclSchedulerObserver</a>() {} |
| 00121 }; |
| 00122 |
| 00123 |
| 00124 <span class="comment">/*</span> |
| 00125 <span class="comment">** A common base class for variations of OsclExecScheduler</span> |
| 00126 <span class="comment">**/</span> |
| 00127 |
| <a name="l00128"></a><a class="code" href="classOsclExecSchedulerCommonBase.html">00128</a> <span class="keyword">class </span><a class="code" href="classOsclExecSchedulerCommonBase.html">OsclExecSchedulerCommonBase</a> |
| 00129 { |
| 00130 <span class="keyword">public</span>: |
| 00140 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#a0">StartScheduler</a>(<a class="code" href="classOsclSemaphore.html">OsclSemaphore</a> *sem = <a class="code" href="group__osclbase.html#a81">NULL</a>); |
| 00141 |
| 00146 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#a1">StopScheduler</a>(); |
| 00147 |
| 00152 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#a2">SuspendScheduler</a>(); |
| 00153 |
| 00158 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#a3">ResumeScheduler</a>(); |
| 00159 |
| 00165 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#a4">StartNativeScheduler</a>(); |
| 00166 |
| 00170 OSCL_IMPORT_REF <span class="keyword">static</span> <a class="code" href="classOsclNameString.html">OsclNameString<PVSCHEDNAMELEN></a> *<a class="code" href="classOsclExecSchedulerCommonBase.html#d0">GetName</a>(); |
| 00171 |
| 00175 OSCL_IMPORT_REF <span class="keyword">static</span> uint32 <a class="code" href="classOsclExecSchedulerCommonBase.html#d1">GetId</a>(); |
| 00176 |
| 00177 |
| 00178 <span class="keyword">protected</span>: |
| 00179 <span class="comment">/*</span> |
| 00180 <span class="comment"> static OsclExecScheduler *NewL(const char *name,Oscl_DefAlloc *a,int nreserve);</span> |
| 00181 <span class="comment"> */</span> |
| 00182 <span class="keyword">virtual</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b0">~OsclExecSchedulerCommonBase</a>(); |
| 00183 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b1">InstallScheduler</a>(); |
| 00184 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b2">UninstallScheduler</a>(); |
| <a name="l00185"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#l0">00185</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclScheduler.html">OsclScheduler</a>; |
| 00186 |
| 00187 <span class="keyword">protected</span>: |
| 00188 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b3">Error</a>(int32 anError) <span class="keyword">const</span>; |
| 00189 |
| 00190 <span class="keyword">protected</span>: |
| 00191 <span class="keyword">static</span> <a class="code" href="classOsclExecSchedulerCommonBase.html">OsclExecSchedulerCommonBase</a>* <a class="code" href="classOsclExecSchedulerCommonBase.html#e0">GetScheduler</a>(); |
| 00192 <span class="keyword">static</span> <a class="code" href="classOsclExecSchedulerCommonBase.html">OsclExecSchedulerCommonBase</a>* <a class="code" href="classOsclExecSchedulerCommonBase.html#e1">SetScheduler</a>(<a class="code" href="classOsclExecSchedulerCommonBase.html">OsclExecSchedulerCommonBase</a>*); |
| <a name="l00193"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#l1">00193</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPVThreadContext.html">PVThreadContext</a>; |
| <a name="l00194"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#l2">00194</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclExecSchedulerCommonBase.html#l2">OsclCoeActiveScheduler</a>; |
| 00195 |
| 00196 <span class="keyword">protected</span>: |
| 00197 <a class="code" href="classOsclExecSchedulerCommonBase.html#b4">OsclExecSchedulerCommonBase</a>(<a class="code" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a>*); |
| 00198 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b5">ConstructL</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span>); |
| 00199 |
| 00200 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b6">BeginScheduling</a>(<span class="keywordtype">bool</span> blocking, <span class="keywordtype">bool</span> native); |
| 00201 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b7">EndScheduling</a>(); |
| 00202 |
| 00203 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b8">BlockingLoopL</a>(); |
| 00204 |
| <a name="l00205"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n0">00205</a> <span class="keywordtype">bool</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#n0">iBlockingMode</a>;<span class="comment">//current blocking mode setting.</span> |
| <a name="l00206"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n1">00206</a> <span class="keywordtype">bool</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#n1">iNativeMode</a>;<span class="comment">//current native mode setting.</span> |
| 00207 |
| 00208 <span class="keywordtype">bool</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b9">IsStarted</a>(); |
| 00209 <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b10">IsInstalled</a>(); |
| 00210 |
| 00211 <span class="comment">//Stopper AO is a special PV AO used to implement</span> |
| 00212 <span class="comment">//the StopScheduler and SuspendScheduler functions.</span> |
| <a name="l00213"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n2">00213</a> <a class="code" href="classPVSchedulerStopper.html">PVSchedulerStopper</a> *<a class="code" href="classOsclExecSchedulerCommonBase.html#n2">iStopper</a>; |
| <a name="l00214"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n3">00214</a> <a class="code" href="classOsclMutex.html">OsclNoYieldMutex</a> <a class="code" href="classOsclExecSchedulerCommonBase.html#n3">iStopperCrit</a>; |
| 00215 |
| 00216 <span class="comment">//Scheduler thread context</span> |
| <a name="l00217"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n4">00217</a> <a class="code" href="classPVThreadContext.html">PVThreadContext</a> <a class="code" href="classOsclExecSchedulerCommonBase.html#n4">iThreadContext</a>; |
| 00218 |
| 00219 <span class="comment">//Scheduler name</span> |
| <a name="l00220"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n5">00220</a> <a class="code" href="classOsclNameString.html">OsclNameString<PVSCHEDNAMELEN></a> <a class="code" href="classOsclExecSchedulerCommonBase.html#n5">iName</a>; |
| 00221 |
| 00222 <span class="comment">//For stop, suspend, and resume commands.</span> |
| <a name="l00223"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n6">00223</a> <span class="keywordtype">bool</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#n6">iDoStop</a>; |
| <a name="l00224"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n7">00224</a> <span class="keywordtype">bool</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#n7">iDoSuspend</a>; |
| <a name="l00225"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n8">00225</a> <span class="keywordtype">bool</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#n8">iSuspended</a>; |
| <a name="l00226"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n9">00226</a> <a class="code" href="classOsclSemaphore.html">OsclSemaphore</a> <a class="code" href="classOsclExecSchedulerCommonBase.html#n9">iResumeSem</a>; |
| 00227 |
| <a name="l00228"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n10">00228</a> <a class="code" href="classOsclErrorTrapImp.html">OsclErrorTrapImp</a>* <a class="code" href="classOsclExecSchedulerCommonBase.html#n10">iErrorTrapImp</a>; |
| 00229 |
| 00230 <span class="comment">//Ready AO queue. The AOs in this queue are ready to run.</span> |
| <a name="l00231"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n11">00231</a> <a class="code" href="classOsclReadyQ.html">OsclReadyQ</a> <a class="code" href="classOsclExecSchedulerCommonBase.html#n11">iReadyQ</a>; |
| 00232 |
| 00233 <span class="comment">//Pending Timer AO queue. The AOs in this queue are OsclTimerObjects</span> |
| 00234 <span class="comment">//and have a timeout pending.</span> |
| <a name="l00235"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n12">00235</a> <a class="code" href="classOsclTimerQ.html">OsclTimerQ</a> <a class="code" href="classOsclExecSchedulerCommonBase.html#n12">iExecTimerQ</a>; |
| 00236 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b11">AddToExecTimerQ</a>(<a class="code" href="classPVActiveBase.html">PVActiveBase</a> *active, uint32); |
| 00237 |
| 00238 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b12">PendComplete</a>(<a class="code" href="classPVActiveBase.html">PVActiveBase</a> *, int32 aReason, <a class="code" href="group__osclproc.html#a20">TPVThreadContext</a> aContext); |
| 00239 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b13">RequestCanceled</a>(<a class="code" href="classPVActiveBase.html">PVActiveBase</a>*); |
| 00240 |
| 00241 <span class="comment">//Scheduling loop implementation.</span> |
| 00242 <a class="code" href="classPVActiveBase.html">PVActiveBase</a>* <a class="code" href="classOsclExecSchedulerCommonBase.html#b14">UpdateTimers</a>(uint32 &aDelay); |
| 00243 <a class="code" href="classPVActiveBase.html">PVActiveBase</a>* <a class="code" href="classOsclExecSchedulerCommonBase.html#b15">UpdateTimersMsec</a>(uint32 &aDelay); |
| 00244 <a class="code" href="classPVActiveBase.html">PVActiveBase</a>* <a class="code" href="classOsclExecSchedulerCommonBase.html#b16">WaitForReadyAO</a>(); |
| 00245 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b17">CallRunExec</a>(<a class="code" href="classPVActiveBase.html">PVActiveBase</a>*); |
| 00246 |
| <a name="l00247"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#q0">00247</a> <span class="keyword">static</span> <span class="keyword">const</span> uint32 <a class="code" href="classOsclExecSchedulerCommonBase.html#q0">iTimeCompareThreshold</a>; |
| <a name="l00248"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#l3">00248</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclTimerCompare.html">OsclTimerCompare</a>; |
| <a name="l00249"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#l4">00249</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclReadyQ.html">OsclReadyQ</a>; |
| 00250 |
| <a name="l00251"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#l5">00251</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclError.html">OsclError</a>; |
| 00252 |
| 00253 |
| 00254 |
| <a name="l00255"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n13">00255</a> uint32 <a class="code" href="classOsclExecSchedulerCommonBase.html#n13">iNumAOAdded</a>;<span class="comment">//for non-fair-scheduling sorts.</span> |
| 00256 |
| 00257 <span class="comment">//For statistics</span> |
| 00258 <span class="preprocessor">#if (PV_SCHED_ENABLE_AO_STATS)</span> |
| <a name="l00259"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n14">00259</a> <span class="preprocessor"></span> <a class="code" href="classOsclDoubleList.html">OsclDoubleList<PVActiveStats></a> <a class="code" href="classOsclExecSchedulerCommonBase.html#n14">iPVStatQ</a>;<span class="comment">//queue of all PV ExecObjs.</span> |
| <a name="l00260"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#t5">00260</a> <span class="keyword">enum</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#t5">TOtherExecStats</a> |
| 00261 { |
| 00262 <a class="code" href="classOsclExecSchedulerCommonBase.html#t5t0">EOtherExecStats_WaitTime</a> <span class="comment">//scheduler wait time</span> |
| 00263 , <a class="code" href="classOsclExecSchedulerCommonBase.html#t5t1">EOtherExecStats_QueueTime</a> <span class="comment">//scheduler queue operation time</span> |
| 00264 , <a class="code" href="classOsclExecSchedulerCommonBase.html#t5t2">EOtherExecStats_NativeOS</a> <span class="comment">//time in symbian native ExecObjs, not added by PV code (symbian only)</span> |
| 00265 , <a class="code" href="classOsclExecSchedulerCommonBase.html#t5t3">EOtherExecStats_ReleaseTime</a> <span class="comment">//thread release time (Brew only)</span> |
| 00266 , <a class="code" href="classOsclExecSchedulerCommonBase.html#t5t4">EOtherExecStats_Last</a> |
| 00267 }; |
| <a name="l00268"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n15">00268</a> <a class="code" href="classPVActiveStats.html">PVActiveStats</a>* <a class="code" href="classOsclExecSchedulerCommonBase.html#n15">iOtherExecStats</a>[<a class="code" href="classOsclExecSchedulerCommonBase.html#t5t4">EOtherExecStats_Last</a>];<span class="comment">//placeholder for stats of all ExecObjs.</span> |
| 00269 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b18">ConstructStatQ</a>(); |
| 00270 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b19">BeginStats</a>(); |
| 00271 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b20">EndStats</a>(); |
| 00272 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#e2">ShowStats</a>(<a class="code" href="classPVActiveStats.html">PVActiveStats</a> *active); |
| 00273 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#e3">ShowSummaryStats</a>(<a class="code" href="classPVActiveStats.html">PVActiveStats</a> *active, <a class="code" href="classPVLogger.html">PVLogger</a>*, <a class="code" href="group__osclbase.html#a30">int64</a>, <a class="code" href="group__osclbase.html#a30">int64</a>&, <span class="keywordtype">float</span>&); |
| 00274 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b21">CleanupStatQ</a>(); |
| <a name="l00275"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n16">00275</a> uint8* <a class="code" href="classOsclExecSchedulerCommonBase.html#n16">iTotalTicksTemp</a>; |
| <a name="l00276"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n17">00276</a> <a class="code" href="group__osclbase.html#a30">int64</a> <a class="code" href="classOsclExecSchedulerCommonBase.html#n17">iGrandTotalTicks</a>; |
| <a name="l00277"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n18">00277</a> <span class="keywordtype">float</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#n18">iTotalPercent</a>; |
| <a name="l00278"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#l6">00278</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPVActiveStats.html">PVActiveStats</a>; |
| <a name="l00279"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n19">00279</a> uint32 <a class="code" href="classOsclExecSchedulerCommonBase.html#n19">iTime</a>; |
| <a name="l00280"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n20">00280</a> int32 <a class="code" href="classOsclExecSchedulerCommonBase.html#n20">iDelta</a>; |
| <a name="l00281"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n21">00281</a> <a class="code" href="classPVActiveStats.html">PVActiveStats</a>* <a class="code" href="classOsclExecSchedulerCommonBase.html#n21">iPVStats</a>; |
| 00282 <span class="preprocessor">#endif //PV_SCHED_ENABLE_AO_STATS</span> |
| 00283 <span class="preprocessor"></span> |
| 00284 <span class="comment">//Queue utils.</span> |
| 00285 <a class="code" href="classPVActiveBase.html">PVActiveBase</a> *<a class="code" href="classOsclExecSchedulerCommonBase.html#b22">FindPVBase</a>(<a class="code" href="classPVActiveBase.html">PVActiveBase</a> *active, <a class="code" href="classOsclDoubleList.html">OsclDoubleList<PVActiveBase></a> &); |
| 00286 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b23">CleanupExecQ</a>(); |
| 00287 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b24">InitExecQ</a>(<span class="keywordtype">int</span>); |
| 00288 |
| <a name="l00289"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n22">00289</a> <a class="code" href="classPVLogger.html">PVLogger</a> *<a class="code" href="classOsclExecSchedulerCommonBase.html#n22">iLogger</a>; |
| <a name="l00290"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n23">00290</a> <a class="code" href="classPVLogger.html">PVLogger</a>* <a class="code" href="classOsclExecSchedulerCommonBase.html#n23">iDebugLogger</a>; |
| 00291 |
| 00292 <span class="preprocessor">#if(PV_SCHED_ENABLE_PERF_LOGGING)</span> |
| 00293 <span class="preprocessor"></span> <span class="comment">//for perf logging</span> |
| <a name="l00294"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n24">00294</a> <span class="keywordtype">char</span>* <a class="code" href="classOsclExecSchedulerCommonBase.html#n24">iLogPerfIndentStr</a>; |
| <a name="l00295"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n25">00295</a> int32 <a class="code" href="classOsclExecSchedulerCommonBase.html#n25">iLogPerfIndentStrLen</a>; |
| <a name="l00296"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n26">00296</a> uint32 <a class="code" href="classOsclExecSchedulerCommonBase.html#n26">iLogPerfTotal</a>; |
| 00297 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b25">ResetLogPerf</a>(); |
| 00298 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b26">IncLogPerf</a>(uint32); |
| 00299 <span class="preprocessor">#endif</span> |
| 00300 <span class="preprocessor"></span> |
| <a name="l00301"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n27">00301</a> <a class="code" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> *<a class="code" href="classOsclExecSchedulerCommonBase.html#n27">iAlloc</a>;<span class="comment">//allocator for scheduler.</span> |
| <a name="l00302"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#n28">00302</a> <a class="code" href="classOsclMemAllocator.html">OsclMemAllocator</a> <a class="code" href="classOsclExecSchedulerCommonBase.html#n28">iDefAlloc</a>;<span class="comment">//default allocator</span> |
| 00303 |
| <a name="l00304"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#l7">00304</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclActiveObject.html">OsclActiveObject</a>; |
| <a name="l00305"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#l8">00305</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclTimerObject.html">OsclTimerObject</a>; |
| <a name="l00306"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#l9">00306</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPVActiveBase.html">PVActiveBase</a>; |
| <a name="l00307"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#l10">00307</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classPVSchedulerStopper.html">PVSchedulerStopper</a>; |
| 00308 |
| 00309 |
| <a name="l00310"></a><a class="code" href="classOsclExecSchedulerCommonBase.html#l11">00310</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclExecScheduler.html">OsclExecScheduler</a>; |
| 00311 }; |
| 00312 |
| 00313 <span class="keyword">class </span><a class="code" href="classOsclErrorTrapImp.html">OsclErrorTrapImp</a>; |
| 00314 |
| <a name="l00315"></a><a class="code" href="classOsclExecScheduler.html">00315</a> <span class="keyword">class </span><a class="code" href="classOsclExecScheduler.html">OsclExecScheduler</a>: <span class="keyword">public</span> <a class="code" href="classOsclExecSchedulerCommonBase.html">OsclExecSchedulerCommonBase</a> |
| 00316 , <span class="keyword">public</span> <a class="code" href="classOsclExecSchedulerBase.html">OsclExecSchedulerBase</a> |
| 00317 { |
| 00318 <span class="keyword">public</span>: |
| 00323 OSCL_IMPORT_REF <span class="keyword">static</span> <a class="code" href="classOsclExecScheduler.html">OsclExecScheduler</a>* <a class="code" href="classOsclExecScheduler.html#d0">Current</a>(); |
| 00324 |
| 00347 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOsclExecScheduler.html#a0">RunSchedulerNonBlocking</a>(int32 aTargetCount, int32 &aReady, uint32 &aDelayMsec); |
| 00348 |
| 00356 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOsclExecScheduler.html#a1">RegisterForCallback</a>(<a class="code" href="classOsclSchedulerObserver.html">OsclSchedulerObserver</a>* aCallback, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* aCallbackContext); |
| 00357 |
| 00358 |
| 00359 <span class="keyword">private</span>: |
| 00360 <span class="keyword">static</span> <a class="code" href="classOsclExecScheduler.html">OsclExecScheduler</a> *NewL(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <a class="code" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> *a, <span class="keywordtype">int</span> nreserve); |
| 00361 ~<a class="code" href="classOsclExecScheduler.html">OsclExecScheduler</a>(); |
| <a name="l00362"></a><a class="code" href="classOsclExecScheduler.html#l0">00362</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclScheduler.html">OsclScheduler</a>; |
| 00363 |
| 00364 |
| 00365 <a class="code" href="classOsclExecSchedulerCommonBase.html#l11">OsclExecScheduler</a>(<a class="code" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a>*); |
| 00366 <span class="keywordtype">void</span> <a class="code" href="classOsclExecSchedulerCommonBase.html#b5">ConstructL</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span>); |
| 00367 |
| 00368 }; |
| 00369 |
| 00370 |
| <a name="l00375"></a><a class="code" href="classPVSchedulerStopper.html">00375</a> <span class="keyword">class </span><a class="code" href="classPVSchedulerStopper.html">PVSchedulerStopper</a>: <span class="keyword">public</span> <a class="code" href="classOsclActiveObject.html">OsclActiveObject</a> |
| 00376 { |
| 00377 <span class="keyword">public</span>: |
| 00378 <a class="code" href="classPVSchedulerStopper.html#a0">PVSchedulerStopper</a>(); |
| 00379 <a class="code" href="classPVSchedulerStopper.html#a1">~PVSchedulerStopper</a>(); |
| 00380 <span class="keyword">private</span>: |
| 00381 <span class="keywordtype">void</span> <a class="code" href="classPVActiveBase.html#a4">Run</a>(); |
| 00382 }; |
| 00383 |
| 00384 |
| 00385 <span class="preprocessor">#endif</span> |
| 00386 <span class="preprocessor"></span> |
| 00387 |
| </pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small> |
| <address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small> |
| </small></address> |
| </body> |
| </html> |