You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

470 lines
20 KiB

<!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"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Pin: LEVEL_BASE::PARSER Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Pin
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</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>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceLEVEL__BASE.html">LEVEL_BASE</a></li><li class="navelem"><a class="el" href="classLEVEL__BASE_1_1PARSER.html">PARSER</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classLEVEL__BASE_1_1PARSER-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">LEVEL_BASE::PARSER Class Reference<div class="ingroups"><a class="el" href="group__MISC.html">Miscellaneous functions</a></div></div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a5d6b635e7e6a1b90f6060bba52f26541"><td class="memItemLeft" align="right" valign="top">static BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLEVEL__BASE_1_1PARSER.html#a5d6b635e7e6a1b90f6060bba52f26541">ExtractArgumentsPin</a> (INT32 argc, CHAR **argv, INT32 *pargc, CHAR ***pargv)</td></tr>
<tr class="separator:a5d6b635e7e6a1b90f6060bba52f26541"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb6a25dc3d5b1504ed17c65a5d874c36"><td class="memItemLeft" align="right" valign="top">static BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLEVEL__BASE_1_1PARSER.html#acb6a25dc3d5b1504ed17c65a5d874c36">ExtractArgumentsTool</a> (INT32 argc, CHAR **argv, INT32 *targc, CHAR ***targv)</td></tr>
<tr class="separator:acb6a25dc3d5b1504ed17c65a5d874c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b7ed11c9ade7a53c403b9a4dae836c4"><td class="memItemLeft" align="right" valign="top">static BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLEVEL__BASE_1_1PARSER.html#a1b7ed11c9ade7a53c403b9a4dae836c4">ExtractArgumentsApp</a> (INT32 argc, CHAR **argv, INT32 *aargc, CHAR ***aargv)</td></tr>
<tr class="separator:a1b7ed11c9ade7a53c403b9a4dae836c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78b4b0c8ab5a8a9a9b406e40924de18b"><td class="memItemLeft" align="right" valign="top">static BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLEVEL__BASE_1_1PARSER.html#a78b4b0c8ab5a8a9a9b406e40924de18b">SetPinKnobs</a> (INT32 pinArgc, const CHAR *const *pinArgv, std::string &amp;errorMsg, <a class="el" href="group__ERROR__FILE__BASIC.html#gaeda9680c6d7a2340a2fd22ab6302b2b9">PIN_ERRTYPE</a> &amp;errorType, BOOL ignoreUnknownKnobs=FALSE)</td></tr>
<tr class="separator:a78b4b0c8ab5a8a9a9b406e40924de18b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87745e708786b8af628a52927d99d735"><td class="memItemLeft" align="right" valign="top">static BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLEVEL__BASE_1_1PARSER.html#a87745e708786b8af628a52927d99d735">SetPinClientKnobs</a> (INT32 pinClientArgc, const CHAR *const *pinClientArgv, std::string &amp;errorMsg, <a class="el" href="group__ERROR__FILE__BASIC.html#gaeda9680c6d7a2340a2fd22ab6302b2b9">PIN_ERRTYPE</a> &amp;errorType, BOOL ignoreUnknownKnobs=FALSE)</td></tr>
<tr class="separator:a87745e708786b8af628a52927d99d735"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76d0e910d648bc7b26d8043da5c4abfd"><td class="memItemLeft" align="right" valign="top">static VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLEVEL__BASE_1_1PARSER.html#a76d0e910d648bc7b26d8043da5c4abfd">GetToolNameArgs</a> (INT32 argc, const CHAR *const *argv, INT32 *targIndex, INT32 *t64argIndex)</td></tr>
<tr class="separator:a76d0e910d648bc7b26d8043da5c4abfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>class that provides parsing utilities </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a1b7ed11c9ade7a53c403b9a4dae836c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b7ed11c9ade7a53c403b9a4dae836c4">&#9670;&nbsp;</a></span>ExtractArgumentsApp()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">BOOL LEVEL_BASE::PARSER::ExtractArgumentsApp </td>
<td>(</td>
<td class="paramtype">INT32&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">CHAR **&#160;</td>
<td class="paramname"><em>argv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">INT32 *&#160;</td>
<td class="paramname"><em>aargc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">CHAR ***&#160;</td>
<td class="paramname"><em>aargv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Helper function for application command line arguments</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">argc</td><td>- size of original argv array </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td>- array of original argv </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">aargc</td><td>- size of application's command line array </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">aargv</td><td>- array of application's command line</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if at least one relevant argument is extracted; FALSE otherwise (both aargc and aargv values are not set) </dd></dl>
</div>
</div>
<a id="a5d6b635e7e6a1b90f6060bba52f26541"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d6b635e7e6a1b90f6060bba52f26541">&#9670;&nbsp;</a></span>ExtractArgumentsPin()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">BOOL LEVEL_BASE::PARSER::ExtractArgumentsPin </td>
<td>(</td>
<td class="paramtype">INT32&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">CHAR **&#160;</td>
<td class="paramname"><em>argv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">INT32 *&#160;</td>
<td class="paramname"><em>pargc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">CHAR ***&#160;</td>
<td class="paramname"><em>pargv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Helper function for pin command line argument processing</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">argc</td><td>- size of original argv array </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td>- array of original argv </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">pargc</td><td>- size of pin's command line array </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">pargv</td><td>- array of pin's command line</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if at least one relevant argument is extracted; FALSE otherwise (both pargc and pargv values are not set) </dd></dl>
</div>
</div>
<a id="acb6a25dc3d5b1504ed17c65a5d874c36"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb6a25dc3d5b1504ed17c65a5d874c36">&#9670;&nbsp;</a></span>ExtractArgumentsTool()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">BOOL LEVEL_BASE::PARSER::ExtractArgumentsTool </td>
<td>(</td>
<td class="paramtype">INT32&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">CHAR **&#160;</td>
<td class="paramname"><em>argv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">INT32 *&#160;</td>
<td class="paramname"><em>targc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">CHAR ***&#160;</td>
<td class="paramname"><em>targv</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Helper function for tool command line argument processing</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">argc</td><td>- size of original argv array </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td>- array of original argv </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">targc</td><td>- size of tool's command line array </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">targv</td><td>- array of tool's command line</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if at least one relevant argument is extracted; FALSE otherwise (both targc and targv values are not set) </dd></dl>
</div>
</div>
<a id="a76d0e910d648bc7b26d8043da5c4abfd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76d0e910d648bc7b26d8043da5c4abfd">&#9670;&nbsp;</a></span>GetToolNameArgs()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">VOID LEVEL_BASE::PARSER::GetToolNameArgs </td>
<td>(</td>
<td class="paramtype">INT32&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const CHAR *const *&#160;</td>
<td class="paramname"><em>argv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">INT32 *&#160;</td>
<td class="paramname"><em>targIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">INT32 *&#160;</td>
<td class="paramname"><em>t64argIndex</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get indexes of Pintool name option's argument</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">argc</td><td>- size of original argv array </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td>- array of original argv </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">targIndex</td><td>- pointer to index of argument of "-t" option in argv array </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">t64argIndex</td><td>- pointer to index of argument of "-t64" option in argv array </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a87745e708786b8af628a52927d99d735"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87745e708786b8af628a52927d99d735">&#9670;&nbsp;</a></span>SetPinClientKnobs()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">BOOL LEVEL_BASE::PARSER::SetPinClientKnobs </td>
<td>(</td>
<td class="paramtype">INT32&#160;</td>
<td class="paramname"><em>pinClientArgc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const CHAR *const *&#160;</td>
<td class="paramname"><em>pinClientArgv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string &amp;&#160;</td>
<td class="paramname"><em>errorMsg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__ERROR__FILE__BASIC.html#gaeda9680c6d7a2340a2fd22ab6302b2b9">PIN_ERRTYPE</a> &amp;&#160;</td>
<td class="paramname"><em>errorType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">BOOL&#160;</td>
<td class="paramname"><em>ignoreUnknownKnobs</em> = <code>FALSE</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set Pin client knobs based on tool command line</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pinArgc</td><td>argc of pin command line </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pinArgv</td><td>argv of pin command line </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">errorMsg</td><td>reference to the returned error message. valid upon function failure. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">errorType</td><td>reference to the returned error type. valid upon function failure. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ignoreUnknownKnobs</td><td>should an error be reported if unknown option is specified?</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE upon success, FALSE upon failure </dd></dl>
</div>
</div>
<a id="a78b4b0c8ab5a8a9a9b406e40924de18b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78b4b0c8ab5a8a9a9b406e40924de18b">&#9670;&nbsp;</a></span>SetPinKnobs()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">BOOL LEVEL_BASE::PARSER::SetPinKnobs </td>
<td>(</td>
<td class="paramtype">INT32&#160;</td>
<td class="paramname"><em>pinArgc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const CHAR *const *&#160;</td>
<td class="paramname"><em>pinArgv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string &amp;&#160;</td>
<td class="paramname"><em>errorMsg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__ERROR__FILE__BASIC.html#gaeda9680c6d7a2340a2fd22ab6302b2b9">PIN_ERRTYPE</a> &amp;&#160;</td>
<td class="paramname"><em>errorType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">BOOL&#160;</td>
<td class="paramname"><em>ignoreUnknownKnobs</em> = <code>FALSE</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set Pin knobs based on Pin command line</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pinArgc</td><td>argc of pin command line </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">pinArgv</td><td>argv of pin command line </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">errorMsg</td><td>reference to the returned error message. valid upon function failure. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">errorType</td><td>reference to the returned error type. valid upon function failure. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">ignoreUnknownKnobs</td><td>should an error be reported if unknown option is specified?</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE upon success, FALSE upon failure </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>parser.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>