Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 83ed8492cae4cb6bfb06db21e0f5f467 > files > 62

open-vm-tools-devel-9.4.0-1.mga4.x86_64.rpm

<!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.5"/>
<title>open-vm-tools 9.4.0: VMware Tools Plugins</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="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 style="padding-left: 0.5em;">
   <div id="projectname">open-vm-tools 9.4.0
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle">
<div class="title">VMware Tools Plugins</div>  </div>
</div><!--header-->
<div class="contents">

<p>Defines the API used by the Tools Services for dynamically loading plugins.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structToolsAppCapability.html">ToolsAppCapability</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structToolsAppProvider.html">ToolsAppProvider</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structToolsAppReg.html">ToolsAppReg</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structToolsServiceProperty.html">ToolsServiceProperty</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structToolsPluginSignalCb.html">ToolsPluginSignalCb</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structToolsPluginData.html">ToolsPluginData</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga1e98534a7bd50f517e4bcef8fa7db6ae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga1e98534a7bd50f517e4bcef8fa7db6ae">TOOLS_CORE_SIG_XIOERROR</a>&#160;&#160;&#160;&quot;tcs_de_xioerror&quot;</td></tr>
<tr class="separator:ga1e98534a7bd50f517e4bcef8fa7db6ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5103a2f0632258b7b0f95ce5475d8752"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga5103a2f0632258b7b0f95ce5475d8752">TOOLS_CORE_SIG_XSM_SAVE_YOURSELF</a>&#160;&#160;&#160;&quot;tcs_de_xsm_save_yourself&quot;</td></tr>
<tr class="separator:ga5103a2f0632258b7b0f95ce5475d8752"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7430f5613342755951b57c3e079de973"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga7430f5613342755951b57c3e079de973">TOOLS_CORE_SIG_XSM_DIE</a>&#160;&#160;&#160;&quot;tcs_de_xsm_die&quot;</td></tr>
<tr class="separator:ga7430f5613342755951b57c3e079de973"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad9b9fba0a562de5807e43921d4d2e068"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#gad9b9fba0a562de5807e43921d4d2e068">TOOLS_CORE_SIG_XSM_SAVE_COMPLETE</a>&#160;&#160;&#160;&quot;tcs_de_xsm_save_complete&quot;</td></tr>
<tr class="separator:gad9b9fba0a562de5807e43921d4d2e068"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc520b0f9a3c3fb13e448f040aec1c37"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#gadc520b0f9a3c3fb13e448f040aec1c37">TOOLS_CORE_SIG_XSM_SHUTDOWN_CANCELLED</a>&#160;&#160;&#160;&quot;tcs_de_xsm_shutdown_cancelled&quot;</td></tr>
<tr class="separator:gadc520b0f9a3c3fb13e448f040aec1c37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae845433f58220cfe3f0e56a51a410c0e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#gae845433f58220cfe3f0e56a51a410c0e">VMTOOLSAPP_ERROR</a>(ctx, err)</td></tr>
<tr class="separator:gae845433f58220cfe3f0e56a51a410c0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1786fe2219c3028d8f518c3eba82c99"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#gac1786fe2219c3028d8f518c3eba82c99">VMTOOLSAPP_ATTACH_SOURCE</a>(ctx, src, cb, data, destroy)</td></tr>
<tr class="separator:gac1786fe2219c3028d8f518c3eba82c99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7fd03fba9102562e397b63a333ffb431"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7fd03fba9102562e397b63a333ffb431"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TOOLS_STATE_LOG_ROOT</b>&#160;&#160;&#160;0</td></tr>
<tr class="separator:ga7fd03fba9102562e397b63a333ffb431"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaea0c0afb4a80cd8e643adc7922adf176"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaea0c0afb4a80cd8e643adc7922adf176"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TOOLS_STATE_LOG_CONTAINER</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:gaea0c0afb4a80cd8e643adc7922adf176"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0e9fe2aa948c26526dd661583c4626fc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0e9fe2aa948c26526dd661583c4626fc"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>TOOLS_STATE_LOG_PLUGIN</b>&#160;&#160;&#160;2</td></tr>
<tr class="separator:ga0e9fe2aa948c26526dd661583c4626fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafceeec827816178fbc61e805cbe5c792"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#gafceeec827816178fbc61e805cbe5c792">TOOLS_CORE_SIG_CAPABILITIES</a>&#160;&#160;&#160;&quot;tcs_capabilities&quot;</td></tr>
<tr class="separator:gafceeec827816178fbc61e805cbe5c792"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7bfffd963f786f08049fe38511d47af2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga7bfffd963f786f08049fe38511d47af2">TOOLS_CORE_SIG_CONF_RELOAD</a>&#160;&#160;&#160;&quot;tcs_conf_reload&quot;</td></tr>
<tr class="separator:ga7bfffd963f786f08049fe38511d47af2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a38cacea4dcea975cac21e3ab530ccb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga9a38cacea4dcea975cac21e3ab530ccb">TOOLS_CORE_SIG_DUMP_STATE</a>&#160;&#160;&#160;&quot;tcs_dump_state&quot;</td></tr>
<tr class="separator:ga9a38cacea4dcea975cac21e3ab530ccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad19d1d9e78cf796ba25504eaad2d2664"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#gad19d1d9e78cf796ba25504eaad2d2664">TOOLS_CORE_SIG_RESET</a>&#160;&#160;&#160;&quot;tcs_reset&quot;</td></tr>
<tr class="separator:gad19d1d9e78cf796ba25504eaad2d2664"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2fa6cca2e2cde6109bfc11ed2e9eb760"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga2fa6cca2e2cde6109bfc11ed2e9eb760">TOOLS_CORE_SIG_SET_OPTION</a>&#160;&#160;&#160;&quot;tcs_set_option&quot;</td></tr>
<tr class="separator:ga2fa6cca2e2cde6109bfc11ed2e9eb760"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d5500a712a7da98ad1e2edec95adbfa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga4d5500a712a7da98ad1e2edec95adbfa">TOOLS_CORE_SIG_SHUTDOWN</a>&#160;&#160;&#160;&quot;tcs_shutdown&quot;</td></tr>
<tr class="separator:ga4d5500a712a7da98ad1e2edec95adbfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga450171ca281fd371eb424719dc037722"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga450171ca281fd371eb424719dc037722">TOOLS_CORE_PROP_CTX</a>&#160;&#160;&#160;&quot;tcs_app_ctx&quot;</td></tr>
<tr class="memdesc:ga450171ca281fd371eb424719dc037722"><td class="mdescLeft">&#160;</td><td class="mdescRight">Property where the container's <a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> is stored.  <a href="#ga450171ca281fd371eb424719dc037722">More...</a><br/></td></tr>
<tr class="separator:ga450171ca281fd371eb424719dc037722"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1960f65a5ba3452d950e0be70dc17fa1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga1960f65a5ba3452d950e0be70dc17fa1">TOOLS_MODULE_EXPORT</a>&#160;&#160;&#160;VMTOOLS_EXTERN_C</td></tr>
<tr class="separator:ga1960f65a5ba3452d950e0be70dc17fa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga108509025e9fa7048548fb2941b8c958"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga108509025e9fa7048548fb2941b8c958">ToolsAppCtx</a></td></tr>
<tr class="separator:ga108509025e9fa7048548fb2941b8c958"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b0586c4a96a54d59e9b04e8fb780b9b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structToolsAppCapability.html">ToolsAppCapability</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga3b0586c4a96a54d59e9b04e8fb780b9b">ToolsAppCapability</a></td></tr>
<tr class="separator:ga3b0586c4a96a54d59e9b04e8fb780b9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae0ddd0c7a61f379cc309195a1f8412d4"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structToolsAppProvider.html">ToolsAppProvider</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#gae0ddd0c7a61f379cc309195a1f8412d4">ToolsAppProvider</a></td></tr>
<tr class="separator:gae0ddd0c7a61f379cc309195a1f8412d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga02edbb6ec4827f7e99c135ee6c35a2db"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structToolsAppReg.html">ToolsAppReg</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga02edbb6ec4827f7e99c135ee6c35a2db">ToolsAppReg</a></td></tr>
<tr class="separator:ga02edbb6ec4827f7e99c135ee6c35a2db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32273e47ea284b17f3eb339f6fed59f2"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structToolsServiceProperty.html">ToolsServiceProperty</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga32273e47ea284b17f3eb339f6fed59f2">ToolsServiceProperty</a></td></tr>
<tr class="separator:ga32273e47ea284b17f3eb339f6fed59f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa2d497ae35db96e9eda525bafa944164"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structToolsPluginSignalCb.html">ToolsPluginSignalCb</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#gaa2d497ae35db96e9eda525bafa944164">ToolsPluginSignalCb</a></td></tr>
<tr class="separator:gaa2d497ae35db96e9eda525bafa944164"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7fbc5099bc98a3805742971afeff16ad"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structToolsPluginData.html">ToolsPluginData</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga7fbc5099bc98a3805742971afeff16ad">ToolsPluginData</a></td></tr>
<tr class="separator:ga7fbc5099bc98a3805742971afeff16ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7ed24bbccc663b3d3c58324dc85cf4e1"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structToolsPluginData.html">ToolsPluginData</a> *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga7ed24bbccc663b3d3c58324dc85cf4e1">ToolsPluginOnLoad</a> )(<a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *ctx)</td></tr>
<tr class="separator:ga7ed24bbccc663b3d3c58324dc85cf4e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gab74b3a7ffdbb9972f4a104098529ef64"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#gab74b3a7ffdbb9972f4a104098529ef64">ToolsCoreAPI</a> { <b>TOOLS_CORE_API_V1</b> = 0x1
 }</td></tr>
