Statistics
| Branch: | Revision:

urtware / doc / classdiagrams / osal.svg @ e48e1ccf

History | View | Annotate | Download (50.394 KB)

1 4d55cea4 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="759px" preserveAspectRatio="none" style="width:5287px;height:759px;" version="1.1" viewBox="0 0 5287 759" width="5287px" zoomAndPan="magnify"><defs><filter height="300%" id="f1o4xjkf1sw9ns" 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(#f1o4xjkf1sw9ns)" height="431.5" style="stroke: #000000; stroke-width: 1.5;" width="726" x="14" y="177.4063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="140" x="307" y="192.4014">condition variable</text><!--MD5=[c7113df1f710ca294cbd01734aa00974]
3
cluster timer--><rect fill="#FFFFFF" filter="url(#f1o4xjkf1sw9ns)" height="425.5" style="stroke: #000000; stroke-width: 1.5;" width="798" x="2817" y="170.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="41" x="3195.5" y="185.9014">timer</text><!--MD5=[107bb3f79455a18bd83c75ada1ac7979]
4
cluster thread--><rect fill="#FFFFFF" filter="url(#f1o4xjkf1sw9ns)" height="583" 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(#f1o4xjkf1sw9ns)" height="565" style="stroke: #000000; stroke-width: 1.5;" width="1642" x="3634" y="183.9063"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="54" x="4428" y="198.9014">events</text><!--MD5=[52fa11869cb40c93fa7702378ddd839e]
6
class urt_osCondvarWaitStatus_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="86.4141" id="urt_osCondvarWaitStatus_t" style="stroke: #A80036; stroke-width: 1.5;" width="270" x="242" y="514.9063"/><ellipse cx="288.25" cy="530.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M292.3594,536.9063 L284.6406,536.9063 L284.6406,524.5156 L292.3594,524.5156 L292.3594,526.6719 L287.0938,526.6719 L287.0938,529.3438 L291.8594,529.3438 L291.8594,531.5 L287.0938,531.5 L287.0938,534.75 L292.3594,534.75 L292.3594,536.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="169" x="308.75" y="535.0605">urt_osCondvarWaitStatus_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="243" x2="511" y1="546.9063" y2="546.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="230" x="248" y="561.1167">URT_CONDVAR_WAITSTATUS_SIGNAL = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="258" x="248" y="573.9214">URT_CONDVAR_WAITSTATUS_BROADCAST = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="239" x="248" y="586.7261">URT_CONDVAR_WAITSTATUS_TIMEOUT = 0</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="243" x2="511" y1="593.3203" y2="593.3203"/><!--MD5=[004fc5dee471033e8e4138c1c73f0692]
7
class urt_osCondvar_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="99.2188" id="urt_osCondvar_t" style="stroke: #A80036; stroke-width: 1.5;" width="710" x="22" y="204.4063"/><ellipse cx="322.25" cy="220.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M323.0938,227.1563 L320.6406,227.1563 L320.6406,216.9063 L317.5,216.9063 L317.5,214.7656 L326.2344,214.7656 L326.2344,216.9063 L323.0938,216.9063 L323.0938,227.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="101" x="342.75" y="224.5605">urt_osCondvar_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="23" x2="731" y1="236.4063" y2="236.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="23" x2="731" y1="244.4063" y2="244.4063"/><ellipse cx="33" cy="255.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="258.6167">urtCondvarInit (condvar : urt_osCondvar_t*) : void</text><ellipse cx="33" cy="268.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="271.4214">urtCondvarSignal (condvar : urt_osCondvar_t*) : void</text><ellipse cx="33" cy="281.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="284.2261">urtCondvarBroadcast (condvar : urt_osCondvar_t*) : void</text><ellipse cx="33" cy="293.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="297.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(#f1o4xjkf1sw9ns)" height="60.8047" id="urt_osTimerCallback_t" style="stroke: #A80036; stroke-width: 1.5;" width="286" x="3073" y="527.4063"/><ellipse cx="3143.75" cy="543.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3144.5938,550.1563 L3142.1406,550.1563 L3142.1406,539.9063 L3139,539.9063 L3139,537.7656 L3147.7344,537.7656 L3147.7344,539.9063 L3144.5938,539.9063 L3144.5938,550.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="136" x="3164.25" y="547.5605">urt_osTimerCallback_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3074" x2="3358" y1="559.4063" y2="559.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3074" x2="3358" y1="567.4063" y2="567.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="274" x="3079" y="581.6167">urt_osTimerCallback_t (parameter : void*) : void</text><!--MD5=[0b340d7b925b1eab6a1b7e084f68a7c2]
9
class urt_osTimer_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="112.0234" id="urt_osTimer_t" style="stroke: #A80036; stroke-width: 1.5;" width="782" x="2825" y="197.9063"/><ellipse cx="3169.75" cy="213.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3170.5938,220.6563 L3168.1406,220.6563 L3168.1406,210.4063 L3165,210.4063 L3165,208.2656 L3173.7344,208.2656 L3173.7344,210.4063 L3170.5938,210.4063 L3170.5938,220.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="84" x="3190.25" y="218.0605">urt_osTimer_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2826" x2="3606" y1="229.9063" y2="229.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2826" x2="3606" y1="237.9063" y2="237.9063"/><ellipse cx="2836" cy="248.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="252.1167">urtTimerInit (timer : urt_osTimer_t*) : void</text><ellipse cx="2836" cy="261.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="264.9214">urtTimerSet (timer : urt_osTimer_t*, delay : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t</text><ellipse cx="2836" cy="274.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="277.7261">urtTimerSetPeriodic (timer : urt_osTimer_t*, period : urt_delay_t, callback : urt_osTimerCallback_t*, parameter : void*) : urt_status_t</text><ellipse cx="2836" cy="287.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="290.5308">urtTimerReset (timer : urt_osTimer_t*) : urt_status_t</text><ellipse cx="2836" cy="300.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="303.3354">urtTimerIsArmed (timer : urt_osTimer_t*) : bool</text><!--MD5=[86c16d91227b9a9ec3b6b9b0285de4e9]
10
class urt_osThreadPrio_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="150.4375" id="urt_osThreadPrio_t" style="stroke: #A80036; stroke-width: 1.5;" width="197" x="1081.5" y="482.9063"/><ellipse cx="1117.65" cy="498.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1118.4938,505.6563 L1116.0406,505.6563 L1116.0406,495.4063 L1112.9,495.4063 L1112.9,493.2656 L1121.6344,493.2656 L1121.6344,495.4063 L1118.4938,495.4063 L1118.4938,505.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="1136.35" y="503.0605">urt_osThreadPrio_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1082.5" x2="1277.5" y1="514.9063" y2="514.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="160" x="1087.5" y="529.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="541.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="554.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="567.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="580.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="593.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="605.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="618.7495">URT_THREAD_PRIO_RT_MAX</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1082.5" x2="1277.5" y1="625.3438" y2="625.3438"/><!--MD5=[69d8aab9aa387a2f5052ea3da80e80ea]
11
class urt_osThreadFunction_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="60.8047" id="urt_osThreadFunction_t" style="stroke: #A80036; stroke-width: 1.5;" width="252" x="1314" y="527.4063"/><ellipse cx="1361.75" cy="543.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1362.5938,550.1563 L1360.1406,550.1563 L1360.1406,539.9063 L1357,539.9063 L1357,537.7656 L1365.7344,537.7656 L1365.7344,539.9063 L1362.5938,539.9063 L1362.5938,550.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="148" x="1382.25" y="547.5605">urt_osThreadFunction_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1315" x2="1565" y1="559.4063" y2="559.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1315" x2="1565" y1="567.4063" y2="567.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="240" x="1320" y="581.6167">urt_osThreadFunction_t (arg : void*) : void</text><!--MD5=[ab5f611d45c3fa10609c33f780d8c3e1]
12
class urt_osThreadTerminateSignal_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="73.6094" id="urt_osThreadTerminateSignal_t" style="stroke: #A80036; stroke-width: 1.5;" width="242" x="1601" y="520.9063"/><ellipse cx="1622.75" cy="536.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1626.8594,542.9063 L1619.1406,542.9063 L1619.1406,530.5156 L1626.8594,530.5156 L1626.8594,532.6719 L1621.5938,532.6719 L1621.5938,535.3438 L1626.3594,535.3438 L1626.3594,537.5 L1621.5938,537.5 L1621.5938,540.75 L1626.8594,540.75 L1626.8594,542.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="195" x="1638.25" y="541.0605">urt_osThreadTerminateSignal_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1842" y1="552.9063" y2="552.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="230" x="1607" y="567.1167">URT_THREAD_TERMINATE_REQUEST = 15</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="1607" y="579.9214">URT_THREAD_TERMINATE_KILL = 9</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1602" x2="1842" y1="586.5156" y2="586.5156"/><!--MD5=[47d14ad2c233fae1b32b8d0a283e820a]
13
class urt_osThreadState_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="137.6328" id="urt_osThreadState_t" style="stroke: #A80036; stroke-width: 1.5;" width="226" x="1878" y="488.9063"/><ellipse cx="1922.75" cy="504.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1926.8594,510.9063 L1919.1406,510.9063 L1919.1406,498.5156 L1926.8594,498.5156 L1926.8594,500.6719 L1921.5938,500.6719 L1921.5938,503.3438 L1926.3594,503.3438 L1926.3594,505.5 L1921.5938,505.5 L1921.5938,508.75 L1926.8594,508.75 L1926.8594,510.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="128" x="1943.25" y="509.0605">urt_osThreadState_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1879" x2="2103" y1="520.9063" y2="520.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="194" x="1884" y="535.1167">URT_THREAD_STATE_INACTIVE = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="1884" y="547.9214">URT_THREAD_STATE_RUNNING = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="180" x="1884" y="560.7261">URT_THREAD_STATE_READY = 2</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="199" x="1884" y="573.5308">URT_THREAD_STATE_SLEEPING = 3</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="213" x="1884" y="586.3354">URT_THREAD_STATE_SUSPENDED = 4</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="190" x="1884" y="599.1401">URT_THREAD_STATE_WAITING = 5</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="214" x="1884" y="611.9448">URT_THREAD_STATE_TERMINATED = 6</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1879" x2="2103" y1="618.5391" y2="618.5391"/><!--MD5=[0a16224ede9ffa9bb2d34e085a076e6d]
14
class urt_osThread_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="337.7031" 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><!--MD5=[0a4e0f34d8da0ad3ed6ecf72f02e09c8]
15
class urt_osEventMask_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="60.8047" id="urt_osEventMask_t" style="stroke: #A80036; stroke-width: 1.5;" width="280" x="3642" y="527.4063"/><ellipse cx="3719.25" cy="543.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M3720.0938,550.1563 L3717.6406,550.1563 L3717.6406,539.9063 L3714.5,539.9063 L3714.5,537.7656 L3723.2344,537.7656 L3723.2344,539.9063 L3720.0938,539.9063 L3720.0938,550.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="117" x="3739.75" y="547.5605">urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3643" x2="3921" y1="559.4063" y2="559.4063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="268" x="3648" y="573.6167">URT_EVENTMASK_MAXPRIO : urt_osEventMask_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3643" x2="3921" y1="580.2109" y2="580.2109"/><!--MD5=[dc1cc33af288560680c15dec1e56eda0]
16
class urt_osEventFlags_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="48" id="urt_osEventFlags_t" style="stroke: #A80036; stroke-width: 1.5;" width="150" x="4363" y="692.9063"/><ellipse cx="4378" cy="708.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4378.8438,715.6563 L4376.3906,715.6563 L4376.3906,705.4063 L4373.25,705.4063 L4373.25,703.2656 L4381.9844,703.2656 L4381.9844,705.4063 L4378.8438,705.4063 L4378.8438,715.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="118" x="4392" y="713.0605">urt_osEventFlags_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4364" x2="4512" y1="724.9063" y2="724.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4364" x2="4512" y1="732.9063" y2="732.9063"/><!--MD5=[e2bbbd64e6979bf7b755747a6c0ba948]
17
class urt_osEventWait_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="86.4141" id="urt_osEventWait_t" style="stroke: #A80036; stroke-width: 1.5;" width="162" x="3994" y="514.9063"/><ellipse cx="4017.1" cy="530.9063" fill="#FF7F3F" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4021.2094,536.9063 L4013.4906,536.9063 L4013.4906,524.5156 L4021.2094,524.5156 L4021.2094,526.6719 L4015.9438,526.6719 L4015.9438,529.3438 L4020.7094,529.3438 L4020.7094,531.5 L4015.9438,531.5 L4015.9438,534.75 L4021.2094,534.75 L4021.2094,536.9063 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="112" x="4032.9" y="535.0605">urt_osEventWait_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3995" x2="4155" y1="546.9063" y2="546.9063"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="150" x="4000" y="561.1167">URT_EVENT_WAIT_ONE = 0</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="4000" y="573.9214">URT_EVENT_WAIT_ANY = 1</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="145" x="4000" y="586.7261">URT_EVENT_WAIT_ALL = 2</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3995" x2="4155" y1="593.3203" y2="593.3203"/><!--MD5=[d054ac2eda12ce4b1fe5a18c9be716c1]
18
class urt_osEventListener_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="86.4141" id="urt_osEventListener_t" style="stroke: #A80036; stroke-width: 1.5;" width="494" x="4191" y="514.9063"/><ellipse cx="4366.25" cy="530.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4367.0938,537.6563 L4364.6406,537.6563 L4364.6406,527.4063 L4361.5,527.4063 L4361.5,525.2656 L4370.2344,525.2656 L4370.2344,527.4063 L4367.0938,527.4063 L4367.0938,537.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="135" x="4386.75" y="535.0605">urt_osEventListener_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4192" x2="4684" y1="546.9063" y2="546.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4192" x2="4684" y1="554.9063" y2="554.9063"/><ellipse cx="4202" cy="565.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="569.1167">urtEventListenerInit (listener : urt_osEventListener_t*) : void</text><ellipse cx="4202" cy="578.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="581.9214">urtEventListenerGetFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><ellipse cx="4202" cy="591.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="594.7261">urtEventListenerClearFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t</text><!--MD5=[4d6906f8b977dc26629fa492460e6327]
19
class urt_osEventSource_t--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="73.6094" id="urt_osEventSource_t" style="stroke: #A80036; stroke-width: 1.5;" width="547" x="4720.5" y="520.9063"/><ellipse cx="4925.25" cy="536.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4926.0938,543.6563 L4923.6406,543.6563 L4923.6406,533.4063 L4920.5,533.4063 L4920.5,531.2656 L4929.2344,531.2656 L4929.2344,533.4063 L4926.0938,533.4063 L4926.0938,543.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="129" x="4945.75" y="541.0605">urt_osEventSource_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="4721.5" x2="5266.5" y1="552.9063" y2="552.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="4721.5" x2="5266.5" y1="560.9063" y2="560.9063"/><ellipse cx="4731.5" cy="571.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="575.1167">urtEventSourceInit (source : urt_osEventSource_t*) : void</text><ellipse cx="4731.5" cy="584.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="587.9214">urtEventSourceBroadcast (source : urt_osEventSource_t*, flags : urt_osEventFlags_t) : void</text><!--MD5=[04a3b5a37031e2a4d723f19d8adf86f5]
20
class urt_events--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="86.4141" id="urt_events" style="stroke: #A80036; stroke-width: 1.5;" width="890" x="3642" y="210.9063"/><ellipse cx="4049.75" cy="226.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M4053.9844,222.6719 L4048.7031,222.6719 L4048.7031,225.3438 L4053.5,225.3438 L4053.5,227.5 L4048.7031,227.5 L4048.7031,232.9063 L4046.2656,232.9063 L4046.2656,220.5156 L4053.9844,220.5156 L4053.9844,222.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="66" x="4070.25" y="231.0605">urt_events</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="3643" x2="4531" y1="242.9063" y2="242.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="3643" x2="4531" y1="250.9063" y2="250.9063"/><ellipse cx="3653" cy="261.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="265.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="274.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="277.9214">urtEventUnregister (source _ urt_osEventSource_t*, listener : urt_osEventListener_t*) : urt_status_t</text><ellipse cx="3653" cy="287.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="290.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(#f1o4xjkf1sw9ns)" height="86.4141" id="urt_osTime_t" style="stroke: #A80036; stroke-width: 1.5;" width="425" x="2120.5" y="210.9063"/><ellipse cx="2289.25" cy="226.9063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2290.0938,233.6563 L2287.6406,233.6563 L2287.6406,223.4063 L2284.5,223.4063 L2284.5,221.2656 L2293.2344,221.2656 L2293.2344,223.4063 L2290.0938,223.4063 L2290.0938,233.6563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="79" x="2309.75" y="231.0605">urt_osTime_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2121.5" x2="2544.5" y1="242.9063" y2="242.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2121.5" x2="2544.5" y1="250.9063" y2="250.9063"/><ellipse cx="2131.5" cy="261.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="265.1167">urtTime2Us (t : urt_osTime_t*) : uint64_t</text><ellipse cx="2131.5" cy="274.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="277.9214">urtTimeNow (void) : urt_osTime_t</text><ellipse cx="2131.5" cy="287.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="290.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(#f1o4xjkf1sw9ns)" height="99.2188" id="urt_osMutex_t" style="stroke: #A80036; stroke-width: 1.5;" width="298" x="767" y="204.4063"/><ellipse cx="868.25" cy="220.4063" fill="#00CFFF" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M869.0938,227.1563 L866.6406,227.1563 L866.6406,216.9063 L863.5,216.9063 L863.5,214.7656 L872.2344,214.7656 L872.2344,216.9063 L869.0938,216.9063 L869.0938,227.1563 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="87" x="888.75" y="224.5605">urt_osMutex_t</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="768" x2="1064" y1="236.4063" y2="236.4063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="768" x2="1064" y1="244.4063" y2="244.4063"/><ellipse cx="778" cy="255.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="258.6167">urtMutexInit (mutex : urt_osMutex_t*) : void</text><ellipse cx="778" cy="268.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="271.4214">urtMutexLock (mutex : urt_osMutex_t*) : void</text><ellipse cx="778" cy="281.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="284.2261">urtMutexTryLock (mutex : urt_osMutex_t*) : bool</text><ellipse cx="778" cy="293.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="297.0308">urtMutexUnlock (mutex : urt_osMutex_t*) : void</text><!--MD5=[0cf29100c96c506429a28b45d347cc92]
23
class urt_streams--><rect fill="#FEFECE" filter="url(#f1o4xjkf1sw9ns)" height="73.6094" id="urt_streams" style="stroke: #A80036; stroke-width: 1.5;" width="209" x="2580.5" y="216.9063"/><ellipse cx="2643.25" cy="232.9063" fill="#E0E0E0" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M2647.4844,228.6719 L2642.2031,228.6719 L2642.2031,231.3438 L2647,231.3438 L2647,233.5 L2642.2031,233.5 L2642.2031,238.9063 L2639.7656,238.9063 L2639.7656,226.5156 L2647.4844,226.5156 L2647.4844,228.6719 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="2663.75" y="237.0605">urt_streams</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="2581.5" x2="2788.5" y1="248.9063" y2="248.9063"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="2581.5" x2="2788.5" y1="256.9063" y2="256.9063"/><ellipse cx="2591.5" 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="166" x="2600.5" y="271.1167">urtPrintf(fmt : char*, ... ) : int</text><ellipse cx="2591.5" 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="183" x="2600.5" y="283.9214">urtErrPrintf(fmt : char*, ... ) : int</text><!--MD5=[7766572fa0c619a5409829048dc0b6d6]
24
link urt_osCondvar_t to urt_osCondvarWaitStatus_t--><path d="M377,303.4257 C377,360.4234 377,453.4073 377,509.8014 " 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,514.8055,381,505.8055,377,509.8055,373,505.8055,377,514.8055" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9b2507ea88616aeae65e3c4d63560016]
25
link urt_osCondvar_t to urt_osMutex_t--><path d="M732.0347,253.9063 C741.9278,253.9063 751.8209,253.9063 761.714,253.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,253.9063,757.8875,249.9063,761.8875,253.9063,757.8875,257.9063,766.8875,253.9063" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[83094e108045c8f9585007cdb3b7cb2e]
26
link urt_osTimer_t to urt_osTimerCallback_t--><path d="M3216,310.0189 C3216,371.8862 3216,469.5749 3216,521.9342 " 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,527.1651,3220,518.1651,3216,522.1651,3212,518.1651,3216,527.1651" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[8d8c3240b5b2b5edf6544088e583ffa5]
27
link urt_osThread_t to urt_osThreadPrio_t--><path d="M1441.9776,400.8869 C1393.2866,427.5518 1343.4045,455.5841 1297,482.9063 C1292.3837,485.6243 1287.688,488.435 1282.9614,491.3019 " 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.6134,493.9495,1288.3807,492.6849,1282.8839,491.3489,1284.2199,485.8521,1278.6134,493.9495" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[d7d1d43fd970fb07a484642bc19fcb13]
28
link urt_osThread_t to urt_osThreadFunction_t--><path d="M1564.9208,423.2399 C1529.4819,461.4435 1495.4158,498.1672 1471.8352,523.5875 " 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="1468.4333,527.2548,1477.4866,523.3768,1471.8337,523.5891,1471.6215,517.9362,1468.4333,527.2548" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6564761b32ad7eeb5abb8896c72cfca5]
29
link urt_osThread_t to urt_osThreadTerminateSignal_t--><path d="M1722,423.2399 C1722,457.6059 1722,490.7744 1722,515.5947 " 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,520.7618,1726,511.7618,1722,515.7618,1718,511.7618,1722,520.7618" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[92ba23225d8de8f8080583fedda5e6f8]
30
link urt_osThread_t to urt_osThreadState_t--><path d="M1871.838,423.2399 C1890.9516,444.8405 1909.6467,465.968 1926.3519,484.8467 " 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="1929.6659,488.5919,1926.6974,479.201,1926.3525,484.8473,1920.7062,484.5024,1929.6659,488.5919" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[78b286ab2177e5f7b31e6e832d821818]
31
link urt_osThread_t to urt_osTime_t--><path d="M2002.1411,253.9063 C2039.8661,253.9063 2077.591,253.9063 2115.316,253.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,253.9063,2111.3973,249.9063,2115.3973,253.9063,2111.3973,257.9063,2120.3973,253.9063" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[659af6ab57e6a38ebfd5c07c5616787c]
32
link urt_osEventListener_t to urt_osEventFlags_t--><path d="M4438,600.934 C4438,628.41 4438,663.3065 4438,687.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,692.6279,4442,683.6279,4438,687.6279,4434,683.6279,4438,692.6279" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[eac11679f26c499aa1c571e1f795945d]
33
link urt_osEventSource_t to urt_osEventFlags_t--><path d="M4864.3444,594.9841 C4757.2675,625.605 4608.6667,668.1005 4518.1503,693.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,695.4357,4522.8323,696.807,4517.8867,694.0609,4520.6328,689.1153,4513.0794,695.4357" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0259cdb10c6c32168d1d17d25519d939]
34
link urt_events to urt_osEventSource_t--><path d="M4215.5072,296.9782 C4392.5015,356.3015 4708.6381,462.2613 4878.4989,519.1936 " 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="4883.4814,520.8637,4876.2192,514.2108,4878.7406,519.2746,4873.6768,521.796,4883.4814,520.8637" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[0ce043e0e9532fc393f3f8836f5de19a]
35
link urt_events to urt_osEventListener_t--><path d="M4136.917,297.1392 C4202.4234,353.8742 4316.9494,453.0647 4384.2879,511.3864 " 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="4388.2552,514.8225,4384.0708,505.9067,4384.4757,511.5491,4378.8333,511.954,4388.2552,514.8225" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[430bebba9cd89d3ba8f63b2078968bca]
36
link urt_events to urt_osEventMask_t--><path d="M4043.6248,297.1392 C3982.4716,358.092 3872.1543,468.0476 3816.3369,523.682 " 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="3812.7402,527.2669,3821.9384,523.7465,3816.2816,523.7372,3816.291,518.0803,3812.7402,527.2669" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[b1b185abc2161e087cab32ae7fdb2c40]
37
link urt_events to urt_osEventFlags_t--><path d="M4052.173,297.0212 C3993.8544,374.6913 3890.9027,539.453 3977,640.9063 C4001.3308,669.5766 4232.2829,696.5873 4357.765,709.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,709.8209,4354.3686,704.9372,4357.9467,709.3187,4353.5652,712.8968,4362.9214,709.8209" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[706a1974d1b474cbba7e7b0213f243a1]
38
link urt_events to urt_osEventWait_t--><path d="M4085.2934,297.1392 C4083.0762,353.3091 4079.2163,451.093 4076.9056,509.6317 " 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.7007,514.8225,4081.0527,505.9873,4076.898,509.8263,4073.0589,505.6716,4076.7007,514.8225" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[87ef9ac974d8a52180f0f0c2ec91e759]
39
@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
  }
154
} 
155
156
  package "events" <<Rectangle>> {
157
    class urt_osEventMask_t <<T,00CFFF>> {
158
    URT_EVENTMASK_MAXPRIO : urt_osEventMask_t
159
  }
160
161
    class urt_osEventFlags_t <<T,00CFFF>> {
162
  }
163
164
    class urt_osEventWait_t <<E,FF7F3F>> {
165
    URT_EVENT_WAIT_ONE = 0
166
    URT_EVENT_WAIT_ANY = 1
167
    URT_EVENT_WAIT_ALL = 2
168
  }
169
170
    class urt_osEventListener_t <<T,00CFFF>> {
171
    + {method} urtEventListenerInit (listener : urt_osEventListener_t*) : void
172
    + {method} urtEventListenerGetFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t
173
    + {method} urtEventListenerClearFlags (listener : urt_osEventListener_t*) : urt_osEventFlags_t
174
  }
175
176
    class urt_osEventSource_t <<T,00CFFF>> {
177
    + {method} urtEventSourceInit (source : urt_osEventSource_t*) : void
178
    + {method} urtEventSourceBroadcast (source : urt_osEventSource_t*, flags : urt_osEventFlags_t) : void
179
  }
180
181
    class urt_events <<F,E0E0E0>> {
182
    + {method} urtEventRegister (source : urt_osEventSource_t*, listener : urt_osEventListener_t*, mask : urt_osEventMask_t, flags : urt_osEventFlags_t) : urt_status_t
183
    + {method} urtEventUnregister (source _ urt_osEventSource_t*, listener : urt_osEventListener_t*) : urt_status_t
184
    + {method} urtEventWait (mask : urt_osEventMask_t, type : urt_osEventWait_t, timeout : urt_delay_t) : urt_osEventMask_t
185
  }
186
} 
187
188
  class urt_streams <<F,E0E0E0>> {
189
  + {method} urtPrintf(fmt : char*, ... ) : int
190
  + {method} urtErrPrintf(fmt : char*, ... ) : int
191
}
192
193
194
195
196
urt_osCondvar_t ..> urt_osCondvarWaitStatus_t
197
urt_osCondvar_t .> urt_osMutex_t
198
199
urt_osTimer_t ..> urt_osTimerCallback_t
200
201
urt_osThread_t ..> urt_osThreadPrio_t
202
urt_osThread_t ..> urt_osThreadFunction_t
203
urt_osThread_t ..> urt_osThreadTerminateSignal_t
204
urt_osThread_t ..> urt_osThreadState_t
205
urt_osThread_t .> urt_osTime_t
206
207
urt_osEventListener_t ..> urt_osEventFlags_t
208
urt_osEventSource_t ..> urt_osEventFlags_t
209
urt_events ..> urt_osEventSource_t
210
urt_events ..> urt_osEventListener_t
211
urt_events ..> urt_osEventMask_t
212
urt_events ..> urt_osEventFlags_t
213
urt_events ..> urt_osEventWait_t
214
215
216
217
@enduml
218
219
PlantUML version 1.2020.00(Sat Jan 11 13:30:53 CET 2020)
220
(GPL source distribution)
221
Java Runtime: OpenJDK Runtime Environment
222
JVM: OpenJDK 64-Bit Server VM
223
Java Version: 11.0.6+10-post-Ubuntu-1ubuntu118.04.1
224
Operating System: Linux
225
Default Encoding: UTF-8
226
Language: en
227
Country: US
228
--></g></svg>