Statistics
| Branch: | Revision:

urtware / doc / classdiagrams / osal.svg @ 2d315870

History | View | Annotate | Download (54.35 KB)

1
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="797px" preserveAspectRatio="none" style="width:5573px;height:797px;" version="1.1" viewBox="0 0 5573 797" width="5573px" zoomAndPan="magnify"><defs><filter height="300%" id="fm4jpltjyo5jv" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="89" x="2749.5" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="387" x="2600.5" y="37.6611">Operating System Abstraction Layer (OSAL)</text><!--MD5=[3dab47d3fc3e186ff10f67819eb99ff8]
2
cluster time--><rect fill="#FFFFFF" filter="url(#fm4jpltjyo5jv)" height="121" style="stroke: #000000; stroke-width: 1.5;" width="442" x="2128" y="202.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="34" x="2332" y="217.9014">time</text><!--MD5=[48ccbfc44b1b031f9b243763d7ad5184]
3
cluster mutex--><rect fill="#FFFFFF" filter="url(#fm4jpltjyo5jv)" height="134" style="stroke: #000000; stroke-width: 1.5;" width="314" x="759" y="196.4063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="49" x="891.5" y="211.4014">mutex</text><!--MD5=[2e45f233f6bb64aa81ebe67fb6de8946]
4
cluster condition variable--><rect fill="#FFFFFF" filter="url(#fm4jpltjyo5jv)" height="450.5" style="stroke: #000000; stroke-width: 1.5;" width="726" x="14" y="196.4063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="140" x="307" y="211.4014">condition variable</text><!--MD5=[c7113df1f710ca294cbd01734aa00974]
5
cluster timer--><rect fill="#FFFFFF" filter="url(#fm4jpltjyo5jv)" height="444.5" style="stroke: #000000; stroke-width: 1.5;" width="798" x="2589" y="189.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="2967.5" y="204.9014">timer</text><!--MD5=[107bb3f79455a18bd83c75ada1ac7979]
6
cluster thread--><rect fill="#FFFFFF" filter="url(#fm4jpltjyo5jv)" height="621" style="stroke: #000000; stroke-width: 1.5;" width="1039" x="1081" y="57.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="1574.5" y="72.9014">thread</text><!--MD5=[8d74b40516bd265adb19f202ab81f40d]
7
cluster events--><rect fill="#FFFFFF" filter="url(#fm4jpltjyo5jv)" height="584" style="stroke: #000000; stroke-width: 1.5;" width="1642" x="3406" y="202.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="54" x="4200" y="217.9014">events</text><!--MD5=[b978ecedb6f4da3f32705dc09c84a7d6]
8
cluster streams--><rect fill="#FFFFFF" filter="url(#fm4jpltjyo5jv)" height="109" style="stroke: #000000; stroke-width: 1.5;" width="226" x="5056" y="208.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="64" x="5137" y="223.9014">streams</text><!--MD5=[62106fc051f244acf17caf792167c8db]
9
cluster debug--><rect fill="#FFFFFF" filter="url(#fm4jpltjyo5jv)" height="96" style="stroke: #000000; stroke-width: 1.5;" width="262" x="5300" y="215.4063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="50" x="5406" y="230.4014">debug</text><!--MD5=[3677786d1f00795918091b0110bfa4af]
10
class urt_osTime_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="86.4141" id="urt_osTime_t" style="stroke: #A80036; stroke-width: 1.5;" width="425" x="2136.5" y="229.9063"/><ellipse cx="2305.25" cy="245.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2306.0938,252.6563 L2303.6406,252.6563 L2303.6406,242.4063 L2300.5,242.4063 L2300.5,240.2656 L2309.2344,240.2656 L2309.2344,242.4063 L2306.0938,242.4063 L2306.0938,252.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="2325.75" y="250.0605">urt_osTime_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2137.5" x2="2560.5" y1="261.9063" y2="261.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2137.5" x2="2560.5" y1="269.9063" y2="269.9063"/><ellipse cx="2147.5" cy="280.9063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="231" x="2156.5" y="284.1167">urtTime2Us (t : urt_osTime_t*) : uint64_t</text><ellipse cx="2147.5" cy="293.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="189" x="2156.5" y="296.9214">urtTimeNow (void) : urt_osTime_t</text><ellipse cx="2147.5" cy="306.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="399" x="2156.5" y="309.7261">urtTimeAddUs (time : urt_osTime_t*, offset : uint32_t) : urt_osTime_t*</text><!--MD5=[532279a7a1cac9af7f32856ca2ae6b9b]
11
class urt_osMutex_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="99.2188" id="urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.5;" width="298" x="767" y="223.4063"/><ellipse cx="868.25" cy="239.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M869.0938,246.1563 L866.6406,246.1563 L866.6406,235.9063 L863.5,235.9063 L863.5,233.7656 L872.2344,233.7656 L872.2344,235.9063 L869.0938,235.9063 L869.0938,246.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="888.75" y="243.5605">urt_osMutex_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="768" x2="1064" y1="255.4063" y2="255.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="768" x2="1064" y1="263.4063" y2="263.4063"/><ellipse cx="778" cy="274.4063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="245" x="787" y="277.6167">urtMutexInit (mutex : urt_osMutex_t*) : void</text><ellipse cx="778" cy="287.2109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="253" x="787" y="290.4214">urtMutexLock (mutex : urt_osMutex_t*) : void</text><ellipse cx="778" cy="300.0156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="272" x="787" y="303.2261">urtMutexTryLock (mutex : urt_osMutex_t*) : bool</text><ellipse cx="778" cy="312.8203" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="787" y="316.0308">urtMutexUnlock (mutex : urt_osMutex_t*) : void</text><!--MD5=[52fa11869cb40c93fa7702378ddd839e]
12
class urt_osCondvarWaitStatus_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="86.4141" id="urt_osCondvarWaitStatus_t" style="stroke: #A80036; stroke-width: 1.5;" width="270" x="242" y="552.9063"/><ellipse cx="288.25" cy="568.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M292.3594,574.9063 L284.6406,574.9063 L284.6406,562.5156 L292.3594,562.5156 L292.3594,564.6719 L287.0938,564.6719 L287.0938,567.3438 L291.8594,567.3438 L291.8594,569.5 L287.0938,569.5 L287.0938,572.75 L292.3594,572.75 L292.3594,574.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="169" x="308.75" y="573.0605">urt_osCondvarWaitStatus_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="243" x2="511" y1="584.9063" y2="584.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="230" x="248" y="599.1167">URT_CONDVAR_WAITSTATUS_SIGNAL = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="248" y="611.9214">URT_CONDVAR_WAITSTATUS_BROADCAST = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="239" x="248" y="624.7261">URT_CONDVAR_WAITSTATUS_TIMEOUT = 0</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="243" x2="511" y1="631.3203" y2="631.3203"/><!--MD5=[004fc5dee471033e8e4138c1c73f0692]
13
class urt_osCondvar_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="99.2188" id="urt_osCondvar_t" style="stroke: #A80036; stroke-width: 1.5;" width="710" x="22" y="223.4063"/><ellipse cx="322.25" cy="239.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M323.0938,246.1563 L320.6406,246.1563 L320.6406,235.9063 L317.5,235.9063 L317.5,233.7656 L326.2344,233.7656 L326.2344,235.9063 L323.0938,235.9063 L323.0938,246.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="342.75" y="243.5605">urt_osCondvar_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="23" x2="731" y1="255.4063" y2="255.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="23" x2="731" y1="263.4063" y2="263.4063"/><ellipse cx="33" cy="274.4063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="283" x="42" y="277.6167">urtCondvarInit (condvar : urt_osCondvar_t*) : void</text><ellipse cx="33" cy="287.2109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="301" x="42" y="290.4214">urtCondvarSignal (condvar : urt_osCondvar_t*) : void</text><ellipse cx="33" cy="300.0156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="324" x="42" y="303.2261">urtCondvarBroadcast (condvar : urt_osCondvar_t*) : void</text><ellipse cx="33" cy="312.8203" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="684" x="42" y="316.0308">urtCondvarWait (condvar : urt_osCondvar_t*, mutex : urt_osMutex_t*, timeout : urt_delay_t) : urt_osCondvarWaitStatus_t</text><!--MD5=[93799a03260ba286abda700174f4f205]
14
class urt_osTimerCallback_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="60.8047" id="urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="2845" y="565.4063"/><ellipse cx="2915.75" cy="581.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2916.5938,588.1563 L2914.1406,588.1563 L2914.1406,577.9063 L2911,577.9063 L2911,575.7656 L2919.7344,575.7656 L2919.7344,577.9063 L2916.5938,577.9063 L2916.5938,588.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="2936.25" y="585.5605">urt_osTimerCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2846" x2="3130" y1="597.4063" y2="597.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2846" x2="3130" y1="605.4063" y2="605.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="274" x="2851" y="619.6167">urt_osTimerCallback_t (parameter : void*) : void</text><!--MD5=[0b340d7b925b1eab6a1b7e084f68a7c2]
15
class urt_osTimer_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="112.0234" id="urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.5;" width="782" x="2597" y="216.9063"/><ellipse cx="2941.75" cy="232.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2942.5938,239.6563 L2940.1406,239.6563 L2940.1406,229.4063 L2937,229.4063 L2937,227.2656 L2945.7344,227.2656 L2945.7344,229.4063 L2942.5938,229.4063 L2942.5938,239.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="2962.25" y="237.0605">urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2598" x2="3378" y1="248.9063" y2="248.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2598" x2="3378" y1="256.9063" y2="256.9063"/><ellipse cx="2608" cy="267.9063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="2617" y="271.1167">urtTimerInit (timer : urt_osTimer_t*) : void</text><ellipse cx="2608" cy="280.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="705" x="2617" y="283.9214">urtTimerSet (timer : urt_osTimer_t*, delay : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t</text><ellipse cx="2608" cy="293.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="756" x="2617" y="296.7261">urtTimerSetPeriodic (timer : urt_osTimer_t*, period : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t</text><ellipse cx="2608" cy="306.3203" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="300" x="2617" y="309.5308">urtTimerReset (timer : urt_osTimer_t*) : urt_status_t</text><ellipse cx="2608" cy="319.125" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="2617" y="322.3354">urtTimerIsArmed (timer : urt_osTimer_t*) : bool</text><!--MD5=[86c16d91227b9a9ec3b6b9b0285de4e9]
16
class urt_osThreadPrio_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="150.4375" id="urt_osThreadPrio_t" style="stroke: #A80036; stroke-width: 1.5;" width="197" x="1089.5" y="520.9063"/><ellipse cx="1125.65" cy="536.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1126.4938,543.6563 L1124.0406,543.6563 L1124.0406,533.4063 L1120.9,533.4063 L1120.9,531.2656 L1129.6344,531.2656 L1129.6344,533.4063 L1126.4938,533.4063 L1126.4938,543.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1144.35" y="541.0605">urt_osThreadPrio_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1090.5" x2="1285.5" y1="552.9063" y2="552.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="1095.5" y="567.1167">URT_THREAD_PRIO_LOW_MIN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="163" x="1095.5" y="579.9214">URT_THREAD_PRIO_LOW_MAX</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="182" x="1095.5" y="592.7261">URT_THREAD_PRIO_NORMAL_MIN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="1095.5" y="605.5308">URT_THREAD_PRIO_NORMAL_MAX</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="164" x="1095.5" y="618.3354">URT_THREAD_PRIO_HIGH_MIN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="167" x="1095.5" y="631.1401">URT_THREAD_PRIO_HIGH_MAX</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="1095.5" y="643.9448">URT_THREAD_PRIO_RT_MIN</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="1095.5" y="656.7495">URT_THREAD_PRIO_RT_MAX</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1090.5" x2="1285.5" y1="663.3438" y2="663.3438"/><!--MD5=[69d8aab9aa387a2f5052ea3da80e80ea]
17
class urt_osThreadFunction_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="60.8047" id="urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="1322" y="565.4063"/><ellipse cx="1369.75" cy="581.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1370.5938,588.1563 L1368.1406,588.1563 L1368.1406,577.9063 L1365,577.9063 L1365,575.7656 L1373.7344,575.7656 L1373.7344,577.9063 L1370.5938,577.9063 L1370.5938,588.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="1390.25" y="585.5605">urt_osThreadFunction_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1323" x2="1573" y1="597.4063" y2="597.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1323" x2="1573" y1="605.4063" y2="605.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="1328" y="619.6167">urt_osThreadFunction_t (arg : void*) : void</text><!--MD5=[ab5f611d45c3fa10609c33f780d8c3e1]
18
class urt_osThreadTerminateSignal_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="73.6094" id="urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="1609" y="558.9063"/><ellipse cx="1630.75" cy="574.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1634.8594,580.9063 L1627.1406,580.9063 L1627.1406,568.5156 L1634.8594,568.5156 L1634.8594,570.6719 L1629.5938,570.6719 L1629.5938,573.3438 L1634.3594,573.3438 L1634.3594,575.5 L1629.5938,575.5 L1629.5938,578.75 L1634.8594,578.75 L1634.8594,580.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="195" x="1646.25" y="579.0605">urt_osThreadTerminateSignal_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1610" x2="1850" y1="590.9063" y2="590.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="230" x="1615" y="605.1167">URT_THREAD_TERMINATE_REQUEST = 15</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="1615" y="617.9214">URT_THREAD_TERMINATE_KILL = 9</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1610" x2="1850" y1="624.5156" y2="624.5156"/><!--MD5=[47d14ad2c233fae1b32b8d0a283e820a]
19
class urt_osThreadState_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="137.6328" id="urt_osThreadState_t" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="1886" y="526.9063"/><ellipse cx="1930.75" cy="542.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1934.8594,548.9063 L1927.1406,548.9063 L1927.1406,536.5156 L1934.8594,536.5156 L1934.8594,538.6719 L1929.5938,538.6719 L1929.5938,541.3438 L1934.3594,541.3438 L1934.3594,543.5 L1929.5938,543.5 L1929.5938,546.75 L1934.8594,546.75 L1934.8594,548.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="128" x="1951.25" y="547.0605">urt_osThreadState_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1887" x2="2111" y1="558.9063" y2="558.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="1892" y="573.1167">URT_THREAD_STATE_INACTIVE = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="1892" y="585.9214">URT_THREAD_STATE_RUNNING = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="180" x="1892" y="598.7261">URT_THREAD_STATE_READY = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="1892" y="611.5308">URT_THREAD_STATE_SLEEPING = 3</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="213" x="1892" y="624.3354">URT_THREAD_STATE_SUSPENDED = 4</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="1892" y="637.1401">URT_THREAD_STATE_WAITING = 5</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="214" x="1892" y="649.9448">URT_THREAD_STATE_TERMINATED = 6</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1887" x2="2111" y1="656.5391" y2="656.5391"/><!--MD5=[0a16224ede9ffa9bb2d34e085a076e6d]
20
class urt_osThread_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="376.1172" id="urt_osThread_t" style="stroke: #A80036; stroke-width: 1.5;" width="560" x="1450" y="84.9063"/><ellipse cx="1678.75" cy="100.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1679.5938,107.6563 L1677.1406,107.6563 L1677.1406,97.4063 L1674,97.4063 L1674,95.2656 L1682.7344,95.2656 L1682.7344,97.4063 L1679.5938,97.4063 L1679.5938,107.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="94" x="1699.25" y="105.0605">urt_osThread_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1451" x2="2009" y1="116.9063" y2="116.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="179" x="1456" y="131.1167">URT_THREAD_SLEEP_MAX : float</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1456" y="143.9214">URT_THREAD_SSLEP_MAX : urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="225" x="1456" y="156.7261">URT_THREAD_MSLEEP_MAX : urt_delay_t</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="224" x="1456" y="169.5308">URT_THREAD_USLEEP_MAX : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1451" x2="2009" y1="176.125" y2="176.125"/><ellipse cx="1461" cy="187.125" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="248" x="1470" y="190.3354">URT_THREAD_MEMORY (varname, stacksize)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1451" x2="2009" y1="196.9297" y2="196.9297"/><ellipse cx="1461" cy="207.9297" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="534" x="1470" y="211.1401">urtThreadInit (memory : void*, size : size_t, func : urt_osThreadFunction_t*) : urt_osThread_t*</text><ellipse cx="1461" cy="220.7344" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="490" x="1470" y="223.9448">urtThreadStart (thread : urt_osThread_t*, prio : urt_osThreadPrio_t, arg : void*) : void</text><ellipse cx="1461" cy="233.5391" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="153" x="1470" y="236.7495">urtThreadYield (void) : void</text><ellipse cx="1461" cy="246.3438" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="1470" y="249.5542">urtThreadGetPriority (void) : urt_osThreadPrio_t</text><ellipse cx="1461" cy="259.1484" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="304" x="1470" y="262.3589">urtThreadSetPriority (prio : urt_osThreadPrio_t) : void</text><ellipse cx="1461" cy="271.9531" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="294" x="1470" y="275.1636">urtThreadSuspend (thread : urt_osThread_t*) : void</text><ellipse cx="1461" cy="284.7578" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="335" x="1470" y="287.9683">urtThreadResume (thread : urt_osThread_t*) : urt_status_t</text><ellipse cx="1461" cy="297.5625" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="220" x="1470" y="300.7729">urtThreadSleep (seconds : float) : void</text><ellipse cx="1461" cy="310.3672" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="265" x="1470" y="313.5776">urtThreadSSleep (seconds : urt_delay_t) : void</text><ellipse cx="1461" cy="323.1719" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="289" x="1470" y="326.3823">urtThreadMSleep (milliseconds : urt_delay_t) : void</text><ellipse cx="1461" cy="335.9766" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="297" x="1470" y="339.187">urtThreadUSleep (microseconds : urt_delay_t) : void</text><ellipse cx="1461" cy="348.7813" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="271" x="1470" y="351.9917">urtThreadSleepUntil (time : urt_osTime_t) : void</text><ellipse cx="1461" cy="361.5859" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="1470" y="364.7964">urtThreadExit (void) : void</text><ellipse cx="1461" cy="374.3906" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="518" x="1470" y="377.6011">urtThreadTerminate (thread : urt_osThread_t*, sig : urt_osThreadTerminateSignal_t) : void</text><ellipse cx="1461" cy="387.1953" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="264" x="1470" y="390.4058">urtThreadJoin (thread : urt_osThread_t*) : void</text><ellipse cx="1461" cy="400" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="387" x="1470" y="403.2104">urtThreadGetState (thread : urt_osThread_t*) : urt_osThreadState_t</text><ellipse cx="1461" cy="412.8047" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="237" x="1470" y="416.0151">urtThreadGetSelf (void) : urt_osThread_t*</text><ellipse cx="1461" cy="425.6094" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="380" x="1470" y="428.8198">urtThreadGetChildren (thread : urt_osThread_t*) : urt_osThread_t*</text><ellipse cx="1461" cy="438.4141" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="371" x="1470" y="441.6245">urtThreadGetSibling (thread : urt_osThread_t*) : urt_osThread_t*</text><ellipse cx="1461" cy="451.2188" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="370" x="1470" y="454.4292">urtThreadGetParent (thread : urt_osThread_t*) : urt_osThread_t*</text><!--MD5=[0a4e0f34d8da0ad3ed6ecf72f02e09c8]
21
class urt_osEventMask_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="60.8047" id="urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.5;" width="280" x="3414" y="565.4063"/><ellipse cx="3491.25" cy="581.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3492.0938,588.1563 L3489.6406,588.1563 L3489.6406,577.9063 L3486.5,577.9063 L3486.5,575.7656 L3495.2344,575.7656 L3495.2344,577.9063 L3492.0938,577.9063 L3492.0938,588.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="3511.75" y="585.5605">urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3415" x2="3693" y1="597.4063" y2="597.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="268" x="3420" y="611.6167">URT_EVENTMASK_MAXPRIO : urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3415" x2="3693" y1="618.2109" y2="618.2109"/><!--MD5=[dc1cc33af288560680c15dec1e56eda0]
22
class urt_osEventFlags_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="48" id="urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="4135" y="730.9063"/><ellipse cx="4150" cy="746.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4150.8438,753.6563 L4148.3906,753.6563 L4148.3906,743.4063 L4145.25,743.4063 L4145.25,741.2656 L4153.9844,741.2656 L4153.9844,743.4063 L4150.8438,743.4063 L4150.8438,753.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="4164" y="751.0605">urt_osEventFlags_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4136" x2="4284" y1="762.9063" y2="762.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4136" x2="4284" y1="770.9063" y2="770.9063"/><!--MD5=[e2bbbd64e6979bf7b755747a6c0ba948]
23
class urt_osEventWait_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="86.4141" id="urt_osEventWait_t" style="stroke: #A80036; stroke-width: 1.5;" width="162" x="3766" y="552.9063"/><ellipse cx="3789.1" cy="568.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3793.2094,574.9063 L3785.4906,574.9063 L3785.4906,562.5156 L3793.2094,562.5156 L3793.2094,564.6719 L3787.9438,564.6719 L3787.9438,567.3438 L3792.7094,567.3438 L3792.7094,569.5 L3787.9438,569.5 L3787.9438,572.75 L3793.2094,572.75 L3793.2094,574.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="3804.9" y="573.0605">urt_osEventWait_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3767" x2="3927" y1="584.9063" y2="584.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="3772" y="599.1167">URT_EVENT_WAIT_ONE = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="3772" y="611.9214">URT_EVENT_WAIT_ANY = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="3772" y="624.7261">URT_EVENT_WAIT_ALL = 2</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3767" x2="3927" y1="631.3203" y2="631.3203"/><!--MD5=[d054ac2eda12ce4b1fe5a18c9be716c1]
24
class urt_osEventListener_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="86.4141" id="urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.5;" width="494" x="3963" y="552.9063"/><ellipse cx="4138.25" cy="568.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4139.0938,575.6563 L4136.6406,575.6563 L4136.6406,565.4063 L4133.5,565.4063 L4133.5,563.2656 L4142.2344,563.2656 L4142.2344,565.4063 L4139.0938,565.4063 L4139.0938,575.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="4158.75" y="573.0605">urt_osEventListener_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3964" x2="4456" y1="584.9063" y2="584.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3964" x2="4456" y1="592.9063" y2="592.9063"/><ellipse cx="3974" cy="603.9063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="341" x="3983" y="607.1167">urtEventListenerInit (listener : urt_osEventListener_t*) : void</text><ellipse cx="3974" cy="616.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="458" x="3983" y="619.9214">urtEventListenerGetFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><ellipse cx="3974" cy="629.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="468" x="3983" y="632.7261">urtEventListenerClearFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><!--MD5=[4d6906f8b977dc26629fa492460e6327]
25
class urt_osEventSource_t--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="73.6094" id="urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.5;" width="547" x="4492.5" y="558.9063"/><ellipse cx="4697.25" cy="574.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4698.0938,581.6563 L4695.6406,581.6563 L4695.6406,571.4063 L4692.5,571.4063 L4692.5,569.2656 L4701.2344,569.2656 L4701.2344,571.4063 L4698.0938,571.4063 L4698.0938,581.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="129" x="4717.75" y="579.0605">urt_osEventSource_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4493.5" x2="5038.5" y1="590.9063" y2="590.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4493.5" x2="5038.5" y1="598.9063" y2="598.9063"/><ellipse cx="4503.5" cy="609.9063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="325" x="4512.5" y="613.1167">urtEventSourceInit (source : urt_osEventSource_t*) : void</text><ellipse cx="4503.5" cy="622.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="521" x="4512.5" y="625.9214">urtEventSourceBroadcast (source : urt_osEventSource_t*, flags : urt_osEventFlags_t) : void</text><!--MD5=[04a3b5a37031e2a4d723f19d8adf86f5]
26
class urt_events--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="86.4141" id="urt_events" style="stroke: #A80036; stroke-width: 1.5;" width="890" x="3414" y="229.9063"/><ellipse cx="3821.75" cy="245.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3825.9844,241.6719 L3820.7031,241.6719 L3820.7031,244.3438 L3825.5,244.3438 L3825.5,246.5 L3820.7031,246.5 L3820.7031,251.9063 L3818.2656,251.9063 L3818.2656,239.5156 L3825.9844,239.5156 L3825.9844,241.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="3842.25" y="250.0605">urt_events</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3415" x2="4303" y1="261.9063" y2="261.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3415" x2="4303" y1="269.9063" y2="269.9063"/><ellipse cx="3425" cy="280.9063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="864" x="3434" y="284.1167">urtEventRegister (source : urt_osEventSource_t*, listener : urt_osEventListener_t*, mask : urt_osEventMask_t, flags : urt_osEventFlags_t) : urt_status_t</text><ellipse cx="3425" cy="293.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="567" x="3434" y="296.9214">urtEventUnregister (source _ urt_osEventSource_t*, listener : urt_osEventListener_t*) : urt_status_t</text><ellipse cx="3425" cy="306.5156" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="618" x="3434" y="309.7261">urtEventWait (mask : urt_osEventMask_t, type : urt_osEventWait_t, timeout : urt_delay_t) : urt_osEventMask_t</text><!--MD5=[0cf29100c96c506429a28b45d347cc92]
27
class urt_streams--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="73.6094" id="urt_streams" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="5064.5" y="235.9063"/><ellipse cx="5127.25" cy="251.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5131.4844,247.6719 L5126.2031,247.6719 L5126.2031,250.3438 L5131,250.3438 L5131,252.5 L5126.2031,252.5 L5126.2031,257.9063 L5123.7656,257.9063 L5123.7656,245.5156 L5131.4844,245.5156 L5131.4844,247.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="5147.75" y="256.0605">urt_streams</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5065.5" x2="5272.5" y1="267.9063" y2="267.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5065.5" x2="5272.5" y1="275.9063" y2="275.9063"/><ellipse cx="5075.5" cy="286.9063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="166" x="5084.5" y="290.1167">urtPrintf(fmt : char*, ... ) : int</text><ellipse cx="5075.5" cy="299.7109" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="183" x="5084.5" y="302.9214">urtErrPrintf(fmt : char*, ... ) : int</text><!--MD5=[f106a25c06a671b3918b1a8f37571a4d]
28
class urt_debug--><rect fill="#FEFECE" filter="url(#fm4jpltjyo5jv)" height="60.8047" id="urt_debug" style="stroke: #A80036; stroke-width: 1.5;" width="245" x="5308.5" y="242.4063"/><ellipse cx="5394.75" cy="258.4063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M5398.9844,254.1719 L5393.7031,254.1719 L5393.7031,256.8438 L5398.5,256.8438 L5398.5,259 L5393.7031,259 L5393.7031,264.4063 L5391.2656,264.4063 L5391.2656,252.0156 L5398.9844,252.0156 L5398.9844,254.1719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="64" x="5415.25" y="262.5605">urt_debug</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="5309.5" x2="5552.5" y1="274.4063" y2="274.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="5309.5" x2="5552.5" y1="282.4063" y2="282.4063"/><ellipse cx="5319.5" cy="293.4063" fill="#84BE84" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="219" x="5328.5" y="296.6167">urtDebugAssert(condition : bool) : void</text><!--MD5=[7766572fa0c619a5409829048dc0b6d6]
29
link urt_osCondvar_t to urt_osCondvarWaitStatus_t--><path d="M377,322.6672 C377,383.8197 377,486.8966 377,547.447 " fill="none" id="urt_osCondvar_t-&gt;urt_osCondvarWaitStatus_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="377,552.8109,381,543.8109,377,547.8109,373,543.8109,377,552.8109" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9b2507ea88616aeae65e3c4d63560016]
30
link urt_osCondvar_t to urt_osMutex_t--><path d="M732.0347,272.9063 C741.9278,272.9063 751.8209,272.9063 761.714,272.9063 " fill="none" id="urt_osCondvar_t-&gt;urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="766.8875,272.9063,757.8875,268.9063,761.8875,272.9063,757.8875,276.9063,766.8875,272.9063" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[83094e108045c8f9585007cdb3b7cb2e]
31
link urt_osTimer_t to urt_osTimerCallback_t--><path d="M2988,329.1686 C2988,395.5304 2988,503.8818 2988,559.8755 " fill="none" id="urt_osTimer_t-&gt;urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2988,565.1277,2992,556.1277,2988,560.1277,2984,556.1277,2988,565.1277" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8d8c3240b5b2b5edf6544088e583ffa5]
32
link urt_osThread_t to urt_osThreadPrio_t--><path d="M1449.8194,434.1679 C1401.3213,462.7173 1351.5447,492.4252 1305,520.9063 C1300.4305,523.7024 1295.7736,526.5777 1291.0787,529.4973 " fill="none" id="urt_osThread_t-&gt;urt_osThreadPrio_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1286.7578,532.19,1296.5115,530.8246,1291.0012,529.5455,1292.2803,524.0352,1286.7578,532.19" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[d7d1d43fd970fb07a484642bc19fcb13]
33
link urt_osThread_t to urt_osThreadFunction_t--><path d="M1565.5514,461.2641 C1531.9406,499.7615 1500.1588,536.1641 1478.1366,561.3882 " fill="none" id="urt_osThread_t-&gt;urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1474.6872,565.3391,1483.6195,561.19,1477.9756,561.5725,1477.5931,555.9286,1474.6872,565.3391" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6564761b32ad7eeb5abb8896c72cfca5]
34
link urt_osThread_t to urt_osThreadTerminateSignal_t--><path d="M1730,461.2641 C1730,496.0264 1730,529.0804 1730,553.7388 " fill="none" id="urt_osThread_t-&gt;urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1730,558.8707,1734,549.8707,1730,553.8707,1726,549.8707,1730,558.8707" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[92ba23225d8de8f8080583fedda5e6f8]
35
link urt_osThread_t to urt_osThreadState_t--><path d="M1886.8677,461.2641 C1904.8727,482.8835 1922.3275,503.8423 1937.8923,522.5315 " fill="none" id="urt_osThread_t-&gt;urt_osThreadState_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="1941.3908,526.7324,1938.705,517.2568,1938.1911,522.8902,1932.5576,522.3763,1941.3908,526.7324" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[78b286ab2177e5f7b31e6e832d821818]
36
link urt_osThread_t to urt_osTime_t--><path d="M2010.1821,272.9063 C2050.3979,272.9063 2090.6136,272.9063 2130.8294,272.9063 " fill="none" id="urt_osThread_t-&gt;urt_osTime_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="2136.2462,272.9063,2127.2462,268.9063,2131.2462,272.9063,2127.2462,276.9063,2136.2462,272.9063" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[659af6ab57e6a38ebfd5c07c5616787c]
37
link urt_osEventListener_t to urt_osEventFlags_t--><path d="M4210,638.934 C4210,666.41 4210,701.3065 4210,725.6092 " fill="none" id="urt_osEventListener_t-&gt;urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="4210,730.6279,4214,721.6279,4210,725.6279,4206,721.6279,4210,730.6279" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[eac11679f26c499aa1c571e1f795945d]
38
link urt_osEventSource_t to urt_osEventFlags_t--><path d="M4636.3444,632.9841 C4529.2675,663.605 4380.6667,706.1005 4290.1503,731.9856 " fill="none" id="urt_osEventSource_t-&gt;urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="4285.0794,733.4357,4294.8323,734.807,4289.8867,732.0609,4292.6328,727.1153,4285.0794,733.4357" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0259cdb10c6c32168d1d17d25519d939]
39
link urt_events to urt_osEventSource_t--><path d="M3979.9114,315.9652 C4157.6614,379.2653 4486.8215,496.4855 4657.315,557.2015 " fill="none" id="urt_events-&gt;urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="4662.0627,558.8922,4654.9263,552.1046,4657.3525,557.2147,4652.2423,559.6409,4662.0627,558.8922" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0ce043e0e9532fc393f3f8836f5de19a]
40
link urt_events to urt_osEventListener_t--><path d="M3905.9732,316.1324 C3971.8181,376.7246 4091.0943,486.4859 4159.0272,548.9997 " fill="none" id="urt_events-&gt;urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="4163.025,552.6786,4159.1111,543.6408,4159.3458,549.2928,4153.6938,549.5275,4163.025,552.6786" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[430bebba9cd89d3ba8f63b2078968bca]
41
link urt_events to urt_osEventMask_t--><path d="M3818.1828,316.1324 C3757.0309,380.8933 3642.8417,501.8215 3586.7722,561.2 " fill="none" id="urt_events-&gt;urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3583.1642,565.0209,3592.2516,561.2236,3586.5971,561.3856,3586.4351,555.731,3583.1642,565.0209" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b1b185abc2161e087cab32ae7fdb2c40]
42
link urt_events to urt_osEventFlags_t--><path d="M3825.0331,315.984 C3765.7926,396.6231 3658.1579,571.8619 3749,678.9063 C3773.3308,707.5766 4004.2829,734.5873 4129.765,747.3005 " fill="none" id="urt_events-&gt;urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="4134.9214,747.8209,4126.3686,742.9372,4129.9467,747.3187,4125.5652,750.8968,4134.9214,747.8209" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[706a1974d1b474cbba7e7b0213f243a1]
43
link urt_events to urt_osEventWait_t--><path d="M3857.3941,316.1324 C3855.1609,376.2418 3851.13,484.7399 3848.7985,547.4964 " fill="none" id="urt_events-&gt;urt_osEventWait_t" style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 7.0,7.0;"/><polygon fill="#A80036" points="3848.606,552.6786,3852.9378,543.8335,3848.7919,547.682,3844.9433,543.5361,3848.606,552.6786" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[26a8c12142cd1c74058d9bea74481214]
44
@startuml
45

    
46
title **µRtWare**\nOperating System Abstraction Layer (OSAL)
47

    
48

    
49

    
50

    
51

    
52

    
53

    
54

    
55

    
56

    
57

    
58

    
59

    
60
  package "time" <<Rectangle>> {
61
    class urt_osTime_t <<T,00CFFF>> {
62
    + {method} urtTime2Us (t : urt_osTime_t*) : uint64_t
63
    + {method} urtTimeNow (void) : urt_osTime_t
64
    + {method} urtTimeAddUs (time : urt_osTime_t*, offset : uint32_t) : urt_osTime_t*
65
  }
66
}
67

    
68
  package "mutex" <<Rectangle>> {
69
    class urt_osMutex_t <<T,00CFFF>> {
70
    + {method} urtMutexInit (mutex : urt_osMutex_t*) : void
71
    + {method} urtMutexLock (mutex : urt_osMutex_t*) : void
72
    + {method} urtMutexTryLock (mutex : urt_osMutex_t*) : bool
73
    + {method} urtMutexUnlock (mutex : urt_osMutex_t*) : void
74
  }
75
}
76

    
77
  package "condition variable" <<Rectangle>> {
78
    class urt_osCondvarWaitStatus_t <<E,FF7F3F>> {
79
    URT_CONDVAR_WAITSTATUS_SIGNAL = 1
80
    URT_CONDVAR_WAITSTATUS_BROADCAST = 2
81
    URT_CONDVAR_WAITSTATUS_TIMEOUT = 0
82
  }
83

    
84
    class urt_osCondvar_t <<T,00CFFF>> {
85
    + {method} urtCondvarInit (condvar : urt_osCondvar_t*) : void
86
    + {method} urtCondvarSignal (condvar : urt_osCondvar_t*) : void
87
    + {method} urtCondvarBroadcast (condvar : urt_osCondvar_t*) : void
88
    + {method} urtCondvarWait (condvar : urt_osCondvar_t*, mutex : urt_osMutex_t*, timeout : urt_delay_t) : urt_osCondvarWaitStatus_t
89
  }
90
}
91

    
92
  package "timer" <<Rectangle>> {
93
    class urt_osTimerCallback_t <<T,00CFFF>> {
94
    urt_osTimerCallback_t (parameter : void*) : void
95
  }
96

    
97
    class urt_osTimer_t <<T,00CFFF>> {
98
    + {method} urtTimerInit (timer : urt_osTimer_t*) : void
99
    + {method} urtTimerSet (timer : urt_osTimer_t*, delay : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t
100
    + {method} urtTimerSetPeriodic (timer : urt_osTimer_t*, period : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t
101
    + {method} urtTimerReset (timer : urt_osTimer_t*) : urt_status_t
102
    + {method} urtTimerIsArmed (timer : urt_osTimer_t*) : bool
103
  }
104
} 
105

    
106
  package "thread" <<Rectangle>> {
107
    class urt_osThreadPrio_t <<T,00CFFF>> {
108
    URT_THREAD_PRIO_LOW_MIN
109
    URT_THREAD_PRIO_LOW_MAX
110
    URT_THREAD_PRIO_NORMAL_MIN
111
    URT_THREAD_PRIO_NORMAL_MAX
112
    URT_THREAD_PRIO_HIGH_MIN
113
    URT_THREAD_PRIO_HIGH_MAX
114
    URT_THREAD_PRIO_RT_MIN
115
    URT_THREAD_PRIO_RT_MAX
116
  }
117

    
118
    class urt_osThreadFunction_t <<T,00CFFF>> {
119
    urt_osThreadFunction_t (arg : void*) : void
120
  }
121

    
122
    class urt_osThreadTerminateSignal_t <<E,FF7F3F>> {
123
    URT_THREAD_TERMINATE_REQUEST = 15
124
    URT_THREAD_TERMINATE_KILL = 9
125
  }
126

    
127
    class urt_osThreadState_t <<E,FF7F3F>> {
128
    URT_THREAD_STATE_INACTIVE = 0
129
    URT_THREAD_STATE_RUNNING = 1
130
    URT_THREAD_STATE_READY = 2
131
    URT_THREAD_STATE_SLEEPING = 3
132
    URT_THREAD_STATE_SUSPENDED = 4
133
    URT_THREAD_STATE_WAITING = 5
134
    URT_THREAD_STATE_TERMINATED = 6
135
  }
136

    
137
    class urt_osThread_t <<T,00CFFF>> {
138
    URT_THREAD_SLEEP_MAX : float
139
    URT_THREAD_SSLEP_MAX : urt_delay_t
140
    URT_THREAD_MSLEEP_MAX : urt_delay_t
141
    URT_THREAD_USLEEP_MAX : urt_delay_t
142
    - -
143
    + {method} URT_THREAD_MEMORY (varname, stacksize)
144
    ..
145
    + {method} urtThreadInit (memory : void*, size : size_t, func : urt_osThreadFunction_t*) : urt_osThread_t*
146
    + {method} urtThreadStart (thread : urt_osThread_t*, prio : urt_osThreadPrio_t, arg : void*) : void
147
    + {method} urtThreadYield (void) : void
148
    + {method} urtThreadGetPriority (void) : urt_osThreadPrio_t
149
    + {method} urtThreadSetPriority (prio : urt_osThreadPrio_t) : void
150
    + {method} urtThreadSuspend (thread : urt_osThread_t*) : void
151
    + {method} urtThreadResume (thread : urt_osThread_t*) : urt_status_t
152
    + {method} urtThreadSleep (seconds : float) : void
153
    + {method} urtThreadSSleep (seconds : urt_delay_t) : void
154
    + {method} urtThreadMSleep (milliseconds : urt_delay_t) : void
155
    + {method} urtThreadUSleep (microseconds : urt_delay_t) : void
156
    + {method} urtThreadSleepUntil (time : urt_osTime_t) : void
157
    + {method} urtThreadExit (void) : void
158
    + {method} urtThreadTerminate (thread : urt_osThread_t*, sig : urt_osThreadTerminateSignal_t) : void
159
    + {method} urtThreadJoin (thread : urt_osThread_t*) : void
160
    + {method} urtThreadGetState (thread : urt_osThread_t*) : urt_osThreadState_t
161
    + {method} urtThreadGetSelf (void) : urt_osThread_t*
162
    + urtThreadGetChildren (thread : urt_osThread_t*) : urt_osThread_t*
163
    + urtThreadGetSibling (thread : urt_osThread_t*) : urt_osThread_t*
164
    + urtThreadGetParent (thread : urt_osThread_t*) : urt_osThread_t*
165
  }
166
} 
167

    
168
  package "events" <<Rectangle>> {
169
    class urt_osEventMask_t <<T,00CFFF>> {
170
    URT_EVENTMASK_MAXPRIO : urt_osEventMask_t
171
  }
172

    
173
    class urt_osEventFlags_t <<T,00CFFF>> {
174
  }
175

    
176
    class urt_osEventWait_t <<E,FF7F3F>> {
177
    URT_EVENT_WAIT_ONE = 0
178
    URT_EVENT_WAIT_ANY = 1
179
    URT_EVENT_WAIT_ALL = 2
180
  }
181

    
182
    class urt_osEventListener_t <<T,00CFFF>> {
183
    + {method} urtEventListenerInit (listener : urt_osEventListener_t*) : void
184
    + {method} urtEventListenerGetFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t
185
    + {method} urtEventListenerClearFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t
186
  }
187

    
188
    class urt_osEventSource_t <<T,00CFFF>> {
189
    + {method} urtEventSourceInit (source : urt_osEventSource_t*) : void
190
    + {method} urtEventSourceBroadcast (source : urt_osEventSource_t*, flags : urt_osEventFlags_t) : void
191
  }
192

    
193
    class urt_events <<F,E0E0E0>> {
194
    + {method} urtEventRegister (source : urt_osEventSource_t*, listener : urt_osEventListener_t*, mask : urt_osEventMask_t, flags : urt_osEventFlags_t) : urt_status_t
195
    + {method} urtEventUnregister (source _ urt_osEventSource_t*, listener : urt_osEventListener_t*) : urt_status_t
196
    + {method} urtEventWait (mask : urt_osEventMask_t, type : urt_osEventWait_t, timeout : urt_delay_t) : urt_osEventMask_t
197
  }
198
} 
199

    
200
  package "streams" <<Rectangle>> {
201
    class urt_streams <<F,E0E0E0>> {
202
    + {method} urtPrintf(fmt : char*, ... ) : int
203
    + {method} urtErrPrintf(fmt : char*, ... ) : int
204
  }
205
}
206

    
207
  package "debug" <<Rectangle>> {
208
    class urt_debug <<F,E0E0E0>> {
209
    + {method} urtDebugAssert(condition : bool) : void
210
  }
211
}
212

    
213

    
214

    
215

    
216
urt_osCondvar_t ..> urt_osCondvarWaitStatus_t
217
urt_osCondvar_t .> urt_osMutex_t
218

    
219
urt_osTimer_t ..> urt_osTimerCallback_t
220

    
221
urt_osThread_t ..> urt_osThreadPrio_t
222
urt_osThread_t ..> urt_osThreadFunction_t
223
urt_osThread_t ..> urt_osThreadTerminateSignal_t
224
urt_osThread_t ..> urt_osThreadState_t
225
urt_osThread_t .> urt_osTime_t
226

    
227
urt_osEventListener_t ..> urt_osEventFlags_t
228
urt_osEventSource_t ..> urt_osEventFlags_t
229
urt_events ..> urt_osEventSource_t
230
urt_events ..> urt_osEventListener_t
231
urt_events ..> urt_osEventMask_t
232
urt_events ..> urt_osEventFlags_t
233
urt_events ..> urt_osEventWait_t
234

    
235

    
236

    
237
@enduml
238

    
239
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
240
(GPL source distribution)
241
Java Runtime: OpenJDK Runtime Environment
242
JVM: OpenJDK 64-Bit Server VM
243
Java Version: 11.0.7+10-post-Ubuntu-2ubuntu218.04
244
Operating System: Linux
245
Default Encoding: UTF-8
246
Language: en
247
Country: US
248
--></g></svg>