uofw/group__UsersystemLib.html
2016-08-03 00:15:35 +00:00

707 lines
32 KiB
HTML

<!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>uOFW: UsersystemLib Module</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<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! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">uOFW
</div>
<div id="projectbrief">Reverse engineered PSP kernel 6.60.</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<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><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</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>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">UsersystemLib Module</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#ga20367eeefab6198dc1d7f6791d020075">sceKernelCpuSuspendIntr</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#ga944ecd9597a355cc700f3f811d40d3ed">sceKernelCpuResumeIntr</a> (s32 intr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#gaeffc8cbe0a840a61390159b851b47cd4">sceKernelCpuResumeIntrWithSync</a> (s32 intr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#gab3c095a6d5704d3397f89d574d43954f">sceKernelIsCpuIntrSuspended</a> (s32 intr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#ga4e6219082a8aeae96d8f6d3069747fed">sceKernelIsCpuIntrEnable</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#ga638cd25b4d88295a7cb59c3dfd1dece4">sub_00000208</a> (s32 dlId, void *stall)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#ga3950cf6a6f0928b1bb6128ac8503a778">sceGe_lazy_31129B95</a> (s32 dlId, void *stall)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#ga77feb17d4ead3b4c81273467c4f602be">sceKernelGetThreadId</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#gac12c779057f2506ae4b41acb7d1d8871">sceKernelCheckThreadStack</a> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#gae3e05cc92fdaa57aabc4dd0d1cbd389d">sceKernelGetTlsAddr</a> (SceUID uid)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#gacce75d90cafca598b1f1f67337a6cae5">sceKernelTryLockLwMutex</a> (SceLwMutex *mutex, s32 count)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#gade39cec8bb18b4b48626c0ae4286d2dd">sceKernelTryLockLwMutex_600</a> (SceLwMutex *mutex, s32 count)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#ga92a64e28e82b7e8c1e96b2c528eb32fb">sceKernelLockLwMutexCB</a> (SceLwMutex *mutex, s32 count)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#ga823bc0a7670b969e44ac72955c25aa50">sceKernelLockLwMutex</a> (SceLwMutex *mutex, s32 count)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#ga4f12087591bceef908537a2617c28aa5">sceKernelUnlockLwMutex</a> (SceLwMutex *mutex, s32 count)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#gac34f2ec2dd1b9079dd017aed7487a14a">Kernel_Library_3AD10D4D</a> (SceLwMutex *mutex)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">s32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#ga01f06abbcc06e1ac48c2b9e38e496488">sceKernelReferLwMutexStatus</a> (SceLwMutex *mutex, u32 *addr)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#gaeb89383520c91965b8b305a01b9075c5">sceKernelMemcpy</a> (void *dst, const void *src, SceSize size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UsersystemLib.html#gacb4b6ca5c01c74e1c12bdaad428c38f5">sceKernelMemset</a> (void *dst, s8 val, SceSize size)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<dl class="author"><dt><b>Author:</b></dt><dd>geecko </dd></dl>
<dl class="version"><dt><b>Version:</b></dt><dd>6.60</dd></dl>
<p>The usersystemlib.prx module RE'ing. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga20367eeefab6198dc1d7f6791d020075"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelCpuSuspendIntr" ref="ga20367eeefab6198dc1d7f6791d020075" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#ga20367eeefab6198dc1d7f6791d020075">sceKernelCpuSuspendIntr</a> </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Suspends all interrupts.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>Current state of the interrupt controller. </dd></dl>
</div>
</div>
<a class="anchor" id="ga944ecd9597a355cc700f3f811d40d3ed"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelCpuResumeIntr" ref="ga944ecd9597a355cc700f3f811d40d3ed" args="(s32 intr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__UsersystemLib.html#ga944ecd9597a355cc700f3f811d40d3ed">sceKernelCpuResumeIntr</a> </td>
<td>(</td>
<td class="paramtype">s32&#160;</td>
<td class="paramname"><em>intr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Resumes all interrupts.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">intr</td><td>A state returned by <a class="el" href="group__UsersystemLib.html#ga20367eeefab6198dc1d7f6791d020075">sceKernelCpuSuspendIntr()</a>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gaeffc8cbe0a840a61390159b851b47cd4"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelCpuResumeIntrWithSync" ref="gaeffc8cbe0a840a61390159b851b47cd4" args="(s32 intr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="group__UsersystemLib.html#gaeffc8cbe0a840a61390159b851b47cd4">sceKernelCpuResumeIntrWithSync</a> </td>
<td>(</td>
<td class="paramtype">s32&#160;</td>
<td class="paramname"><em>intr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Resumes all interrupts, with synchronization.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">intr</td><td>A state returned by <a class="el" href="group__UsersystemLib.html#ga20367eeefab6198dc1d7f6791d020075">sceKernelCpuSuspendIntr()</a>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="gab3c095a6d5704d3397f89d574d43954f"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelIsCpuIntrSuspended" ref="gab3c095a6d5704d3397f89d574d43954f" args="(s32 intr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#gab3c095a6d5704d3397f89d574d43954f">sceKernelIsCpuIntrSuspended</a> </td>
<td>(</td>
<td class="paramtype">s32&#160;</td>
<td class="paramname"><em>intr</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Checks if interrupts are suspended.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">intr</td><td>A state returned by <a class="el" href="group__UsersystemLib.html#ga20367eeefab6198dc1d7f6791d020075">sceKernelCpuSuspendIntr()</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 if the state indicates that interrupts are suspended, otherwise 0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga4e6219082a8aeae96d8f6d3069747fed"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelIsCpuIntrEnable" ref="ga4e6219082a8aeae96d8f6d3069747fed" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#ga4e6219082a8aeae96d8f6d3069747fed">sceKernelIsCpuIntrEnable</a> </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Checks if interrupts are enabled.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>1 if interrupts are enabled, otherwise 0. </dd></dl>
</div>
</div>
<a class="anchor" id="ga638cd25b4d88295a7cb59c3dfd1dece4"></a><!-- doxytag: member="usersystemlib_kernel.h::sub_00000208" ref="ga638cd25b4d88295a7cb59c3dfd1dece4" args="(s32 dlId, void *stall)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#ga638cd25b4d88295a7cb59c3dfd1dece4">sub_00000208</a> </td>
<td>(</td>
<td class="paramtype">s32&#160;</td>
<td class="paramname"><em>dlId</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>stall</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Calls sceGeListUpdateStallAddr.</p>
<p>This is NOT an exported function because it is only used by <a class="el" href="group__UsersystemLib.html#ga3950cf6a6f0928b1bb6128ac8503a778">sceGe_lazy_31129B95()</a>. Its syscall instruction is patched at runtime by the GE module. </p>
</div>
</div>
<a class="anchor" id="ga3950cf6a6f0928b1bb6128ac8503a778"></a><!-- doxytag: member="usersystemlib_kernel.h::sceGe_lazy_31129B95" ref="ga3950cf6a6f0928b1bb6128ac8503a778" args="(s32 dlId, void *stall)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#ga3950cf6a6f0928b1bb6128ac8503a778">sceGe_lazy_31129B95</a> </td>
<td>(</td>
<td class="paramtype">s32&#160;</td>
<td class="paramname"><em>dlId</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>stall</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Updates the stall address.</p>
<p>Calls sceGeListUpdateStallAddr with additional checks, limiting its call once out of 64 times. This function is only used by 'Genso Suikoden I &amp; II'.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">dlId</td><td>The ID of the display list which stall address will be modified. </td></tr>
<tr><td class="paramname">stall</td><td>A new stall address.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SCE_ERROR_OK on success, otherwise &lt;0 on error. </dd></dl>
</div>
</div>
<a class="anchor" id="ga77feb17d4ead3b4c81273467c4f602be"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelGetThreadId" ref="ga77feb17d4ead3b4c81273467c4f602be" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#ga77feb17d4ead3b4c81273467c4f602be">sceKernelGetThreadId</a> </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the current thread ID.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The current thread ID, otherwise &lt;0 on error. </dd></dl>
</div>
</div>
<a class="anchor" id="gac12c779057f2506ae4b41acb7d1d8871"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelCheckThreadStack" ref="gac12c779057f2506ae4b41acb7d1d8871" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#gac12c779057f2506ae4b41acb7d1d8871">sceKernelCheckThreadStack</a> </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Checks how much stack space is left for the current thread.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>The current thread's stack space available, otherwise &lt;0 on error. </dd></dl>
</div>
</div>
<a class="anchor" id="gae3e05cc92fdaa57aabc4dd0d1cbd389d"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelGetTlsAddr" ref="gae3e05cc92fdaa57aabc4dd0d1cbd389d" args="(SceUID uid)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="group__UsersystemLib.html#gae3e05cc92fdaa57aabc4dd0d1cbd389d">sceKernelGetTlsAddr</a> </td>
<td>(</td>
<td class="paramtype">SceUID&#160;</td>
<td class="paramname"><em>uid</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets a tls address.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">uid</td><td>Unique tls identifier.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>A pointer, otherwise NULL on error. </dd></dl>
</div>
</div>
<a class="anchor" id="gacce75d90cafca598b1f1f67337a6cae5"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelTryLockLwMutex" ref="gacce75d90cafca598b1f1f67337a6cae5" args="(SceLwMutex *mutex, s32 count)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#gacce75d90cafca598b1f1f67337a6cae5">sceKernelTryLockLwMutex</a> </td>
<td>(</td>
<td class="paramtype">SceLwMutex *&#160;</td>
<td class="paramname"><em>mutex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">s32&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Tries to lock a lightweight mutex.</p>
<p>This function is non-blocking. If the mutex is flagged as recursive, count can be &gt;1. For more information, see <a href="http://linux.die.net/man/3/pthread_mutex_trylock">http://linux.die.net/man/3/pthread_mutex_trylock</a></p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">mutex</td><td>Pointer to a lightweight mutex structure. </td></tr>
<tr><td class="paramname">count</td><td>The lock counter increment.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SCE_ERROR_OK on success, otherwise SCE_ERROR_KERNEL_LWMUTEX_LOCKED on error. </dd></dl>
</div>
</div>
<a class="anchor" id="gade39cec8bb18b4b48626c0ae4286d2dd"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelTryLockLwMutex_600" ref="gade39cec8bb18b4b48626c0ae4286d2dd" args="(SceLwMutex *mutex, s32 count)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#gade39cec8bb18b4b48626c0ae4286d2dd">sceKernelTryLockLwMutex_600</a> </td>
<td>(</td>
<td class="paramtype">SceLwMutex *&#160;</td>
<td class="paramname"><em>mutex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">s32&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Tries to lock a lightweight mutex (6.xx version).</p>
<p>This function is non-blocking. It could return SCE_ERROR_KERNEL_LWMUTEX_LOCKED. Unlike <a class="el" href="group__UsersystemLib.html#gacce75d90cafca598b1f1f67337a6cae5">sceKernelTryLockLwMutex()</a>, the error codes are more informative. If the mutex is flagged as recursive, count can be &gt;1. For more information, see <a href="http://linux.die.net/man/3/pthread_mutex_trylock">http://linux.die.net/man/3/pthread_mutex_trylock</a></p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">mutex</td><td>Pointer to a lightweight mutex structure. </td></tr>
<tr><td class="paramname">count</td><td>The lock counter increment.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SCE_ERROR_OK on success, otherwise &lt;0 on error. </dd></dl>
</div>
</div>
<a class="anchor" id="ga92a64e28e82b7e8c1e96b2c528eb32fb"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelLockLwMutexCB" ref="ga92a64e28e82b7e8c1e96b2c528eb32fb" args="(SceLwMutex *mutex, s32 count)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#ga92a64e28e82b7e8c1e96b2c528eb32fb">sceKernelLockLwMutexCB</a> </td>
<td>(</td>
<td class="paramtype">SceLwMutex *&#160;</td>
<td class="paramname"><em>mutex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">s32&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Locks a lightweight mutex (callback).</p>
<p>This function can be blocking if the mutex is already locked. If the mutex is flagged as recursive, count can be &gt;1. For more information, see <a href="http://linux.die.net/man/3/pthread_mutex_lock">http://linux.die.net/man/3/pthread_mutex_lock</a></p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">mutex</td><td>Pointer to a lightweight mutex structure. </td></tr>
<tr><td class="paramname">count</td><td>The lock counter increment.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SCE_ERROR_OK on success, otherwise &lt;0 on error. </dd></dl>
</div>
</div>
<a class="anchor" id="ga823bc0a7670b969e44ac72955c25aa50"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelLockLwMutex" ref="ga823bc0a7670b969e44ac72955c25aa50" args="(SceLwMutex *mutex, s32 count)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#ga823bc0a7670b969e44ac72955c25aa50">sceKernelLockLwMutex</a> </td>
<td>(</td>
<td class="paramtype">SceLwMutex *&#160;</td>
<td class="paramname"><em>mutex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">s32&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Locks a lightweight mutex.</p>
<p>This function can be blocking if the mutex is already locked. If the mutex is flagged as recursive, count can be &gt;1. For more information, see <a href="http://linux.die.net/man/3/pthread_mutex_lock">http://linux.die.net/man/3/pthread_mutex_lock</a></p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">mutex</td><td>Pointer to a lightweight mutex structure. </td></tr>
<tr><td class="paramname">count</td><td>The lock counter increment.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SCE_ERROR_OK on success, otherwise &lt;0 on error. </dd></dl>
</div>
</div>
<a class="anchor" id="ga4f12087591bceef908537a2617c28aa5"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelUnlockLwMutex" ref="ga4f12087591bceef908537a2617c28aa5" args="(SceLwMutex *mutex, s32 count)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#ga4f12087591bceef908537a2617c28aa5">sceKernelUnlockLwMutex</a> </td>
<td>(</td>
<td class="paramtype">SceLwMutex *&#160;</td>
<td class="paramname"><em>mutex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">s32&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Unlocks a lightweight mutex.</p>
<p>This function is non-blocking. If the mutex is flagged as recursive, count can be &gt;1. For more information, see <a href="http://linux.die.net/man/3/pthread_mutex_unlock">http://linux.die.net/man/3/pthread_mutex_unlock</a></p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">mutex</td><td>Pointer to a lightweight mutex structure. </td></tr>
<tr><td class="paramname">count</td><td>The lock counter decrement.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SCE_ERROR_OK on success, otherwise &lt;0 on error. </dd></dl>
</div>
</div>
<a class="anchor" id="gac34f2ec2dd1b9079dd017aed7487a14a"></a><!-- doxytag: member="usersystemlib_kernel.h::Kernel_Library_3AD10D4D" ref="gac34f2ec2dd1b9079dd017aed7487a14a" args="(SceLwMutex *mutex)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#gac34f2ec2dd1b9079dd017aed7487a14a">Kernel_Library_3AD10D4D</a> </td>
<td>(</td>
<td class="paramtype">SceLwMutex *&#160;</td>
<td class="paramname"><em>mutex</em></td><td>)</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the lock count of a lightweight mutex.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">mutex</td><td>Pointer to a lightweight mutex structure.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The mutex's lock count, otherwise &lt;0 on error. </dd></dl>
</div>
</div>
<a class="anchor" id="ga01f06abbcc06e1ac48c2b9e38e496488"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelReferLwMutexStatus" ref="ga01f06abbcc06e1ac48c2b9e38e496488" args="(SceLwMutex *mutex, u32 *addr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">s32 <a class="el" href="group__UsersystemLib.html#ga01f06abbcc06e1ac48c2b9e38e496488">sceKernelReferLwMutexStatus</a> </td>
<td>(</td>
<td class="paramtype">SceLwMutex *&#160;</td>
<td class="paramname"><em>mutex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32 *&#160;</td>
<td class="paramname"><em>addr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Refers the lightweight mutex's status.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">mutex</td><td>Pointer to a lightweight mutex structure. </td></tr>
<tr><td class="paramname">addr</td><td>Unknown.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Unknown, may be SCE_ERROR_OK on success and &lt;0 on error. </dd></dl>
</div>
</div>
<a class="anchor" id="gaeb89383520c91965b8b305a01b9075c5"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelMemcpy" ref="gaeb89383520c91965b8b305a01b9075c5" args="(void *dst, const void *src, SceSize size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="group__UsersystemLib.html#gaeb89383520c91965b8b305a01b9075c5">sceKernelMemcpy</a> </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>src</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">SceSize&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Copies a block of memory.</p>
<p>See <a href="http://www.cplusplus.com/reference/cstring/memcpy/">http://www.cplusplus.com/reference/cstring/memcpy/</a></p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">dst</td><td>Pointer to the memory block where the content will be copied. </td></tr>
<tr><td class="paramname">src</td><td>Pointer to the data source. </td></tr>
<tr><td class="paramname">size</td><td>Number of bytes to copy.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Value of dst. </dd></dl>
</div>
</div>
<a class="anchor" id="gacb4b6ca5c01c74e1c12bdaad428c38f5"></a><!-- doxytag: member="usersystemlib_kernel.h::sceKernelMemset" ref="gacb4b6ca5c01c74e1c12bdaad428c38f5" args="(void *dst, s8 val, SceSize size)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* <a class="el" href="group__UsersystemLib.html#gacb4b6ca5c01c74e1c12bdaad428c38f5">sceKernelMemset</a> </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>dst</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">s8&#160;</td>
<td class="paramname"><em>val</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">SceSize&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Fills a block of memory.</p>
<p>See <a href="http://www.cplusplus.com/reference/cstring/memset/">http://www.cplusplus.com/reference/cstring/memset/</a></p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
<table class="params">
<tr><td class="paramname">dst</td><td>Pointer to the memory block to fill. </td></tr>
<tr><td class="paramname">val</td><td>Value to be set. </td></tr>
<tr><td class="paramname">size</td><td>Number of bytes to be set.</td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Value of dst. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- 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>Variables</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>
<hr class="footer"/><address class="footer"><small>
Generated on Wed Aug 3 2016 00:15:35 for uOFW by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>