<tr class="separator:gab74b3a7ffdbb9972f4a104098529ef64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga30463f9d97822958018ae83e28321fa9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#ga30463f9d97822958018ae83e28321fa9">ToolsCapabilityType</a> { <b>TOOLS_CAP_OLD</b> = 0, 
<b>TOOLS_CAP_OLD_NOVAL</b> = 1, 
<b>TOOLS_CAP_NEW</b> = 2
 }</td></tr>
<tr class="separator:ga30463f9d97822958018ae83e28321fa9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa58c4987a21e2bdbb4a7a6e28eb861a6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmtools__plugins.html#gaa58c4987a21e2bdbb4a7a6e28eb861a6">ToolsAppType</a> { <a class="el" href="group__vmtools__plugins.html#ggaa58c4987a21e2bdbb4a7a6e28eb861a6a2192ecd9b4c16376a1e8536f4119de4b">TOOLS_APP_GUESTRPC</a> = 1, 
<a class="el" href="group__vmtools__plugins.html#ggaa58c4987a21e2bdbb4a7a6e28eb861a6a79ac5216bff892349d250d16e61d5f87">TOOLS_APP_SIGNALS</a> = 2, 
<a class="el" href="group__vmtools__plugins.html#ggaa58c4987a21e2bdbb4a7a6e28eb861a6a8121f83d027f9b28f7b8a0e4dab46b36">TOOLS_APP_PROVIDER</a> = 3, 
<a class="el" href="group__vmtools__plugins.html#ggaa58c4987a21e2bdbb4a7a6e28eb861a6a80c5c900fc3aaf4100b8d12010a315e7">TOOLS_SVC_PROPERTY</a> = 4
 }</td></tr>
