[processor-sdk/performance-audio-sr.git] / psdk_cust / ipc_3_43_00_00_eng / docs / cdoc / ti / sdo / ipc / Ipc.html
1 <html>
2 <head>
3 <title>module ti.sdo.ipc.Ipc</title>
4 <meta name="description" content="IPC Master Manager">
5 <link rel="stylesheet" type="text/css" href="../../../xdoc.css" />
6 </head>
7 <body><div id="xdocWrapper"><div id="xdocContent">
8 <table class="xdocHdr"><tr>
9 <td class="xdocHdrTitle"><span class="xdoc-kw1">module</span> <span class="xdoc-id">ti.sdo.ipc.</span><span class="xdoc-id">Ipc</span></td>
10 <td class="xdocHdrArrow">
11 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/GateMP.html" title="module GateMP"><img class="xdocHdrArrow" src="../../../Arrow_left.png"/></a></td>
12 <td class="xdocHdrArrow">
13 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/package.html" title="package ti.sdo.ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
14 <td class="xdocHdrArrow">
15 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/ListMP.html" title="module ListMP"><img class="xdocHdrArrow" src="../../../Arrow_right.png"/></a></td>
16 </table>
17 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html">index URL</a></div>
18 <p class="xdocHdrSummary">IPC Master Manager</p>
19 <ul class="xdocToc">
20 <li class="xdocToc"><a class="xdocToc" href="#targ-synop">C synopsis</a></li>
21 <li class="xdocToc2"><a class="xdocToc" href="#xdocElems">Individual elements</a></li>
22 <li class="xdocToc"><a class="xdocToc" href="#meta-synop">Configuration settings</a></li>
23 <li class="xdocToc2"><a class="xdocToc" href="#xdocMetaElems">Individual elements</a></li>
24 </ul>
25 <div class="xdocBrief">
26 This module has a common header that can be found in the <a class="xdoc-link" href="../../../ti/ipc/package.html" title="ti.ipc">ti.ipc</a>
27 package. Application code should include the common header file (not the
28 RTSC-generated one):
30 <PRE>#include <ti/ipc/Ipc.h></PRE>
32 The RTSC module must be used in the application's RTSC configuration file
33 (.cfg):
35 <PRE>Ipc = xdc.useModule('ti.sdo.ipc.Ipc');</PRE>
37 Documentation for all runtime APIs, instance configuration parameters,
38 error codes macros and type definitions available to the application
39 integrator can be found in the
40 <A HREF="../../../../doxygen/html/files.html">Doxygen documenation</A>
41 for the IPC product. However, the documentation presented on this page
42 should be referred to for information specific to the RTSC module, such as
43 module configuration, Errors, and Asserts.
44 [ <a class="xdocBrief" href="#xdoc-desc">more</a> ... ]
45 </div>
46 <span id='targ-synop'></span>
47 <table class="xdocLabel"><tr>
48 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2">C</span></tt> synopsis</td>
49 <td class="xdocLabelCenter">target-domain</td>
50 <td class="xdocLabelRight">sourced in <a class="xdocLink" href="../../../ti/sdo/ipc/Ipc-src.html"><span class="xdocLabelFile">ti/sdo/ipc/Ipc.xdc</span></a></td>
51 </tr></table>
52 <div class="xdocSynT">
53 <div class="xdocSynCode">
54 <tt></tt><span class="xdoc-kw3">#include</span> <span class="xdoc-id"><ti/sdo/ipc/Ipc.h></span>
55 </div>
56 <table cellspacing="0" cellpadding="0" border="0">
57 <tr><td colspan='2'><div class='xdocSynTblHdr'>Functions</div></td></tr>
59 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw2">Void</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#get.Entry"><span class="xdoc-id">Ipc_getEntry</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Gets the properties for attaching to a remote processor</span></span></a>(<a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.Entry" title="ti.sdo.ipc.Ipc.Entry">Ipc_Entry</a> *<span class="xdoc-id">entry</span>);</div></td></tr>
60 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw2">Void</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#set.Entry"><span class="xdoc-id">Ipc_setEntry</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Sets the properties for attaching to a remote processor</span></span></a>(<a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.Entry" title="ti.sdo.ipc.Ipc.Entry">Ipc_Entry</a> *<span class="xdoc-id">entry</span>);</div></td></tr>
61 <tr><td class="xdocSynFxnCat" colspan="2"><div class="xdocSynFxnCat">Functions common to all target modules</div></td></tr>
63 <tr>
64 <td></td>
65 <td>
66 <div class="xdocSynTblPack">
67 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">Ipc_Module_getMask</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Returns the diagnostics mask for this module</span></span></a>,
68 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">Ipc_Module_hasMask</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Test whether this module has a diagnostics mask</span></span></a>,
69 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">Ipc_Module_heap</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// The heap from which this module allocates memory</span></span></a>,
70 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">Ipc_Module_id</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Get this module's unique id</span></span></a>,
71 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">Ipc_Module_setMask</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Set the diagnostics mask for this module</span></span></a>,
72 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">Ipc_Module_startupDone</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Test if this module has completed startup</span></span></a>
73 </div>
74 </td>
75 </tr>
76 <tr><td colspan='2'><div class='xdocSynTblHdr'>Typedefs</div></td></tr>
78 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.Entry"><span class="xdoc-id">Ipc_Entry</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Struct used for configuration via <span class="xdoc-link" href="Ipc.html#set.Entry.Meta" title="setEntryMeta">setEntryMeta</span></span></span></a> ...</div></td></tr>
79 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">enum</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.Proc.Sync"><span class="xdoc-id">Ipc_ProcSync</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Various configuration options for <span class="xdoc-link" href="Ipc.html#proc.Sync" title="procSync">procSync</span></span></span></a> ...</div></td></tr>
80 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.User.Fxn"><span class="xdoc-id">Ipc_UserFxn</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// struct for attach/detach plugs</span></span></a> ...</div></td></tr>
81 <tr><td colspan='2'><div class='xdocSynTblHdr'>Constants</div></td></tr>
83 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.A_addr.Not.Cache.Aligned"><span class="xdoc-id">Ipc_A_addrNotCacheAligned</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when an address is not cache-aligned</span></span></a>;</div></td></tr>
84 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.A_addr.Not.In.Shared.Region"><span class="xdoc-id">Ipc_A_addrNotInSharedRegion</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when an address lies outside all known shared regions</span></span></a>;</div></td></tr>
85 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.A_internal"><span class="xdoc-id">Ipc_A_internal</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when an internal error is encountered</span></span></a>;</div></td></tr>
86 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.A_inv.Argument"><span class="xdoc-id">Ipc_A_invArgument</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when an argument is invalid</span></span></a>;</div></td></tr>
87 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.A_inv.Param"><span class="xdoc-id">Ipc_A_invParam</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when a parameter is invalid</span></span></a>;</div></td></tr>
88 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.A_null.Argument"><span class="xdoc-id">Ipc_A_nullArgument</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when a required argument is null</span></span></a>;</div></td></tr>
89 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.A_null.Pointer"><span class="xdoc-id">Ipc_A_nullPointer</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when a pointer is null</span></span></a>;</div></td></tr>
90 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.E_internal"><span class="xdoc-id">Ipc_E_internal</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Error raised when an internal error occured</span></span></a>;</div></td></tr>
91 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.E_name.Failed"><span class="xdoc-id">Ipc_E_nameFailed</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Error raised when a name failed to be added to the NameServer</span></span></a>;</div></td></tr>
92 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.E_version.Mismatch"><span class="xdoc-id">Ipc_E_versionMismatch</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Error raised when a version mismatch occurs</span></span></a>;</div></td></tr>
93 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.Proc.Sync" title="ti.sdo.ipc.Ipc.ProcSync">Ipc_ProcSync</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#proc.Sync"><span class="xdoc-id">Ipc_procSync</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Affects how Ipc_start and Ipc_attach behave</span></span></a>;</div></td></tr>
94 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <span class="xdoc-kw2">Bool</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#sr0.Memory.Setup"><span class="xdoc-id">Ipc_sr0MemorySetup</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Whether Shared Region 0 memory is accessible</span></span></a>;</div></td></tr>
95 </table>
96 <div class="xdocSynSpacer"> </div>
97 </div>
98 <span id="xdoc-desc"></span>
99 <span id="xdoc-sect-1"></span>
100 <div class="xdocSect">DETAILS</div>
101 <div class="xdocText">This module has a common header that can be found in the <a class="xdoc-link" href="../../../ti/ipc/package.html" title="ti.ipc">ti.ipc</a>
102 package. Application code should include the common header file (not the
103 RTSC-generated one):
105 <PRE>#include <ti/ipc/Ipc.h></PRE>
107 The RTSC module must be used in the application's RTSC configuration file
108 (.cfg):
110 <PRE>Ipc = xdc.useModule('ti.sdo.ipc.Ipc');</PRE>
112 Documentation for all runtime APIs, instance configuration parameters,
113 error codes macros and type definitions available to the application
114 integrator can be found in the
115 <A HREF="../../../../doxygen/html/files.html">Doxygen documenation</A>
116 for the IPC product. However, the documentation presented on this page
117 should be referred to for information specific to the RTSC module, such as
118 module configuration, Errors, and Asserts.</div>
119 <div class="xdocText">The most common static configuration that is required of the Ipc module
120 is the <a class="xdoc-link" href="Ipc.html#proc.Sync" title="procSync">procSync</a> configuration that affects the behavior of the
121 Ipc_start and Ipc_attach runtime APIs.</div>
122 <div class="xdocText">Additionally, certain subsystems of IPC (such as Notify and MessageQ) can
123 be disabled to save resources on a per-connection basis by configuring Ipc
124 using <a class="xdoc-link" href="Ipc.html#set.Entry.Meta" title="setEntryMeta">setEntryMeta</a>.</div>
125 <div id="xdocSep">
126 </div>
127 <div id="xdocElems">
128 <div class="xdocSynSpacer"> </div>
129 <a class="xdocAnchor" id=".Proc.Sync"></a>
130 <a class="xdocAnchor" id=".Proc.Sync_.N.O.N.E"></a>
131 <a class="xdocAnchor" id=".Proc.Sync_.P.A.I.R"></a>
132 <a class="xdocAnchor" id=".Proc.Sync_.A.L.L"></a>
133 <table class="xdocHdr"><tr>
134 <td class="xdocHdrTitle"><span class="xdoc-kw1">enum</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">ProcSync</span></td>
135 <td class="xdocHdrArrow">
136 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
137 </table>
138 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.Proc.Sync">index URL</a></div>
139 <p class="xdocHdrSummaryDcl">Various configuration options for <a class="xdoc-link" href="Ipc.html#proc.Sync" title="procSync">procSync</a></p>
140 <span id='targ-synop'></span>
141 <table class="xdocLabel"><tr>
142 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
143 <td class="xdocLabelRight">target-domain</td>
144 </tr></table>
145 <div class="xdocSynTdcl">
146 <div class="xdocSynCode">
147 <tt></tt><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">enum</span> <span class="xdoc-id">Ipc_ProcSync</span> {
148 </div>
149 <div class="xdocSynCode">
150 <tt></tt><tt> </tt><span class="xdoc-id">Ipc_ProcSync_NONE</span>,
151 </div>
152 <div class='xdocSynSum'><tt></tt><tt> </tt>// ProcSync_PAIR with no synchronization</div>
153 <div class="xdocSynCode">
154 <tt></tt><tt> </tt><span class="xdoc-id">Ipc_ProcSync_PAIR</span>,
155 </div>
156 <div class='xdocSynSum'><tt></tt><tt> </tt>// Ipc_start does not Ipc_attach</div>
157 <div class="xdocSynCode">
158 <tt></tt><tt> </tt><span class="xdoc-id">Ipc_ProcSync_ALL</span>
159 </div>
160 <div class='xdocSynSum'><tt></tt><tt> </tt>// Ipc_start attach to all remote procs</div>
161 <div class="xdocSynCode">
162 <tt></tt><tt></tt>} <span class="xdoc-id">Ipc_ProcSync</span>;
163 </div>
164 </div>
165 <div class="xdocSynSpacer"> </div>
166 <span id="xdoc-sect-1"></span>
167 <div class="xdocSect">DETAILS</div>
168 <div class="xdocText">The values in this enum affect the behavior of the Ipc_start and
169 Ipc_attach runtime APIs.</div>
170 <div class="xdocText">ProcSync_ALL: Calling Ipc_start will also internally Ipc_attach to
171 each remote processor. The application should never call Ipc_attach.
172 This type of startup and synchronization should be used if all IPC
173 processors on a device start up at the same time and connections should
174 be established between every possible pair of processors.</div>
175 <div class="xdocText">ProcSync_PAIR (default): Calling Ipc_start will perform system-wide IPC
176 initialization required on all processor, but connections to remote
177 processors will not be established (i.e. Ipc_attach will never be
178 called). This configuration should be chosen if synchronization is
179 required and some/all these conditions are true:</div>
180 <div class="xdocText"><UL><LI> It is necessary to control when synchronization with each remote
181 processor occurs
182 </LI><LI> Useful work can be done while trying to synchronize with a remote
183 processor by yielding a thread after each attempt to Ipc_attach
184 to the processor.
185 </LI><LI> Connections to all remote processors are unnecessary and connections
186 should selectively be made to save memory
187 </LI></UL></div>
188 <div class="xdocText">NOTE: A connection should be made to the owner of region 0 (usually the
189 processor with id = 0) before any connection to any other remote
190 processor can be made. For example, if there are three processors
191 configured with MultiProc, #1 should attach to #0 before it can attach
192 to #2.</div>
193 <div class="xdocText">ProcSync_NONE: This should be selected with caution. Ipc_start will
194 work exactly as it does with ProcSync_PAIR. However, Ipc_attach will
195 not synchronize with the remote processor. Callers of Ipc_attach are
196 bound by the same restrictions imposed by using ProcSync_PAIR.
197 Additionally, an Ipc_attach to a remote processor whose id is less than
198 our own has to occur *after* the corresponding remote processor has
199 called attach to the original processor. For example, processor #2
200 can call</div>
201 <div class="xdocText"><PRE class="Example"> Ipc_attach(1);
202 </PRE></div>
203 <div class="xdocText">only after processor #1 has called:</div>
204 <div class="xdocText"><PRE class="Example"> Ipc_attach(2);
205 </PRE></div>
206 <div class="xdocSynSpacer"> </div>
207 <a class="xdocAnchor" id=".Entry"></a>
208 <table class="xdocHdr"><tr>
209 <td class="xdocHdrTitle"><span class="xdoc-kw1">struct</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">Entry</span></td>
210 <td class="xdocHdrArrow">
211 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
212 </table>
213 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.Entry">index URL</a></div>
214 <p class="xdocHdrSummaryDcl">Struct used for configuration via <a class="xdoc-link" href="Ipc.html#set.Entry.Meta" title="setEntryMeta">setEntryMeta</a></p>
215 <span id='targ-synop'></span>
216 <table class="xdocLabel"><tr>
217 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
218 <td class="xdocLabelRight">target-domain</td>
219 </tr></table>
220 <div class="xdocSynTdcl">
221 <div class="xdocSynCode">
222 <tt></tt><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> <span class="xdoc-id">Ipc_Entry</span> {
223 </div>
224 <div class="xdocSynCode">
225 <tt></tt><tt> </tt><span class="xdoc-kw2">UInt16</span> <span class="xdoc-id"><span class="xdoc-id">remoteProcId</span></span>;
226 </div>
227 <div class='xdocSynSum'><tt></tt><tt> </tt>// Remote processor id</div>
228 <div class="xdocSynCode">
229 <tt></tt><tt> </tt><span class="xdoc-kw2">Bool</span> <span class="xdoc-id"><span class="xdoc-id">setupNotify</span></span>;
230 </div>
231 <div class='xdocSynSum'><tt></tt><tt> </tt>// Whether to setup Notify</div>
232 <div class="xdocSynCode">
233 <tt></tt><tt> </tt><span class="xdoc-kw2">Bool</span> <span class="xdoc-id"><span class="xdoc-id">setupMessageQ</span></span>;
234 </div>
235 <div class='xdocSynSum'><tt></tt><tt> </tt>// Whether to setup MessageQ</div>
236 <div class="xdocSynCode">
237 <tt></tt><tt></tt>} <span class="xdoc-id">Ipc_Entry</span>;
238 </div>
239 </div>
240 <div class="xdocSynSpacer"> </div>
241 <span id="xdoc-sect-1"></span>
242 <div class="xdocSect">DETAILS</div>
243 <div class="xdocText">This structure defines the fields that are to be configured
244 between the executing processor and a remote processor.</div>
245 <div class="xdocSynSpacer"> </div>
246 <a class="xdocAnchor" id=".User.Fxn"></a>
247 <table class="xdocHdr"><tr>
248 <td class="xdocHdrTitle"><span class="xdoc-kw1">struct</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">UserFxn</span></td>
249 <td class="xdocHdrArrow">
250 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
251 </table>
252 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.User.Fxn">index URL</a></div>
253 <p class="xdocHdrSummaryDcl">struct for attach/detach plugs</p>
254 <span id='targ-synop'></span>
255 <table class="xdocLabel"><tr>
256 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
257 <td class="xdocLabelRight">target-domain</td>
258 </tr></table>
259 <div class="xdocSynTdcl">
260 <div class="xdocSynCode">
261 <tt></tt><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> <span class="xdoc-id">Ipc_UserFxn</span> {
262 </div>
263 <div class="xdocSynCode">
264 <tt></tt><tt> </tt><span class="xdoc-kw2">Int</span> (*<span class="xdoc-id"><span class="xdoc-id">attach</span></span>)(<span class="xdoc-kw2">UArg</span>,<span class="xdoc-kw2">UInt16</span>);
265 </div>
266 <div class="xdocSynCode">
267 <tt></tt><tt> </tt><span class="xdoc-kw2">Int</span> (*<span class="xdoc-id"><span class="xdoc-id">detach</span></span>)(<span class="xdoc-kw2">UArg</span>,<span class="xdoc-kw2">UInt16</span>);
268 </div>
269 <div class="xdocSynCode">
270 <tt></tt><tt></tt>} <span class="xdoc-id">Ipc_UserFxn</span>;
271 </div>
272 </div>
273 <div class="xdocSynSpacer"> </div>
274 <div class="xdocSynSpacer"> </div>
275 <a class="xdocAnchor" id=".A_addr.Not.Cache.Aligned"></a>
276 <table class="xdocHdr"><tr>
277 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">A_addrNotCacheAligned</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
278 <td class="xdocHdrArrow">
279 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
280 </table>
281 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_addr.Not.Cache.Aligned">index URL</a></div>
282 <p class="xdocHdrSummaryDcl">Assert raised when an address is not cache-aligned</p>
283 <span id='targ-synop'></span>
284 <table class="xdocLabel"><tr>
285 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
286 <td class="xdocLabelRight">target-domain</td>
287 </tr></table>
288 <div class="xdocSynTdcl">
289 <div class="xdocSynCode">
290 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> <span class="xdoc-id">Ipc_A_addrNotCacheAligned</span>;
291 </div>
292 </div>
293 <div class="xdocSynSpacer"> </div>
294 <div class="xdocSynSpacer"> </div>
295 <a class="xdocAnchor" id=".A_addr.Not.In.Shared.Region"></a>
296 <table class="xdocHdr"><tr>
297 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">A_addrNotInSharedRegion</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
298 <td class="xdocHdrArrow">
299 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
300 </table>
301 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_addr.Not.In.Shared.Region">index URL</a></div>
302 <p class="xdocHdrSummaryDcl">Assert raised when an address lies outside all known shared regions</p>
303 <span id='targ-synop'></span>
304 <table class="xdocLabel"><tr>
305 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
306 <td class="xdocLabelRight">target-domain</td>
307 </tr></table>
308 <div class="xdocSynTdcl">
309 <div class="xdocSynCode">
310 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> <span class="xdoc-id">Ipc_A_addrNotInSharedRegion</span>;
311 </div>
312 </div>
313 <div class="xdocSynSpacer"> </div>
314 <div class="xdocSynSpacer"> </div>
315 <a class="xdocAnchor" id=".A_internal"></a>
316 <table class="xdocHdr"><tr>
317 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">A_internal</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
318 <td class="xdocHdrArrow">
319 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
320 </table>
321 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_internal">index URL</a></div>
322 <p class="xdocHdrSummaryDcl">Assert raised when an internal error is encountered</p>
323 <span id='targ-synop'></span>
324 <table class="xdocLabel"><tr>
325 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
326 <td class="xdocLabelRight">target-domain</td>
327 </tr></table>
328 <div class="xdocSynTdcl">
329 <div class="xdocSynCode">
330 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> <span class="xdoc-id">Ipc_A_internal</span>;
331 </div>
332 </div>
333 <div class="xdocSynSpacer"> </div>
334 <div class="xdocSynSpacer"> </div>
335 <a class="xdocAnchor" id=".A_inv.Argument"></a>
336 <table class="xdocHdr"><tr>
337 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">A_invArgument</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
338 <td class="xdocHdrArrow">
339 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
340 </table>
341 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_inv.Argument">index URL</a></div>
342 <p class="xdocHdrSummaryDcl">Assert raised when an argument is invalid</p>
343 <span id='targ-synop'></span>
344 <table class="xdocLabel"><tr>
345 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
346 <td class="xdocLabelRight">target-domain</td>
347 </tr></table>
348 <div class="xdocSynTdcl">
349 <div class="xdocSynCode">
350 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> <span class="xdoc-id">Ipc_A_invArgument</span>;
351 </div>
352 </div>
353 <div class="xdocSynSpacer"> </div>
354 <div class="xdocSynSpacer"> </div>
355 <a class="xdocAnchor" id=".A_inv.Param"></a>
356 <table class="xdocHdr"><tr>
357 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">A_invParam</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
358 <td class="xdocHdrArrow">
359 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
360 </table>
361 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_inv.Param">index URL</a></div>
362 <p class="xdocHdrSummaryDcl">Assert raised when a parameter is invalid</p>
363 <span id='targ-synop'></span>
364 <table class="xdocLabel"><tr>
365 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
366 <td class="xdocLabelRight">target-domain</td>
367 </tr></table>
368 <div class="xdocSynTdcl">
369 <div class="xdocSynCode">
370 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> <span class="xdoc-id">Ipc_A_invParam</span>;
371 </div>
372 </div>
373 <div class="xdocSynSpacer"> </div>
374 <div class="xdocSynSpacer"> </div>
375 <a class="xdocAnchor" id=".A_null.Argument"></a>
376 <table class="xdocHdr"><tr>
377 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">A_nullArgument</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
378 <td class="xdocHdrArrow">
379 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
380 </table>
381 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_null.Argument">index URL</a></div>
382 <p class="xdocHdrSummaryDcl">Assert raised when a required argument is null</p>
383 <span id='targ-synop'></span>
384 <table class="xdocLabel"><tr>
385 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
386 <td class="xdocLabelRight">target-domain</td>
387 </tr></table>
388 <div class="xdocSynTdcl">
389 <div class="xdocSynCode">
390 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> <span class="xdoc-id">Ipc_A_nullArgument</span>;
391 </div>
392 </div>
393 <div class="xdocSynSpacer"> </div>
394 <div class="xdocSynSpacer"> </div>
395 <a class="xdocAnchor" id=".A_null.Pointer"></a>
396 <table class="xdocHdr"><tr>
397 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">A_nullPointer</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
398 <td class="xdocHdrArrow">
399 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
400 </table>
401 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_null.Pointer">index URL</a></div>
402 <p class="xdocHdrSummaryDcl">Assert raised when a pointer is null</p>
403 <span id='targ-synop'></span>
404 <table class="xdocLabel"><tr>
405 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
406 <td class="xdocLabelRight">target-domain</td>
407 </tr></table>
408 <div class="xdocSynTdcl">
409 <div class="xdocSynCode">
410 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Id" title="xdc.runtime.Assert.Id">Assert_Id</a> <span class="xdoc-id">Ipc_A_nullPointer</span>;
411 </div>
412 </div>
413 <div class="xdocSynSpacer"> </div>
414 <div class="xdocSynSpacer"> </div>
415 <a class="xdocAnchor" id=".E_internal"></a>
416 <table class="xdocHdr"><tr>
417 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">E_internal</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
418 <td class="xdocHdrArrow">
419 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
420 </table>
421 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.E_internal">index URL</a></div>
422 <p class="xdocHdrSummaryDcl">Error raised when an internal error occured</p>
423 <span id='targ-synop'></span>
424 <table class="xdocLabel"><tr>
425 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
426 <td class="xdocLabelRight">target-domain</td>
427 </tr></table>
428 <div class="xdocSynTdcl">
429 <div class="xdocSynCode">
430 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a> <span class="xdoc-id">Ipc_E_internal</span>;
431 </div>
432 </div>
433 <div class="xdocSynSpacer"> </div>
434 <div class="xdocSynSpacer"> </div>
435 <a class="xdocAnchor" id=".E_name.Failed"></a>
436 <table class="xdocHdr"><tr>
437 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">E_nameFailed</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
438 <td class="xdocHdrArrow">
439 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
440 </table>
441 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.E_name.Failed">index URL</a></div>
442 <p class="xdocHdrSummaryDcl">Error raised when a name failed to be added to the NameServer</p>
443 <span id='targ-synop'></span>
444 <table class="xdocLabel"><tr>
445 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
446 <td class="xdocLabelRight">target-domain</td>
447 </tr></table>
448 <div class="xdocSynTdcl">
449 <div class="xdocSynCode">
450 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a> <span class="xdoc-id">Ipc_E_nameFailed</span>;
451 </div>
452 </div>
453 <div class="xdocSynSpacer"> </div>
454 <span id="xdoc-sect-1"></span>
455 <div class="xdocSect">DETAILS</div>
456 <div class="xdocText">Error raised in a create call when a name fails to be added
457 to the NameServer table. This can be because the name already
458 exists, the table has reached its max length, or out of memory.</div>
459 <div class="xdocSynSpacer"> </div>
460 <a class="xdocAnchor" id=".E_version.Mismatch"></a>
461 <table class="xdocHdr"><tr>
462 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">E_versionMismatch</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
463 <td class="xdocHdrArrow">
464 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
465 </table>
466 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.E_version.Mismatch">index URL</a></div>
467 <p class="xdocHdrSummaryDcl">Error raised when a version mismatch occurs</p>
468 <span id='targ-synop'></span>
469 <table class="xdocLabel"><tr>
470 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
471 <td class="xdocLabelRight">target-domain</td>
472 </tr></table>
473 <div class="xdocSynTdcl">
474 <div class="xdocSynCode">
475 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../xdc/runtime/Error.html#.Id" title="xdc.runtime.Error.Id">Error_Id</a> <span class="xdoc-id">Ipc_E_versionMismatch</span>;
476 </div>
477 </div>
478 <div class="xdocSynSpacer"> </div>
479 <span id="xdoc-sect-1"></span>
480 <div class="xdocSect">DETAILS</div>
481 <div class="xdocText">Error raised in an open call because there is
482 a version mismatch between the opener and the creator</div>
483 <div class="xdocSynSpacer"> </div>
484 <a class="xdocAnchor" id="proc.Sync"></a>
485 <table class="xdocHdr"><tr>
486 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">procSync</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
487 <td class="xdocHdrArrow">
488 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
489 </table>
490 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#proc.Sync">index URL</a></div>
491 <p class="xdocHdrSummaryDcl">Affects how Ipc_start and Ipc_attach behave</p>
492 <span id='targ-synop'></span>
493 <table class="xdocLabel"><tr>
494 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
495 <td class="xdocLabelRight">target-domain</td>
496 </tr></table>
497 <div class="xdocSynTdcl">
498 <div class="xdocSynCode">
499 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.Proc.Sync" title="ti.sdo.ipc.Ipc.ProcSync">Ipc_ProcSync</a> <span class="xdoc-id">Ipc_procSync</span>;
500 </div>
501 </div>
502 <div class="xdocSynSpacer"> </div>
503 <span id="xdoc-sect-1"></span>
504 <div class="xdocSect">DETAILS</div>
505 <div class="xdocText">Refer to the documentation for the <a class="xdoc-link" href="Ipc.html#.Proc.Sync" title="ProcSync">ProcSync</a> enum for
506 information about the various ProcSync options.</div>
507 <div class="xdocSynSpacer"> </div>
508 <a class="xdocAnchor" id="sr0.Memory.Setup"></a>
509 <table class="xdocHdr"><tr>
510 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc_</span><span class="xdoc-id">sr0MemorySetup</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
511 <td class="xdocHdrArrow">
512 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
513 </table>
514 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#sr0.Memory.Setup">index URL</a></div>
515 <p class="xdocHdrSummaryDcl">Whether Shared Region 0 memory is accessible</p>
516 <span id='targ-synop'></span>
517 <table class="xdocLabel"><tr>
518 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
519 <td class="xdocLabelRight">target-domain</td>
520 </tr></table>
521 <div class="xdocSynTdcl">
522 <div class="xdocSynCode">
523 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <span class="xdoc-kw2">Bool</span> <span class="xdoc-id">Ipc_sr0MemorySetup</span>;
524 </div>
525 </div>
526 <div class="xdocSynSpacer"> </div>
527 <span id="xdoc-sect-1"></span>
528 <div class="xdocSect">DETAILS</div>
529 <div class="xdocText">Certain devices have a slave MMU that needs to be configured by the
530 host core before the slave core can access shared region 0. If
531 the host core is also running BIOS, it is necessary to set this
532 configuration to 'true', otherwise <a class="xdoc-link" href="Ipc.html#start" title="start">start</a> will always fail.</div>
533 <div class="xdocText">This configuration should not be used for devices that don't have
534 a slave MMU and don't run Linux.</div>
535 <div class="xdocSynSpacer"> </div>
536 <a class="xdocAnchor" id="get.Entry"></a>
537 <table class="xdocHdr"><tr>
538 <td class="xdocHdrTitle"><span class="xdoc-id">Ipc_</span><span class="xdoc-id">getEntry</span>() <small><span class="xdocSynSum">// module-wide</span></small></td>
539 <td class="xdocHdrArrow">
540 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
541 </table>
542 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#get.Entry">index URL</a></div>
543 <p class="xdocHdrSummaryDcl">Gets the properties for attaching to a remote processor</p>
544 <span id='targ-synop'></span>
545 <table class="xdocLabel"><tr>
546 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
547 <td class="xdocLabelRight">target-domain</td>
548 </tr></table>
549 <div class="xdocSynTdcl">
550 <div class="xdocSynCode">
551 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span> <span class="xdoc-id">Ipc_getEntry</span>(<a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.Entry" title="ti.sdo.ipc.Ipc.Entry">Ipc_Entry</a> *<span class="xdoc-id">entry</span>);
552 </div>
553 </div>
554 <div class="xdocSynSpacer"> </div>
555 <span id="xdoc-sect-1"></span>
556 <div class="xdocSect">ARGUMENTS</div>
557 <div class="xdocChild"><span class="xdocChildId">entry</span>
558 <span class="xdocChildSum">— Properties between a pair of processors.</span>
559 </div>
560 <span id="xdoc-sect-2"></span>
561 <div class="xdocSect">DETAILS</div>
562 <div class="xdocText">This function must be called before Ipc_attach(). The
563 parameter entry->remoteProcId field must be set prior to calling
564 the function.</div>
565 <div class="xdocSynSpacer"> </div>
566 <a class="xdocAnchor" id="set.Entry"></a>
567 <table class="xdocHdr"><tr>
568 <td class="xdocHdrTitle"><span class="xdoc-id">Ipc_</span><span class="xdoc-id">setEntry</span>() <small><span class="xdocSynSum">// module-wide</span></small></td>
569 <td class="xdocHdrArrow">
570 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
571 </table>
572 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#set.Entry">index URL</a></div>
573 <p class="xdocHdrSummaryDcl">Sets the properties for attaching to a remote processor</p>
574 <span id='targ-synop'></span>
575 <table class="xdocLabel"><tr>
576 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
577 <td class="xdocLabelRight">target-domain</td>
578 </tr></table>
579 <div class="xdocSynTdcl">
580 <div class="xdocSynCode">
581 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span> <span class="xdoc-id">Ipc_setEntry</span>(<a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.Entry" title="ti.sdo.ipc.Ipc.Entry">Ipc_Entry</a> *<span class="xdoc-id">entry</span>);
582 </div>
583 </div>
584 <div class="xdocSynSpacer"> </div>
585 <span id="xdoc-sect-1"></span>
586 <div class="xdocSect">ARGUMENTS</div>
587 <div class="xdocChild"><span class="xdocChildId">entry</span>
588 <span class="xdocChildSum">— Properties between a pair of processors.</span>
589 </div>
590 <span id="xdoc-sect-2"></span>
591 <div class="xdocSect">DETAILS</div>
592 <div class="xdocText">This function must be called before Ipc_attach(). It allows
593 the user to configure whether Notify and/or MessageQ is setup
594 during Ipc_attach(). If 'setupNotify' is set to 'FALSE',
595 neither the Notify or NameServerRemoteNotify instances are
596 created. If 'setupMessageQ' is set to 'FALSE', the MessageQ
597 transport instances are not created. By default, both flags are
598 set to 'TRUE'.</div>
599 <div class="xdocText">Note: For any pair of processors, the flags must be the same</div>
600 <a class="xdocAnchor" id="module-wide_built-ins"></a>
601 <table class="xdocHdr"><tr>
602 <td class="xdocHdrTitle"><span class="xdocSynSum">Module-Wide Built-Ins</span></td>
603 <td class="xdocHdrArrow">
604 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
605 </table>
606 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#module-wide_built-ins">index URL</a></div>
607 <p class="xdocHdrSummary"></p>
608 <span id='targ-synop'></span>
609 <table class="xdocLabel"><tr>
610 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
611 <td class="xdocLabelRight">target-domain</td>
612 </tr></table>
613 <div class="xdocSynTdcl">
614 <div class="xdocSynCode">
615 <tt></tt><tt></tt><a class="xdoc-link" href="../../../xdc/runtime/Types.html#.Module.Id" title="xdc.runtime.Types.ModuleId">Types_ModuleId</a> <span class="xdoc-id">Ipc_Module_id</span>();
616 </div>
617 <div class='xdocSynSum'><tt></tt><tt></tt>// Get this module's unique id</div>
618 <div class="xdocSynSpacer"> </div>
619 <div class="xdocSynCode">
620 <tt></tt><tt></tt><span class="xdoc-kw2">Bool</span> <span class="xdoc-id">Ipc_Module_startupDone</span>();
621 </div>
622 <div class='xdocSynSum'><tt></tt><tt></tt>// Test if this module has completed startup</div>
623 <div class="xdocSynSpacer"> </div>
624 <div class="xdocSynCode">
625 <tt></tt><tt></tt><a class="xdoc-link" href="../../../xdc/runtime/IHeap.html#per-instance_object_types" title="xdc.runtime.IHeap.Handle">IHeap_Handle</a> <span class="xdoc-id">Ipc_Module_heap</span>();
626 </div>
627 <div class='xdocSynSum'><tt></tt><tt></tt>// The heap from which this module allocates memory</div>
628 <div class="xdocSynSpacer"> </div>
629 <div class="xdocSynCode">
630 <tt></tt><tt></tt><span class="xdoc-kw2">Bool</span> <span class="xdoc-id">Ipc_Module_hasMask</span>();
631 </div>
632 <div class='xdocSynSum'><tt></tt><tt></tt>// Test whether this module has a diagnostics mask</div>
633 <div class="xdocSynSpacer"> </div>
634 <div class="xdocSynCode">
635 <tt></tt><tt></tt><span class="xdoc-kw2">Bits16</span> <span class="xdoc-id">Ipc_Module_getMask</span>();
636 </div>
637 <div class='xdocSynSum'><tt></tt><tt></tt>// Returns the diagnostics mask for this module</div>
638 <div class="xdocSynSpacer"> </div>
639 <div class="xdocSynCode">
640 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span> <span class="xdoc-id">Ipc_Module_setMask</span>(<span class="xdoc-kw2">Bits16</span> <span class="xdoc-id">mask</span>);
641 </div>
642 <div class='xdocSynSum'><tt></tt><tt></tt>// Set the diagnostics mask for this module</div>
643 </div>
644 </div>
645 <div class="xdocSynSpacer"> </div>
646 <span id='meta-synop'></span>
647 <table class="xdocLabel"><tr>
648 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2"></span></tt>Configuration settings</td>
649 <td class="xdocLabelRight">sourced in <a class="xdocLink" href="../../../ti/sdo/ipc/Ipc-src.html"><span class="xdocLabelFile">ti/sdo/ipc/Ipc.xdc</span></a></td>
650 </tr></table>
651 <div class="xdocSynM">
652 <div class="xdocSynCode">
653 <tt></tt><span class="xdoc-kw1">var</span> Ipc = <span class="xdoc-kw3">xdc.useModule</span>(<span class="xdoc-id">'ti.sdo.ipc.Ipc'</span>);
654 </div>
655 <div class='xdocSynHdr'>module-wide constants & types</div>
657 <div class="xdocSynCode">
658 <tt> </tt><tt></tt><i>values of type <a class="xdocSynGo" href="#meta.Proc.Sync">Ipc.<span class="xdoc-id">ProcSync</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Various configuration options for <span class="xdoc-link" href="Ipc.html#proc.Sync" title="procSync">procSync</span></span></span></a></i>
659 </div>
660 <div class="xdocSynCode">
661 <tt> </tt><tt> </tt><span class="xdoc-kw1">const</span> <a class="xdocSynGo" href="#meta.Proc.Sync">Ipc.<span class="xdoc-id">ProcSync_NONE</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// ProcSync_PAIR with no synchronization</span></span></a>;
662 </div>
663 <div class="xdocSynCode">
664 <tt> </tt><tt> </tt><span class="xdoc-kw1">const</span> <a class="xdocSynGo" href="#meta.Proc.Sync">Ipc.<span class="xdoc-id">ProcSync_PAIR</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Ipc_start does not Ipc_attach</span></span></a>;
665 </div>
666 <div class="xdocSynCode">
667 <tt> </tt><tt> </tt><span class="xdoc-kw1">const</span> <a class="xdocSynGo" href="#meta.Proc.Sync">Ipc.<span class="xdoc-id">ProcSync_ALL</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Ipc_start attach to all remote procs</span></span></a>;
668 </div>
669 <div class="xdocSynSpacer"> </div>
670 <div class="xdocSynCode">
671 <tt> </tt><tt></tt><span class="xdoc-kw1">var</span> <i>obj</i> = <span class="xdoc-kw1">new</span> <a class="xdocSynGo" href="#meta.Entry">Ipc.<span class="xdoc-id">Entry</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Struct used for configuration via <span class="xdoc-link" href="Ipc.html#set.Entry.Meta" title="setEntryMeta">setEntryMeta</span></span></span></a>;
672 </div>
673 <div class="xdocSynCode">
674 <tt> </tt><tt> </tt><i>obj</i>.<a class="xdocSynGo" href="#meta.Entry"><span class="xdoc-id">remoteProcId</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Remote processor id</span></span></a> = <i><span class="xdoc-kw2">UInt16</span></i><b> ...</b>
675 </div>
676 <div class="xdocSynCode">
677 <tt> </tt><tt> </tt><i>obj</i>.<a class="xdocSynGo" href="#meta.Entry"><span class="xdoc-id">setupNotify</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Whether to setup Notify</span></span></a> = <i><span class="xdoc-kw2">Bool</span></i><b> ...</b>
678 </div>
679 <div class="xdocSynCode">
680 <tt> </tt><tt> </tt><i>obj</i>.<a class="xdocSynGo" href="#meta.Entry"><span class="xdoc-id">setupMessageQ</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Whether to setup MessageQ</span></span></a> = <i><span class="xdoc-kw2">Bool</span></i><b> ...</b>
681 </div>
682 <div class="xdocSynSpacer"> </div>
683 <div class="xdocSynCode">
684 <tt> </tt><tt></tt><span class="xdoc-kw1">var</span> <i>obj</i> = <span class="xdoc-kw1">new</span> <a class="xdocSynGo" href="#meta.User.Fxn">Ipc.<span class="xdoc-id">UserFxn</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// struct for attach/detach plugs</span></span></a>;
685 </div>
686 <div class="xdocSynCode">
687 <tt> </tt><tt> </tt><i>obj</i>.<a class="xdocSynGo" href="#meta.User.Fxn" title="ti.sdo.ipc.Ipc.UserFxn"><span class="xdoc-id">attach</span></a> = <i><span class="xdoc-kw2">Int</span>(*)(<span class="xdoc-kw2">UArg</span>,<span class="xdoc-kw2">UInt16</span>)</i><b> ...</b>
688 </div>
689 <div class="xdocSynCode">
690 <tt> </tt><tt> </tt><i>obj</i>.<a class="xdocSynGo" href="#meta.User.Fxn" title="ti.sdo.ipc.Ipc.UserFxn"><span class="xdoc-id">detach</span></a> = <i><span class="xdoc-kw2">Int</span>(*)(<span class="xdoc-kw2">UArg</span>,<span class="xdoc-kw2">UInt16</span>)</i><b> ...</b>
691 </div>
692 <div class='xdocSynHdr'>module-wide config parameters</div>
694 <div class="xdocSynCode">
695 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.A_addr.Not.Cache.Aligned">Ipc.<span class="xdoc-id">A_addrNotCacheAligned</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when an address is not cache-aligned</span></span></a> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
696 </div>
697 <div class="xdocSynCode">
698 <tt> </tt><tt> </tt>msg: "A_addrNotCacheAligned: Address is not cache aligned"
699 </div>
700 <div class="xdocSynCode">
701 <tt> </tt><tt></tt>};
702 </div>
703 <div class="xdocSynCode">
704 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.A_addr.Not.In.Shared.Region">Ipc.<span class="xdoc-id">A_addrNotInSharedRegion</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when an address lies outside all known shared regions</span></span></a> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
705 </div>
706 <div class="xdocSynCode">
707 <tt> </tt><tt> </tt>msg: "A_addrNotInSharedRegion: Address not in any shared region"
708 </div>
709 <div class="xdocSynCode">
710 <tt> </tt><tt></tt>};
711 </div>
712 <div class="xdocSynCode">
713 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.A_internal">Ipc.<span class="xdoc-id">A_internal</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when an internal error is encountered</span></span></a> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
714 </div>
715 <div class="xdocSynCode">
716 <tt> </tt><tt> </tt>msg: "A_internal: An internal error has occurred"
717 </div>
718 <div class="xdocSynCode">
719 <tt> </tt><tt></tt>};
720 </div>
721 <div class="xdocSynCode">
722 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.A_inv.Argument">Ipc.<span class="xdoc-id">A_invArgument</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when an argument is invalid</span></span></a> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
723 </div>
724 <div class="xdocSynCode">
725 <tt> </tt><tt> </tt>msg: "A_invArgument: Invalid argument supplied"
726 </div>
727 <div class="xdocSynCode">
728 <tt> </tt><tt></tt>};
729 </div>
730 <div class="xdocSynCode">
731 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.A_inv.Param">Ipc.<span class="xdoc-id">A_invParam</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when a parameter is invalid</span></span></a> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
732 </div>
733 <div class="xdocSynCode">
734 <tt> </tt><tt> </tt>msg: "A_invParam: Invalid configuration parameter supplied"
735 </div>
736 <div class="xdocSynCode">
737 <tt> </tt><tt></tt>};
738 </div>
739 <div class="xdocSynCode">
740 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.A_null.Argument">Ipc.<span class="xdoc-id">A_nullArgument</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when a required argument is null</span></span></a> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
741 </div>
742 <div class="xdocSynCode">
743 <tt> </tt><tt> </tt>msg: "A_nullArgument: Required argument is null"
744 </div>
745 <div class="xdocSynCode">
746 <tt> </tt><tt></tt>};
747 </div>
748 <div class="xdocSynCode">
749 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.A_null.Pointer">Ipc.<span class="xdoc-id">A_nullPointer</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when a pointer is null</span></span></a> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
750 </div>
751 <div class="xdocSynCode">
752 <tt> </tt><tt> </tt>msg: "A_nullPointer: Pointer is null"
753 </div>
754 <div class="xdocSynCode">
755 <tt> </tt><tt></tt>};
756 </div>
757 <div class="xdocSynCode">
758 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.E_internal">Ipc.<span class="xdoc-id">E_internal</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Error raised when an internal error occured</span></span></a> = <i><a class="xdoc-link" href="../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
759 </div>
760 <div class="xdocSynCode">
761 <tt> </tt><tt> </tt>msg: "E_internal: An internal error occurred"
762 </div>
763 <div class="xdocSynCode">
764 <tt> </tt><tt></tt>};
765 </div>
766 <div class="xdocSynCode">
767 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.E_name.Failed">Ipc.<span class="xdoc-id">E_nameFailed</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Error raised when a name failed to be added to the NameServer</span></span></a> = <i><a class="xdoc-link" href="../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
768 </div>
769 <div class="xdocSynCode">
770 <tt> </tt><tt> </tt>msg: "E_nameFailed: '%s' name failed to be added to NameServer"
771 </div>
772 <div class="xdocSynCode">
773 <tt> </tt><tt></tt>};
774 </div>
775 <div class="xdocSynCode">
776 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.E_version.Mismatch">Ipc.<span class="xdoc-id">E_versionMismatch</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Error raised when a version mismatch occurs</span></span></a> = <i><a class="xdoc-link" href="../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
777 </div>
778 <div class="xdocSynCode">
779 <tt> </tt><tt> </tt>msg: "E_versionMismatch: IPC Module version mismatch: creator: %d, opener: %d"
780 </div>
781 <div class="xdocSynCode">
782 <tt> </tt><tt></tt>};
783 </div>
784 <div class="xdocSynCode">
785 <tt> </tt><tt></tt><a class="xdocSynGo" href="#metaproc.Sync">Ipc.<span class="xdoc-id">procSync</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Affects how Ipc_start and Ipc_attach behave</span></span></a> = <i><a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.Proc.Sync" title="ti.sdo.ipc.Ipc.ProcSync">Ipc.ProcSync</a></i> <a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.Proc.Sync_.P.A.I.R" title="ti.sdo.ipc.Ipc.ProcSync_PAIR">Ipc.ProcSync_PAIR</a>;
786 </div>
787 <div class="xdocSynCode">
788 <tt> </tt><tt></tt><a class="xdocSynGo" href="#metasr0.Memory.Setup">Ipc.<span class="xdoc-id">sr0MemorySetup</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Whether Shared Region 0 memory is accessible</span></span></a> = <i><span class="xdoc-kw2">Bool</span></i> <span class="xdoc-kw2">undefined</span>;
789 </div>
790 <div class="xdocSynSpacer"> </div>
791 <div class="xdocSynCode">
792 <tt> </tt><tt></tt><a class="xdocSynGo" href="#common$">Ipc.<span class="xdoc-id">common$</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Common module configuration parameters</span></span></a> = <i><a class="xdoc-link" href="../../../xdc/runtime/Types.html#.Common$" title="xdc.runtime.Types.Common$">Types.Common$</a></i> <span class="xdoc-kw2">undefined</span>;
793 </div>
794 <div class='xdocSynHdr'>module-wide functions</div>
796 <div class="xdocSynCode">
797 <tt> </tt><tt></tt><a class="xdocSynGo" href="#add.User.Fxn">Ipc.<span class="xdoc-id">addUserFxn</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Add a function that gets called during Ipc_attach/detach</span></span></a>(<i><a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.User.Fxn" title="ti.sdo.ipc.Ipc.UserFxn">Ipc.UserFxn</a></i> <span class="xdoc-id">fxn</span>, <i><span class="xdoc-kw2">UArg</span></i> <span class="xdoc-id">arg</span>) <i>returns</i> <i><span class="xdoc-kw2">Void</span></i>
798 </div>
799 <div class="xdocSynCode">
800 <tt> </tt><tt></tt><a class="xdocSynGo" href="#set.Entry.Meta">Ipc.<span class="xdoc-id">setEntryMeta</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Statically sets the properties for attaching to a remote processor</span></span></a>(<i><a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.Entry" title="ti.sdo.ipc.Ipc.Entry">Ipc.Entry</a></i> <span class="xdoc-id">entry</span>) <i>returns</i> <i><span class="xdoc-kw2">Void</span></i>
801 </div>
802 <div class="xdocSynSpacer"> </div>
803 </div>
804 <div id="xdocSep">
805 </div>
806 <div id="xdocMetaElems">
807 <div class="xdocSynSpacer"> </div>
808 <a class="xdocAnchor" id="meta.Proc.Sync"></a>
809 <a class="xdocAnchor" id=".Proc.Sync_.N.O.N.E"></a>
810 <a class="xdocAnchor" id=".Proc.Sync_.P.A.I.R"></a>
811 <a class="xdocAnchor" id=".Proc.Sync_.A.L.L"></a>
812 <table class="xdocHdr"><tr>
813 <td class="xdocHdrTitle"><span class="xdoc-kw1">enum</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">ProcSync</span></td>
814 <td class="xdocHdrArrow">
815 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
816 </table>
817 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.Proc.Sync">index URL</a></div>
818 <p class="xdocHdrSummaryDcl">Various configuration options for <a class="xdoc-link" href="Ipc.html#proc.Sync" title="procSync">procSync</a></p>
819 <span id='meta-synop'></span>
820 <table class="xdocLabel"><tr>
821 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
822 <td class="xdocLabelRight"></td>
823 </tr></table>
824 <div class="xdocSynMdcl">
825 <div class="xdocSynCode">
826 <tt></tt><tt></tt><i>values of type Ipc.<span class="xdoc-id">ProcSync</span></i>
827 </div>
828 <div class="xdocSynCode">
829 <tt></tt><tt> </tt><span class="xdoc-kw1">const</span> Ipc.<span class="xdoc-id">ProcSync_NONE</span>;
830 </div>
831 <div class='xdocSynSum'><tt></tt><tt> </tt>// ProcSync_PAIR with no synchronization</div>
832 <div class="xdocSynCode">
833 <tt></tt><tt> </tt><span class="xdoc-kw1">const</span> Ipc.<span class="xdoc-id">ProcSync_PAIR</span>;
834 </div>
835 <div class='xdocSynSum'><tt></tt><tt> </tt>// Ipc_start does not Ipc_attach</div>
836 <div class="xdocSynCode">
837 <tt></tt><tt> </tt><span class="xdoc-kw1">const</span> Ipc.<span class="xdoc-id">ProcSync_ALL</span>;
838 </div>
839 <div class='xdocSynSum'><tt></tt><tt> </tt>// Ipc_start attach to all remote procs</div>
840 </div>
841 <div class="xdocSynSpacer"> </div>
842 <span id="xdoc-sect-1"></span>
843 <div class="xdocSect">DETAILS</div>
844 <div class="xdocText">The values in this enum affect the behavior of the Ipc_start and
845 Ipc_attach runtime APIs.</div>
846 <div class="xdocText">ProcSync_ALL: Calling Ipc_start will also internally Ipc_attach to
847 each remote processor. The application should never call Ipc_attach.
848 This type of startup and synchronization should be used if all IPC
849 processors on a device start up at the same time and connections should
850 be established between every possible pair of processors.</div>
851 <div class="xdocText">ProcSync_PAIR (default): Calling Ipc_start will perform system-wide IPC
852 initialization required on all processor, but connections to remote
853 processors will not be established (i.e. Ipc_attach will never be
854 called). This configuration should be chosen if synchronization is
855 required and some/all these conditions are true:</div>
856 <div class="xdocText"><UL><LI> It is necessary to control when synchronization with each remote
857 processor occurs
858 </LI><LI> Useful work can be done while trying to synchronize with a remote
859 processor by yielding a thread after each attempt to Ipc_attach
860 to the processor.
861 </LI><LI> Connections to all remote processors are unnecessary and connections
862 should selectively be made to save memory
863 </LI></UL></div>
864 <div class="xdocText">NOTE: A connection should be made to the owner of region 0 (usually the
865 processor with id = 0) before any connection to any other remote
866 processor can be made. For example, if there are three processors
867 configured with MultiProc, #1 should attach to #0 before it can attach
868 to #2.</div>
869 <div class="xdocText">ProcSync_NONE: This should be selected with caution. Ipc_start will
870 work exactly as it does with ProcSync_PAIR. However, Ipc_attach will
871 not synchronize with the remote processor. Callers of Ipc_attach are
872 bound by the same restrictions imposed by using ProcSync_PAIR.
873 Additionally, an Ipc_attach to a remote processor whose id is less than
874 our own has to occur *after* the corresponding remote processor has
875 called attach to the original processor. For example, processor #2
876 can call</div>
877 <div class="xdocText"><PRE class="Example"> Ipc_attach(1);
878 </PRE></div>
879 <div class="xdocText">only after processor #1 has called:</div>
880 <div class="xdocText"><PRE class="Example"> Ipc_attach(2);
881 </PRE></div>
882 <div class="xdocSect">C SYNOPSIS</div>
883 <div class="xdocText"><a class="xdoc-link" href="#.Proc.Sync" title="Ipc_ProcSync">Ipc_ProcSync</a></div>
884 <div class="xdocSynSpacer"> </div>
885 <a class="xdocAnchor" id="meta.Entry"></a>
886 <table class="xdocHdr"><tr>
887 <td class="xdocHdrTitle"><span class="xdoc-kw1">struct</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">Entry</span></td>
888 <td class="xdocHdrArrow">
889 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
890 </table>
891 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.Entry">index URL</a></div>
892 <p class="xdocHdrSummaryDcl">Struct used for configuration via <a class="xdoc-link" href="Ipc.html#set.Entry.Meta" title="setEntryMeta">setEntryMeta</a></p>
893 <span id='meta-synop'></span>
894 <table class="xdocLabel"><tr>
895 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
896 <td class="xdocLabelRight"></td>
897 </tr></table>
898 <div class="xdocSynMdcl">
899 <div class="xdocSynCode">
900 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> <i>obj</i> = <span class="xdoc-kw1">new</span> Ipc.<span class="xdoc-id">Entry</span>;
901 </div>
902 <div class="xdocSynSpacer"> </div>
903 <div class="xdocSynCode">
904 <tt></tt><tt> </tt><i>obj</i>.<span class="xdoc-id">remoteProcId</span> = <i><span class="xdoc-kw2">UInt16</span></i><b> ...</b>
905 </div>
906 <div class='xdocSynSum'><tt></tt><tt> </tt>// Remote processor id</div>
907 <div class="xdocSynCode">
908 <tt></tt><tt> </tt><i>obj</i>.<span class="xdoc-id">setupNotify</span> = <i><span class="xdoc-kw2">Bool</span></i><b> ...</b>
909 </div>
910 <div class='xdocSynSum'><tt></tt><tt> </tt>// Whether to setup Notify</div>
911 <div class="xdocSynCode">
912 <tt></tt><tt> </tt><i>obj</i>.<span class="xdoc-id">setupMessageQ</span> = <i><span class="xdoc-kw2">Bool</span></i><b> ...</b>
913 </div>
914 <div class='xdocSynSum'><tt></tt><tt> </tt>// Whether to setup MessageQ</div>
915 </div>
916 <div class="xdocSynSpacer"> </div>
917 <span id="xdoc-sect-1"></span>
918 <div class="xdocSect">DETAILS</div>
919 <div class="xdocText">This structure defines the fields that are to be configured
920 between the executing processor and a remote processor.</div>
921 <div class="xdocSect">C SYNOPSIS</div>
922 <div class="xdocText"><a class="xdoc-link" href="#.Entry" title="Ipc_Entry">Ipc_Entry</a></div>
923 <div class="xdocSynSpacer"> </div>
924 <a class="xdocAnchor" id="meta.User.Fxn"></a>
925 <table class="xdocHdr"><tr>
926 <td class="xdocHdrTitle"><span class="xdoc-kw1">struct</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">UserFxn</span></td>
927 <td class="xdocHdrArrow">
928 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
929 </table>
930 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.User.Fxn">index URL</a></div>
931 <p class="xdocHdrSummaryDcl">struct for attach/detach plugs</p>
932 <span id='meta-synop'></span>
933 <table class="xdocLabel"><tr>
934 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
935 <td class="xdocLabelRight"></td>
936 </tr></table>
937 <div class="xdocSynMdcl">
938 <div class="xdocSynCode">
939 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> <i>obj</i> = <span class="xdoc-kw1">new</span> Ipc.<span class="xdoc-id">UserFxn</span>;
940 </div>
941 <div class="xdocSynSpacer"> </div>
942 <div class="xdocSynCode">
943 <tt></tt><tt> </tt><i>obj</i>.<span class="xdoc-id">attach</span> = <i><span class="xdoc-kw2">Int</span>(*)(<span class="xdoc-kw2">UArg</span>,<span class="xdoc-kw2">UInt16</span>)</i><b> ...</b>
944 </div>
945 <div class="xdocSynCode">
946 <tt></tt><tt> </tt><i>obj</i>.<span class="xdoc-id">detach</span> = <i><span class="xdoc-kw2">Int</span>(*)(<span class="xdoc-kw2">UArg</span>,<span class="xdoc-kw2">UInt16</span>)</i><b> ...</b>
947 </div>
948 </div>
949 <div class="xdocSynSpacer"> </div>
950 <div class="xdocSect">C SYNOPSIS</div>
951 <div class="xdocText"><a class="xdoc-link" href="#.User.Fxn" title="Ipc_UserFxn">Ipc_UserFxn</a></div>
952 <div class="xdocSynSpacer"> </div>
953 <a class="xdocAnchor" id="meta.A_addr.Not.Cache.Aligned"></a>
954 <table class="xdocHdr"><tr>
955 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">A_addrNotCacheAligned</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
956 <td class="xdocHdrArrow">
957 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
958 </table>
959 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_addr.Not.Cache.Aligned">index URL</a></div>
960 <p class="xdocHdrSummaryDcl">Assert raised when an address is not cache-aligned</p>
961 <span id='meta-synop'></span>
962 <table class="xdocLabel"><tr>
963 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
964 <td class="xdocLabelRight"></td>
965 </tr></table>
966 <div class="xdocSynMdcl">
967 <div class="xdocSynCode">
968 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">A_addrNotCacheAligned</span> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
969 </div>
970 <div class="xdocSynCode">
971 <tt></tt><tt> </tt>msg: "A_addrNotCacheAligned: Address is not cache aligned"
972 </div>
973 <div class="xdocSynCode">
974 <tt></tt><tt></tt>};
975 </div>
976 </div>
977 <div class="xdocSynSpacer"> </div>
978 <div class="xdocSect">C SYNOPSIS</div>
979 <div class="xdocText"><a class="xdoc-link" href="#.A_addr.Not.Cache.Aligned" title="Ipc_A_addrNotCacheAligned">Ipc_A_addrNotCacheAligned</a></div>
980 <div class="xdocSynSpacer"> </div>
981 <a class="xdocAnchor" id="meta.A_addr.Not.In.Shared.Region"></a>
982 <table class="xdocHdr"><tr>
983 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">A_addrNotInSharedRegion</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
984 <td class="xdocHdrArrow">
985 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
986 </table>
987 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_addr.Not.In.Shared.Region">index URL</a></div>
988 <p class="xdocHdrSummaryDcl">Assert raised when an address lies outside all known shared regions</p>
989 <span id='meta-synop'></span>
990 <table class="xdocLabel"><tr>
991 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
992 <td class="xdocLabelRight"></td>
993 </tr></table>
994 <div class="xdocSynMdcl">
995 <div class="xdocSynCode">
996 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">A_addrNotInSharedRegion</span> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
997 </div>
998 <div class="xdocSynCode">
999 <tt></tt><tt> </tt>msg: "A_addrNotInSharedRegion: Address not in any shared region"
1000 </div>
1001 <div class="xdocSynCode">
1002 <tt></tt><tt></tt>};
1003 </div>
1004 </div>
1005 <div class="xdocSynSpacer"> </div>
1006 <div class="xdocSect">C SYNOPSIS</div>
1007 <div class="xdocText"><a class="xdoc-link" href="#.A_addr.Not.In.Shared.Region" title="Ipc_A_addrNotInSharedRegion">Ipc_A_addrNotInSharedRegion</a></div>
1008 <div class="xdocSynSpacer"> </div>
1009 <a class="xdocAnchor" id="meta.A_internal"></a>
1010 <table class="xdocHdr"><tr>
1011 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">A_internal</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1012 <td class="xdocHdrArrow">
1013 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1014 </table>
1015 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_internal">index URL</a></div>
1016 <p class="xdocHdrSummaryDcl">Assert raised when an internal error is encountered</p>
1017 <span id='meta-synop'></span>
1018 <table class="xdocLabel"><tr>
1019 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1020 <td class="xdocLabelRight"></td>
1021 </tr></table>
1022 <div class="xdocSynMdcl">
1023 <div class="xdocSynCode">
1024 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">A_internal</span> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
1025 </div>
1026 <div class="xdocSynCode">
1027 <tt></tt><tt> </tt>msg: "A_internal: An internal error has occurred"
1028 </div>
1029 <div class="xdocSynCode">
1030 <tt></tt><tt></tt>};
1031 </div>
1032 </div>
1033 <div class="xdocSynSpacer"> </div>
1034 <div class="xdocSect">C SYNOPSIS</div>
1035 <div class="xdocText"><a class="xdoc-link" href="#.A_internal" title="Ipc_A_internal">Ipc_A_internal</a></div>
1036 <div class="xdocSynSpacer"> </div>
1037 <a class="xdocAnchor" id="meta.A_inv.Argument"></a>
1038 <table class="xdocHdr"><tr>
1039 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">A_invArgument</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1040 <td class="xdocHdrArrow">
1041 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1042 </table>
1043 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_inv.Argument">index URL</a></div>
1044 <p class="xdocHdrSummaryDcl">Assert raised when an argument is invalid</p>
1045 <span id='meta-synop'></span>
1046 <table class="xdocLabel"><tr>
1047 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1048 <td class="xdocLabelRight"></td>
1049 </tr></table>
1050 <div class="xdocSynMdcl">
1051 <div class="xdocSynCode">
1052 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">A_invArgument</span> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
1053 </div>
1054 <div class="xdocSynCode">
1055 <tt></tt><tt> </tt>msg: "A_invArgument: Invalid argument supplied"
1056 </div>
1057 <div class="xdocSynCode">
1058 <tt></tt><tt></tt>};
1059 </div>
1060 </div>
1061 <div class="xdocSynSpacer"> </div>
1062 <div class="xdocSect">C SYNOPSIS</div>
1063 <div class="xdocText"><a class="xdoc-link" href="#.A_inv.Argument" title="Ipc_A_invArgument">Ipc_A_invArgument</a></div>
1064 <div class="xdocSynSpacer"> </div>
1065 <a class="xdocAnchor" id="meta.A_inv.Param"></a>
1066 <table class="xdocHdr"><tr>
1067 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">A_invParam</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1068 <td class="xdocHdrArrow">
1069 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1070 </table>
1071 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_inv.Param">index URL</a></div>
1072 <p class="xdocHdrSummaryDcl">Assert raised when a parameter is invalid</p>
1073 <span id='meta-synop'></span>
1074 <table class="xdocLabel"><tr>
1075 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1076 <td class="xdocLabelRight"></td>
1077 </tr></table>
1078 <div class="xdocSynMdcl">
1079 <div class="xdocSynCode">
1080 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">A_invParam</span> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
1081 </div>
1082 <div class="xdocSynCode">
1083 <tt></tt><tt> </tt>msg: "A_invParam: Invalid configuration parameter supplied"
1084 </div>
1085 <div class="xdocSynCode">
1086 <tt></tt><tt></tt>};
1087 </div>
1088 </div>
1089 <div class="xdocSynSpacer"> </div>
1090 <div class="xdocSect">C SYNOPSIS</div>
1091 <div class="xdocText"><a class="xdoc-link" href="#.A_inv.Param" title="Ipc_A_invParam">Ipc_A_invParam</a></div>
1092 <div class="xdocSynSpacer"> </div>
1093 <a class="xdocAnchor" id="meta.A_null.Argument"></a>
1094 <table class="xdocHdr"><tr>
1095 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">A_nullArgument</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1096 <td class="xdocHdrArrow">
1097 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1098 </table>
1099 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_null.Argument">index URL</a></div>
1100 <p class="xdocHdrSummaryDcl">Assert raised when a required argument is null</p>
1101 <span id='meta-synop'></span>
1102 <table class="xdocLabel"><tr>
1103 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1104 <td class="xdocLabelRight"></td>
1105 </tr></table>
1106 <div class="xdocSynMdcl">
1107 <div class="xdocSynCode">
1108 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">A_nullArgument</span> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
1109 </div>
1110 <div class="xdocSynCode">
1111 <tt></tt><tt> </tt>msg: "A_nullArgument: Required argument is null"
1112 </div>
1113 <div class="xdocSynCode">
1114 <tt></tt><tt></tt>};
1115 </div>
1116 </div>
1117 <div class="xdocSynSpacer"> </div>
1118 <div class="xdocSect">C SYNOPSIS</div>
1119 <div class="xdocText"><a class="xdoc-link" href="#.A_null.Argument" title="Ipc_A_nullArgument">Ipc_A_nullArgument</a></div>
1120 <div class="xdocSynSpacer"> </div>
1121 <a class="xdocAnchor" id="meta.A_null.Pointer"></a>
1122 <table class="xdocHdr"><tr>
1123 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">A_nullPointer</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1124 <td class="xdocHdrArrow">
1125 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1126 </table>
1127 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.A_null.Pointer">index URL</a></div>
1128 <p class="xdocHdrSummaryDcl">Assert raised when a pointer is null</p>
1129 <span id='meta-synop'></span>
1130 <table class="xdocLabel"><tr>
1131 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1132 <td class="xdocLabelRight"></td>
1133 </tr></table>
1134 <div class="xdocSynMdcl">
1135 <div class="xdocSynCode">
1136 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">A_nullPointer</span> = <i><a class="xdoc-link" href="../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
1137 </div>
1138 <div class="xdocSynCode">
1139 <tt></tt><tt> </tt>msg: "A_nullPointer: Pointer is null"
1140 </div>
1141 <div class="xdocSynCode">
1142 <tt></tt><tt></tt>};
1143 </div>
1144 </div>
1145 <div class="xdocSynSpacer"> </div>
1146 <div class="xdocSect">C SYNOPSIS</div>
1147 <div class="xdocText"><a class="xdoc-link" href="#.A_null.Pointer" title="Ipc_A_nullPointer">Ipc_A_nullPointer</a></div>
1148 <div class="xdocSynSpacer"> </div>
1149 <a class="xdocAnchor" id="meta.E_internal"></a>
1150 <table class="xdocHdr"><tr>
1151 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">E_internal</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1152 <td class="xdocHdrArrow">
1153 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1154 </table>
1155 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.E_internal">index URL</a></div>
1156 <p class="xdocHdrSummaryDcl">Error raised when an internal error occured</p>
1157 <span id='meta-synop'></span>
1158 <table class="xdocLabel"><tr>
1159 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1160 <td class="xdocLabelRight"></td>
1161 </tr></table>
1162 <div class="xdocSynMdcl">
1163 <div class="xdocSynCode">
1164 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">E_internal</span> = <i><a class="xdoc-link" href="../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
1165 </div>
1166 <div class="xdocSynCode">
1167 <tt></tt><tt> </tt>msg: "E_internal: An internal error occurred"
1168 </div>
1169 <div class="xdocSynCode">
1170 <tt></tt><tt></tt>};
1171 </div>
1172 </div>
1173 <div class="xdocSynSpacer"> </div>
1174 <div class="xdocSect">C SYNOPSIS</div>
1175 <div class="xdocText"><a class="xdoc-link" href="#.E_internal" title="Ipc_E_internal">Ipc_E_internal</a></div>
1176 <div class="xdocSynSpacer"> </div>
1177 <a class="xdocAnchor" id="meta.E_name.Failed"></a>
1178 <table class="xdocHdr"><tr>
1179 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">E_nameFailed</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1180 <td class="xdocHdrArrow">
1181 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1182 </table>
1183 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.E_name.Failed">index URL</a></div>
1184 <p class="xdocHdrSummaryDcl">Error raised when a name failed to be added to the NameServer</p>
1185 <span id='meta-synop'></span>
1186 <table class="xdocLabel"><tr>
1187 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1188 <td class="xdocLabelRight"></td>
1189 </tr></table>
1190 <div class="xdocSynMdcl">
1191 <div class="xdocSynCode">
1192 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">E_nameFailed</span> = <i><a class="xdoc-link" href="../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
1193 </div>
1194 <div class="xdocSynCode">
1195 <tt></tt><tt> </tt>msg: "E_nameFailed: '%s' name failed to be added to NameServer"
1196 </div>
1197 <div class="xdocSynCode">
1198 <tt></tt><tt></tt>};
1199 </div>
1200 </div>
1201 <div class="xdocSynSpacer"> </div>
1202 <span id="xdoc-sect-1"></span>
1203 <div class="xdocSect">DETAILS</div>
1204 <div class="xdocText">Error raised in a create call when a name fails to be added
1205 to the NameServer table. This can be because the name already
1206 exists, the table has reached its max length, or out of memory.</div>
1207 <div class="xdocSect">C SYNOPSIS</div>
1208 <div class="xdocText"><a class="xdoc-link" href="#.E_name.Failed" title="Ipc_E_nameFailed">Ipc_E_nameFailed</a></div>
1209 <div class="xdocSynSpacer"> </div>
1210 <a class="xdocAnchor" id="meta.E_version.Mismatch"></a>
1211 <table class="xdocHdr"><tr>
1212 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">E_versionMismatch</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1213 <td class="xdocHdrArrow">
1214 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1215 </table>
1216 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#.E_version.Mismatch">index URL</a></div>
1217 <p class="xdocHdrSummaryDcl">Error raised when a version mismatch occurs</p>
1218 <span id='meta-synop'></span>
1219 <table class="xdocLabel"><tr>
1220 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1221 <td class="xdocLabelRight"></td>
1222 </tr></table>
1223 <div class="xdocSynMdcl">
1224 <div class="xdocSynCode">
1225 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">E_versionMismatch</span> = <i><a class="xdoc-link" href="../../../xdc/runtime/Error.html#.Desc" title="xdc.runtime.Error.Desc">Error.Desc</a></i> {
1226 </div>
1227 <div class="xdocSynCode">
1228 <tt></tt><tt> </tt>msg: "E_versionMismatch: IPC Module version mismatch: creator: %d, opener: %d"
1229 </div>
1230 <div class="xdocSynCode">
1231 <tt></tt><tt></tt>};
1232 </div>
1233 </div>
1234 <div class="xdocSynSpacer"> </div>
1235 <span id="xdoc-sect-1"></span>
1236 <div class="xdocSect">DETAILS</div>
1237 <div class="xdocText">Error raised in an open call because there is
1238 a version mismatch between the opener and the creator</div>
1239 <div class="xdocSect">C SYNOPSIS</div>
1240 <div class="xdocText"><a class="xdoc-link" href="#.E_version.Mismatch" title="Ipc_E_versionMismatch">Ipc_E_versionMismatch</a></div>
1241 <div class="xdocSynSpacer"> </div>
1242 <a class="xdocAnchor" id="metaproc.Sync"></a>
1243 <table class="xdocHdr"><tr>
1244 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">procSync</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1245 <td class="xdocHdrArrow">
1246 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1247 </table>
1248 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#proc.Sync">index URL</a></div>
1249 <p class="xdocHdrSummaryDcl">Affects how Ipc_start and Ipc_attach behave</p>
1250 <span id='meta-synop'></span>
1251 <table class="xdocLabel"><tr>
1252 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1253 <td class="xdocLabelRight"></td>
1254 </tr></table>
1255 <div class="xdocSynMdcl">
1256 <div class="xdocSynCode">
1257 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">procSync</span> = <i><a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.Proc.Sync" title="ti.sdo.ipc.Ipc.ProcSync">Ipc.ProcSync</a></i> <a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.Proc.Sync_.P.A.I.R" title="ti.sdo.ipc.Ipc.ProcSync_PAIR">Ipc.ProcSync_PAIR</a>;
1258 </div>
1259 </div>
1260 <div class="xdocSynSpacer"> </div>
1261 <span id="xdoc-sect-1"></span>
1262 <div class="xdocSect">DETAILS</div>
1263 <div class="xdocText">Refer to the documentation for the <a class="xdoc-link" href="Ipc.html#.Proc.Sync" title="ProcSync">ProcSync</a> enum for
1264 information about the various ProcSync options.</div>
1265 <div class="xdocSect">C SYNOPSIS</div>
1266 <div class="xdocText"><a class="xdoc-link" href="#proc.Sync" title="Ipc_procSync">Ipc_procSync</a></div>
1267 <div class="xdocSynSpacer"> </div>
1268 <a class="xdocAnchor" id="metasr0.Memory.Setup"></a>
1269 <table class="xdocHdr"><tr>
1270 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">sr0MemorySetup</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1271 <td class="xdocHdrArrow">
1272 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1273 </table>
1274 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#sr0.Memory.Setup">index URL</a></div>
1275 <p class="xdocHdrSummaryDcl">Whether Shared Region 0 memory is accessible</p>
1276 <span id='meta-synop'></span>
1277 <table class="xdocLabel"><tr>
1278 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1279 <td class="xdocLabelRight"></td>
1280 </tr></table>
1281 <div class="xdocSynMdcl">
1282 <div class="xdocSynCode">
1283 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">sr0MemorySetup</span> = <i><span class="xdoc-kw2">Bool</span></i> <span class="xdoc-kw2">undefined</span>;
1284 </div>
1285 </div>
1286 <div class="xdocSynSpacer"> </div>
1287 <span id="xdoc-sect-1"></span>
1288 <div class="xdocSect">DETAILS</div>
1289 <div class="xdocText">Certain devices have a slave MMU that needs to be configured by the
1290 host core before the slave core can access shared region 0. If
1291 the host core is also running BIOS, it is necessary to set this
1292 configuration to 'true', otherwise <a class="xdoc-link" href="Ipc.html#start" title="start">start</a> will always fail.</div>
1293 <div class="xdocText">This configuration should not be used for devices that don't have
1294 a slave MMU and don't run Linux.</div>
1295 <div class="xdocSect">C SYNOPSIS</div>
1296 <div class="xdocText"><a class="xdoc-link" href="#sr0.Memory.Setup" title="Ipc_sr0MemorySetup">Ipc_sr0MemorySetup</a></div>
1297 <div class="xdocSynSpacer"> </div>
1298 <a class="xdocAnchor" id="common$"></a>
1299 <table class="xdocHdr"><tr>
1300 <td class="xdocHdrTitle"><span class="xdoc-kw1">metaonly </span><span class="xdoc-kw1">config</span> <span class="xdoc-id">Ipc.</span><span class="xdoc-id">common$</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1301 <td class="xdocHdrArrow">
1302 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1303 </table>
1304 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#common$">index URL</a></div>
1305 <p class="xdocHdrSummaryDcl">Common module configuration parameters</p>
1306 <span id='meta-synop'></span>
1307 <table class="xdocLabel"><tr>
1308 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1309 <td class="xdocLabelRight"></td>
1310 </tr></table>
1311 <div class="xdocSynMdcl">
1312 <div class="xdocSynCode">
1313 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">common$</span> = <i><a class="xdoc-link" href="../../../xdc/runtime/Types.html#.Common$" title="xdc.runtime.Types.Common$">Types.Common$</a></i> <span class="xdoc-kw2">undefined</span>;
1314 </div>
1315 </div>
1316 <div class="xdocSynSpacer"> </div>
1317 <span id="xdoc-sect-1"></span>
1318 <div class="xdocSect">DETAILS</div>
1319 <div class="xdocText">All modules have this configuration parameter. Its name
1320 contains the '$' character to ensure it does not conflict with
1321 configuration parameters declared by the module. This allows
1322 new configuration parameters to be added in the future without
1323 any chance of breaking existing modules.</div>
1324 <div class="xdocSynSpacer"> </div>
1325 <a class="xdocAnchor" id="add.User.Fxn"></a>
1326 <table class="xdocHdr"><tr>
1327 <td class="xdocHdrTitle"><span class="xdoc-kw1">metaonly </span><span class="xdoc-id">Ipc.</span><span class="xdoc-id">addUserFxn</span>() <small><span class="xdocSynSum">// module-wide</span></small></td>
1328 <td class="xdocHdrArrow">
1329 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1330 </table>
1331 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#add.User.Fxn">index URL</a></div>
1332 <p class="xdocHdrSummaryDcl">Add a function that gets called during Ipc_attach/detach</p>
1333 <span id='meta-synop'></span>
1334 <table class="xdocLabel"><tr>
1335 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1336 <td class="xdocLabelRight"></td>
1337 </tr></table>
1338 <div class="xdocSynMdcl">
1339 <div class="xdocSynCode">
1340 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">addUserFxn</span>(<i><a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.User.Fxn" title="ti.sdo.ipc.Ipc.UserFxn">Ipc.UserFxn</a></i> <span class="xdoc-id">fxn</span>, <i><span class="xdoc-kw2">UArg</span></i> <span class="xdoc-id">arg</span>) <i>returns</i> <i><span class="xdoc-kw2">Void</span></i>
1341 </div>
1342 </div>
1343 <div class="xdocSynSpacer"> </div>
1344 <span id="xdoc-sect-1"></span>
1345 <div class="xdocSect">ARGUMENTS</div>
1346 <div class="xdocChild"><span class="xdocChildId">fxn</span>
1347 <span class="xdocChildSum">— The user function to call during attach/detach.</span>
1348 </div>
1349 <div class="xdocChild"><span class="xdocChildId">arg</span>
1350 <span class="xdocChildSum">— The argument to the function.</span>
1351 </div>
1352 <span id="xdoc-sect-2"></span>
1353 <div class="xdocSect">DETAILS</div>
1354 <div class="xdocText">The user added functions must be non-blocking and must run
1355 to completion. The functions need to check to make sure it
1356 is not called multiple times when more than one thread calls
1357 Ipc_attach() for the same processor. It is safe to use IPC
1358 APIs in a user function as long as the IPC APIs satisfy these
1359 requirements.</div>
1360 <div class="xdocText"><PRE class="Example"> var Ipc = xdc.useModule('ti.sdo.ipc.Ipc');
1361 var fxn = new Ipc.UserFxn;
1362 fxn.attach = '&userAttachFxn';
1363 fxn.detach = '&userDetachFxn';
1364 Ipc.addUserFxn(fxn, arg);
1365 </PRE></div>
1366 <div class="xdocSynSpacer"> </div>
1367 <a class="xdocAnchor" id="set.Entry.Meta"></a>
1368 <table class="xdocHdr"><tr>
1369 <td class="xdocHdrTitle"><span class="xdoc-kw1">metaonly </span><span class="xdoc-id">Ipc.</span><span class="xdoc-id">setEntryMeta</span>() <small><span class="xdocSynSum">// module-wide</span></small></td>
1370 <td class="xdocHdrArrow">
1371 <a class="xdocHdrLink" href="../../../ti/sdo/ipc/Ipc.html" title="module Ipc"><img class="xdocHdrArrow" src="../../../Arrow_up.png"/></a></td>
1372 </table>
1373 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../index.html#ti/sdo/ipc/Ipc.html#set.Entry.Meta">index URL</a></div>
1374 <p class="xdocHdrSummaryDcl">Statically sets the properties for attaching to a remote processor</p>
1375 <span id='meta-synop'></span>
1376 <table class="xdocLabel"><tr>
1377 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1378 <td class="xdocLabelRight"></td>
1379 </tr></table>
1380 <div class="xdocSynMdcl">
1381 <div class="xdocSynCode">
1382 <tt></tt><tt></tt>Ipc.<span class="xdoc-id">setEntryMeta</span>(<i><a class="xdoc-link" href="../../../ti/sdo/ipc/Ipc.html#.Entry" title="ti.sdo.ipc.Ipc.Entry">Ipc.Entry</a></i> <span class="xdoc-id">entry</span>) <i>returns</i> <i><span class="xdoc-kw2">Void</span></i>
1383 </div>
1384 </div>
1385 <div class="xdocSynSpacer"> </div>
1386 <span id="xdoc-sect-1"></span>
1387 <div class="xdocSect">ARGUMENTS</div>
1388 <div class="xdocChild"><span class="xdocChildId">entry</span>
1389 <span class="xdocChildSum">— Properties between a pair of processors.</span>
1390 </div>
1391 <span id="xdoc-sect-2"></span>
1392 <div class="xdocSect">DETAILS</div>
1393 <div class="xdocText">This function allows the user to configure whether Notify and/or
1394 MessageQ is setup during Ipc_attach(). If 'setupNotify' is set
1395 to 'false', neither the Notify or NameServerRemoteNotify instances
1396 are created. If 'setupMessageQ' is set to 'false', the MessageQ
1397 transport instances are not created. By default, both flags are
1398 set to 'true'.</div>
1399 <div class="xdocText">Note: For any pair of processors, the flags must be the same</div>
1400 </div>
1401 <div id="xdocDate">generated on Mon, 23 May 2016 14:31:24 GMT</div>
1402 </div></div></body>
1403 </html>