
This patch updates the doxygen for the drivers llfifo,mbox,mig_7series,mutex,nandps to include .h files in the listof files provided in the index.html file. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
427 lines
21 KiB
HTML
Executable file
427 lines
21 KiB
HTML
Executable file
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
|
<title>
|
|
Xilinx Driver mutex v4_0: xmutex.c File Reference
|
|
</title>
|
|
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
|
|
</head>
|
|
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
|
|
<hl>Software Drivers</hl>
|
|
<hr class="whs1">
|
|
|
|
<!-- Generated by Doxygen 1.6.1 -->
|
|
<div class="navigation" id="top">
|
|
<div class="tabs">
|
|
<ul>
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
|
</ul>
|
|
</div>
|
|
<div class="tabs">
|
|
<ul>
|
|
<li><a href="files.html"><span>File List</span></a></li>
|
|
<li><a href="globals.html"><span>File Members</span></a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="contents">
|
|
<h1>xmutex.c File Reference</h1><code>#include <string.h></code><br/>
|
|
<code>#include "<a class="el" href="xmutex_8h.html">xmutex.h</a>"</code><br/>
|
|
<code>#include "xparameters.h"</code><br/>
|
|
<code>#include "xil_types.h"</code><br/>
|
|
<code>#include "xil_assert.h"</code><br/>
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><td colspan="2"><h2>Functions</h2></td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xmutex_8c.html#a250cfb7229128feb084799a476d423d6">XMutex_CfgInitialize</a> (<a class="el" href="struct_x_mutex.html">XMutex</a> *InstancePtr, <a class="el" href="struct_x_mutex___config.html">XMutex_Config</a> *ConfigPtr, u32 EffectiveAddress)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xmutex_8c.html#a1255fbeea64f519d8def63e542ce8703">XMutex_Lock</a> (<a class="el" href="struct_x_mutex.html">XMutex</a> *InstancePtr, u8 MutexNumber)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xmutex_8c.html#af1857cffa94ba8b3bdf491f1a0096340">XMutex_Trylock</a> (<a class="el" href="struct_x_mutex.html">XMutex</a> *InstancePtr, u8 MutexNumber)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xmutex_8c.html#a82790dd21650e2b03e2c0a0f69a605d3">XMutex_Unlock</a> (<a class="el" href="struct_x_mutex.html">XMutex</a> *InstancePtr, u8 MutexNumber)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xmutex_8c.html#a37302270d3c1c86dc0bffdfc7043b902">XMutex_IsLocked</a> (<a class="el" href="struct_x_mutex.html">XMutex</a> *InstancePtr, u8 MutexNumber)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="xmutex_8c.html#a0fcbb23b06dc9fb716e3812696321f66">XMutex_GetStatus</a> (<a class="el" href="struct_x_mutex.html">XMutex</a> *InstancePtr, u8 MutexNumber, u32 *Locked, u32 *Owner)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xmutex_8c.html#ad7d5c5cd3b24ffee6dcc093b98c8546a">XMutex_GetUser</a> (<a class="el" href="struct_x_mutex.html">XMutex</a> *InstancePtr, u8 MutexNumber, u32 *User)</td></tr>
|
|
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="xmutex_8c.html#a941e13d2534884adf4926f05bae3966e">XMutex_SetUser</a> (<a class="el" href="struct_x_mutex.html">XMutex</a> *InstancePtr, u8 MutexNumber, u32 User)</td></tr>
|
|
</table>
|
|
<hr/><a name="_details"></a><h2>Detailed Description</h2>
|
|
<p>Contains required functions for the <a class="el" href="struct_x_mutex.html">XMutex</a> driver.</p>
|
|
<pre>
|
|
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
|
|
----- ---- -------- -----------------------------------------------
|
|
1.00a va First release
|
|
1.00b ecm 06/01/07 Cleanup, new coding standard, check into XCS
|
|
2.00a hm 04/14/09 Fixed CR 466322, removed extra definitions
|
|
Also fixed canonical definitions treating an interface
|
|
as an device instance.
|
|
3.00a hbm 10/15/09 Migrated to HAL phase 1 to use xil_io, xil_types,
|
|
and xil_assert.
|
|
4.00a bss 03/05/14 Modified XMutex_CfgInitialize to fix CR# 770096
|
|
</pre> <hr/><h2>Function Documentation</h2>
|
|
<a class="anchor" id="a250cfb7229128feb084799a476d423d6"></a><!-- doxytag: member="xmutex.c::XMutex_CfgInitialize" ref="a250cfb7229128feb084799a476d423d6" args="(XMutex *InstancePtr, XMutex_Config *ConfigPtr, u32 EffectiveAddress)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XMutex_CfgInitialize </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_mutex.html">XMutex</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="struct_x_mutex___config.html">XMutex_Config</a> * </td>
|
|
<td class="paramname"> <em>ConfigPtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 </td>
|
|
<td class="paramname"> <em>EffectiveAddress</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Initializes a specific Mutex instance/driver.</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is a pointer to the <a class="el" href="struct_x_mutex.html">XMutex</a> instance to be worked on. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>ConfigPtr</em> </td><td>is the device configuration structure containing required HW build data. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>EffectiveAddress</em> </td><td>is the Physical address of the hardware in a Virtual Memory operating system environment. It is the Base Address in a stand alone environment.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if initialization was successful</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a0fcbb23b06dc9fb716e3812696321f66"></a><!-- doxytag: member="xmutex.c::XMutex_GetStatus" ref="a0fcbb23b06dc9fb716e3812696321f66" args="(XMutex *InstancePtr, u8 MutexNumber, u32 *Locked, u32 *Owner)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XMutex_GetStatus </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_mutex.html">XMutex</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u8 </td>
|
|
<td class="paramname"> <em>MutexNumber</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 * </td>
|
|
<td class="paramname"> <em>Locked</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 * </td>
|
|
<td class="paramname"> <em>Owner</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Gets the current status of a Mutex lock within a Mutex device.</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is a pointer to the <a class="el" href="struct_x_mutex.html">XMutex</a> instance to be worked on. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>MutexNumber</em> </td><td>is the specific Mutex lock within the device to operate on. Each device may contain multiple Mutex locks. The Mutex number is a zero based number with a range of 0 - (InstancePtr->Config.NumMutex - 1). </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Locked</em> </td><td>is a pointer where the current lock status is stored. Sets memory pointed to by 'Locked' to 1 if the Mutex is locked and 0 if it is unlocked. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>Owner</em> </td><td>is a pointer where the current owner status is stored. . If the Mutex is locked, the memory pointed to by 'Owner' is updated to reflect the CPU ID that has currently locked this Mutex.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>None.</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ad7d5c5cd3b24ffee6dcc093b98c8546a"></a><!-- doxytag: member="xmutex.c::XMutex_GetUser" ref="ad7d5c5cd3b24ffee6dcc093b98c8546a" args="(XMutex *InstancePtr, u8 MutexNumber, u32 *User)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XMutex_GetUser </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_mutex.html">XMutex</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u8 </td>
|
|
<td class="paramname"> <em>MutexNumber</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 * </td>
|
|
<td class="paramname"> <em>User</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Gets the USER register of a Mutex lock within a Mutex device.</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is a pointer to the <a class="el" href="struct_x_mutex.html">XMutex</a> instance to be worked on. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>MutexNumber</em> </td><td>is the specific Mutex lock within the device to operate on. Each device may contain multiple Mutex locks. The Mutex number is a zero based number with a range of 0 - (InstancePtr->Config.NumMutex - 1). </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>User</em> </td><td>is a pointer to an u32 where the current user register value is stored by this function. </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if successful. Memory pointed to by User is updated to reflect the contents of the user register.</li>
|
|
<li>XST_NO_FEATURE if the Mutex was not configured with a USER register.</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a37302270d3c1c86dc0bffdfc7043b902"></a><!-- doxytag: member="xmutex.c::XMutex_IsLocked" ref="a37302270d3c1c86dc0bffdfc7043b902" args="(XMutex *InstancePtr, u8 MutexNumber)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XMutex_IsLocked </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_mutex.html">XMutex</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u8 </td>
|
|
<td class="paramname"> <em>MutexNumber</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Gets the current lock state of a Mutex lock within a Mutex device.</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is a pointer to the <a class="el" href="struct_x_mutex.html">XMutex</a> instance to be worked on. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>MutexNumber</em> </td><td>is the specific Mutex lock within the device to operate on. Each device may contain multiple Mutex locks. The Mutex number is a zero based number with a range of 0 - (InstancePtr->Config.NumMutex - 1).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>TRUE if locked</li>
|
|
<li>FALSE if unlocked</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a1255fbeea64f519d8def63e542ce8703"></a><!-- doxytag: member="xmutex.c::XMutex_Lock" ref="a1255fbeea64f519d8def63e542ce8703" args="(XMutex *InstancePtr, u8 MutexNumber)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void XMutex_Lock </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_mutex.html">XMutex</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u8 </td>
|
|
<td class="paramname"> <em>MutexNumber</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Locks a particular Mutex lock within a Mutex device. Call blocks till the Mutex is locked.</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is a pointer to the <a class="el" href="struct_x_mutex.html">XMutex</a> instance to be worked on. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>MutexNumber</em> </td><td>is the specific Mutex lock within the device to operate on. Each device may contain multiple Mutex locks. The Mutex number is a zero based number with a range of 0 - (InstancePtr->Config.NumMutex - 1).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd>None</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd><ul>
|
|
<li>XMutex_Trylock is a blocking call. This call blocks until the user gets the lock.</li>
|
|
<li>Use XMutex_Trylock for a Non-Blocking call. The user gets the lock if it is available and returns immediately if the lock is not available. </li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a941e13d2534884adf4926f05bae3966e"></a><!-- doxytag: member="xmutex.c::XMutex_SetUser" ref="a941e13d2534884adf4926f05bae3966e" args="(XMutex *InstancePtr, u8 MutexNumber, u32 User)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XMutex_SetUser </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_mutex.html">XMutex</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u8 </td>
|
|
<td class="paramname"> <em>MutexNumber</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u32 </td>
|
|
<td class="paramname"> <em>User</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Sets the USER register of a Mutex lock within a Mutex device.</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is a pointer to the <a class="el" href="struct_x_mutex.html">XMutex</a> instance to be worked on. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>MutexNumber</em> </td><td>is the specific Mutex lock within the device to operate on. Each device may contain multiple Mutex locks. The Mutex number is a zero based number with a range of 0 - (InstancePtr->Config.NumMutex - 1). </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>User</em> </td><td>is the value to update the USER register with.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if the USER register is written with the given value .</li>
|
|
<li>XST_NO_FEATURE if the Mutex was not configured with a USER register.</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="af1857cffa94ba8b3bdf491f1a0096340"></a><!-- doxytag: member="xmutex.c::XMutex_Trylock" ref="af1857cffa94ba8b3bdf491f1a0096340" args="(XMutex *InstancePtr, u8 MutexNumber)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XMutex_Trylock </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_mutex.html">XMutex</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u8 </td>
|
|
<td class="paramname"> <em>MutexNumber</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Locks a particular Mutex lock within a Mutex device. Call returns immediately if the Mutex is already locked (This is Non-Blocking call).</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is a pointer to the <a class="el" href="struct_x_mutex.html">XMutex</a> instance to be worked on. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>MutexNumber</em> </td><td>is the specific Mutex lock within the device to operate on. Each device may contain multiple Mutex locks. The Mutex number is a zero based number with a range of 0 - (InstancePtr->Config.NumMutex - 1).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
|
|
<li>XST_SUCCESS if locking was successful.</li>
|
|
<li>XST_DEVICE_BUSY if the Mutex was found to be already locked</li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd><ul>
|
|
<li>This is Non-Blocking call, the user gets the lock if it is available else XST_DEVICE_BUSY is returned.</li>
|
|
<li>Use XMutex_Lock if you need to block until a lock is obtained. </li>
|
|
</ul>
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a82790dd21650e2b03e2c0a0f69a605d3"></a><!-- doxytag: member="xmutex.c::XMutex_Unlock" ref="a82790dd21650e2b03e2c0a0f69a605d3" args="(XMutex *InstancePtr, u8 MutexNumber)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int XMutex_Unlock </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="struct_x_mutex.html">XMutex</a> * </td>
|
|
<td class="paramname"> <em>InstancePtr</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">u8 </td>
|
|
<td class="paramname"> <em>MutexNumber</em></td><td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
<p>Unlocks a particular Mutex lock within a Mutex device.</p>
|
|
<dl><dt><b>Parameters:</b></dt><dd>
|
|
<table border="0" cellspacing="2" cellpadding="0">
|
|
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em> </td><td>is a pointer to the <a class="el" href="struct_x_mutex.html">XMutex</a> instance to be worked on. </td></tr>
|
|
<tr><td valign="top"></td><td valign="top"><em>MutexNumber</em> </td><td>is the specific Mutex lock within the device to operate on. Each device may contain multiple Mutex locks. The Mutex number is a zero based number with a range of 0 - (InstancePtr->Config.NumMutex - 1).</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="return"><dt><b>Returns:</b></dt><dd></dd></dl>
|
|
<ul>
|
|
<li>XST_SUCCESS if locking was successful.</li>
|
|
<li>XST_FAILURE if the Mutex was locked by process with different ID.</li>
|
|
</ul>
|
|
<dl class="note"><dt><b>Note:</b></dt><dd>None. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p class="Copyright">
|
|
Copyright © 1995-2014 Xilinx, Inc. All rights reserved.
|
|
</p>
|
|
</body>
|
|
</html>
|