<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Detailed API Function Differences</title>
<title>CMSIS-RTOS2: Detailed API Function Differences</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="cmsis.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="printComponentTabs.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 46px;">
  <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">CMSIS-RTOS2
   &#160;<span id="projectnumber">Version 2.1.3</span>
   </div>
   <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<div id="CMSISnav" class="tabs1">
    <ul class="tablist">
      <script type="text/javascript">
		<!--
		writeComponentTabs.call(this);
		//-->
      </script>
	  </ul>
</div>
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
      <li><a href="modules.html"><span>Reference</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('os2MigrationFunctions.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Detailed API Function Differences </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>This section lists the CMSIS-RTOS API v1 and API v2 functions along with the differences in functionality. The list is sorted alphabetically by API v2 function names and is structured the following way:</p>
<ul>
<li>RTOS API v2 function prototype</li>
<li>RTOS API v1 function prototype that is equivalent or provides similar functionality</li>
<li>Brief description of the RTOS v2 function.</li>
<li>Description of the difference.</li>
</ul>
<p>The background color indicates:</p>
<ul>
<li><div class="new">Green: New functions in API v2 that are not available in API v1 </div></li>
<li><div class="mod">Amber: Functions that are modified or replaced in API v2 compared to API v1 </div></li>
<li><div class="del">Red: Functions in API v1 that are deprecated in API v2 </div></li>
</ul>
<h1><a class="anchor" id="mig_kernel"></a>
Kernel Information and Control</h1>
<hr/>
<div class="new"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga6f7764e7250c5c5364c00c45a5d1d199" title="Get RTOS Kernel Information. ">osKernelGetInfo</a> (osVersion_t* version, char* id_buf, uint32_t id_size)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get RTOS Kernel Information. <br/>
 New function <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga6f7764e7250c5c5364c00c45a5d1d199" title="Get RTOS Kernel Information. ">osKernelGetInfo</a>. </div><hr/>
<div class="mod"> <code>osKernelState_t <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga48b69b81012fce051f639be288b243ba" title="Get the current RTOS Kernel state. ">osKernelGetState</a> (void)</code> <br/>
 <code>int32_t &#160; &#160; &#160; &#160; osKernelRunning (void)</code> <br/>
 <br/>
 Get the current RTOS Kernel state. <br/>
</p>
<ul>
<li>The function <b>osKernelGetState</b> replaces the RTOS v1 function <b>osKernelRunning</b>.</li>
<li>Return type changed to <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga08326469274b668140ca934b168a5ad4">osKernelState_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga84bcdbf2fb76b10c8df4e439f0c7e11b" title="Get the RTOS kernel tick count. ">osKernelGetTickCount</a> (void)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get the RTOS kernel tick count. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga7a8d7bd927eaaa58999f91d7d6310cee" title="Get the RTOS kernel tick frequency. ">osKernelGetTickFreq</a> (void)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get the RTOS kernel tick frequency. <br/>
</p>
<ul>
<li>The function <b>osKernelGetTickFreq</b> replaces the RTOS v1 macro <b>osKernelTickMicroSec</b>.</li>
</ul>
</div><div class="new"> </div><hr/>
<div class="mod"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae0fcaff6cecfb4013bb556c87afcd7d2" title="Get the RTOS kernel system timer count. ">osKernelGetSysTimerCount</a> (void)</code> <br/>
 <code>uint32_t osKernelSysTick (void)</code> <br/>
 <br/>
 Get the RTOS kernel system timer count. <br/>
</p>
<ul>
<li>The function <b>osKernelGetSysTimerCount</b> replaces the RTOS v1 function <b>osKernelSysTick</b>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>uint64_t <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga4d69215a93220f72be3684cad582f16a" title="Get the RTOS kernel system timer frequency. ">osKernelGetSysTimerFreq</a> (void)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get the RTOS kernel system timer frequency. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae818f6611d25ba3140bede410a52d659" title="Initialize the RTOS Kernel. ">osKernelInitialize</a> (void)</code> <br/>
 <code>osStatus &#160; osKernelInitialize (void)</code> <br/>
 <br/>
 Initialize the RTOS Kernel. <br/>
</p>
<ul>
<li>Return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e">osStatus_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>int32_t <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga948609ee930d9b38336b9e1c2a4dfe12" title="Lock the RTOS Kernel scheduler. ">osKernelLock</a> (void)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Lock the RTOS Kernel scheduler. <br/>
 New function. </div><hr/>
<div class="new"> <code>int32_t <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaf401728b4657456198c33fe75f8d6720" title="Unlock the RTOS Kernel scheduler. ">osKernelUnlock</a> (void)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Unlock the RTOS Kernel scheduler. <br/>
 New function. </div><hr/>
<div class="new"> <code>void <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae7d0a71b9586cbbb49fcbdf6a04f0289" title="Restore the RTOS Kernel scheduler lock state. ">osKernelRestoreLock</a> (void)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Restore the RTOS Kernel scheduler lock state. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9ae2cc00f0d89d7b6a307bba942b5221" title="Start the RTOS Kernel scheduler. ">osKernelStart</a> (void)</code> <br/>
 <code>osStatus &#160; osKernelStart (void)</code> <br/>
 <br/>
 Start the RTOS Kernel scheduler. <br/>
</p>
<ul>
<li>Return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e">osStatus_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae26683e1606ec633354a2876c68f0c1f" title="Suspend the RTOS Kernel scheduler. ">osKernelSuspend</a> (void)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Suspend the RTOS Kernel scheduler. <br/>
 New function. </div><hr/>
<div class="new"> <code>void <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga8c4b4d7ed34cab73c001665d9176aced" title="Resume the RTOS Kernel scheduler. ">osKernelResume</a> (uint32_t sleep_time)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Resume the RTOS Kernel scheduler. <br/>
 New function. </div><h1><a class="anchor" id="mig_threadMgmt"></a>
Thread Management</h1>
<hr/>
<div class="new"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaaad14cd9547341ea8109dc4e8540f1dc" title="Detach a thread (thread storage can be reclaimed when thread terminates). ">osThreadDetach</a> (osThreadId_t thread_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Detach a thread (thread storage can be reclaimed when thread terminates). <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga5606604d56e21ece1a654664be877439" title="Enumerate active threads. ">osThreadEnumerate</a> (osThreadId_t *thread_array, uint32_t array_items)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Enumerate active threads. <br/>
 New function. </div><hr/>
<div class="new"> <code>__NO_RETURN void <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaddaa452dd7610e4096647a566d3556fc" title="Terminate execution of current running thread. ">osThreadExit</a> (void)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Terminate execution of current running thread. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga495b3f812224e7301f23a691793765db" title="Get number of active threads. ">osThreadGetCount</a> (osThreadId_t thread_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get number of active threads. <br/>
 New function. </div><hr/>
<div class="new"> <code>const char *<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac3230f3a55a297514b013ebf38f27e0a" title="Get name of a thread. ">osThreadGetName</a> (osThreadId_t thread_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get name of a thread. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osThreadId_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga8df03548e89fbc56402a5cd584a505da" title="Return the thread ID of the current running thread. ">osThreadGetId</a> (void)</code> <br/>
 <code>osThreadId &#160; osThreadGetId (void)</code> <br/>
 <br/>
 Return the thread ID of the current running thread. <br/>
</p>
<ul>
<li>Return type changed to <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaa6c32fe2a3e0a2e01f212d55b02e51c7">osThreadId_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="mod"> <code>osPriority_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga0aeaf349604f456e68e78f9d3b42e44b" title="Get current priority of a thread. ">osThreadGetPriority</a> (osThreadId_t thread_id)</code> <br/>
 <code>osPriority &#160; osThreadGetPriority (osThreadId thread_id)</code> <br/>
 <br/>
 Get current priority of a thread. <br/>
</p>
<ul>
<li>Return type changed to <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gad4e3e0971b41f2d17584a8c6837342ec" title="Priority values. ">osPriority_t</a>.</li>
<li>Parameter type changed to <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaa6c32fe2a3e0a2e01f212d55b02e51c7">osThreadId_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab9f8bd715d671c6ee27644867bc1bf65" title="Get stack size of a thread. ">osThreadGetStackSize</a> (osThreadId_t thread_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get stack size of a thread. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga9c83bd5dd8de329701775d6ef7012720" title="Get available stack space of a thread based on stack watermark recording during execution. ">osThreadGetStackSpace</a> (osThreadId_t thread_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get available stack space of a thread based on stack watermark recording during execution. <br/>
 New function. </div><hr/>
<div class="new"> <code>osThreadState_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gacc0a98b42f0a5928e12dc91dc76866b9" title="Get current thread state of a thread. ">osThreadGetState</a> (osThreadId_t thread_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get current thread state of a thread. <br/>
 New function. </div><hr/>
<div class="new"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga3fca90fb0679afeb968aa8c3d5874487" title="Wait for specified thread to terminate. ">osThreadJoin</a> (osThreadId_t thread_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Wait for specified thread to terminate. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osThreadId_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga48d68b8666d99d28fa646ee1d2182b8f" title="Create a thread and add it to Active Threads. ">osThreadNew</a> (osThreadFunc_t function, void *argument, const <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#structosThreadAttr__t" title="Attributes structure for thread. ">osThreadAttr_t</a> *attr)</code> <br/>
 <code>osThreadId &#160; osThreadCreate (const osThreadDef_t *thread_def, void *argument)</code> <br/>
 <br/>
 Create a thread and add it to Active Threads. <br/>
</p>
<ul>
<li>The function <b>osThreadNew</b> replaces the RTOS v1 function <b>osThreadCreate</b>.</li>
<li>Options are now passed using a <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#structosThreadAttr__t">osThreadAttr_t</a> struct, replacing the <b>osThreadDef</b> macro.</li>
<li>New function prototype is <code>void func (void *arg)</code>, before: <code>void func (const void *arg)</code>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga3dbad90eff394b02de76a452c84c5d80" title="Resume execution of a thread. ">osThreadResume</a> (osThreadId_t thread_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Resume execution of a thread. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga861a420fb2d643115b06622903fb3bfb" title="Change priority of a thread. ">osThreadSetPriority</a> (osThreadId_t thread_id, osPriority_t priority)</code> <br/>
 <code>osStatus &#160; osThreadSetPriority (osThreadId thread_id, osPriority priority)</code> <br/>
 <br/>
 Change priority of a thread. <br/>
</p>
<ul>
<li>Return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e" title="Status code values returned by CMSIS-RTOS functions. ">osStatus_t</a>.</li>
<li>Parameter types changed to <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaa6c32fe2a3e0a2e01f212d55b02e51c7">osThreadId_t</a> and <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gad4e3e0971b41f2d17584a8c6837342ec" title="Priority values. ">osPriority_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaa9de419d0152bf77e9bbcd1f369fb990" title="Suspend execution of a thread. ">osThreadSuspend</a> (osThreadId_t thread_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Suspend execution of a thread. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga2f8ba6dba6e9c065a6e236ffd410d74a" title="Terminate execution of a thread. ">osThreadTerminate</a> (osThreadId_t thread_id)</code> <br/>
 <code>osStatus &#160; osThreadTerminate (osThreadId thread_id)</code> <br/>
 <br/>
 Terminate execution of a thread. <br/>
</p>
<ul>
<li>Return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e" title="Status code values returned by CMSIS-RTOS functions. ">osStatus_t</a>.</li>
<li>Parameter type changed to <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaa6c32fe2a3e0a2e01f212d55b02e51c7">osThreadId_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gad01c7ec26535b1de6b018bb9466720e2" title="Pass control to next thread that is in state READY. ">osThreadYield</a> (void)</code> <br/>
 <code>osStatus &#160; osThreadYield (void)</code> <br/>
 <br/>
 Pass control to next thread that is in state <b>READY</b>. <br/>
</p>
<ul>
<li>Return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e" title="Status code values returned by CMSIS-RTOS functions. ">osStatus_t</a>.</li>
</ul>
</div><div class="mod"> </div><h1><a class="anchor" id="mig_threadFlags"></a>
Thread Flags</h1>
<p>New section to synchronize threads using flags. Thread flags and the more flexible <a class="el" href="os2MigrationFunctions.html#mig_eventFlags">Event Flags</a> are replacing the RTOS v1 <b>Signal Events</b>. Refer to <a class="el" href="os2MigrationFunctions.html#mig_signalEvents">Signal Events</a> for a list of deprecated functions. Refer to <a class="el" href="group__CMSIS__RTOS__ThreadFlagsMgmt.html">Thread Flags</a> for details.</p>
<hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__ThreadFlagsMgmt.html#ga6f89ef9caded1d9963c7b12b0f6412c9" title="Set the specified Thread Flags of a thread. ">osThreadFlagsSet</a> (osThreadId_t thread_id, uint32_t flags)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Set the specified Thread Flags of a thread. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__ThreadFlagsMgmt.html#ga656abc1c862c5b9a2b13584c42cc0bfa" title="Clear the specified Thread Flags of current running thread. ">osThreadFlagsClear</a> (uint32_t flags)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Clear the specified Thread Flags of current running thread. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__ThreadFlagsMgmt.html#ga85c8d2c89466e25abbcb545d9ddd71ba" title="Get the current Thread Flags of current running thread. ">osThreadFlagsGet</a> (void)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get the current Thread Flags of current running thread. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__ThreadFlagsMgmt.html#gac11542ad6300b600f872fc96e340ec2b" title="Wait for one or more Thread Flags of the current running thread to become signaled. ">osThreadFlagsWait</a> (uint32_t flags, uint32_t options, uint32_t timeout)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Wait for one or more Thread Flags of the current running thread to become signaled. <br/>
 New function. </div><h1><a class="anchor" id="mig_eventFlags"></a>
Event Flags</h1>
<p>New section to synchronize events using flags. Event flags and thread flags are replacing the RTOS v1 <b>Signal Events</b>. All functions listed in the RTOS v1 <b>Signal Events</b> have been deprecated. Refer to <a class="el" href="os2MigrationFunctions.html#mig_signalEvents">Signal Events</a> for a list of deprecated functions. Refer to <a class="el" href="group__CMSIS__RTOS__EventFlags.html">Event Flags</a> for details about the new function.</p>
<hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__EventFlags.html#ga93bf258ca0007c6641fbe8e4f2b8a1e5" title="Clear the specified Event Flags. ">osEventFlagsClear</a> (osEventFlagsId_t ef_id, uint32_t flags)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Clear the specified Event Flags. <br/>
 New function. </div><hr/>
<div class="new"> <code>const char *<a class="el" href="group__CMSIS__RTOS__EventFlags.html#ga59f4ddf0ee8c395b1672bb978d1cfc88" title="Get name of an Event Flags object. ">osEventFlagsGetName</a> (osEventFlagsId_t ef_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get name of an Event Flags object. <br/>
 New function. </div><hr/>
<div class="new"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__EventFlags.html#ga7c4acf2fb0d506ec82905dee53fb5435" title="Delete an Event Flags object. ">osEventFlagsDelete</a> (osEventFlagsId_t ef_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Delete an Event Flags object. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__EventFlags.html#ga8bda3185f46bfd278cea8a6cf357677d" title="Get the current Event Flags. ">osEventFlagsGet</a> (osEventFlagsId_t ef_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get the current Event Flags. <br/>
 New function. </div><hr/>
<div class="new"> <code>osEventFlagsId_t <a class="el" href="group__CMSIS__RTOS__EventFlags.html#gab14b1caeb12ffa42cce1bfe889cd07df" title="Create and Initialize an Event Flags object. ">osEventFlagsNew</a> (const <a class="el" href="group__CMSIS__RTOS__EventFlags.html#structosEventFlagsAttr__t" title="Attributes structure for event flags. ">osEventFlagsAttr_t</a> *attr)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Create and Initialize an Event Flags object. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__EventFlags.html#ga33b71d14cecf90b4e72639dd19f23a5e" title="Set the specified Event Flags. ">osEventFlagsSet</a> (osEventFlagsId_t ef_id, uint32_t flags)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Set the specified Event Flags. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__EventFlags.html#ga52acb34a8322e58020227344fe662b4e" title="Wait for one or more Event Flags to become signaled. ">osEventFlagsWait</a> (osEventFlagsId_t ef_id, uint32_t flags, uint32_t options, uint32_t timeout)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Wait for one or more Event Flags to become signaled. <br/>
 New function. </div><h1><a class="anchor" id="mig_wait"></a>
Generic Wait Functions</h1>
<p>Refer to <a class="el" href="group__CMSIS__RTOS__Wait.html">Generic Wait Functions</a> for details.</p>
<hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__Wait.html#gaf6055a51390ef65b6b6edc28bf47322e" title="Wait for Timeout (Time Delay). ">osDelay</a> (uint32_t ticks)</code> <br/>
 <code>osStatus &#160; osDelay (uint32_t timeout)</code> <br/>
 <br/>
 Wait for Timeout (Time Delay). <br/>
</p>
<ul>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e" title="Status code values returned by CMSIS-RTOS functions. ">osStatus_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__Wait.html#ga3c807924c2d6d43bc2ffb49da3f7f3a1" title="Wait until specified time. ">osDelayUntil</a> (uint32_t ticks)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Wait until specified time. <br/>
 New function. </div><hr/>
<div class="del"> <em>none</em> <br/>
 <code>osEvent osWait (uint32_t millisec)</code> <br/>
 <br/>
Deprecated. </div><h1><a class="anchor" id="mig_timer"></a>
Timer Management</h1>
<p>Refer to <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html">Timer Management</a> for details.</p>
<hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gad0001dd74721ab461789324806db2453" title="Delete a timer. ">osTimerDelete</a> (osTimerId_t timer_id)</code> <br/>
 <code>osStatus &#160; osTimerDelete (osTimerId timer_id)</code> <br/>
 <br/>
 Delete a timer. <br/>
</p>
<ul>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e" title="Status code values returned by CMSIS-RTOS functions. ">osStatus_t</a>.</li>
<li>The parameter type has changed to <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaad5409379689ee27bb0a0b56ea4a4b34">osTimerId_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>const char *<a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga4f82a98eee4d9ea79507e44340d3d319" title="Get name of a timer. ">osTimerGetName</a> (osTimerId_t timer_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get name of a timer. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga69d3589f54194022c30dd01e45ec6741" title="Check if a timer is running. ">osTimerIsRunning</a> (osTimerId_t timer_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Check if a timer is running. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osTimerId_t <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gad4e7f785c5f700a509f55a3bf6a62bec" title="Create and Initialize a timer. ">osTimerNew</a> (osTimerFunc_t func, osTimerType_t type, void *argument, const <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#structosTimerAttr__t" title="Attributes structure for timer. ">osTimerAttr_t</a> *attr)</code> <br/>
 <code>osTimerId &#160; osTimerCreate (const osTimerDef_t *timer_def, os_timer_type type, void *argument)</code> <br/>
 <br/>
 Create and Initialize a timer. <br/>
</p>
<ul>
<li>The function <b>osTimerNew</b> replaces the RTOS v1 function <b>osTimerCreate</b>.</li>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaad5409379689ee27bb0a0b56ea4a4b34">osTimerId_t</a>.</li>
<li>The parameter list and types have changed.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gab6ee2859ea657641b7adfac599b8121d" title="Start or restart a timer. ">osTimerStart</a> (osTimerId_t timer_id, uint32_t ticks)</code> <br/>
 <code>osStatus &#160; osTimerStart (osTimerId timer_id, uint32_t timeout)</code> <br/>
 <br/>
 Start or restart a timer. <br/>
</p>
<ul>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e" title="Status code values returned by CMSIS-RTOS functions. ">osStatus_t</a>.</li>
<li>The first parameter type has changed to <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaad5409379689ee27bb0a0b56ea4a4b34">osTimerId_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gabd7a89356da7717293eb0bc5d87b8ac9" title="Stop a timer. ">osTimerStop</a> (osTimerId_t timer_id)</code> <br/>
 <code>osStatus &#160; osTimerStop (osTimerId timer_id)</code> <br/>
 <br/>
 Stop a timer. <br/>
</p>
<ul>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e" title="Status code values returned by CMSIS-RTOS functions. ">osStatus_t</a>.</li>
<li>The parameter type has changed to <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaad5409379689ee27bb0a0b56ea4a4b34">osTimerId_t</a>.</li>
</ul>
</div><div class="mod"> </div><h1><a class="anchor" id="mig_mutex"></a>
Mutexes</h1>
<p>Refer to <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html">Mutex Management</a> for details.</p>
<hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gabc54686ea0fc281823b1763422d2a924" title="Acquire a Mutex or timeout if it is locked. ">osMutexAcquire</a> (osMutexId_t mutex_id, uint32_t timeout)</code> <br/>
 <code>osStatus &#160; osMutexWait (osMutexId mutex_id, uint32_t timeout)</code> <br/>
 <br/>
 Acquire a Mutex or timeout if it is locked. <br/>
</p>
<ul>
<li>The function <b>osMutexAcquire</b> replaces the RTOS v1 function <b>osMutexWait</b>.</li>
<li>Return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e">osStatus_t</a>.</li>
<li>First parameter type changed to <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga313801836c62deb23055efb55a420e42">osMutexId_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gabee73ad227ba4587d3db12ef9bd582bc" title="Delete a Mutex object. ">osMutexDelete</a> (osMutexId_t mutex_id)</code> <br/>
 <code>osStatus &#160; osMutexDelete (osMutexId mutex_id)</code> <br/>
 <br/>
 Delete a Mutex object. <br/>
</p>
<ul>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e">osStatus_t</a>.</li>
<li>The parameter type changed to <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga313801836c62deb23055efb55a420e42">osMutexId_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>const char *<a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga00b5e58cd247a412d1afd18732d8b752" title="Get name of a Mutex object. ">osMutexGetName</a> (osMutexId_t mutex_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get name of a Mutex object. <br/>
 New function. </div><hr/>
<div class="new"> <code>osThreadId_t <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga7f9a7666df0978738cd570cb700b83fb" title="Get Thread which owns a Mutex object. ">osMutexGetOwner</a> (osMutexId_t mutex_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get Thread which owns a Mutex object. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osMutexId_t <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gab90920022ab944296821368ef6bb52f8" title="Create and Initialize a Mutex object. ">osMutexNew</a> (const <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#structosMutexAttr__t" title="Attributes structure for mutex. ">osMutexAttr_t</a> *attr)</code> <br/>
 <code>osMutexId &#160; osMutexCreate (const osMutexDef_t *mutex_def)</code> <br/>
 <br/>
 Create and Initialize a Mutex object. <br/>
</p>
<ul>
<li>The function <b>osMutexNew</b> replaces the RTOS v1 function <b>osMutexCreate</b>.</li>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga313801836c62deb23055efb55a420e42">osMutexId_t</a>.</li>
<li>The parameter type changed to <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#structosMutexAttr__t">osMutexAttr_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gaea629705703580ff58776bf73c8db915" title="Release a Mutex that was acquired by osMutexAcquire. ">osMutexRelease</a> (osMutexId_t mutex_id)</code> <br/>
 <code>osStatus &#160; osMutexRelease (osMutexId mutex_id)</code> <br/>
 <br/>
 Release a Mutex that was acquired by <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gabc54686ea0fc281823b1763422d2a924">osMutexAcquire</a>. <br/>
</p>
<ul>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e">osStatus_t</a>.</li>
<li>The parameter type changed to <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga313801836c62deb23055efb55a420e42">osMutexId_t</a>.</li>
</ul>
</div><div class="mod"> </div><h1><a class="anchor" id="mig_sem"></a>
Semaphores</h1>
<p>Refer to <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html">Semaphores</a> for details.</p>
<hr/>
<div class="new"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga7e94c8b242a0c81f2cc79ec22895c87b" title="Acquire a Semaphore token or timeout if no tokens are available. ">osSemaphoreAcquire</a> (osSemaphoreId_t semaphore_id, uint32_t timeout)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Acquire a Semaphore token or timeout if no tokens are available. <br/>
 New function. Replaces <code>osSemaphoreWait</code>. </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga81258ce9c67fa89f07cc49d2e136cd88" title="Delete a Semaphore object. ">osSemaphoreDelete</a> (osSemaphoreId_t semaphore_id)</code> <br/>
 <code>osStatus &#160; osSemaphoreDelete (osSemaphoreId semaphore_id)</code> <br/>
 <br/>
 Delete a Semaphore object. <br/>
</p>
<ul>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e" title="Status code values returned by CMSIS-RTOS functions. ">osStatus_t</a>.</li>
<li>The parameter type has changed to <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga6e1c1c4b04175bb92b013c8f37249f40">osSemaphoreId_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga7559d4dff3cda9992fc5ab5de3e74c70" title="Get current Semaphore token count. ">osSemaphoreGetCount</a> (osSemaphoreId_t semaphore_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get current Semaphore token count. <br/>
 New function. </div><hr/>
<div class="new"> <code>const char *<a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga9586952051f00285f1482dbe6695bbc4" title="Get name of a Semaphore object. ">osSemaphoreGetName</a> (osSemaphoreId_t semaphore_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get name of a Semaphore object. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osSemaphoreId_t <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga2a39806ace781a0008a4374ca701b14a" title="Create and Initialize a Semaphore object. ">osSemaphoreNew</a> (uint32_t max_count, uint32_t initial_count, const <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#structosSemaphoreAttr__t" title="Attributes structure for semaphore. ">osSemaphoreAttr_t</a> *attr)</code> <br/>
 <code>osSemaphoreId &#160; osSemaphoreCreate (const osSemaphoreDef_t *semaphore_def, int32_t count)</code> <br/>
 <br/>
 Create and Initialize a Semaphore object. <br/>
</p>
<ul>
<li>The function <b>osSemaphoreNew</b> replaces the RTOS v1 function <b>osSemaphoreCreate</b>.</li>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga6e1c1c4b04175bb92b013c8f37249f40">osSemaphoreId_t</a>.</li>
<li>The parameter list and types have changed.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga0abcee1b5449d7a6928fb9248c690bb6" title="Release a Semaphore token up to the initial maximum count. ">osSemaphoreRelease</a> (osSemaphoreId_t semaphore_id)</code> <br/>
 <code>osStatus &#160; osSemaphoreRelease (osSemaphoreId semaphore_id)</code> <br/>
 <br/>
 Release a Semaphore token up to the initial maximum count. <br/>
</p>
<ul>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e" title="Status code values returned by CMSIS-RTOS functions. ">osStatus_t</a>.</li>
<li>The parameter type has changed to <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga6e1c1c4b04175bb92b013c8f37249f40">osSemaphoreId_t</a>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="del"> <em>none</em> <br/>
 <code>int32_t osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t timeout)</code> <br/>
 <br/>
Deprecated. Replaced by <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga7e94c8b242a0c81f2cc79ec22895c87b" title="Acquire a Semaphore token or timeout if no tokens are available. ">osSemaphoreAcquire</a>. </div><h1><a class="anchor" id="mig_memPool"></a>
Memory Pool</h1>
<hr/>
<div class="mod"> <code>void * <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga8ead54e99ccb8f112356c88f99d38fbe" title="Allocate a memory block from a Memory Pool. ">osMemoryPoolAlloc</a> (osMemoryPoolId_t mp_id, uint32_t timeout)</code> <br/>
 <code>void * osPoolAlloc &#160;(osPoolId pool_id)</code> <br/>
 <br/>
 Allocate a memory block from a Memory Pool. <br/>
</p>
<ul>
<li>The function <b>osMemoryPoolAlloc</b> replaces both RTOS v1 functions <b>osPoolAlloc</b>.</li>
<li>The parameter list and types changed.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga8c39e7e5cd2b9eda907466808e59d62e" title="Delete a Memory Pool object. ">osMemoryPoolDelete</a> (osMemoryPoolId_t mp_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Delete a Memory Pool object. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gabb4f4560daa6d1f8c8789082ee186d16" title="Return an allocated memory block back to a Memory Pool. ">osMemoryPoolFree</a> (osMemoryPoolId_t mp_id, void * block)</code> <br/>
 <code>osStatus &#160; osPoolFree (osPoolId pool_id, void * block)</code> <br/>
 <br/>
 Return an allocated memory block back to a Memory Pool. <br/>
</p>
<ul>
<li>The function <b>osMemoryPoolFree</b> replaces the RTOS v1 function <b>osPoolFree</b>.</li>
<li>The first parameter type <b>osMemoryPoolId_t</b> replaces the ROTS v1 type <b>osPoolId</b>.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gab2bf059b7fa7679c3cccdaeec60b6c0e" title="Get memory block size in a Memory Pool. ">osMemoryPoolGetBlockSize</a> (osMemoryPoolId_t mp_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get memory block size in a Memory Pool. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gad696e94bfbe28f0b6613f9303fdf6a37" title="Get maximum number of memory blocks in a Memory Pool. ">osMemoryPoolGetCapacity</a> (osMemoryPoolId_t mp_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get maximum number of memory blocks in a Memory Pool. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga958a9449bff8c95ce213de98eef5739d" title="Get number of memory blocks used in a Memory Pool. ">osMemoryPoolGetCount</a> (osMemoryPoolId_t mp_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get number of memory blocks used in a Memory Pool. <br/>
 New function. </div><hr/>
<div class="new"> <code>const char *<a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gab414a1e138205a55820acfa277c8f386" title="Get name of a Memory Pool object. ">osMemoryPoolGetName</a> (osMemoryPoolId_t mp_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get name of a Memory Pool object. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga0394cffa9479a7994e3b03c79c1cb909" title="Get number of memory blocks available in a Memory Pool. ">osMemoryPoolGetSpace</a> (osMemoryPoolId_t mp_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get number of memory blocks available in a Memory Pool. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osMemoryPoolId_t <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga497ced5d72dc5cd405c4c418516220dc" title="Create and Initialize a Memory Pool object. ">osMemoryPoolNew</a> (uint32_t block_count, uint32_t block_size, const <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#structosMemoryPoolAttr__t" title="Attributes structure for memory pool. ">osMemoryPoolAttr_t</a> *attr)</code> <br/>
 <code>osPoolId &#160; &#160; &#160; &#160; osPoolCreate (const osPoolDef_t * pool_def)</code> <br/>
 <br/>
 Get number of memory blocks available in a Memory Pool. <br/>
</p>
<ul>
<li>The function <b>osMemoryPoolNew</b> replaces the RTOS v1 function <b>osPoolCreate</b>.</li>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga2e44473caf338266f56800960294f960">osMemoryPoolId_t</a>.</li>
<li>Parameter list and parameter types have changed.</li>
</ul>
</div><div class="mod"> </div><h1><a class="anchor" id="mig_msgQueue"></a>
Message Queue</h1>
<p>In general, messages are now using fixed size memory instead of being 32-bit values. Refer to <a class="el" href="group__CMSIS__RTOS__Message.html">Message Queue</a> for details.</p>
<hr/>
<div class="new"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__Message.html#gaba987f665444e0d83fa6a3a68bc72abe" title="Delete a Message Queue object. ">osMessageQueueDelete</a> (osMessageQueueId_t mq_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Delete a Message Queue object. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__Message.html#gad90d4959466a7a65105061da8256ab9e" title="Get a Message from a Queue or timeout if Queue is empty. ">osMessageQueueGet</a> (osMessageQueueId_t mq_id, void *msg_ptr, uint8_t *msg_prio, uint32_t timeout)</code> <br/>
 <code>osEvent &#160;&#160; osMessageGet (osMessageQId queue_id, uint32_t timeout)</code> <br/>
 <br/>
 Get a Message from a Queue or timeout if Queue is empty. <br/>
</p>
<ul>
<li>The function <b>osMessageQueueGet</b> replaces the RTOS v1 function <b>osMessageGet</b>.</li>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e" title="Status code values returned by CMSIS-RTOS functions. ">osStatus_t</a>.</li>
<li>The parameter list and parameter types have changed.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__Message.html#gac24f87d4f395e9e9c900c320e45ade8a" title="Get maximum number of messages in a Message Queue. ">osMessageQueueGetCapacity</a> (osMessageQueueId_t mq_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get maximum number of messages in a Message Queue. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__Message.html#ga6a32ac394fcff568b251c160cc3014b2" title="Get number of queued messages in a Message Queue. ">osMessageQueueGetCount</a> (osMessageQueueId_t mq_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get number of queued messages in a Message Queue. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__Message.html#ga96d3d84069b20359de48109e28a1a89e" title="Get maximum message size in a Memory Pool. ">osMessageQueueGetMsgSize</a> (osMessageQueueId_t mq_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get maximum message size in a Memory Pool. <br/>
 New function. </div><hr/>
<div class="new"> <code>const char *<a class="el" href="group__CMSIS__RTOS__Message.html#gae7cf7bf2b97a5ae481fb60fcce99247a" title="Get name of a Message Queue object. ">osMessageQueueGetName</a> (osMessageQueueId_t mq_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get name of a Message Queue object. <br/>
 New function. </div><hr/>
<div class="new"> <code>uint32_t <a class="el" href="group__CMSIS__RTOS__Message.html#gaddf0904427436dd3880d46263c2dc9fa" title="Get number of available slots for messages in a Message Queue. ">osMessageQueueGetSpace</a> (osMessageQueueId_t mq_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Get number of available slots for messages in a Message Queue. <br/>
 New function. </div><hr/>
<div class="mod"> <code>osMessageQueueId_t <a class="el" href="group__CMSIS__RTOS__Message.html#ga24e895a00f9d484db33aaf784c57bfed" title="Create and Initialize a Message Queue object. ">osMessageQueueNew</a> (uint32_t msg_count, uint32_t msg_size, const <a class="el" href="group__CMSIS__RTOS__Message.html#structosMessageQueueAttr__t" title="Attributes structure for message queue. ">osMessageQueueAttr_t</a> *attr)</code> <br/>
 <code>osMessageQId &#160; &#160; &#160; osMessageCreate (const osMessageQDef_t *queue_def, osThreadId thread_id)</code> <br/>
 <br/>
 Create and Initialize a Message Queue object. <br/>
</p>
<ul>
<li>The function <b>osMessageQueueNew</b> replaces the RTOS v1 function <b>osMessageCreate</b>.</li>
<li>The return type changed to <a class="el" href="cmsis__os2_8h.html#a206dbc05367e03c39fc6d4d1ebcff317">osMessageQueueId_t</a>.</li>
<li>The parameter list and parameter types have changed.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="mod"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__Message.html#gaa515fc8b956f721a8f72b2c505813bfc" title="Put a Message into a Queue or timeout if Queue is full. ">osMessageQueuePut</a> (osMessageQueueId_t mq_id, const void *msg_ptr, uint8_t msg_prio, uint32_t timeout)</code> <br/>
 <code>osStatus &#160; osMessagePut (osMessageQId queue_id, uint32_t info, uint32_t timeout)</code> <br/>
 <br/>
 Put a Message into a Queue or timeout if Queue is full. <br/>
</p>
<ul>
<li>The function <b>osMessageQueuePut</b> replaces the RTOS v1 function <b>osMessagePut</b>.</li>
<li>The return type changed to <a class="el" href="group__CMSIS__RTOS__Definitions.html#ga6c0dbe6069e4e7f47bb4cd32ae2b813e" title="Status code values returned by CMSIS-RTOS functions. ">osStatus_t</a>.</li>
<li>The parameter list and parameter types have changed.</li>
</ul>
</div><div class="mod"> </div><hr/>
<div class="new"> <code>osStatus_t <a class="el" href="group__CMSIS__RTOS__Message.html#gac6dce7f9ad132d266292c2e979d861b4" title="Reset a Message Queue to initial empty state. ">osMessageQueueReset</a> (osMessageQueueId_t mq_id)</code> <br/>
 <em>none</em> <br/>
 <br/>
 Reset a Message Queue to initial empty state. <br/>
 New function. </div><h1><a class="anchor" id="mig_mailQueue"></a>
Mail Queue</h1>
<p>The <b>Mail Queue</b> RTOS v1 functions have been deprecated. Use the functionality of the <a class="el" href="group__CMSIS__RTOS__Message.html">Message Queue</a> instead. Differences are listed under <a class="el" href="os2MigrationFunctions.html#mig_msgQueue">Message Queue</a>.</p>
<hr/>
<div class="del"> <em>none</em> <br/>
 <code>void * osMailAlloc (osMailQId queue_id, uint32_t timeout)</code> <br/>
 <br/>
Deprecated. </div><hr/>
<div class="del"> <em>none</em> <br/>
 <code>void * osMailCAlloc (osMailQId queue_id, uint32_t timeout)</code> <br/>
 <br/>
Deprecated. </div><hr/>
<div class="del"> <em>none</em> <br/>
 <code>osMailQId osMailCreate (const osMailQDef_t *queue_def, osThreadId thread_id)</code> <br/>
 <br/>
Deprecated. </div><hr/>
<div class="del"> <em>none</em> <br/>
 <code>osStatus osMailFree (osMailQId queue_id, void *mail)</code> <br/>
 <br/>
Deprecated. </div><hr/>
<div class="del"> <em>none</em> <br/>
 <code>osEvent osMailGet (osMailQId queue_id, uint32_t timeout)</code> <br/>
 <br/>
Deprecated. </div><hr/>
<div class="del"> <em>none</em> <br/>
 <code>osStatus osMailPut (osMailQId queue_id, void *mail)</code> <br/>
 <br/>
Deprecated. </div><h1><a class="anchor" id="mig_signalEvents"></a>
Signal Events</h1>
<p>The section RTOS v1 <b>Signal Events</b> has been deprecated. Use the functions listed under <a class="el" href="os2MigrationFunctions.html#mig_threadFlags">Thread Flags</a> instead.</p>
<hr/>
<div class="del"> <em>none</em> <br/>
 <code>int32_t osSignalClear (osThreadId thread_id, int32_t signals)</code> <br/>
 <br/>
Deprecated. </div><hr/>
<div class="del"> <em>none</em> <br/>
 <code>int32_t osSignalSet (osThreadId thread_id, int32_t signals)</code> <br/>
 <br/>
Deprecated. </div><hr/>
<div class="del"> <em>none</em> <br/>
 <code>osEvent osSignalWait (int32_t signals, uint32_t timeout)</code> <br/>
 <br/>
Deprecated. </div> </div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="os2Migration.html">Migration from API v1 to API v2</a></li>
    <li class="footer">Generated on Wed Jul 10 2019 15:21:04 for CMSIS-RTOS2 Version 2.1.3 by Arm Ltd. All rights reserved.
	<!--
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 
	-->
	</li>
  </ul>
</div>
</body>
</html>