<tr class="separator:gaa58c4987a21e2bdbb4a7a6e28eb861a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Defines the API used by the Tools Services for dynamically loading plugins. </p>
<p>Plugins are dynamically loaded into the Tools service process, and may provide applications that hook into the functionality provided by the service, such as the glib main loop and the GuestRPC channel.</p>
<p>Plugins that want to remain loaded by the service should always return registration data when their registration function (<a class="el" href="group__vmtools__plugins.html#ga7ed24bbccc663b3d3c58324dc85cf4e1">ToolsPluginOnLoad()</a>) is called. The registration data, defined by the <a class="el" href="structToolsPluginData.html">ToolsPluginData</a> data structure, provides information about what events the plugin is interested in (for example, incoming RPCs). </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga450171ca281fd371eb424719dc037722"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_CORE_PROP_CTX&#160;&#160;&#160;&quot;tcs_app_ctx&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Property where the container's <a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> is stored. </p>
<p>This property is useful in cases where the client code has access to the service object instance but not to the container's context object, such as in the callback for the object's "notify" signal. </p>

</div>
</div>
<a class="anchor" id="gafceeec827816178fbc61e805cbe5c792"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_CORE_SIG_CAPABILITIES&#160;&#160;&#160;&quot;tcs_capabilities&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signal sent when registering or unregistering capabilities.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td><a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *: the application context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">set</td><td>gboolean: TRUE if setting capabilities, FALSE if unsetting them. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Client data.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A GArray instance with the capabilities to be set or unset. The elements should be of type <a class="el" href="structToolsAppCapability.html">ToolsAppCapability</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="ga7bfffd963f786f08049fe38511d47af2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_CORE_SIG_CONF_RELOAD&#160;&#160;&#160;&quot;tcs_conf_reload&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signal sent when the config file is reloaded.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td><a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *: The application context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Client data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga9a38cacea4dcea975cac21e3ab530ccb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_CORE_SIG_DUMP_STATE&#160;&#160;&#160;&quot;tcs_dump_state&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signal sent when the service receives a request to dump its internal state to the log. This is for debugging purposes, and plugins can respond to the signal by dumping their own state also.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td><a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *: The application context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Client data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad19d1d9e78cf796ba25504eaad2d2664"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_CORE_SIG_RESET&#160;&#160;&#160;&quot;tcs_reset&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signal sent when a successful <a class="el" href="structRpcChannel.html">RpcChannel</a> reset occurs.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td><a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *: The application context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Client data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga2fa6cca2e2cde6109bfc11ed2e9eb760"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_CORE_SIG_SET_OPTION&#160;&#160;&#160;&quot;tcs_set_option&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signal sent when a "set option" RPC message arrives.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td><a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *: The application context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">option</td><td>gchar *: Option being set. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>gchar *: Option value. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Client data.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A gboolean saying whether the option was recognized and the value was valid. </dd></dl>

