use warnings;
use My::Web;
-require CGI;
sub handler
functionality. Currently implemented functionality statistics are provided
below:</p>
- <table border="0" width="100%"><tr><td align="center"><table border="1">
+ <table border="1" class="margin-center">
<caption>Function Implementation Types Statistics</caption>
<tr><th>Function type </th><th>Items</th><th>Portion</th></tr>
<tr><td>@{[ a_href 'APITypes.pm#functype_pass','pass' ]} </td><td> 81</td><td> 26%</td></tr>
<tr><td>@{[ a_href 'APITypes.pm#functype_wrap','wrap' ]} </td><td> 2</td><td> 0%</td></tr>
<tr><td>@{[ a_href 'APITypes.pm#functype_native_reactos','native-ReactOS' ]}</td><td> 113</td><td> 36%</td></tr>
<tr><td>@{[ a_href 'APITypes.pm#functype_native_libcaptive','native-own' ]} </td><td> 116</td><td> 38%</td></tr>
- </table></td></tr></table>
+ </table>
@{[ doc_img 'ratio','Functions Reusal Ratio' ]}
@{[ vskip() ]}
- <table border="0" width="100%"><tr><td align="center"><table border="1">
+ <table border="1" class="margin-center">
<caption>Function Type <span class="constant">pass</span> Characteristics</caption>
<tr><td><span class="fname">captivesym</span> keyword</td><td>pass</td></tr>
<tr><td>Native code function name </td><td>(no implementation)</td></tr>
<tr><td>W32 traced code from W32 function name </td><td>FUNCNAME_cdecl/_stdcall/_fastcall</td></tr>
<tr><td>Entry/exit debug tracing from UNIX code </td><td>yes</td></tr>
<tr><td>Entry/exit debug tracing from W32 code </td><td>yes</td></tr>
- </table></td></tr></table>
+ </table>
<h2 id="functype_wrap">Wrap of the Original "ntoskrnl.exe" Function</h2>
differ across different <span class="fname">ntoskrnl.exe</span>
versions.</p>
- <table border="0" width="100%"><tr><td align="center"><table border="1">
+ <table border="1" class="margin-center">
<caption>Function Type <span class="constant">wrap</span> Characteristics</caption>
<tr><td><span class="fname">captivesym</span> keyword</td><td>wrap</td></tr>
<tr><td>Native UNIX wrapping code function name </td><td>FUNCNAME_wrap</td></tr>
<tr><td>W32 traced original code function name </td><td>FUNCNAME_orig</td></tr>
<tr><td>Entry/exit debug tracing from UNIX code </td><td>yes</td></tr>
<tr><td>Entry/exit debug tracing from W32 code </td><td>yes</td></tr>
- </table></td></tr></table>
+ </table>
<h2 id="functype_native">Native Implementation</h2>
@{[ vskip() ]}
- <table border="0" width="100%"><tr><td align="center"><table border="1">
+ <table border="1" class="margin-center">
<caption>Function Type <span class="constant">native</span> Characteristics</caption>
<tr><td><span class="fname">captivesym</span> keyword</td><td>(none; just the symbol name)</td></tr>
<tr><td>Native code function name </td><td>FUNCTIONNAME</td></tr>
<tr><td>Native traced code from W32 code func. name </td><td>FUNCTIONNAME_cdecl/_std...</td></tr>
<tr><td>Entry/exit debug tracing from UNIX code </td><td>no</td></tr>
<tr><td>Entry/exit debug tracing from W32 code </td><td>yes</td></tr>
- </table></td></tr></table>
+ </table>
<h2 id="functype_undef">Undefined Function</h2>
<span class="constant">undef</span> type to prevent unresolved symbol
reference.</p>
- <table border="0" width="100%"><tr><td align="center"><table border="1">
+ <table border="1" class="margin-center">
<caption>Function Type <span class="constant">undef</span> Characteristics</caption>
<tr><td><span class="fname">captivesym</span> keyword</td><td>undef</td></tr>
<tr><td>Native code function name </td><td>(no implementation)</td></tr>
<tr><td>Native traced code function name </td><td>FUNCTIONNAME_cdecl/_stdcall/_fastcall</td></tr>
<tr><td>Debug tracing message from UNIX code </td><td>yes</td></tr>
<tr><td>Debug tracing message from W32 code </td><td>yes</td></tr>
- </table></td></tr></table>
+ </table>
HERE
-project::captive::doc::Macros->footer();
+exit;
}
1;