harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From telli...@apache.org
Subject svn commit: r724734 [38/46] - in /harmony/standard/site: docs/externals/kernel_doc/ docs/externals/kernel_doc/html/ docs/externals/vm_doc/ docs/externals/vm_doc/html/ docs/subcomponents/classlibrary/ xdocs/subcomponents/classlibrary/
Date Tue, 09 Dec 2008 15:03:51 GMT
Added: harmony/standard/site/docs/externals/vm_doc/html/hyshmem_8c.html
URL: http://svn.apache.org/viewvc/harmony/standard/site/docs/externals/vm_doc/html/hyshmem_8c.html?rev=724734&view=auto
==============================================================================
--- harmony/standard/site/docs/externals/vm_doc/html/hyshmem_8c.html (added)
+++ harmony/standard/site/docs/externals/vm_doc/html/hyshmem_8c.html Tue Dec  9 07:03:45 2008
@@ -0,0 +1,523 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Harmony Class Library Porting: modules/portlib/src/main/native/port/windows/hyshmem.c File Reference</title>
+<link href="hydoxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.4 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+    <li class="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul>
+</div>
+<h1>modules/portlib/src/main/native/port/windows/hyshmem.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Shared Memory Semaphores. 
+<p>
+
+<p>
+<code>#include &lt;Windows.h&gt;</code><br>
+<code>#include &lt;shlobj.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="hyport_8h.html">hyport.h</a>&quot;</code><br>
+<code>#include &quot;portpriv.h&quot;</code><br>
+<code>#include &quot;portnls.h&quot;</code><br>
+<code>#include &quot;ut_hyprt.h&quot;</code><br>
+<code>#include &quot;hyshmem.h&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">IDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshmem_8c.html#ed960959afef5d39724eee21e5331257">hyshmem_open</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, struct hyshmem_handle **handle, const char *rootname, I_32 size, I_32 perm)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates/open a shared memory region.  <a href="#ed960959afef5d39724eee21e5331257"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void *VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshmem_8c.html#d7a492ed0cf3b50ebd9ef057c1e95264">hyshmem_attach</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, struct hyshmem_handle *handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Attaches the shared memory represented by the handle.  <a href="#d7a492ed0cf3b50ebd9ef057c1e95264"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">IDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshmem_8c.html#bf31d2c32fe2707a61b36c869b0fd1bd">hyshmem_detach</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, struct hyshmem_handle **handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Detaches the shared memory region from the caller's process address space Use <a class="el" href="hyshmem_8c.html#f03f303195dd2198137be48b9bfb9184">hyshmem_destroy</a> to actually remove the memory region from the Operating system.  <a href="#bf31d2c32fe2707a61b36c869b0fd1bd"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">IDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshmem_8c.html#f03f303195dd2198137be48b9bfb9184">hyshmem_destroy</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, struct hyshmem_handle **handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy and removes the shared memory region from OS.  <a href="#f03f303195dd2198137be48b9bfb9184"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshmem_8c.html#30a81ad73fece453fa166149d59a8b1f">hyshmem_shutdown</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PortLibrary shutdown.  <a href="#30a81ad73fece453fa166149d59a8b1f"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">I_32 VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshmem_8c.html#7f6f4a8db5908418a037ea2eb6df572e">hyshmem_startup</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PortLibrary startup.  <a href="#7f6f4a8db5908418a037ea2eb6df572e"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshmem_8c.html#4dcf43fee946443dca9d857c272877f3">hyshmem_close</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, struct hyshmem_handle **handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Detach, Close and remove the shared memory handle.  <a href="#4dcf43fee946443dca9d857c272877f3"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshmem_8c.html#769376bffd562f5ef205bd33ec963bb5">hyshmem_findclose</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, UDATA findhandle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close the handle returned from <a class="el" href="hyshmem_8c.html#a7d5b05550c564090f7f10cd575d0504">hyshmem_findfirst</a>.  <a href="#769376bffd562f5ef205bd33ec963bb5"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">UDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshmem_8c.html#a7d5b05550c564090f7f10cd575d0504">hyshmem_findfirst</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, char *resultbuf)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the name of a shared memory region on the system.  <a href="#a7d5b05550c564090f7f10cd575d0504"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">I_32 VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshmem_8c.html#461626ae8d5c552601e62e3e487cb65c">hyshmem_findnext</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, UDATA findHandle, char *resultbuf)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the name of the next shared memory region.  <a href="#461626ae8d5c552601e62e3e487cb65c"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">UDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshmem_8c.html#b1b2152b009d70d465a5468d787599f9">hyshmem_stat</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, const char *name, struct HyPortShmemStatistic *statbuf)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the statistic for a shared memory region.  <a href="#b1b2152b009d70d465a5468d787599f9"></a><br></td></tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="d7a492ed0cf3b50ebd9ef057c1e95264"></a><!-- doxytag: member="hyshmem.c::hyshmem_attach" ref="d7a492ed0cf3b50ebd9ef057c1e95264" args="(struct HyPortLibrary *portLibrary, struct hyshmem_handle *handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* VMCALL hyshmem_attach           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct hyshmem_handle *&nbsp;</td>
+          <td class="paramname"> <em>handle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Attaches the shared memory represented by the handle. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port Library </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>handle</em>&nbsp;</td><td>A valid shared memory handle</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>: A pointer to the shared memory region, NULL on failure </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="4dcf43fee946443dca9d857c272877f3"></a><!-- doxytag: member="hyshmem.c::hyshmem_close" ref="4dcf43fee946443dca9d857c272877f3" args="(struct HyPortLibrary *portLibrary, struct hyshmem_handle **handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void VMCALL hyshmem_close           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct hyshmem_handle **&nbsp;</td>
+          <td class="paramname"> <em>handle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Detach, Close and remove the shared memory handle. 
+<p>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>This method does not remove the shared memory region from the OS use <a class="el" href="hyshmem_8c.html#f03f303195dd2198137be48b9bfb9184">hyshmem_destroy</a> instead. However this will free all the memory resources used by the handle, and detach the region specified by the handle</dd></dl>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port Library </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>handle</em>&nbsp;</td><td>Pointer to a valid shared memory handle </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="f03f303195dd2198137be48b9bfb9184"></a><!-- doxytag: member="hyshmem.c::hyshmem_destroy" ref="f03f303195dd2198137be48b9bfb9184" args="(struct HyPortLibrary *portLibrary, struct hyshmem_handle **handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">IDATA VMCALL hyshmem_destroy           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct hyshmem_handle **&nbsp;</td>
+          <td class="paramname"> <em>handle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Destroy and removes the shared memory region from OS. 
+<p>
+The timing of which OS removes the memory is OS dependent. However when you make a call you can considered that you can no longer access the region through the handle. Memory allocated for handle structure is freed as well.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port Library </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>handle</em>&nbsp;</td><td>Pointer to a valid shared memory handle</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="bf31d2c32fe2707a61b36c869b0fd1bd"></a><!-- doxytag: member="hyshmem.c::hyshmem_detach" ref="bf31d2c32fe2707a61b36c869b0fd1bd" args="(struct HyPortLibrary *portLibrary, struct hyshmem_handle **handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">IDATA VMCALL hyshmem_detach           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct hyshmem_handle **&nbsp;</td>
+          <td class="paramname"> <em>handle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Detaches the shared memory region from the caller's process address space Use <a class="el" href="hyshmem_8c.html#f03f303195dd2198137be48b9bfb9184">hyshmem_destroy</a> to actually remove the memory region from the Operating system. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>the Port Library. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>handle</em>&nbsp;</td><td>Pointer to the shared memory region.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="769376bffd562f5ef205bd33ec963bb5"></a><!-- doxytag: member="hyshmem.c::hyshmem_findclose" ref="769376bffd562f5ef205bd33ec963bb5" args="(struct HyPortLibrary *portLibrary, UDATA findhandle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void VMCALL hyshmem_findclose           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">UDATA&nbsp;</td>
+          <td class="paramname"> <em>findhandle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Close the handle returned from <a class="el" href="hyshmem_8c.html#a7d5b05550c564090f7f10cd575d0504">hyshmem_findfirst</a>. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>findhandle</em>&nbsp;</td><td>Handle returned from <a class="el" href="hyshmem_8c.html#a7d5b05550c564090f7f10cd575d0504">hyshmem_findfirst</a>. </td></tr>
+  </table>
+</dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a7d5b05550c564090f7f10cd575d0504"></a><!-- doxytag: member="hyshmem.c::hyshmem_findfirst" ref="a7d5b05550c564090f7f10cd575d0504" args="(struct HyPortLibrary *portLibrary, char *resultbuf)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">UDATA VMCALL hyshmem_findfirst           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>resultbuf</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Find the name of a shared memory region on the system. 
+<p>
+Answers a handle to be used in subsequent calls to <a class="el" href="hyshmem_8c.html#461626ae8d5c552601e62e3e487cb65c">hyshmem_findnext</a> and <a class="el" href="hyshmem_8c.html#769376bffd562f5ef205bd33ec963bb5">hyshmem_findclose</a>.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library </td></tr>
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>resultbuf</em>&nbsp;</td><td>filename and path matching path.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>valid handle on success, -1 on failure. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="461626ae8d5c552601e62e3e487cb65c"></a><!-- doxytag: member="hyshmem.c::hyshmem_findnext" ref="461626ae8d5c552601e62e3e487cb65c" args="(struct HyPortLibrary *portLibrary, UDATA findHandle, char *resultbuf)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">I_32 VMCALL hyshmem_findnext           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">UDATA&nbsp;</td>
+          <td class="paramname"> <em>findHandle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>resultbuf</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Find the name of the next shared memory region. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>findHandle</em>&nbsp;</td><td>handle returned from <a class="el" href="hyshmem_8c.html#a7d5b05550c564090f7f10cd575d0504">hyshmem_findfirst</a>. </td></tr>
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>resultbuf</em>&nbsp;</td><td>next filename and path matching findhandle.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure or if no matching entries. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="ed960959afef5d39724eee21e5331257"></a><!-- doxytag: member="hyshmem.c::hyshmem_open" ref="ed960959afef5d39724eee21e5331257" args="(struct HyPortLibrary *portLibrary, struct hyshmem_handle **handle, const char *rootname, I_32 size, I_32 perm)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">IDATA VMCALL hyshmem_open           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct hyshmem_handle **&nbsp;</td>
+          <td class="paramname"> <em>handle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>rootname</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">I_32&nbsp;</td>
+          <td class="paramname"> <em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">I_32&nbsp;</td>
+          <td class="paramname"> <em>perm</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Creates/open a shared memory region. 
+<p>
+The rootname will uniquely identify the shared memory region, and is valid across different JVM instance.<p>
+The shared memory region should persist across process, until OS reboots or destroy call is being made.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port Library </td></tr>
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>handle</em>&nbsp;</td><td>This handle is required for further attach/destroy of the memory region </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>rootname</em>&nbsp;</td><td>Shared name for the region, which used to identify the region. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>size</em>&nbsp;</td><td>Size of the region in bytes </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>perm</em>&nbsp;</td><td>permission for the region.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd><ul>
+<li>HYPORT_ERROR_SHMEM_OPFAILED Failure - Cannot open the shared memory region </li>
+<li>HYPORT_INFO_SHMEM_OPENED Success - Existing memory region has been opened </li>
+<li>HYPORT_INFO_SHMEM_CREATED Success - A new shared memory region has been created </li>
+</ul>
+</dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="30a81ad73fece453fa166149d59a8b1f"></a><!-- doxytag: member="hyshmem.c::hyshmem_shutdown" ref="30a81ad73fece453fa166149d59a8b1f" args="(struct HyPortLibrary *portLibrary)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void VMCALL hyshmem_shutdown           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+PortLibrary shutdown. 
+<p>
+This function is called during shutdown of the portLibrary. Any resources that were created by <a class="el" href="hyshsem_8c.html#52f08a599b34873e0ad6fcca1b0ab0a8">hyshsem_startup</a> should be destroyed here.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library.</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Most implementations will be empty. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="7f6f4a8db5908418a037ea2eb6df572e"></a><!-- doxytag: member="hyshmem.c::hyshmem_startup" ref="7f6f4a8db5908418a037ea2eb6df572e" args="(struct HyPortLibrary *portLibrary)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">I_32 VMCALL hyshmem_startup           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+PortLibrary startup. 
+<p>
+This function is called during startup of the portLibrary. Any resources that are required for the file operations may be created here. All resources created here should be destroyed in <a class="el" href="hyshsem_8c.html#b0a2ad80e71908dab7934cb31a1550e5">hyshsem_shutdown</a>.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, negative error code on failure. Error code values returned are <ul>
+<li>HYPORT_ERROR_STARTUP_SHMEM</li>
+</ul>
+</dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Most implementations will simply return success. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="b1b2152b009d70d465a5468d787599f9"></a><!-- doxytag: member="hyshmem.c::hyshmem_stat" ref="b1b2152b009d70d465a5468d787599f9" args="(struct HyPortLibrary *portLibrary, const char *name, struct HyPortShmemStatistic *statbuf)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">UDATA VMCALL hyshmem_stat           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct HyPortShmemStatistic *&nbsp;</td>
+          <td class="paramname"> <em>statbuf</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Return the statistic for a shared memory region. 
+<p>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>notice that the implementation can decided to put -1 in the fields of statbuf if it does not make sense on this platform, or it is impossible to obtain.</dd></dl>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the shared memory area. </td></tr>
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>statbuf</em>&nbsp;</td><td>the statistics returns by the operating system</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure or if there is no matching entries. </dd></dl>
+
+</div>
+</div><p>
+<hr size="1">
+<address style="text-align: center;">
+  <small>
+    <p>Genereated on Tue Dec 9 14:12:59 2008 by Doxygen.</p>
+    <p>(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable. </p>
+  </small>
+</address>
+</body>
+</html>

Propchange: harmony/standard/site/docs/externals/vm_doc/html/hyshmem_8c.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/standard/site/docs/externals/vm_doc/html/hyshsem_8c.html
URL: http://svn.apache.org/viewvc/harmony/standard/site/docs/externals/vm_doc/html/hyshsem_8c.html?rev=724734&view=auto
==============================================================================
--- harmony/standard/site/docs/externals/vm_doc/html/hyshsem_8c.html (added)
+++ harmony/standard/site/docs/externals/vm_doc/html/hyshsem_8c.html Tue Dec  9 07:03:45 2008
@@ -0,0 +1,488 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Harmony Class Library Porting: modules/portlib/src/main/native/port/windows/hyshsem.c File Reference</title>
+<link href="hydoxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.4 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+    <li class="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul>
+</div>
+<h1>modules/portlib/src/main/native/port/windows/hyshsem.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+Shared Semaphores. 
+<p>
+
+<p>
+<code>#include &lt;Windows.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="hyport_8h.html">hyport.h</a>&quot;</code><br>
+<code>#include &quot;portpriv.h&quot;</code><br>
+<code>#include &quot;ut_hyprt.h&quot;</code><br>
+<code>#include &quot;hyshsem.h&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">IDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshsem_8c.html#994a4ee5a8f984907d645c531a64067b">hyshsem_open</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, struct hyshsem_handle **handle, const char *semname, int setSize, int permission)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open an existing semaphore set, or create a new one if it does not exist.  <a href="#994a4ee5a8f984907d645c531a64067b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">IDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshsem_8c.html#5186b55d05032a45ac526ca095d283a6">hyshsem_post</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, struct hyshsem_handle *handle, UDATA semset, UDATA flag)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">post operation increments the counter in the semaphore by 1 if there is no one in wait for the semaphore.  <a href="#5186b55d05032a45ac526ca095d283a6"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">IDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshsem_8c.html#dd47133394c2fdf8361332feaaab6be1">hyshsem_wait</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, struct hyshsem_handle *handle, UDATA semset, UDATA flag)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Wait operation decrements the counter in the semaphore set if the counter &gt; 0 if counter == 0 then the caller will be suspended.  <a href="#dd47133394c2fdf8361332feaaab6be1"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">IDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshsem_8c.html#ee368f04d942c8ae34200def36bc7077">hyshsem_getVal</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, struct hyshsem_handle *handle, UDATA semset)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">reading the value of the semaphore in the set.  <a href="#ee368f04d942c8ae34200def36bc7077"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">IDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshsem_8c.html#3e287dcacd8bbfcb0f0913f9f6ba860b">hyshsem_setVal</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, struct hyshsem_handle *handle, UDATA semset, IDATA value)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">setting the value of the semaphore specified in semset.  <a href="#3e287dcacd8bbfcb0f0913f9f6ba860b"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshsem_8c.html#307096ac56d73556da27ebd27a7b75ea">hyshsem_close</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, struct hyshsem_handle **handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release the resources allocated for the semaphore handles.  <a href="#307096ac56d73556da27ebd27a7b75ea"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">IDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshsem_8c.html#a81946ebb9202fa3db70777889dc97bf">hyshsem_destroy</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, struct hyshsem_handle **handle)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy the semaphore and release the resources allocated for the semaphore handles.  <a href="#a81946ebb9202fa3db70777889dc97bf"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">I_32 VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshsem_8c.html#52f08a599b34873e0ad6fcca1b0ab0a8">hyshsem_startup</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PortLibrary startup.  <a href="#52f08a599b34873e0ad6fcca1b0ab0a8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hyshsem_8c.html#b0a2ad80e71908dab7934cb31a1550e5">hyshsem_shutdown</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PortLibrary shutdown.  <a href="#b0a2ad80e71908dab7934cb31a1550e5"></a><br></td></tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="307096ac56d73556da27ebd27a7b75ea"></a><!-- doxytag: member="hyshsem.c::hyshsem_close" ref="307096ac56d73556da27ebd27a7b75ea" args="(struct HyPortLibrary *portLibrary, struct hyshsem_handle **handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void VMCALL hyshsem_close           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct hyshsem_handle **&nbsp;</td>
+          <td class="paramname"> <em>handle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Release the resources allocated for the semaphore handles. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>handle</em>&nbsp;</td><td>Semaphore set handle.</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>The actual semaphore is not destroyed. Once the close operation has been performed on the semaphore handle, it is no longer valid and user needs to reissue <a class="el" href="hyshsem_8c.html#994a4ee5a8f984907d645c531a64067b">hyshsem_open</a> call. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="a81946ebb9202fa3db70777889dc97bf"></a><!-- doxytag: member="hyshsem.c::hyshsem_destroy" ref="a81946ebb9202fa3db70777889dc97bf" args="(struct HyPortLibrary *portLibrary, struct hyshsem_handle **handle)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">IDATA VMCALL hyshsem_destroy           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct hyshsem_handle **&nbsp;</td>
+          <td class="paramname"> <em>handle</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Destroy the semaphore and release the resources allocated for the semaphore handles. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>handle</em>&nbsp;</td><td>Semaphore set handle.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Due to operating system restriction we may not be able to destroy the semaphore </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="ee368f04d942c8ae34200def36bc7077"></a><!-- doxytag: member="hyshsem.c::hyshsem_getVal" ref="ee368f04d942c8ae34200def36bc7077" args="(struct HyPortLibrary *portLibrary, struct hyshsem_handle *handle, UDATA semset)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">IDATA VMCALL hyshsem_getVal           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct hyshsem_handle *&nbsp;</td>
+          <td class="paramname"> <em>handle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">UDATA&nbsp;</td>
+          <td class="paramname"> <em>semset</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+reading the value of the semaphore in the set. 
+<p>
+This function uses no synchronisation prmitives<p>
+<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>caller has to deal with synchronisation issue.</dd></dl>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>handle</em>&nbsp;</td><td>Semaphore set handle. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>semset</em>&nbsp;</td><td>The number of semaphore in the semaphore set that you want to post.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>-1 on failure, the value of the semaphore on success</dd></dl>
+<dl class="warning" compact><dt><b>Warning:</b></dt><dd>: The user will need to make sure locking is done correctly when accessing semaphore values. This is because getValue simply reads the semaphore value without stopping the access to the semaphore. Therefore the value of the semaphore can change before the function returns. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="994a4ee5a8f984907d645c531a64067b"></a><!-- doxytag: member="hyshsem.c::hyshsem_open" ref="994a4ee5a8f984907d645c531a64067b" args="(struct HyPortLibrary *portLibrary, struct hyshsem_handle **handle, const char *semname, int setSize, int permission)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">IDATA VMCALL hyshsem_open           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct hyshsem_handle **&nbsp;</td>
+          <td class="paramname"> <em>handle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>semname</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>setSize</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&nbsp;</td>
+          <td class="paramname"> <em>permission</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Open an existing semaphore set, or create a new one if it does not exist. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library. </td></tr>
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>handle</em>&nbsp;</td><td>A semaphore handle is allocated and initialised for use with further calls, NULL on failure. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>semname</em>&nbsp;</td><td>Unique identifier of the semaphore. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>setSize</em>&nbsp;</td><td>Size of the semaphore set. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>permission</em>&nbsp;</td><td>Permission to the semaphore set.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd><ul>
+<li>HYPORT_ERROR_SHSEM_OPFAILED Failure - Error opening the semaphore </li>
+<li>HYPORT_INFO_SHSEM_CREATED Success - Semaphore has been created </li>
+<li>HYPORT_INFO_SHSEM_OPENED Success - Existing semaphore has been opened </li>
+<li>HYPORT_INFO_SHSEM_SEMID_DIFF Success - Existing semaphore opened, but OS Semaphore key is different </li>
+</ul>
+</dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="5186b55d05032a45ac526ca095d283a6"></a><!-- doxytag: member="hyshsem.c::hyshsem_post" ref="5186b55d05032a45ac526ca095d283a6" args="(struct HyPortLibrary *portLibrary, struct hyshsem_handle *handle, UDATA semset, UDATA flag)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">IDATA VMCALL hyshsem_post           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct hyshsem_handle *&nbsp;</td>
+          <td class="paramname"> <em>handle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">UDATA&nbsp;</td>
+          <td class="paramname"> <em>semset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">UDATA&nbsp;</td>
+          <td class="paramname"> <em>flag</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+post operation increments the counter in the semaphore by 1 if there is no one in wait for the semaphore. 
+<p>
+if there are other processes suspended by wait then one of them will become runnable and the counter remains the same.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>handle</em>&nbsp;</td><td>Semaphore set handle. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>semset</em>&nbsp;</td><td>The no of semaphore in the semaphore set that you want to post. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>flag</em>&nbsp;</td><td>The semaphore operation flag: <ul>
+<li>HYPORT_SHSEM_MODE_DEFAULT The default operation flag, same as 0 </li>
+<li>HYPORT_SHSEM_MODE_UNDO The changes made to the semaphore will be undone when this process finishes.</li>
+</ul>
+</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="3e287dcacd8bbfcb0f0913f9f6ba860b"></a><!-- doxytag: member="hyshsem.c::hyshsem_setVal" ref="3e287dcacd8bbfcb0f0913f9f6ba860b" args="(struct HyPortLibrary *portLibrary, struct hyshsem_handle *handle, UDATA semset, IDATA value)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">IDATA VMCALL hyshsem_setVal           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct hyshsem_handle *&nbsp;</td>
+          <td class="paramname"> <em>handle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">UDATA&nbsp;</td>
+          <td class="paramname"> <em>semset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">IDATA&nbsp;</td>
+          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+setting the value of the semaphore specified in semset. 
+<p>
+This function uses no synchronisation prmitives<p>
+<dl class="pre" compact><dt><b>Precondition:</b></dt><dd>Caller has to deal with synchronisation issue.</dd></dl>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port Library. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>handle</em>&nbsp;</td><td>Semaphore set handle. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>semset</em>&nbsp;</td><td>The no of semaphore in the semaphore set that you want to post. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>value</em>&nbsp;</td><td>The value that you want to set the semaphore to</td></tr>
+  </table>
+</dl>
+<dl class="warning" compact><dt><b>Warning:</b></dt><dd>The user will need to make sure locking is done correctly when accessing semaphore values. This is because setValue simply set the semaphore value without stopping the access to the semaphore. Therefore the value of the semaphore can change before the function returns.</dd></dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="b0a2ad80e71908dab7934cb31a1550e5"></a><!-- doxytag: member="hyshsem.c::hyshsem_shutdown" ref="b0a2ad80e71908dab7934cb31a1550e5" args="(struct HyPortLibrary *portLibrary)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void VMCALL hyshsem_shutdown           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+PortLibrary shutdown. 
+<p>
+This function is called during shutdown of the portLibrary. Any resources that were created by <a class="el" href="hyshsem_8c.html#52f08a599b34873e0ad6fcca1b0ab0a8">hyshsem_startup</a> should be destroyed here.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library.</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Most implementations will be empty. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="52f08a599b34873e0ad6fcca1b0ab0a8"></a><!-- doxytag: member="hyshsem.c::hyshsem_startup" ref="52f08a599b34873e0ad6fcca1b0ab0a8" args="(struct HyPortLibrary *portLibrary)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">I_32 VMCALL hyshsem_startup           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+PortLibrary startup. 
+<p>
+This function is called during startup of the portLibrary. Any resources that are required for the file operations may be created here. All resources created here should be destroyed in <a class="el" href="hyshsem_8c.html#b0a2ad80e71908dab7934cb31a1550e5">hyshsem_shutdown</a>.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, negative error code on failure. Error code values returned are <ul>
+<li>HYPORT_ERROR_STARTUP_SHSEM</li>
+</ul>
+</dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Most implementations will simply return success. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="dd47133394c2fdf8361332feaaab6be1"></a><!-- doxytag: member="hyshsem.c::hyshsem_wait" ref="dd47133394c2fdf8361332feaaab6be1" args="(struct HyPortLibrary *portLibrary, struct hyshsem_handle *handle, UDATA semset, UDATA flag)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">IDATA VMCALL hyshsem_wait           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">struct hyshsem_handle *&nbsp;</td>
+          <td class="paramname"> <em>handle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">UDATA&nbsp;</td>
+          <td class="paramname"> <em>semset</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">UDATA&nbsp;</td>
+          <td class="paramname"> <em>flag</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Wait operation decrements the counter in the semaphore set if the counter &gt; 0 if counter == 0 then the caller will be suspended. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>handle</em>&nbsp;</td><td>Semaphore set handle. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>semset</em>&nbsp;</td><td>The no of semaphore in the semaphore set that you want to post. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>flag</em>&nbsp;</td><td>The semaphore operation flag: <ul>
+<li>HYPORT_SHSEM_MODE_DEFAULT The default operation flag, same as 0 </li>
+<li>HYPORT_SHSEM_MODE_UNDO The changes made to the semaphore will be undone when this process finishes. </li>
+<li>HYPORT_SHSEM_MODE_NOWAIT The caller will not be suspended if sem == 0, a -1 is returned instead.</li>
+</ul>
+</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, -1 on failure. </dd></dl>
+
+</div>
+</div><p>
+<hr size="1">
+<address style="text-align: center;">
+  <small>
+    <p>Genereated on Tue Dec 9 14:12:59 2008 by Doxygen.</p>
+    <p>(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable. </p>
+  </small>
+</address>
+</body>
+</html>

Propchange: harmony/standard/site/docs/externals/vm_doc/html/hyshsem_8c.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/standard/site/docs/externals/vm_doc/html/hysl_8c.html
URL: http://svn.apache.org/viewvc/harmony/standard/site/docs/externals/vm_doc/html/hysl_8c.html?rev=724734&view=auto
==============================================================================
--- harmony/standard/site/docs/externals/vm_doc/html/hysl_8c.html (added)
+++ harmony/standard/site/docs/externals/vm_doc/html/hysl_8c.html Tue Dec  9 07:03:45 2008
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+<title>Harmony Class Library Porting: modules/portlib/src/main/native/port/windows/hysl.c File Reference</title>
+<link href="hydoxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.5.4 -->
+<div class="tabs">
+  <ul>
+    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
+    <li><a href="modules.html"><span>Modules</span></a></li>
+    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
+    <li class="current"><a href="files.html"><span>Files</span></a></li>
+    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+  </ul>
+</div>
+<h1>modules/portlib/src/main/native/port/windows/hysl.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+shared library 
+<p>
+
+<p>
+<code>#include &lt;windows.h&gt;</code><br>
+<code>#include &quot;<a class="el" href="hyport_8h.html">hyport.h</a>&quot;</code><br>
+<code>#include &lt;stdio.h&gt;</code><br>
+<code>#include &lt;stdlib.h&gt;</code><br>
+<code>#include &lt;malloc.h&gt;</code><br>
+<code>#include &quot;portnls.h&quot;</code><br>
+<table border="0" cellpadding="0" cellspacing="0">
+<tr><td></td></tr>
+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">UDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hysl_8c.html#f5476f289987d4844877fffe3bcc4262">hysl_open_shared_library</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, char *name, UDATA *descriptor, BOOLEAN decorate)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Opens a shared library.  <a href="#f5476f289987d4844877fffe3bcc4262"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">UDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hysl_8c.html#d625ba7a6e17e1860a559a821b5407f8">hysl_close_shared_library</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, UDATA descriptor)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close a shared library.  <a href="#d625ba7a6e17e1860a559a821b5407f8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">UDATA VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hysl_8c.html#6ed5abb9bcfb4321836384134ef7a344">hysl_lookup_name</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary, UDATA descriptor, char *name, UDATA *func, const char *argSignature)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Search for a function named 'name' taking argCount in the shared library 'descriptor'.  <a href="#6ed5abb9bcfb4321836384134ef7a344"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hysl_8c.html#15a2a1b528856de72a1bb7a77bc2c741">hysl_shutdown</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PortLibrary shutdown.  <a href="#15a2a1b528856de72a1bb7a77bc2c741"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">I_32 VMCALL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="hysl_8c.html#0fc66a62a9429eb9937b2e9eff5aeecd">hysl_startup</a> (struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *portLibrary)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">PortLibrary startup.  <a href="#0fc66a62a9429eb9937b2e9eff5aeecd"></a><br></td></tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="d625ba7a6e17e1860a559a821b5407f8"></a><!-- doxytag: member="hysl.c::hysl_close_shared_library" ref="d625ba7a6e17e1860a559a821b5407f8" args="(struct HyPortLibrary *portLibrary, UDATA descriptor)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">UDATA VMCALL hysl_close_shared_library           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">UDATA&nbsp;</td>
+          <td class="paramname"> <em>descriptor</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Close a shared library. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>descriptor</em>&nbsp;</td><td>Shared library handle to close.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, any other value on failure. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="6ed5abb9bcfb4321836384134ef7a344"></a><!-- doxytag: member="hysl.c::hysl_lookup_name" ref="6ed5abb9bcfb4321836384134ef7a344" args="(struct HyPortLibrary *portLibrary, UDATA descriptor, char *name, UDATA *func, const char *argSignature)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">UDATA VMCALL hysl_lookup_name           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">UDATA&nbsp;</td>
+          <td class="paramname"> <em>descriptor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">UDATA *&nbsp;</td>
+          <td class="paramname"> <em>func</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&nbsp;</td>
+          <td class="paramname"> <em>argSignature</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Search for a function named 'name' taking argCount in the shared library 'descriptor'. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>descriptor</em>&nbsp;</td><td>Shared library to search. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>name</em>&nbsp;</td><td>Function to look up. </td></tr>
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>func</em>&nbsp;</td><td>Pointer to the function. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>argSignature</em>&nbsp;</td><td>Argument signature.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, any other value on failure.</dd></dl>
+argSignature is a C (ie: NUL-terminated) string with the following possible values for each character:<p>
+V - void Z - boolean B - byte C - char (16 bits) I - integer (32 bits) J - long (64 bits) F - float (32 bits) D - double (64 bits) L - object / pointer (32 or 64, depending on platform) P - pointer-width platform data. (in this context an IDATA)<p>
+Lower case signature characters imply unsigned value. Upper case signature characters imply signed values. If it doesn't make sense to be signed/unsigned (eg: V, L, F, D Z) the character is upper case.<p>
+argList[0] is the return type from the function. The argument list is as it appears in english: list is left (1) to right (argCount)<p>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>contents of func are undefined on failure. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="f5476f289987d4844877fffe3bcc4262"></a><!-- doxytag: member="hysl.c::hysl_open_shared_library" ref="f5476f289987d4844877fffe3bcc4262" args="(struct HyPortLibrary *portLibrary, char *name, UDATA *descriptor, BOOLEAN decorate)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">UDATA VMCALL hysl_open_shared_library           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&nbsp;</td>
+          <td class="paramname"> <em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">UDATA *&nbsp;</td>
+          <td class="paramname"> <em>descriptor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">BOOLEAN&nbsp;</td>
+          <td class="paramname"> <em>decorate</em></td><td>&nbsp;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td><td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+Opens a shared library. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>name</em>&nbsp;</td><td>path Null-terminated string containing the shared library. </td></tr>
+    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>descriptor</em>&nbsp;</td><td>Pointer to memory which is filled in with shared-library handle on success. </td></tr>
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>decorate</em>&nbsp;</td><td>Boolean value indicates whether name should be decorated if it contains path information and cannot be found.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, any other value on failure.</dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>contents of descriptor are undefined on failure. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="15a2a1b528856de72a1bb7a77bc2c741"></a><!-- doxytag: member="hysl.c::hysl_shutdown" ref="15a2a1b528856de72a1bb7a77bc2c741" args="(struct HyPortLibrary *portLibrary)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void VMCALL hysl_shutdown           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+PortLibrary shutdown. 
+<p>
+This function is called during shutdown of the portLibrary. Any resources that were created by <a class="el" href="hysl_8c.html#0fc66a62a9429eb9937b2e9eff5aeecd">hysl_startup</a> should be destroyed here.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library.</td></tr>
+  </table>
+</dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Most implementations will be empty. </dd></dl>
+
+</div>
+</div><p>
+<a class="anchor" name="0fc66a62a9429eb9937b2e9eff5aeecd"></a><!-- doxytag: member="hysl.c::hysl_startup" ref="0fc66a62a9429eb9937b2e9eff5aeecd" args="(struct HyPortLibrary *portLibrary)" -->
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">I_32 VMCALL hysl_startup           </td>
+          <td>(</td>
+          <td class="paramtype">struct <a class="el" href="structHyPortLibrary.html">HyPortLibrary</a> *&nbsp;</td>
+          <td class="paramname"> <em>portLibrary</em>          </td>
+          <td>&nbsp;)&nbsp;</td>
+          <td width="100%"></td>
+        </tr>
+      </table>
+</div>
+<div class="memdoc">
+
+<p>
+PortLibrary startup. 
+<p>
+This function is called during startup of the portLibrary. Any resources that are required for the shared library operations may be created here. All resources created here should be destroyed in <a class="el" href="hysl_8c.html#15a2a1b528856de72a1bb7a77bc2c741">hysl_shutdown</a>.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>portLibrary</em>&nbsp;</td><td>The port library.</td></tr>
+  </table>
+</dl>
+<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 on success, negative error code on failure. Error code values returned are <ul>
+<li>HYPORT_ERROR_STARTUP_SL</li>
+</ul>
+</dd></dl>
+<dl class="note" compact><dt><b>Note:</b></dt><dd>Most implementations will simply return success. </dd></dl>
+
+</div>
+</div><p>
+<hr size="1">
+<address style="text-align: center;">
+  <small>
+    <p>Genereated on Tue Dec 9 14:12:59 2008 by Doxygen.</p>
+    <p>(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable. </p>
+  </small>
+</address>
+</body>
+</html>

Propchange: harmony/standard/site/docs/externals/vm_doc/html/hysl_8c.html
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message