</div>
</div>
<a class="anchor" id="ga4d5500a712a7da98ad1e2edec95adbfa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_CORE_SIG_SHUTDOWN&#160;&#160;&#160;&quot;tcs_shutdown&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signal sent when shutting down the service.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td><a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *: The application context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Client data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga1e98534a7bd50f517e4bcef8fa7db6ae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_CORE_SIG_XIOERROR&#160;&#160;&#160;&quot;tcs_de_xioerror&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signal emitted upon X I/O error callback firing.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td><a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *: the application context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Client data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga7430f5613342755951b57c3e079de973"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_CORE_SIG_XSM_DIE&#160;&#160;&#160;&quot;tcs_de_xsm_die&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signal emitted upon SmcCallbacks::die.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td><a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *: the application context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Client data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad9b9fba0a562de5807e43921d4d2e068"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_CORE_SIG_XSM_SAVE_COMPLETE&#160;&#160;&#160;&quot;tcs_de_xsm_save_complete&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signal emitted upon SmcCallbacks::save_complete.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td><a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *: the application context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Client data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga5103a2f0632258b7b0f95ce5475d8752"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_CORE_SIG_XSM_SAVE_YOURSELF&#160;&#160;&#160;&quot;tcs_de_xsm_save_yourself&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signal emitted upon SmcCallbacks::save_yourself.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td><a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *: the application context. [in] saveType Refer to SMlib.xml. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">shutdown</td><td>0 = checkpoint, 1 = shutdown. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">interactStyle</td><td>May interact with user? </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fast</td><td>Shutdown as quickly as possible. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Client data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gadc520b0f9a3c3fb13e448f040aec1c37"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_CORE_SIG_XSM_SHUTDOWN_CANCELLED&#160;&#160;&#160;&quot;tcs_de_xsm_shutdown_cancelled&quot;</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signal emitted upon SmcCallbacks::shutdown_cancelled.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>The source object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td><a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *: the application context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Client data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga1960f65a5ba3452d950e0be70dc17fa1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TOOLS_MODULE_EXPORT&#160;&#160;&#160;VMTOOLS_EXTERN_C</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Definition for tagging functions to be exported in the plugin binary. Use this to tag the plugin entry point function, and any other functions that the plugin needs to export. </p>

