Statistics
| Branch: | Revision:

urtware / doc / classdiagrams / osal.svg @ 5dfd7422

History | View | Annotate | Download (51.484 KB)

1 e87bd7c7 Thomas Schöpping
<?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:5287px;height:797px;" version="1.1" viewBox="0 0 5287 797" width="5287px" zoomAndPan="magnify"><defs><filter height="300%" id="f56rinx1r6gzl" 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="2606.5" y="16.708">µRtWare</text><text fill="#000000" font-family="sans-serif" font-size="18" lengthAdjust="spacingAndGlyphs" textLength="387" x="2457.5" y="37.6611">Operating System Abstraction Layer (OSAL)</text><!--MD5=[2e45f233f6bb64aa81ebe67fb6de8946]
2
cluster condition variable--><rect fill="#FFFFFF" filter="url(#f56rinx1r6gzl)" 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]
3
cluster timer--><rect fill="#FFFFFF" filter="url(#f56rinx1r6gzl)" height="444.5" style="stroke: #000000; stroke-width: 1.5;" width="798" x="2817" y="189.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="3195.5" y="204.9014">timer</text><!--MD5=[107bb3f79455a18bd83c75ada1ac7979]
4
cluster thread--><rect fill="#FFFFFF" filter="url(#f56rinx1r6gzl)" height="621" style="stroke: #000000; stroke-width: 1.5;" width="1039" x="1073" y="57.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="52" x="1566.5" y="72.9014">thread</text><!--MD5=[8d74b40516bd265adb19f202ab81f40d]
5
cluster events--><rect fill="#FFFFFF" filter="url(#f56rinx1r6gzl)" height="584" style="stroke: #000000; stroke-width: 1.5;" width="1642" x="3634" y="202.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="54" x="4428" y="217.9014">events</text><!--MD5=[52fa11869cb40c93fa7702378ddd839e]
6
class urt_osCondvarWaitStatus_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" 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]
7
class urt_osCondvar_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" 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]
8
class urt_osTimerCallback_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="60.8047" id="urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="3073" y="565.4063"/><ellipse cx="3143.75" cy="581.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3144.5938,588.1563 L3142.1406,588.1563 L3142.1406,577.9063 L3139,577.9063 L3139,575.7656 L3147.7344,575.7656 L3147.7344,577.9063 L3144.5938,577.9063 L3144.5938,588.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="3164.25" y="585.5605">urt_osTimerCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3074" x2="3358" y1="597.4063" y2="597.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3074" x2="3358" y1="605.4063" y2="605.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="274" x="3079" y="619.6167">urt_osTimerCallback_t (parameter : void*) : void</text><!--MD5=[0b340d7b925b1eab6a1b7e084f68a7c2]
9
class urt_osTimer_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="112.0234" id="urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.5;" width="782" x="2825" y="216.9063"/><ellipse cx="3169.75" cy="232.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3170.5938,239.6563 L3168.1406,239.6563 L3168.1406,229.4063 L3165,229.4063 L3165,227.2656 L3173.7344,227.2656 L3173.7344,229.4063 L3170.5938,229.4063 L3170.5938,239.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="3190.25" y="237.0605">urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2826" x2="3606" y1="248.9063" y2="248.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2826" x2="3606" y1="256.9063" y2="256.9063"/><ellipse cx="2836" 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="2845" y="271.1167">urtTimerInit (timer : urt_osTimer_t*) : void</text><ellipse cx="2836" 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="2845" y="283.9214">urtTimerSet (timer : urt_osTimer_t*, delay : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t</text><ellipse cx="2836" 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="2845" y="296.7261">urtTimerSetPeriodic (timer : urt_osTimer_t*, period : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t</text><ellipse cx="2836" 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="2845" y="309.5308">urtTimerReset (timer : urt_osTimer_t*) : urt_status_t</text><ellipse cx="2836" 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="2845" y="322.3354">urtTimerIsArmed (timer : urt_osTimer_t*) : bool</text><!--MD5=[86c16d91227b9a9ec3b6b9b0285de4e9]
10
class urt_osThreadPrio_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="150.4375" id="urt_osThreadPrio_t" style="stroke: #A80036; stroke-width: 1.5;" width="197" x="1081.5" y="520.9063"/><ellipse cx="1117.65" cy="536.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1118.4938,543.6563 L1116.0406,543.6563 L1116.0406,533.4063 L1112.9,533.4063 L1112.9,531.2656 L1121.6344,531.2656 L1121.6344,533.4063 L1118.4938,533.4063 L1118.4938,543.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1136.35" y="541.0605">urt_osThreadPrio_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1082.5" x2="1277.5" y1="552.9063" y2="552.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="1087.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="1087.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="1087.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="1087.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="1087.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="1087.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="1087.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="1087.5" y="656.7495">URT_THREAD_PRIO_RT_MAX</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1082.5" x2="1277.5" y1="663.3438" y2="663.3438"/><!--MD5=[69d8aab9aa387a2f5052ea3da80e80ea]
11
class urt_osThreadFunction_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="60.8047" id="urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="1314" y="565.4063"/><ellipse cx="1361.75" cy="581.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1362.5938,588.1563 L1360.1406,588.1563 L1360.1406,577.9063 L1357,577.9063 L1357,575.7656 L1365.7344,575.7656 L1365.7344,577.9063 L1362.5938,577.9063 L1362.5938,588.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="1382.25" y="585.5605">urt_osThreadFunction_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1315" x2="1565" y1="597.4063" y2="597.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1315" x2="1565" y1="605.4063" y2="605.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="1320" y="619.6167">urt_osThreadFunction_t (arg : void*) : void</text><!--MD5=[ab5f611d45c3fa10609c33f780d8c3e1]
12
class urt_osThreadTerminateSignal_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="73.6094" id="urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="1601" y="558.9063"/><ellipse cx="1622.75" cy="574.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1626.8594,580.9063 L1619.1406,580.9063 L1619.1406,568.5156 L1626.8594,568.5156 L1626.8594,570.6719 L1621.5938,570.6719 L1621.5938,573.3438 L1626.3594,573.3438 L1626.3594,575.5 L1621.5938,575.5 L1621.5938,578.75 L1626.8594,578.75 L1626.8594,580.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="195" x="1638.25" y="579.0605">urt_osThreadTerminateSignal_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1842" y1="590.9063" y2="590.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="230" x="1607" y="605.1167">URT_THREAD_TERMINATE_REQUEST = 15</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="1607" y="617.9214">URT_THREAD_TERMINATE_KILL = 9</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1842" y1="624.5156" y2="624.5156"/><!--MD5=[47d14ad2c233fae1b32b8d0a283e820a]
13
class urt_osThreadState_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="137.6328" id="urt_osThreadState_t" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="1878" y="526.9063"/><ellipse cx="1922.75" cy="542.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1926.8594,548.9063 L1919.1406,548.9063 L1919.1406,536.5156 L1926.8594,536.5156 L1926.8594,538.6719 L1921.5938,538.6719 L1921.5938,541.3438 L1926.3594,541.3438 L1926.3594,543.5 L1921.5938,543.5 L1921.5938,546.75 L1926.8594,546.75 L1926.8594,548.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="128" x="1943.25" y="547.0605">urt_osThreadState_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1879" x2="2103" y1="558.9063" y2="558.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="1884" y="573.1167">URT_THREAD_STATE_INACTIVE = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="1884" y="585.9214">URT_THREAD_STATE_RUNNING = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="180" x="1884" y="598.7261">URT_THREAD_STATE_READY = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="1884" y="611.5308">URT_THREAD_STATE_SLEEPING = 3</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="213" x="1884" y="624.3354">URT_THREAD_STATE_SUSPENDED = 4</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="1884" y="637.1401">URT_THREAD_STATE_WAITING = 5</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="214" x="1884" y="649.9448">URT_THREAD_STATE_TERMINATED = 6</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1879" x2="2103" y1="656.5391" y2="656.5391"/><!--MD5=[0a16224ede9ffa9bb2d34e085a076e6d]
14
class urt_osThread_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="376.1172" id="urt_osThread_t" style="stroke: #A80036; stroke-width: 1.5;" width="560" x="1442" y="84.9063"/><ellipse cx="1670.75" cy="100.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1671.5938,107.6563 L1669.1406,107.6563 L1669.1406,97.4063 L1666,97.4063 L1666,95.2656 L1674.7344,95.2656 L1674.7344,97.4063 L1671.5938,97.4063 L1671.5938,107.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="94" x="1691.25" y="105.0605">urt_osThread_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1443" x2="2001" y1="116.9063" y2="116.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="179" x="1448" y="131.1167">URT_THREAD_SLEEP_MAX : float</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="217" x="1448" 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="1448" 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="1448" y="169.5308">URT_THREAD_USLEEP_MAX : urt_delay_t</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="1443" x2="2001" y1="176.125" y2="176.125"/><ellipse cx="1453" 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="1462" y="190.3354">URT_THREAD_MEMORY (varname, stacksize)</text><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,2.0;" x1="1443" x2="2001" y1="196.9297" y2="196.9297"/><ellipse cx="1453" 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="1462" y="211.1401">urtThreadInit (memory : void*, size : size_t, func : urt_osThreadFunction_t*) : urt_osThread_t*</text><ellipse cx="1453" 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="1462" y="223.9448">urtThreadStart (thread : urt_osThread_t*, prio : urt_osThreadPrio_t, arg : void*) : void</text><ellipse cx="1453" 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="1462" y="236.7495">urtThreadYield (void) : void</text><ellipse cx="1453" 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="1462" y="249.5542">urtThreadGetPriority (void) : urt_osThreadPrio_t</text><ellipse cx="1453" 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="1462" y="262.3589">urtThreadSetPriority (prio : urt_osThreadPrio_t) : void</text><ellipse cx="1453" 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="1462" y="275.1636">urtThreadSuspend (thread : urt_osThread_t*) : void</text><ellipse cx="1453" 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="1462" y="287.9683">urtThreadResume (thread : urt_osThread_t*) : urt_status_t</text><ellipse cx="1453" 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="1462" y="300.7729">urtThreadSleep (seconds : float) : void</text><ellipse cx="1453" 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="1462" y="313.5776">urtThreadSSleep (seconds : urt_delay_t) : void</text><ellipse cx="1453" 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="1462" y="326.3823">urtThreadMSleep (milliseconds : urt_delay_t) : void</text><ellipse cx="1453" 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="1462" y="339.187">urtThreadUSleep (microseconds : urt_delay_t) : void</text><ellipse cx="1453" 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="1462" y="351.9917">urtThreadSleepUntil (time : urt_osTime_t) : void</text><ellipse cx="1453" 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="1462" y="364.7964">urtThreadExit (void) : void</text><ellipse cx="1453" 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="1462" y="377.6011">urtThreadTerminate (thread : urt_osThread_t*, sig : urt_osThreadTerminateSignal_t) : void</text><ellipse cx="1453" 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="1462" y="390.4058">urtThreadJoin (thread : urt_osThread_t*) : void</text><ellipse cx="1453" 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="1462" y="403.2104">urtThreadGetState (thread : urt_osThread_t*) : urt_osThreadState_t</text><ellipse cx="1453" 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="1462" y="416.0151">urtThreadGetSelf (void) : urt_osThread_t*</text><ellipse cx="1453" 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="1462" y="428.8198">urtThreadGetChildren (thread : urt_osThread_t*) : urt_osThread_t*</text><ellipse cx="1453" 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="1462" y="441.6245">urtThreadGetSibling (thread : urt_osThread_t*) : urt_osThread_t*</text><ellipse cx="1453" 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="1462" y="454.4292">urtThreadGetParent (thread : urt_osThread_t*) : urt_osThread_t*</text><!--MD5=[0a4e0f34d8da0ad3ed6ecf72f02e09c8]
15
class urt_osEventMask_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="60.8047" id="urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.5;" width="280" x="3642" y="565.4063"/><ellipse cx="3719.25" cy="581.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3720.0938,588.1563 L3717.6406,588.1563 L3717.6406,577.9063 L3714.5,577.9063 L3714.5,575.7656 L3723.2344,575.7656 L3723.2344,577.9063 L3720.0938,577.9063 L3720.0938,588.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="3739.75" y="585.5605">urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3643" x2="3921" y1="597.4063" y2="597.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="268" x="3648" y="611.6167">URT_EVENTMASK_MAXPRIO : urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3643" x2="3921" y1="618.2109" y2="618.2109"/><!--MD5=[dc1cc33af288560680c15dec1e56eda0]
16
class urt_osEventFlags_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="48" id="urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="4363" y="730.9063"/><ellipse cx="4378" cy="746.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4378.8438,753.6563 L4376.3906,753.6563 L4376.3906,743.4063 L4373.25,743.4063 L4373.25,741.2656 L4381.9844,741.2656 L4381.9844,743.4063 L4378.8438,743.4063 L4378.8438,753.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="4392" y="751.0605">urt_osEventFlags_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4364" x2="4512" y1="762.9063" y2="762.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4364" x2="4512" y1="770.9063" y2="770.9063"/><!--MD5=[e2bbbd64e6979bf7b755747a6c0ba948]
17
class urt_osEventWait_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="86.4141" id="urt_osEventWait_t" style="stroke: #A80036; stroke-width: 1.5;" width="162" x="3994" y="552.9063"/><ellipse cx="4017.1" cy="568.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4021.2094,574.9063 L4013.4906,574.9063 L4013.4906,562.5156 L4021.2094,562.5156 L4021.2094,564.6719 L4015.9438,564.6719 L4015.9438,567.3438 L4020.7094,567.3438 L4020.7094,569.5 L4015.9438,569.5 L4015.9438,572.75 L4021.2094,572.75 L4021.2094,574.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="4032.9" y="573.0605">urt_osEventWait_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3995" x2="4155" y1="584.9063" y2="584.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="4000" y="599.1167">URT_EVENT_WAIT_ONE = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="4000" y="611.9214">URT_EVENT_WAIT_ANY = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="4000" y="624.7261">URT_EVENT_WAIT_ALL = 2</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3995" x2="4155" y1="631.3203" y2="631.3203"/><!--MD5=[d054ac2eda12ce4b1fe5a18c9be716c1]
18
class urt_osEventListener_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="86.4141" id="urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.5;" width="494" x="4191" y="552.9063"/><ellipse cx="4366.25" cy="568.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4367.0938,575.6563 L4364.6406,575.6563 L4364.6406,565.4063 L4361.5,565.4063 L4361.5,563.2656 L4370.2344,563.2656 L4370.2344,565.4063 L4367.0938,565.4063 L4367.0938,575.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="4386.75" y="573.0605">urt_osEventListener_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4192" x2="4684" y1="584.9063" y2="584.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4192" x2="4684" y1="592.9063" y2="592.9063"/><ellipse cx="4202" 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="4211" y="607.1167">urtEventListenerInit (listener : urt_osEventListener_t*) : void</text><ellipse cx="4202" 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="4211" y="619.9214">urtEventListenerGetFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><ellipse cx="4202" 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="4211" y="632.7261">urtEventListenerClearFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><!--MD5=[4d6906f8b977dc26629fa492460e6327]
19
class urt_osEventSource_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="73.6094" id="urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.5;" width="547" x="4720.5" y="558.9063"/><ellipse cx="4925.25" cy="574.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4926.0938,581.6563 L4923.6406,581.6563 L4923.6406,571.4063 L4920.5,571.4063 L4920.5,569.2656 L4929.2344,569.2656 L4929.2344,571.4063 L4926.0938,571.4063 L4926.0938,581.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="129" x="4945.75" y="579.0605">urt_osEventSource_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4721.5" x2="5266.5" y1="590.9063" y2="590.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4721.5" x2="5266.5" y1="598.9063" y2="598.9063"/><ellipse cx="4731.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="4740.5" y="613.1167">urtEventSourceInit (source : urt_osEventSource_t*) : void</text><ellipse cx="4731.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="4740.5" y="625.9214">urtEventSourceBroadcast (source : urt_osEventSource_t*, flags : urt_osEventFlags_t) : void</text><!--MD5=[04a3b5a37031e2a4d723f19d8adf86f5]
20
class urt_events--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="86.4141" id="urt_events" style="stroke: #A80036; stroke-width: 1.5;" width="890" x="3642" y="229.9063"/><ellipse cx="4049.75" cy="245.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4053.9844,241.6719 L4048.7031,241.6719 L4048.7031,244.3438 L4053.5,244.3438 L4053.5,246.5 L4048.7031,246.5 L4048.7031,251.9063 L4046.2656,251.9063 L4046.2656,239.5156 L4053.9844,239.5156 L4053.9844,241.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="4070.25" y="250.0605">urt_events</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3643" x2="4531" y1="261.9063" y2="261.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3643" x2="4531" y1="269.9063" y2="269.9063"/><ellipse cx="3653" 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="3662" 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="3653" 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="3662" y="296.9214">urtEventUnregister (source _ urt_osEventSource_t*, listener : urt_osEventListener_t*) : urt_status_t</text><ellipse cx="3653" 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="3662" y="309.7261">urtEventWait (mask : urt_osEventMask_t, type : urt_osEventWait_t, timeout : urt_delay_t) : urt_osEventMask_t</text><!--MD5=[3677786d1f00795918091b0110bfa4af]
21
class urt_osTime_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="86.4141" id="urt_osTime_t" style="stroke: #A80036; stroke-width: 1.5;" width="425" x="2120.5" y="229.9063"/><ellipse cx="2289.25" cy="245.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2290.0938,252.6563 L2287.6406,252.6563 L2287.6406,242.4063 L2284.5,242.4063 L2284.5,240.2656 L2293.2344,240.2656 L2293.2344,242.4063 L2290.0938,242.4063 L2290.0938,252.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="2309.75" y="250.0605">urt_osTime_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2121.5" x2="2544.5" y1="261.9063" y2="261.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2121.5" x2="2544.5" y1="269.9063" y2="269.9063"/><ellipse cx="2131.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="2140.5" y="284.1167">urtTime2Us (t : urt_osTime_t*) : uint64_t</text><ellipse cx="2131.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="2140.5" y="296.9214">urtTimeNow (void) : urt_osTime_t</text><ellipse cx="2131.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="2140.5" y="309.7261">urtTimeAddUs (time : urt_osTime_t*, offset : uint32_t) : urt_osTime_t*</text><!--MD5=[532279a7a1cac9af7f32856ca2ae6b9b]
22
class urt_osMutex_t--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" 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=[0cf29100c96c506429a28b45d347cc92]
23
class urt_streams--><rect fill="#FEFECE" filter="url(#f56rinx1r6gzl)" height="73.6094" id="urt_streams" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="2580.5" y="235.9063"/><ellipse cx="2643.25" cy="251.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2647.4844,247.6719 L2642.2031,247.6719 L2642.2031,250.3438 L2647,250.3438 L2647,252.5 L2642.2031,252.5 L2642.2031,257.9063 L2639.7656,257.9063 L2639.7656,245.5156 L2647.4844,245.5156 L2647.4844,247.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="2663.75" y="256.0605">urt_streams</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2581.5" x2="2788.5" y1="267.9063" y2="267.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2581.5" x2="2788.5" y1="275.9063" y2="275.9063"/><ellipse cx="2591.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="2600.5" y="290.1167">urtPrintf(fmt : char*, ... ) : int</text><ellipse cx="2591.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="2600.5" y="302.9214">urtErrPrintf(fmt : char*, ... ) : int</text><!--MD5=[7766572fa0c619a5409829048dc0b6d6]
24
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]
25
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]
26
link urt_osTimer_t to urt_osTimerCallback_t--><path d="M3216,329.1686 C3216,395.5304 3216,503.8818 3216,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="3216,565.1277,3220,556.1277,3216,560.1277,3212,556.1277,3216,565.1277" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8d8c3240b5b2b5edf6544088e583ffa5]
27
link urt_osThread_t to urt_osThreadPrio_t--><path d="M1441.8194,434.1679 C1393.3213,462.7173 1343.5447,492.4252 1297,520.9063 C1292.4305,523.7024 1287.7736,526.5777 1283.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="1278.7578,532.19,1288.5115,530.8246,1283.0012,529.5455,1284.2803,524.0352,1278.7578,532.19" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[d7d1d43fd970fb07a484642bc19fcb13]
28
link urt_osThread_t to urt_osThreadFunction_t--><path d="M1557.5514,461.2641 C1523.9406,499.7615 1492.1588,536.1641 1470.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="1466.6872,565.3391,1475.6195,561.19,1469.9756,561.5725,1469.5931,555.9286,1466.6872,565.3391" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6564761b32ad7eeb5abb8896c72cfca5]
29
link urt_osThread_t to urt_osThreadTerminateSignal_t--><path d="M1722,461.2641 C1722,496.0264 1722,529.0804 1722,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="1722,558.8707,1726,549.8707,1722,553.8707,1718,549.8707,1722,558.8707" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[92ba23225d8de8f8080583fedda5e6f8]
30
link urt_osThread_t to urt_osThreadState_t--><path d="M1878.8677,461.2641 C1896.8727,482.8835 1914.3275,503.8423 1929.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="1933.3908,526.7324,1930.705,517.2568,1930.1911,522.8902,1924.5576,522.3763,1933.3908,526.7324" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[78b286ab2177e5f7b31e6e832d821818]
31
link urt_osThread_t to urt_osTime_t--><path d="M2002.1411,272.9063 C2039.8661,272.9063 2077.591,272.9063 2115.316,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="2120.3973,272.9063,2111.3973,268.9063,2115.3973,272.9063,2111.3973,276.9063,2120.3973,272.9063" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[659af6ab57e6a38ebfd5c07c5616787c]
32
link urt_osEventListener_t to urt_osEventFlags_t--><path d="M4438,638.934 C4438,666.41 4438,701.3065 4438,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="4438,730.6279,4442,721.6279,4438,725.6279,4434,721.6279,4438,730.6279" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[eac11679f26c499aa1c571e1f795945d]
33
link urt_osEventSource_t to urt_osEventFlags_t--><path d="M4864.3444,632.9841 C4757.2675,663.605 4608.6667,706.1005 4518.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="4513.0794,733.4357,4522.8323,734.807,4517.8867,732.0609,4520.6328,727.1153,4513.0794,733.4357" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0259cdb10c6c32168d1d17d25519d939]
34
link urt_events to urt_osEventSource_t--><path d="M4207.9114,315.9652 C4385.6614,379.2653 4714.8215,496.4855 4885.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="4890.0627,558.8922,4882.9263,552.1046,4885.3525,557.2147,4880.2423,559.6409,4890.0627,558.8922" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0ce043e0e9532fc393f3f8836f5de19a]
35
link urt_events to urt_osEventListener_t--><path d="M4133.9732,316.1324 C4199.8181,376.7246 4319.0943,486.4859 4387.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="4391.025,552.6786,4387.1111,543.6408,4387.3458,549.2928,4381.6938,549.5275,4391.025,552.6786" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[430bebba9cd89d3ba8f63b2078968bca]
36
link urt_events to urt_osEventMask_t--><path d="M4046.1828,316.1324 C3985.0309,380.8933 3870.8417,501.8215 3814.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="3811.1642,565.0209,3820.2516,561.2236,3814.5971,561.3856,3814.4351,555.731,3811.1642,565.0209" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b1b185abc2161e087cab32ae7fdb2c40]
37
link urt_events to urt_osEventFlags_t--><path d="M4053.0331,315.984 C3993.7926,396.6231 3886.1579,571.8619 3977,678.9063 C4001.3308,707.5766 4232.2829,734.5873 4357.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="4362.9214,747.8209,4354.3686,742.9372,4357.9467,747.3187,4353.5652,750.8968,4362.9214,747.8209" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[706a1974d1b474cbba7e7b0213f243a1]
38
link urt_events to urt_osEventWait_t--><path d="M4085.3941,316.1324 C4083.1609,376.2418 4079.13,484.7399 4076.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="4076.606,552.6786,4080.9378,543.8335,4076.7919,547.682,4072.9433,543.5361,4076.606,552.6786" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[2cd818b60978bf2340a6cd28bfcfdaf9]
39 4d55cea4 Thomas Schöpping
@startuml
40
41
title **µRtWare**\nOperating System Abstraction Layer (OSAL)
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  class urt_osTime_t <<T,00CFFF>> {
56
  + {method} urtTime2Us (t : urt_osTime_t*) : uint64_t
57
  + {method} urtTimeNow (void) : urt_osTime_t
58
  + {method} urtTimeAddUs (time : urt_osTime_t*, offset : uint32_t) : urt_osTime_t*
59
}
60
61
  class urt_osMutex_t <<T,00CFFF>> {
62
  + {method} urtMutexInit (mutex : urt_osMutex_t*) : void
63
  + {method} urtMutexLock (mutex : urt_osMutex_t*) : void
64
  + {method} urtMutexTryLock (mutex : urt_osMutex_t*) : bool
65
  + {method} urtMutexUnlock (mutex : urt_osMutex_t*) : void
66
}
67
68
  package "condition variable" <<Rectangle>> {
69
    class urt_osCondvarWaitStatus_t <<E,FF7F3F>> {
70
    URT_CONDVAR_WAITSTATUS_SIGNAL = 1
71
    URT_CONDVAR_WAITSTATUS_BROADCAST = 2
72
    URT_CONDVAR_WAITSTATUS_TIMEOUT = 0
73
  }
74
75
    class urt_osCondvar_t <<T,00CFFF>> {
76
    + {method} urtCondvarInit (condvar : urt_osCondvar_t*) : void
77
    + {method} urtCondvarSignal (condvar : urt_osCondvar_t*) : void
78
    + {method} urtCondvarBroadcast (condvar : urt_osCondvar_t*) : void
79
    + {method} urtCondvarWait (condvar : urt_osCondvar_t*, mutex : urt_osMutex_t*, timeout : urt_delay_t) : urt_osCondvarWaitStatus_t
80
  }
81
}
82
83
  package "timer" <<Rectangle>> {
84
    class urt_osTimerCallback_t <<T,00CFFF>> {
85
    urt_osTimerCallback_t (parameter : void*) : void
86
  }
87
88
    class urt_osTimer_t <<T,00CFFF>> {
89
    + {method} urtTimerInit (timer : urt_osTimer_t*) : void
90
    + {method} urtTimerSet (timer : urt_osTimer_t*, delay : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t
91
    + {method} urtTimerSetPeriodic (timer : urt_osTimer_t*, period : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t
92
    + {method} urtTimerReset (timer : urt_osTimer_t*) : urt_status_t
93
    + {method} urtTimerIsArmed (timer : urt_osTimer_t*) : bool
94
  }
95
} 
96
97
  package "thread" <<Rectangle>> {
98
    class urt_osThreadPrio_t <<T,00CFFF>> {
99
    URT_THREAD_PRIO_LOW_MIN
100
    URT_THREAD_PRIO_LOW_MAX
101
    URT_THREAD_PRIO_NORMAL_MIN
102
    URT_THREAD_PRIO_NORMAL_MAX
103
    URT_THREAD_PRIO_HIGH_MIN
104
    URT_THREAD_PRIO_HIGH_MAX
105
    URT_THREAD_PRIO_RT_MIN
106
    URT_THREAD_PRIO_RT_MAX
107
  }
108
109
    class urt_osThreadFunction_t <<T,00CFFF>> {
110
    urt_osThreadFunction_t (arg : void*) : void
111
  }
112
113
    class urt_osThreadTerminateSignal_t <<E,FF7F3F>> {
114
    URT_THREAD_TERMINATE_REQUEST = 15
115
    URT_THREAD_TERMINATE_KILL = 9
116
  }
117
118
    class urt_osThreadState_t <<E,FF7F3F>> {
119
    URT_THREAD_STATE_INACTIVE = 0
120
    URT_THREAD_STATE_RUNNING = 1
121
    URT_THREAD_STATE_READY = 2
122
    URT_THREAD_STATE_SLEEPING = 3
123
    URT_THREAD_STATE_SUSPENDED = 4
124
    URT_THREAD_STATE_WAITING = 5
125
    URT_THREAD_STATE_TERMINATED = 6
126
  }
127
128
    class urt_osThread_t <<T,00CFFF>> {
129
    URT_THREAD_SLEEP_MAX : float
130
    URT_THREAD_SSLEP_MAX : urt_delay_t
131
    URT_THREAD_MSLEEP_MAX : urt_delay_t
132
    URT_THREAD_USLEEP_MAX : urt_delay_t
133
    - -
134
    + {method} URT_THREAD_MEMORY (varname, stacksize)
135
    ..
136
    + {method} urtThreadInit (memory : void*, size : size_t, func : urt_osThreadFunction_t*) : urt_osThread_t*
137
    + {method} urtThreadStart (thread : urt_osThread_t*, prio : urt_osThreadPrio_t, arg : void*) : void
138
    + {method} urtThreadYield (void) : void
139
    + {method} urtThreadGetPriority (void) : urt_osThreadPrio_t
140
    + {method} urtThreadSetPriority (prio : urt_osThreadPrio_t) : void
141
    + {method} urtThreadSuspend (thread : urt_osThread_t*) : void
142
    + {method} urtThreadResume (thread : urt_osThread_t*) : urt_status_t
143
    + {method} urtThreadSleep (seconds : float) : void
144
    + {method} urtThreadSSleep (seconds : urt_delay_t) : void
145
    + {method} urtThreadMSleep (milliseconds : urt_delay_t) : void
146
    + {method} urtThreadUSleep (microseconds : urt_delay_t) : void
147
    + {method} urtThreadSleepUntil (time : urt_osTime_t) : void
148
    + {method} urtThreadExit (void) : void
149
    + {method} urtThreadTerminate (thread : urt_osThread_t*, sig : urt_osThreadTerminateSignal_t) : void
150
    + {method} urtThreadJoin (thread : urt_osThread_t*) : void
151
    + {method} urtThreadGetState (thread : urt_osThread_t*) : urt_osThreadState_t
152
    + {method} urtThreadGetSelf (void) : urt_osThread_t*
153 e87bd7c7 Thomas Schöpping
    + urtThreadGetChildren (thread : urt_osThread_t*) : urt_osThread_t*
154
    + urtThreadGetSibling (thread : urt_osThread_t*) : urt_osThread_t*
155
    + urtThreadGetParent (thread : urt_osThread_t*) : urt_osThread_t*
156 4d55cea4 Thomas Schöpping
  }
157
} 
158
159
  package "events" <<Rectangle>> {
160
    class urt_osEventMask_t <<T,00CFFF>> {
161
    URT_EVENTMASK_MAXPRIO : urt_osEventMask_t
162
  }
163
164
    class urt_osEventFlags_t <<T,00CFFF>> {
165
  }
166
167
    class urt_osEventWait_t <<E,FF7F3F>> {
168
    URT_EVENT_WAIT_ONE = 0
169
    URT_EVENT_WAIT_ANY = 1
170
    URT_EVENT_WAIT_ALL = 2
171
  }
172
173
    class urt_osEventListener_t <<T,00CFFF>> {
174
    + {method} urtEventListenerInit (listener : urt_osEventListener_t*) : void
175
    + {method} urtEventListenerGetFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t
176
    + {method} urtEventListenerClearFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t
177
  }
178
179
    class urt_osEventSource_t <<T,00CFFF>> {
180
    + {method} urtEventSourceInit (source : urt_osEventSource_t*) : void
181
    + {method} urtEventSourceBroadcast (source : urt_osEventSource_t*, flags : urt_osEventFlags_t) : void
182
  }
183
184
    class urt_events <<F,E0E0E0>> {
185
    + {method} urtEventRegister (source : urt_osEventSource_t*, listener : urt_osEventListener_t*, mask : urt_osEventMask_t, flags : urt_osEventFlags_t) : urt_status_t
186
    + {method} urtEventUnregister (source _ urt_osEventSource_t*, listener : urt_osEventListener_t*) : urt_status_t
187
    + {method} urtEventWait (mask : urt_osEventMask_t, type : urt_osEventWait_t, timeout : urt_delay_t) : urt_osEventMask_t
188
  }
189
} 
190
191
  class urt_streams <<F,E0E0E0>> {
192
  + {method} urtPrintf(fmt : char*, ... ) : int
193
  + {method} urtErrPrintf(fmt : char*, ... ) : int
194
}
195
196
197
198
199
urt_osCondvar_t ..> urt_osCondvarWaitStatus_t
200
urt_osCondvar_t .> urt_osMutex_t
201
202
urt_osTimer_t ..> urt_osTimerCallback_t
203
204
urt_osThread_t ..> urt_osThreadPrio_t
205
urt_osThread_t ..> urt_osThreadFunction_t
206
urt_osThread_t ..> urt_osThreadTerminateSignal_t
207
urt_osThread_t ..> urt_osThreadState_t
208
urt_osThread_t .> urt_osTime_t
209
210
urt_osEventListener_t ..> urt_osEventFlags_t
211
urt_osEventSource_t ..> urt_osEventFlags_t
212
urt_events ..> urt_osEventSource_t
213
urt_events ..> urt_osEventListener_t
214
urt_events ..> urt_osEventMask_t
215
urt_events ..> urt_osEventFlags_t
216
urt_events ..> urt_osEventWait_t
217
218
219
220
@enduml
221
222
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
223
(GPL source distribution)
224
Java Runtime: OpenJDK Runtime Environment
225
JVM: OpenJDK 64-Bit Server VM
226
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
227
Operating System: Linux
228
Default Encoding: UTF-8
229
Language: en
230
Country: US
231
--></g></svg>