2014-06-24 16:45:01 +05:30
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html;charset=iso-8859-1" >
< title >
2014-08-21 15:45:45 +05:30
Xilinx Driver mutex v4_0: xmutex.c File Reference
2014-06-24 16:45:01 +05:30
< / title >
2014-08-21 15:45:45 +05:30
< link href = "doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel = "stylesheet" type = "text/css" >
2014-06-24 16:45:01 +05:30
< / head >
< h3 class = "PageHeader" > Xilinx Processor IP Library< / h3 >
< hl > Software Drivers< / hl >
< hr class = "whs1" >
2014-08-21 15:45:45 +05:30
<!-- 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 >
2014-06-24 16:45:01 +05:30
< pre >
2014-08-21 15:45:45 +05:30
MODIFICATION HISTORY:< / pre > < pre > Ver Who Date Changes
2014-06-24 16:45:01 +05:30
----- ---- -------- -----------------------------------------------
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
2014-08-21 15:45:45 +05:30
< / 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" >
2014-06-24 16:45:01 +05:30
< tr >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > u32 < / td >
< td class = "paramname" > < em > EffectiveAddress< / em > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< / table >
2014-08-21 15:45:45 +05:30
< / div >
< div class = "memdoc" >
< p > Initializes a specific Mutex instance/driver.< / p >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
2014-06-24 16:45:01 +05:30
< 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 >
2014-08-21 15:45:45 +05:30
< / dd >
2014-06-24 16:45:01 +05:30
< / dl >
2014-08-21 15:45:45 +05:30
< dl class = "return" > < dt > < b > Returns:< / b > < / dt > < dd > < ul >
< li > XST_SUCCESS if initialization was successful< / li >
< / ul >
2014-06-24 16:45:01 +05:30
< / dd > < / dl >
2014-08-21 15:45:45 +05:30
< 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" >
2014-06-24 16:45:01 +05:30
< tr >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > u8 < / td >
< td class = "paramname" > < em > MutexNumber< / em > , < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > u32 * < / td >
< td class = "paramname" > < em > Locked< / em > , < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > u32 * < / td >
< td class = "paramname" > < em > Owner< / em > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< / table >
2014-08-21 15:45:45 +05:30
< / 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 >
2014-06-24 16:45:01 +05:30
< 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 >
2014-08-21 15:45:45 +05:30
< / dd >
2014-06-24 16:45:01 +05:30
< / dl >
2014-08-21 15:45:45 +05:30
< 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" >
2014-06-24 16:45:01 +05:30
< tr >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > u8 < / td >
< td class = "paramname" > < em > MutexNumber< / em > , < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > u32 * < / td >
< td class = "paramname" > < em > User< / em > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< / table >
2014-08-21 15:45:45 +05:30
< / 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 >
2014-06-24 16:45:01 +05:30
< 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 >
2014-08-21 15:45:45 +05:30
< / dd >
2014-06-24 16:45:01 +05:30
< / dl >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / dd > < / dl >
2014-08-21 15:45:45 +05:30
< 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" >
2014-06-24 16:45:01 +05:30
< tr >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > u8 < / td >
< td class = "paramname" > < em > MutexNumber< / em > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< / table >
2014-08-21 15:45:45 +05:30
< / 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 >
2014-06-24 16:45:01 +05:30
< 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 >
2014-08-21 15:45:45 +05:30
< / dd >
2014-06-24 16:45:01 +05:30
< / dl >
2014-08-21 15:45:45 +05:30
< dl class = "return" > < dt > < b > Returns:< / b > < / dt > < dd > < ul >
< li > TRUE if locked< / li >
< li > FALSE if unlocked< / li >
< / ul >
2014-06-24 16:45:01 +05:30
< / dd > < / dl >
2014-08-21 15:45:45 +05:30
< 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" >
2014-06-24 16:45:01 +05:30
< tr >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > u8 < / td >
< td class = "paramname" > < em > MutexNumber< / em > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< / table >
2014-08-21 15:45:45 +05:30
< / 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 >
2014-06-24 16:45:01 +05:30
< 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 >
2014-08-21 15:45:45 +05:30
< / dd >
2014-06-24 16:45:01 +05:30
< / dl >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / dd > < / dl >
2014-08-21 15:45:45 +05:30
< / 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" >
2014-06-24 16:45:01 +05:30
< tr >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > u8 < / td >
< td class = "paramname" > < em > MutexNumber< / em > , < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > u32 < / td >
< td class = "paramname" > < em > User< / em > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< / table >
2014-08-21 15:45:45 +05:30
< / 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 >
2014-06-24 16:45:01 +05:30
< 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 >
2014-08-21 15:45:45 +05:30
< / dd >
2014-06-24 16:45:01 +05:30
< / dl >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / dd > < / dl >
2014-08-21 15:45:45 +05:30
< 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" >
2014-06-24 16:45:01 +05:30
< tr >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > u8 < / td >
< td class = "paramname" > < em > MutexNumber< / em > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< / table >
2014-08-21 15:45:45 +05:30
< / 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 >
2014-06-24 16:45:01 +05:30
< 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 >
2014-08-21 15:45:45 +05:30
< / dd >
2014-06-24 16:45:01 +05:30
< / dl >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / dd > < / dl >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / dd > < / dl >
2014-08-21 15:45:45 +05:30
< / 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" >
2014-06-24 16:45:01 +05:30
< tr >
2014-08-21 15:45:45 +05:30
< 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 >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > u8 < / td >
< td class = "paramname" > < em > MutexNumber< / em > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< tr >
2014-08-21 15:45:45 +05:30
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td > < td > < / td >
2014-06-24 16:45:01 +05:30
< / tr >
< / table >
2014-08-21 15:45:45 +05:30
< / div >
< div class = "memdoc" >
< p > Unlocks a particular Mutex lock within a Mutex device.< / p >
< dl > < dt > < b > Parameters:< / b > < / dt > < dd >
2014-06-24 16:45:01 +05:30
< 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 >
2014-08-21 15:45:45 +05:30
< / dd >
2014-06-24 16:45:01 +05:30
< / dl >
2014-08-21 15:45:45 +05:30
< dl class = "return" > < dt > < b > Returns:< / b > < / dt > < dd > < / dd > < / dl >
2014-06-24 16:45:01 +05:30
< ul >
2014-08-21 15:45:45 +05:30
< 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 >