</div>
</div>
<a class="anchor" id="gac1786fe2219c3028d8f518c3eba82c99"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VMTOOLSAPP_ATTACH_SOURCE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ctx, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">src, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">cb, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">data, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">destroy&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> {      \</div>
<div class="line">   GSource *__src = (src);                                              \</div>
<div class="line">   g_source_set_callback(__src, (GSourceFunc) (cb), (data), (destroy)); \</div>
<div class="line">   g_source_attach(__src, g_main_loop_get_context((ctx)-&gt;mainLoop));    \</div>
<div class="line">} <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment --><p>Attaches the given event source to the app context's main loop.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The application context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>Source to attach. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cb</td><td>Callback to call when event is "ready". </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Data to provide to the callback. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">destroy</td><td>Destruction notification callback. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gae845433f58220cfe3f0e56a51a410c0e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define VMTOOLSAPP_ERROR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ctx, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">err&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> {   \</div>
<div class="line">   ASSERT((err) != 0);                    \</div>
<div class="line">   (ctx)-&gt;errorCode = (err);              \</div>
<div class="line">   g_main_loop_quit((ctx)-&gt;mainLoop);     \</div>
<div class="line">} <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment --><p>Error reporting macro. Call this if the app encounters an error that requires the service to quit. The service's main loop will stop as soon as it regains control of the application.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ctx</td><td>The application context. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">err</td><td>Error code. Must not be 0. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="ga3b0586c4a96a54d59e9b04e8fb780b9b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structToolsAppCapability.html">ToolsAppCapability</a>  <a class="el" href="structToolsAppCapability.html">ToolsAppCapability</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Information about a capability supported by the application. This structure supports both old-style capabilities (which have a separate RPC message for each capability) and new-style capabilities (as defined in guestCaps.h).</p>
<p>The service will register all capabilities with non-zero values when the service is started (or the host asks for the service to register its capabilities). </p>

</div>
</div>
<a class="anchor" id="ga108509025e9fa7048548fb2941b8c958"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a>  <a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Defines the context of a tools application. This data is provided by the core services to applications when they're loaded. </p>

</div>
</div>
<a class="anchor" id="gae0ddd0c7a61f379cc309195a1f8412d4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structToolsAppProvider.html">ToolsAppProvider</a>  <a class="el" href="structToolsAppProvider.html">ToolsAppProvider</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Defines the registration data for an "application provider". Application providers allow plugins to hook into new application frameworks that will be then managed by vmtoolsd - for example, an HTTP server or a dbus endpoint.</p>
<p>Application providers will be loaded during startup but not activated until at least one plugin provides registration data for that provider. </p>

</div>
</div>
<a class="anchor" id="ga02edbb6ec4827f7e99c135ee6c35a2db"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structToolsAppReg.html">ToolsAppReg</a>  <a class="el" href="structToolsAppReg.html">ToolsAppReg</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Defines a "app-specific" registration. The array contains data specific to an "application provider" implementation.</p>
<p>When the service is shutting down, if the <em>data</em> field is not NULL, the array instance will be freed, including its backing element array. See the documentation for g_array_free(). This will happen only after any plugin's shutdown callback is called, so plugins have a chance of performing custom clean up of this data. </p>

</div>
</div>
<a class="anchor" id="ga7fbc5099bc98a3805742971afeff16ad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structToolsPluginData.html">ToolsPluginData</a>  <a class="el" href="structToolsPluginData.html">ToolsPluginData</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The registration data for an application. This gives the service information about all functionality exported by the application, and any events that the application may be interested in.</p>
<p>When the plugin is shut down, if the <em>regs</em> field is not NULL, it (and its element array) are freed with g_array_free().</p>
<p>Plugins shouldn't try to free the returned structure, since the container will try to use it even after the shutdown signal is sent to plugins. The pointer should either point to statically allocated memory, or be leaked (which should't be a problem since it will only be really leaked when the process is shutting down). </p>

</div>
</div>
<a class="anchor" id="ga7ed24bbccc663b3d3c58324dc85cf4e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structToolsPluginData.html">ToolsPluginData</a>*(* ToolsPluginOnLoad)(<a class="el" href="structToolsAppCtx.html">ToolsAppCtx</a> *ctx)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Signature for the plugin entry point function. The function should be called <em>ToolsOnLoad</em>, and be exported in the plugin binary (e.g., by tagging it with TOOLS_MODULE_EXPORT).</p>
<p>If the plugin wants to stay loaded, it always should return the registration data, even if all it contains is the (mandatory) plugin name. Plugins which return NULL will be unloaded before the service is started, so they shouldn't modify the service state (for example, by adding callbacks to the service's main loop). </p>

</div>
</div>
<a class="anchor" id="gaa2d497ae35db96e9eda525bafa944164"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structToolsPluginSignalCb.html">ToolsPluginSignalCb</a>  <a class="el" href="structToolsPluginSignalCb.html">ToolsPluginSignalCb</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Defines a struct for mapping callbacks to signals. Normally it would suffice to use g_signal_connect() directly to register interest in signals; but to allow dynamic registration of signals by plugins, using this struct allows registration to be delayed until all plugins have been loaded and have had the chance to register their own signals. The daemon code then can go through the plugins' registration data and connect all desired signals. </p>

</div>
</div>
<a class="anchor" id="ga32273e47ea284b17f3eb339f6fed59f2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structToolsServiceProperty.html">ToolsServiceProperty</a>  <a class="el" href="structToolsServiceProperty.html">ToolsServiceProperty</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Defines a property that is exposed through the containers instance object (<a class="el" href="structToolsAppCtx.html#a88fa545c7fdc5415d1638eef49f306d9">ToolsAppCtx::serviceObj</a>). Plugins can expose properties through this mechanism to share state with other plugins. Properties can be accessed using GObject's g_set_property / g_get_property APIs, or monitored by registering for the "notify" signal on the object.</p>
<p>All properties exposed using this mechanism are opaque pointers. It's up for individual plugins to define the actual types of the properties.</p>
<p>Properties are not ref counted, so consumers (code calling "g_get_property") should be aware of the life cycle of the property as defined by the producer. </p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gaa58c4987a21e2bdbb4a7a6e28eb861a6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__vmtools__plugins.html#gaa58c4987a21e2bdbb4a7a6e28eb861a6">ToolsAppType</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Type of the application feature being registered. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaa58c4987a21e2bdbb4a7a6e28eb861a6a2192ecd9b4c16376a1e8536f4119de4b"></a>TOOLS_APP_GUESTRPC</em>&nbsp;</td><td class="fielddoc">
<p>Denotes a list of GuestRPC registrations (type <a class="el" href="structRpcChannelCallback.html">RpcChannelCallback</a>). </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa58c4987a21e2bdbb4a7a6e28eb861a6a79ac5216bff892349d250d16e61d5f87"></a>TOOLS_APP_SIGNALS</em>&nbsp;</td><td class="fielddoc">
<p>Denotes a list of signals the application is interested in (type <a class="el" href="structToolsPluginSignalCb.html">ToolsPluginSignalCb</a>). </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa58c4987a21e2bdbb4a7a6e28eb861a6a8121f83d027f9b28f7b8a0e4dab46b36"></a>TOOLS_APP_PROVIDER</em>&nbsp;</td><td class="fielddoc">
<p>Denotes an application provider (type <a class="el" href="structToolsAppProvider.html">ToolsAppProvider</a>). This allows plugins to extend the functionality of vmtoolsd by adding new application types (that other plugins can hook into). </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggaa58c4987a21e2bdbb4a7a6e28eb861a6a80c5c900fc3aaf4100b8d12010a315e7"></a>TOOLS_SVC_PROPERTY</em>&nbsp;</td><td class="fielddoc">
<p>Denotes a property made available through the service's instance object (<a class="el" href="structToolsAppCtx.html#a88fa545c7fdc5415d1638eef49f306d9">ToolsAppCtx::serviceObj</a>). </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga30463f9d97822958018ae83e28321fa9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__vmtools__plugins.html#ga30463f9d97822958018ae83e28321fa9">ToolsCapabilityType</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Identifies the type of a Tools capability. </p>

</div>
</div>
<a class="anchor" id="gab74b3a7ffdbb9972f4a104098529ef64"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__vmtools__plugins.html#gab74b3a7ffdbb9972f4a104098529ef64">ToolsCoreAPI</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This enum lists all API versions that different versions of vmtoolsd support. The "ToolsAppCtx" instance provided to plugins contains a "version" field which is a bit-mask of these values, telling plugins what features the container supports.</p>
<p>Refer to a specific feature's documentation for which version of the API is needed for it to be supported. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Nov 13 2013 17:04:41 for open-vm-tools 9.4.0 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>