[processor-sdk/performance-audio-sr.git] / psdk_cust / ipc_3_43_00_00_eng / docs / cdoc / ti / sdo / ipc / gates / GateHWSpinlock.html
1 <html>
2 <head>
3 <title>module ti.sdo.ipc.gates.GateHWSpinlock</title>
4 <meta name="description" content="Multiprocessor gate that utilizes a hardware spinlock">
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.gates.</span><span class="xdoc-id">GateHWSpinlock</span></td>
10 <td class="xdocHdrArrow">
11 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSem.html" title="module GateHWSem"><img class="xdocHdrArrow" src="../../../../Arrow_left.png"/></a></td>
12 <td class="xdocHdrArrow">
13 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/package.html" title="package ti.sdo.ipc.gates"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
14 <td class="xdocHdrArrow">
15 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateMPSupportNull.html" title="module GateMPSupportNull"><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/gates/GateHWSpinlock.html">index URL</a></div>
18 <p class="xdocHdrSummary">Multiprocessor gate that utilizes a hardware spinlock</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 <span id='targ-synop'></span>
26 <table class="xdocLabel"><tr>
27 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2">C</span></tt> synopsis</td>
28 <td class="xdocLabelCenter">target-domain</td>
29 <td class="xdocLabelRight">sourced in <a class="xdocLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock-src.html"><span class="xdocLabelFile">ti/sdo/ipc/gates/GateHWSpinlock.xdc</span></a></td>
30 </tr></table>
31 <div class="xdocSynT">
32 <div class="xdocSynCode">
33 <tt></tt><span class="xdoc-kw3">#include</span> <span class="xdoc-id"><ti/sdo/ipc/gates/GateHWSpinlock.h></span>
34 </div>
35 <table cellspacing="0" cellpadding="0" border="0">
36 <tr><td colspan='2'><div class='xdocSynTblHdr'>Functions</div></td></tr>
38 <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="#per-instance_creation"><span class="xdoc-id">GateHWSpinlock_construct</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Initialize a new instance object inside the provided structure</span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Struct">GateHWSpinlock_Struct</a> *structP, <a class="xdoc-link" href="../../../../xdc/runtime/IGateProvider.html#per-instance_object_types" title="xdc.runtime.IGateProvider.Handle">IGateProvider_Handle</a> <span class="xdoc-id">localGate</span>, <span class="xdoc-kw1">const</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_config_parameters" title="ti.sdo.ipc.gates.GateHWSpinlock.Params">GateHWSpinlock_Params</a> *params);</div></td></tr>
39 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#per-instance_creation"><span class="xdoc-id">GateHWSpinlock_create</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Allocate and initialize a new instance object and return its handle</span></span></a>(<a class="xdoc-link" href="../../../../xdc/runtime/IGateProvider.html#per-instance_object_types" title="xdc.runtime.IGateProvider.Handle">IGateProvider_Handle</a> <span class="xdoc-id">localGate</span>, <span class="xdoc-kw1">const</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_config_parameters" title="ti.sdo.ipc.gates.GateHWSpinlock.Params">GateHWSpinlock_Params</a> *params, <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Block" title="xdc.runtime.Error.Block">Error_Block</a> *eb);</div></td></tr>
40 <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="#per-instance_deletion"><span class="xdoc-id">GateHWSpinlock_delete</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Finalize and free this previously allocated instance object, setting the referenced handle to NULL</span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> *handleP);</div></td></tr>
41 <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="#per-instance_deletion"><span class="xdoc-id">GateHWSpinlock_destruct</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Finalize the instance object inside the provided structure</span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Struct">GateHWSpinlock_Struct</a> *structP);</div></td></tr>
42 <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="#per-instance_config_parameters"><span class="xdoc-id">GateHWSpinlock_Params_init</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Initialize this config-params structure with supplier-specified defaults before instance creation</span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_config_parameters" title="ti.sdo.ipc.gates.GateHWSpinlock.Params">GateHWSpinlock_Params</a> *params);</div></td></tr>
43 <tr><td colspan="2"><div class="xdocSynFxnCat">Functions common to all IGateProvider modules</div></td></tr>
45 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw2">Bool</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#query"><span class="xdoc-id">GateHWSpinlock_query</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Runtime test for a particular gate quality</span></span></a>(<span class="xdoc-kw2">Int</span> <span class="xdoc-id">qual</span>);</div></td></tr>
46 <tr><td colspan="2"><div class="xdocSynFxnCat">Functions common to all IGateMPSupport modules</div></td></tr>
48 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw2">SizeT</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#shared.Mem.Req"><span class="xdoc-id">GateHWSpinlock_sharedMemReq</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Amount of shared memory required for creation of each instance</span></span></a>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/interfaces/IGateMPSupport.html#per-instance_config_parameters" title="ti.sdo.ipc.interfaces.IGateMPSupport.Params">IGateMPSupport_Params</a> *<span class="xdoc-id">params</span>);</div></td></tr>
49 <tr><td class="xdocSynFxnCat" colspan="2"><div class="xdocSynFxnCat">Functions common to all target instances</div></td></tr>
51 <tr>
52 <td></td>
53 <td>
54 <div class="xdocSynTblPack">
55 <a class="xdocSynGo" href="#per-instance_object_types"><span class="xdoc-id">GateHWSpinlock_handle</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Convert this instance structure pointer into an instance handle</span></span></a>,
56 <a class="xdocSynGo" href="#per-instance_convertors"><span class="xdoc-id">GateHWSpinlock_Handle_downCast</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// conditionally move one level down the inheritance hierarchy; NULL upon failure</span></span></a>,
57 <a class="xdocSynGo" href="#per-instance_convertors"><span class="xdoc-id">GateHWSpinlock_Handle_downCast2</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// conditionally move 2 levels down the inheritance hierarchy; NULL upon failure</span></span></a>,
58 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">GateHWSpinlock_Handle_label</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// The label associated with this instance object</span></span></a>,
59 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">GateHWSpinlock_Handle_name</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// The name of this instance object</span></span></a>,
60 <a class="xdocSynGo" href="#per-instance_convertors"><span class="xdoc-id">GateHWSpinlock_Handle_upCast</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// unconditionally move one level up the inheritance hierarchy</span></span></a>,
61 <a class="xdocSynGo" href="#per-instance_convertors"><span class="xdoc-id">GateHWSpinlock_Handle_upCast2</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// unconditionally move 2 levels up the inheritance hierarchy</span></span></a>,
62 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">GateHWSpinlock_Object_count</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// The number of statically-created instance objects</span></span></a>,
63 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">GateHWSpinlock_Object_first</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// The handle of the first dynamically-created instance object, or NULL</span></span></a>,
64 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">GateHWSpinlock_Object_get</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// The handle of the i-th statically-created instance object (array == NULL)</span></span></a>,
65 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">GateHWSpinlock_Object_heap</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// The heap used to allocate dynamically-created instance objects</span></span></a>,
66 <a class="xdocSynGo" href="#per-instance_built-ins"><span class="xdoc-id">GateHWSpinlock_Object_next</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// The handle of the next dynamically-created instance object, or NULL</span></span></a>,
67 <a class="xdocSynGo" href="#per-instance_object_types"><span class="xdoc-id">GateHWSpinlock_struct</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Convert this instance handle into an instance structure pointer</span></span></a>
68 </div>
69 </td>
70 </tr>
71 <tr><td class="xdocSynFxnCat" colspan="2"><div class="xdocSynFxnCat">Functions common to all target modules</div></td></tr>
73 <tr>
74 <td></td>
75 <td>
76 <div class="xdocSynTblPack">
77 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">GateHWSpinlock_Module_getMask</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Returns the diagnostics mask for this module</span></span></a>,
78 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">GateHWSpinlock_Module_hasMask</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Test whether this module has a diagnostics mask</span></span></a>,
79 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">GateHWSpinlock_Module_heap</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// The heap from which this module allocates memory</span></span></a>,
80 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">GateHWSpinlock_Module_id</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Get this module's unique id</span></span></a>,
81 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">GateHWSpinlock_Module_setMask</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Set the diagnostics mask for this module</span></span></a>,
82 <a class="xdocSynGo" href="#module-wide_built-ins"><span class="xdoc-id">GateHWSpinlock_Module_startupDone</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Test if this module has completed startup</span></span></a>
83 </div>
84 </td>
85 </tr>
86 <tr><td colspan='2'><div class='xdocSynTblHdr'>Defines</div></td></tr>
88 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw3">#define</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.Q_.B.L.O.C.K.I.N.G"><span class="xdoc-id">GateHWSpinlock_Q_BLOCKING</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Blocking quality</span></span></a> (<i><span class="xdoc-kw2">Int</span></i>)1</div></td></tr>
89 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw3">#define</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.Q_.P.R.E.E.M.P.T.I.N.G"><span class="xdoc-id">GateHWSpinlock_Q_PREEMPTING</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Preempting quality</span></span></a> (<i><span class="xdoc-kw2">Int</span></i>)2</div></td></tr>
90 <tr><td colspan='2'><div class='xdocSynTblHdr'>Typedefs</div></td></tr>
92 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">typedef</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Object">GateHWSpinlock_Object</a> *</div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#per-instance_object_types"><span class="xdoc-id">GateHWSpinlock_Handle</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Client reference to an instance object</span></span></a>;</div></td></tr>
93 <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="#per-instance_object_types"><span class="xdoc-id">GateHWSpinlock_Object</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Opaque internal representation of an instance object</span></span></a> <span class="xdoc-id">GateHWSpinlock_Object</span>;</div></td></tr>
94 <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="#per-instance_config_parameters"><span class="xdoc-id">GateHWSpinlock_Params</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Instance config-params structure</span></span></a> ...</div></td></tr>
95 <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="#per-instance_object_types"><span class="xdoc-id">GateHWSpinlock_Struct</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Opaque client structure large enough to hold an instance object</span></span></a> <span class="xdoc-id">GateHWSpinlock_Struct</span>;</div></td></tr>
96 <tr><td colspan='2'><div class='xdocSynTblHdr'>Constants</div></td></tr>
98 <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.Spin.Lock.Num"><span class="xdoc-id">GateHWSpinlock_A_invSpinLockNum</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when provided lockNum is invalid for the relevant device</span></span></a>;</div></td></tr>
99 <tr valign="top"><td class="xdocSynDecl" nowrap><div class="xdocSynTblType"><tt></tt><span class="xdoc-kw1">extern const</span> <span class="xdoc-kw2">Ptr</span> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#base.Addr"><span class="xdoc-id">GateHWSpinlock_baseAddr</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Device-specific base address for HW Semaphore subsystem</span></span></a>;</div></td></tr>
100 <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/Log.html#.Event" title="xdc.runtime.Log.Event">Log_Event</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.L.M_close"><span class="xdoc-id">GateHWSpinlock_LM_close</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logged on gate close</span></span></a>;</div></td></tr>
101 <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/Log.html#.Event" title="xdc.runtime.Log.Event">Log_Event</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.L.M_create"><span class="xdoc-id">GateHWSpinlock_LM_create</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logged on gate create</span></span></a>;</div></td></tr>
102 <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/Log.html#.Event" title="xdc.runtime.Log.Event">Log_Event</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.L.M_delete"><span class="xdoc-id">GateHWSpinlock_LM_delete</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logged on gate deletion</span></span></a>;</div></td></tr>
103 <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/Log.html#.Event" title="xdc.runtime.Log.Event">Log_Event</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.L.M_enter"><span class="xdoc-id">GateHWSpinlock_LM_enter</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logged on gate enter</span></span></a>;</div></td></tr>
104 <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/Log.html#.Event" title="xdc.runtime.Log.Event">Log_Event</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.L.M_leave"><span class="xdoc-id">GateHWSpinlock_LM_leave</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logged on gate leave</span></span></a>;</div></td></tr>
105 <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/Log.html#.Event" title="xdc.runtime.Log.Event">Log_Event</a> </div></td><td class="xdocSynDecl"><div class="xdocSynTblDecl"><a class="xdocSynGo" href="#.L.M_open"><span class="xdoc-id">GateHWSpinlock_LM_open</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logged on gate open</span></span></a>;</div></td></tr>
106 </table>
107 <div class="xdocSynSpacer"> </div>
108 </div>
109 <div id="xdocSep">
110 </div>
111 <div id="xdocElems">
112 <div class="xdocSynSpacer"> </div>
113 <a class="xdocAnchor" id=".Q_.B.L.O.C.K.I.N.G"></a>
114 <table class="xdocHdr"><tr>
115 <td class="xdocHdrTitle"><span class="xdoc-kw1">const</span> <span class="xdoc-id">GateHWSpinlock_</span><span class="xdoc-id">Q_BLOCKING</span></td>
116 <td class="xdocHdrArrow">
117 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
118 </table>
119 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.Q_.B.L.O.C.K.I.N.G">index URL</a></div>
120 <p class="xdocHdrSummaryDcl">Blocking quality</p>
121 <span id='targ-synop'></span>
122 <table class="xdocLabel"><tr>
123 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
124 <td class="xdocLabelRight">target-domain</td>
125 </tr></table>
126 <div class="xdocSynTdcl">
127 <div class="xdocSynCode">
128 <tt></tt><tt></tt><span class="xdoc-kw3">#define</span> <span class="xdoc-id">GateHWSpinlock_Q_BLOCKING</span> (<i><span class="xdoc-kw2">Int</span></i>)1
129 </div>
130 </div>
131 <div class="xdocSynSpacer"> </div>
132 <span id="xdoc-sect-1"></span>
133 <div class="xdocSect">DETAILS</div>
134 <div class="xdocText">Gates with this "quality" may cause the calling thread to block;
135 i.e., suspend execution until another thread leaves the gate.</div>
136 <div class="xdocSynSpacer"> </div>
137 <a class="xdocAnchor" id=".Q_.P.R.E.E.M.P.T.I.N.G"></a>
138 <table class="xdocHdr"><tr>
139 <td class="xdocHdrTitle"><span class="xdoc-kw1">const</span> <span class="xdoc-id">GateHWSpinlock_</span><span class="xdoc-id">Q_PREEMPTING</span></td>
140 <td class="xdocHdrArrow">
141 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
142 </table>
143 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.Q_.P.R.E.E.M.P.T.I.N.G">index URL</a></div>
144 <p class="xdocHdrSummaryDcl">Preempting quality</p>
145 <span id='targ-synop'></span>
146 <table class="xdocLabel"><tr>
147 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
148 <td class="xdocLabelRight">target-domain</td>
149 </tr></table>
150 <div class="xdocSynTdcl">
151 <div class="xdocSynCode">
152 <tt></tt><tt></tt><span class="xdoc-kw3">#define</span> <span class="xdoc-id">GateHWSpinlock_Q_PREEMPTING</span> (<i><span class="xdoc-kw2">Int</span></i>)2
153 </div>
154 </div>
155 <div class="xdocSynSpacer"> </div>
156 <span id="xdoc-sect-1"></span>
157 <div class="xdocSect">DETAILS</div>
158 <div class="xdocText">Gates with this "quality" allow other threads to preempt the thread
159 that has already entered the gate.</div>
160 <div class="xdocSynSpacer"> </div>
161 <a class="xdocAnchor" id=".A_inv.Spin.Lock.Num"></a>
162 <table class="xdocHdr"><tr>
163 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock_</span><span class="xdoc-id">A_invSpinLockNum</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
164 <td class="xdocHdrArrow">
165 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
166 </table>
167 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.A_inv.Spin.Lock.Num">index URL</a></div>
168 <p class="xdocHdrSummaryDcl">Assert raised when provided lockNum is invalid for the relevant device</p>
169 <span id='targ-synop'></span>
170 <table class="xdocLabel"><tr>
171 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
172 <td class="xdocLabelRight">target-domain</td>
173 </tr></table>
174 <div class="xdocSynTdcl">
175 <div class="xdocSynCode">
176 <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">GateHWSpinlock_A_invSpinLockNum</span>;
177 </div>
178 </div>
179 <div class="xdocSynSpacer"> </div>
180 <div class="xdocSynSpacer"> </div>
181 <a class="xdocAnchor" id=".L.M_close"></a>
182 <table class="xdocHdr"><tr>
183 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock_</span><span class="xdoc-id">LM_close</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
184 <td class="xdocHdrArrow">
185 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
186 </table>
187 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.L.M_close">index URL</a></div>
188 <p class="xdocHdrSummaryDcl">Logged on gate close</p>
189 <span id='targ-synop'></span>
190 <table class="xdocLabel"><tr>
191 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
192 <td class="xdocLabelRight">target-domain</td>
193 </tr></table>
194 <div class="xdocSynTdcl">
195 <div class="xdocSynCode">
196 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event" title="xdc.runtime.Log.Event">Log_Event</a> <span class="xdoc-id">GateHWSpinlock_LM_close</span>;
197 </div>
198 </div>
199 <div class="xdocSynSpacer"> </div>
200 <div class="xdocSynSpacer"> </div>
201 <a class="xdocAnchor" id=".L.M_create"></a>
202 <table class="xdocHdr"><tr>
203 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock_</span><span class="xdoc-id">LM_create</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
204 <td class="xdocHdrArrow">
205 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
206 </table>
207 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.L.M_create">index URL</a></div>
208 <p class="xdocHdrSummaryDcl">Logged on gate create</p>
209 <span id='targ-synop'></span>
210 <table class="xdocLabel"><tr>
211 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
212 <td class="xdocLabelRight">target-domain</td>
213 </tr></table>
214 <div class="xdocSynTdcl">
215 <div class="xdocSynCode">
216 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event" title="xdc.runtime.Log.Event">Log_Event</a> <span class="xdoc-id">GateHWSpinlock_LM_create</span>;
217 </div>
218 </div>
219 <div class="xdocSynSpacer"> </div>
220 <div class="xdocSynSpacer"> </div>
221 <a class="xdocAnchor" id=".L.M_delete"></a>
222 <table class="xdocHdr"><tr>
223 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock_</span><span class="xdoc-id">LM_delete</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
224 <td class="xdocHdrArrow">
225 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
226 </table>
227 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.L.M_delete">index URL</a></div>
228 <p class="xdocHdrSummaryDcl">Logged on gate deletion</p>
229 <span id='targ-synop'></span>
230 <table class="xdocLabel"><tr>
231 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
232 <td class="xdocLabelRight">target-domain</td>
233 </tr></table>
234 <div class="xdocSynTdcl">
235 <div class="xdocSynCode">
236 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event" title="xdc.runtime.Log.Event">Log_Event</a> <span class="xdoc-id">GateHWSpinlock_LM_delete</span>;
237 </div>
238 </div>
239 <div class="xdocSynSpacer"> </div>
240 <div class="xdocSynSpacer"> </div>
241 <a class="xdocAnchor" id=".L.M_enter"></a>
242 <table class="xdocHdr"><tr>
243 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock_</span><span class="xdoc-id">LM_enter</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
244 <td class="xdocHdrArrow">
245 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
246 </table>
247 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.L.M_enter">index URL</a></div>
248 <p class="xdocHdrSummaryDcl">Logged on gate enter</p>
249 <span id='targ-synop'></span>
250 <table class="xdocLabel"><tr>
251 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
252 <td class="xdocLabelRight">target-domain</td>
253 </tr></table>
254 <div class="xdocSynTdcl">
255 <div class="xdocSynCode">
256 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event" title="xdc.runtime.Log.Event">Log_Event</a> <span class="xdoc-id">GateHWSpinlock_LM_enter</span>;
257 </div>
258 </div>
259 <div class="xdocSynSpacer"> </div>
260 <div class="xdocSynSpacer"> </div>
261 <a class="xdocAnchor" id=".L.M_leave"></a>
262 <table class="xdocHdr"><tr>
263 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock_</span><span class="xdoc-id">LM_leave</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
264 <td class="xdocHdrArrow">
265 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
266 </table>
267 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.L.M_leave">index URL</a></div>
268 <p class="xdocHdrSummaryDcl">Logged on gate leave</p>
269 <span id='targ-synop'></span>
270 <table class="xdocLabel"><tr>
271 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
272 <td class="xdocLabelRight">target-domain</td>
273 </tr></table>
274 <div class="xdocSynTdcl">
275 <div class="xdocSynCode">
276 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event" title="xdc.runtime.Log.Event">Log_Event</a> <span class="xdoc-id">GateHWSpinlock_LM_leave</span>;
277 </div>
278 </div>
279 <div class="xdocSynSpacer"> </div>
280 <div class="xdocSynSpacer"> </div>
281 <a class="xdocAnchor" id=".L.M_open"></a>
282 <table class="xdocHdr"><tr>
283 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock_</span><span class="xdoc-id">LM_open</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
284 <td class="xdocHdrArrow">
285 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
286 </table>
287 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.L.M_open">index URL</a></div>
288 <p class="xdocHdrSummaryDcl">Logged on gate open</p>
289 <span id='targ-synop'></span>
290 <table class="xdocLabel"><tr>
291 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
292 <td class="xdocLabelRight">target-domain</td>
293 </tr></table>
294 <div class="xdocSynTdcl">
295 <div class="xdocSynCode">
296 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event" title="xdc.runtime.Log.Event">Log_Event</a> <span class="xdoc-id">GateHWSpinlock_LM_open</span>;
297 </div>
298 </div>
299 <div class="xdocSynSpacer"> </div>
300 <div class="xdocSynSpacer"> </div>
301 <a class="xdocAnchor" id="base.Addr"></a>
302 <table class="xdocHdr"><tr>
303 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock_</span><span class="xdoc-id">baseAddr</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
304 <td class="xdocHdrArrow">
305 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
306 </table>
307 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#base.Addr">index URL</a></div>
308 <p class="xdocHdrSummaryDcl">Device-specific base address for HW Semaphore subsystem</p>
309 <span id='targ-synop'></span>
310 <table class="xdocLabel"><tr>
311 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
312 <td class="xdocLabelRight">target-domain</td>
313 </tr></table>
314 <div class="xdocSynTdcl">
315 <div class="xdocSynCode">
316 <tt></tt><tt></tt><span class="xdoc-kw1">extern const</span> <span class="xdoc-kw2">Ptr</span> <span class="xdoc-id">GateHWSpinlock_baseAddr</span>;
317 </div>
318 </div>
319 <div class="xdocSynSpacer"> </div>
320 <div class="xdocSynSpacer"> </div>
321 <a class="xdocAnchor" id="query"></a>
322 <table class="xdocHdr"><tr>
323 <td class="xdocHdrTitle"><span class="xdoc-id">GateHWSpinlock_</span><span class="xdoc-id">query</span>() <small><span class="xdocSynSum">// module-wide</span></small></td>
324 <td class="xdocHdrArrow">
325 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
326 </table>
327 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#query">index URL</a></div>
328 <p class="xdocHdrSummaryDcl">Runtime test for a particular gate quality</p>
329 <span id='targ-synop'></span>
330 <table class="xdocLabel"><tr>
331 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
332 <td class="xdocLabelRight">target-domain</td>
333 </tr></table>
334 <div class="xdocSynTdcl">
335 <div class="xdocSynCode">
336 <tt></tt><tt></tt><span class="xdoc-kw2">Bool</span> <span class="xdoc-id">GateHWSpinlock_query</span>(<span class="xdoc-kw2">Int</span> <span class="xdoc-id">qual</span>);
337 </div>
338 </div>
339 <div class="xdocSynSpacer"> </div>
340 <span id="xdoc-sect-1"></span>
341 <div class="xdocSect">ARGUMENTS</div>
342 <div class="xdocChild"><span class="xdocChildId">qual</span>
343 <span class="xdocChildSum">— constant describing a quality</span>
344 </div>
345 <span id="xdoc-sect-2"></span>
346 <div class="xdocSect">RETURNS</div>
347 <div class="xdocText">Returns <tt>TRUE</tt> if the gate has the given quality,
348 and <tt>FALSE</tt> otherwise, which includes the case when the gate does not
349 recognize the constant describing the quality.</div>
350 <div class="xdocSynSpacer"> </div>
351 <a class="xdocAnchor" id="shared.Mem.Req"></a>
352 <table class="xdocHdr"><tr>
353 <td class="xdocHdrTitle"><span class="xdoc-id">GateHWSpinlock_</span><span class="xdoc-id">sharedMemReq</span>() <small><span class="xdocSynSum">// module-wide</span></small></td>
354 <td class="xdocHdrArrow">
355 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
356 </table>
357 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#shared.Mem.Req">index URL</a></div>
358 <p class="xdocHdrSummaryDcl">Amount of shared memory required for creation of each instance</p>
359 <span id='targ-synop'></span>
360 <table class="xdocLabel"><tr>
361 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
362 <td class="xdocLabelRight">target-domain</td>
363 </tr></table>
364 <div class="xdocSynTdcl">
365 <div class="xdocSynCode">
366 <tt></tt><tt></tt><span class="xdoc-kw2">SizeT</span> <span class="xdoc-id">GateHWSpinlock_sharedMemReq</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/interfaces/IGateMPSupport.html#per-instance_config_parameters" title="ti.sdo.ipc.interfaces.IGateMPSupport.Params">IGateMPSupport_Params</a> *<span class="xdoc-id">params</span>);
367 </div>
368 </div>
369 <div class="xdocSynSpacer"> </div>
370 <span id="xdoc-sect-1"></span>
371 <div class="xdocSect">ARGUMENTS</div>
372 <div class="xdocChild"><span class="xdocChildId">params</span>
373 <span class="xdocChildSum">— Pointer to the parameters that will be used in
374 the create.</span>
375 </div>
376 <span id="xdoc-sect-2"></span>
377 <div class="xdocSect">DETAILS</div>
378 <div class="xdocText">The value returned by this function may depend on the cache alignment
379 requirements for the shared region from which memory will be used.</div>
380 <span id="xdoc-sect-3"></span>
381 <div class="xdocSect">RETURNS</div>
382 <div class="xdocText">Number of MAUs needed to create the instance.</div>
383 <a class="xdocAnchor" id="module-wide_built-ins"></a>
384 <table class="xdocHdr"><tr>
385 <td class="xdocHdrTitle"><span class="xdocSynSum">Module-Wide Built-Ins</span></td>
386 <td class="xdocHdrArrow">
387 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
388 </table>
389 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#module-wide_built-ins">index URL</a></div>
390 <p class="xdocHdrSummary"></p>
391 <span id='targ-synop'></span>
392 <table class="xdocLabel"><tr>
393 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
394 <td class="xdocLabelRight">target-domain</td>
395 </tr></table>
396 <div class="xdocSynTdcl">
397 <div class="xdocSynCode">
398 <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">GateHWSpinlock_Module_id</span>();
399 </div>
400 <div class='xdocSynSum'><tt></tt><tt></tt>// Get this module's unique id</div>
401 <div class="xdocSynSpacer"> </div>
402 <div class="xdocSynCode">
403 <tt></tt><tt></tt><span class="xdoc-kw2">Bool</span> <span class="xdoc-id">GateHWSpinlock_Module_startupDone</span>();
404 </div>
405 <div class='xdocSynSum'><tt></tt><tt></tt>// Test if this module has completed startup</div>
406 <div class="xdocSynSpacer"> </div>
407 <div class="xdocSynCode">
408 <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">GateHWSpinlock_Module_heap</span>();
409 </div>
410 <div class='xdocSynSum'><tt></tt><tt></tt>// The heap from which this module allocates memory</div>
411 <div class="xdocSynSpacer"> </div>
412 <div class="xdocSynCode">
413 <tt></tt><tt></tt><span class="xdoc-kw2">Bool</span> <span class="xdoc-id">GateHWSpinlock_Module_hasMask</span>();
414 </div>
415 <div class='xdocSynSum'><tt></tt><tt></tt>// Test whether this module has a diagnostics mask</div>
416 <div class="xdocSynSpacer"> </div>
417 <div class="xdocSynCode">
418 <tt></tt><tt></tt><span class="xdoc-kw2">Bits16</span> <span class="xdoc-id">GateHWSpinlock_Module_getMask</span>();
419 </div>
420 <div class='xdocSynSum'><tt></tt><tt></tt>// Returns the diagnostics mask for this module</div>
421 <div class="xdocSynSpacer"> </div>
422 <div class="xdocSynCode">
423 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span> <span class="xdoc-id">GateHWSpinlock_Module_setMask</span>(<span class="xdoc-kw2">Bits16</span> <span class="xdoc-id">mask</span>);
424 </div>
425 <div class='xdocSynSum'><tt></tt><tt></tt>// Set the diagnostics mask for this module</div>
426 </div>
427 <a class="xdocAnchor" id="per-instance_object_types"></a>
428 <table class="xdocHdr"><tr>
429 <td class="xdocHdrTitle"><span class="xdocSynSum">Instance Object Types</span></td>
430 <td class="xdocHdrArrow">
431 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
432 </table>
433 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types">index URL</a></div>
434 <p class="xdocHdrSummary"></p>
435 <span id='targ-synop'></span>
436 <table class="xdocLabel"><tr>
437 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
438 <td class="xdocLabelRight">target-domain</td>
439 </tr></table>
440 <div class="xdocSynTdcl">
441 <div class="xdocSynCode">
442 <tt></tt><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> <span class="xdoc-id">GateHWSpinlock_Object</span> <span class="xdoc-id">GateHWSpinlock_Object</span>;
443 </div>
444 <div class='xdocSynSum'><tt></tt><tt></tt>// Opaque internal representation of an instance object</div>
445 <div class="xdocSynSpacer"> </div>
446 <div class="xdocSynCode">
447 <tt></tt><tt></tt><span class="xdoc-kw1">typedef</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Object">GateHWSpinlock_Object</a> *<span class="xdoc-id">GateHWSpinlock_Handle</span>;
448 </div>
449 <div class='xdocSynSum'><tt></tt><tt></tt>// Client reference to an instance object</div>
450 <div class="xdocSynSpacer"> </div>
451 <div class="xdocSynCode">
452 <tt></tt><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> <span class="xdoc-id">GateHWSpinlock_Struct</span> <span class="xdoc-id">GateHWSpinlock_Struct</span>;
453 </div>
454 <div class='xdocSynSum'><tt></tt><tt></tt>// Opaque client structure large enough to hold an instance object</div>
455 <div class="xdocSynSpacer"> </div>
456 <div class="xdocSynCode">
457 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> <span class="xdoc-id">GateHWSpinlock_handle</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Struct">GateHWSpinlock_Struct</a> *structP);
458 </div>
459 <div class='xdocSynSum'><tt></tt><tt></tt>// Convert this instance structure pointer into an instance handle</div>
460 <div class="xdocSynSpacer"> </div>
461 <div class="xdocSynCode">
462 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Struct">GateHWSpinlock_Struct</a> *<span class="xdoc-id">GateHWSpinlock_struct</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> handle);
463 </div>
464 <div class='xdocSynSum'><tt></tt><tt></tt>// Convert this instance handle into an instance structure pointer</div>
465 </div>
466 <a class="xdocAnchor" id="per-instance_config_parameters"></a>
467 <table class="xdocHdr"><tr>
468 <td class="xdocHdrTitle"><span class="xdocSynSum">Instance Config Parameters</span></td>
469 <td class="xdocHdrArrow">
470 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
471 </table>
472 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_config_parameters">index URL</a></div>
473 <p class="xdocHdrSummary"></p>
474 <span id='targ-synop'></span>
475 <table class="xdocLabel"><tr>
476 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
477 <td class="xdocLabelRight">target-domain</td>
478 </tr></table>
479 <div class="xdocSynTdcl">
480 <div class="xdocSynCode">
481 <tt></tt><tt></tt><span class="xdoc-kw1">typedef</span> <span class="xdoc-kw1">struct</span> <span class="xdoc-id">GateHWSpinlock_Params</span> {
482 </div>
483 <div class='xdocSynSum'><tt></tt><tt></tt>// Instance config-params structure</div>
484 <div class="xdocSynCode">
485 <tt></tt><tt> </tt><a class="xdoc-link" href="../../../../xdc/runtime/IInstance.html#per-instance_config_parameters" title="xdc.runtime.IInstance.Params">IInstance_Params</a> *instance;
486 </div>
487 <div class='xdocSynSum'><tt></tt><tt> </tt>// Common per-instance configs</div>
488 <div class="xdocSynCode">
489 <tt></tt><tt> </tt><span class="xdoc-kw2">UInt</span> <span class="xdoc-id">resourceId</span>;
490 </div>
491 <div class='xdocSynSum'><tt></tt><tt> </tt>// Logical resource id</div>
492 <div class="xdocSynCode">
493 <tt></tt><tt> </tt><span class="xdoc-kw2">Ptr</span> <span class="xdoc-id">sharedAddr</span>;
494 </div>
495 <div class='xdocSynSum'><tt></tt><tt> </tt>// Physical address of the shared memory</div>
496 <div class="xdocSynCode">
497 <tt></tt><tt></tt>} <span class="xdoc-id">GateHWSpinlock_Params</span>;
498 </div>
499 <div class="xdocSynSpacer"> </div>
500 <div class="xdocSynCode">
501 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span> <span class="xdoc-id">GateHWSpinlock_Params_init</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_config_parameters" title="ti.sdo.ipc.gates.GateHWSpinlock.Params">GateHWSpinlock_Params</a> *params);
502 </div>
503 <div class='xdocSynSum'><tt></tt><tt></tt>// Initialize this config-params structure with supplier-specified defaults before instance creation</div>
504 </div>
505 <div class="xdocSynSpacer"> </div>
506 <a class="xdocAnchor" id="resource.Id"></a>
507 <table class="xdocHdr"><tr>
508 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock_Params.</span><span class="xdoc-id">resourceId</span> <small><span class="xdocSynSum">// instance</span></small></td>
509 <td class="xdocHdrArrow">
510 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
511 </table>
512 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#resource.Id">index URL</a></div>
513 <p class="xdocHdrSummaryDcl">Logical resource id</p>
514 <span id='targ-synop'></span>
515 <table class="xdocLabel"><tr>
516 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
517 <td class="xdocLabelRight">target-domain</td>
518 </tr></table>
519 <div class="xdocSynTdcl">
520 <div class="xdocSynCode">
521 <tt></tt><tt></tt><span class="xdoc-kw1">struct</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_config_parameters" title="ti.sdo.ipc.gates.GateHWSpinlock.Params">GateHWSpinlock_Params</a> {
522 </div>
523 <div class="xdocSynCode">
524 <tt></tt><tt> </tt><b> ...</b>
525 </div>
526 <div class="xdocSynCode">
527 <tt></tt><tt> </tt><span class="xdoc-kw2">UInt</span> <span class="xdoc-id">resourceId</span>;
528 </div>
529 </div>
530 <div class="xdocSynSpacer"> </div>
531 <div class="xdocSynSpacer"> </div>
532 <a class="xdocAnchor" id="shared.Addr"></a>
533 <table class="xdocHdr"><tr>
534 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock_Params.</span><span class="xdoc-id">sharedAddr</span> <small><span class="xdocSynSum">// instance</span></small></td>
535 <td class="xdocHdrArrow">
536 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
537 </table>
538 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#shared.Addr">index URL</a></div>
539 <p class="xdocHdrSummaryDcl">Physical address of the shared memory</p>
540 <span id='targ-synop'></span>
541 <table class="xdocLabel"><tr>
542 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
543 <td class="xdocLabelRight">target-domain</td>
544 </tr></table>
545 <div class="xdocSynTdcl">
546 <div class="xdocSynCode">
547 <tt></tt><tt></tt><span class="xdoc-kw1">struct</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_config_parameters" title="ti.sdo.ipc.gates.GateHWSpinlock.Params">GateHWSpinlock_Params</a> {
548 </div>
549 <div class="xdocSynCode">
550 <tt></tt><tt> </tt><b> ...</b>
551 </div>
552 <div class="xdocSynCode">
553 <tt></tt><tt> </tt><span class="xdoc-kw2">Ptr</span> <span class="xdoc-id">sharedAddr</span>;
554 </div>
555 </div>
556 <div class="xdocSynSpacer"> </div>
557 <span id="xdoc-sect-1"></span>
558 <div class="xdocSect">DETAILS</div>
559 <div class="xdocText">This parameter is only used by GateMP delegates that use shared memory</div>
560 <a class="xdocAnchor" id="per-instance_creation"></a>
561 <table class="xdocHdr"><tr>
562 <td class="xdocHdrTitle"><span class="xdocSynSum">Runtime Instance Creation</span></td>
563 <td class="xdocHdrArrow">
564 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
565 </table>
566 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_creation">index URL</a></div>
567 <p class="xdocHdrSummary"></p>
568 <span id='targ-synop'></span>
569 <table class="xdocLabel"><tr>
570 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
571 <td class="xdocLabelRight">target-domain</td>
572 </tr></table>
573 <div class="xdocSynTdcl">
574 <div class="xdocSynCode">
575 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> <span class="xdoc-id">GateHWSpinlock_create</span>(<a class="xdoc-link" href="../../../../xdc/runtime/IGateProvider.html#per-instance_object_types" title="xdc.runtime.IGateProvider.Handle">IGateProvider_Handle</a> <span class="xdoc-id">localGate</span>, <span class="xdoc-kw1">const</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_config_parameters" title="ti.sdo.ipc.gates.GateHWSpinlock.Params">GateHWSpinlock_Params</a> *params, <a class="xdoc-link" href="../../../../xdc/runtime/Error.html#.Block" title="xdc.runtime.Error.Block">Error_Block</a> *eb);
576 </div>
577 <div class='xdocSynSum'><tt></tt><tt></tt>// Allocate and initialize a new instance object and return its handle</div>
578 <div class="xdocSynSpacer"> </div>
579 <div class="xdocSynCode">
580 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span> <span class="xdoc-id">GateHWSpinlock_construct</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Struct">GateHWSpinlock_Struct</a> *structP, <a class="xdoc-link" href="../../../../xdc/runtime/IGateProvider.html#per-instance_object_types" title="xdc.runtime.IGateProvider.Handle">IGateProvider_Handle</a> <span class="xdoc-id">localGate</span>, <span class="xdoc-kw1">const</span> <a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_config_parameters" title="ti.sdo.ipc.gates.GateHWSpinlock.Params">GateHWSpinlock_Params</a> *params);
581 </div>
582 <div class='xdocSynSum'><tt></tt><tt></tt>// Initialize a new instance object inside the provided structure</div>
583 </div>
584 <span id="xdoc-sect-1"></span>
585 <div class="xdocSect">ARGUMENTS</div>
586 <div class="xdocChild"><span class="xdocChildId">localGate</span>
587 <span class="xdocChildSum">— Gate to use for local protection.</span>
588 </div>
589 <div class="xdocChild"><span class="xdocChildId">params</span>
590 <span class="xdocChildSum">— per-instance config params, or <tt>NULL</tt> to select default values (target-domain only)</span>
591 </div>
592 <div class="xdocChild"><span class="xdocChildId">eb</span>
593 <span class="xdocChildSum">— active error-handling block, or <tt>NULL</tt> to select default policy (target-domain only)</span>
594 </div>
595 <span id="xdoc-sect-2"></span>
596 <div class="xdocSect">DETAILS</div>
597 <div class="xdocText">A Non-NULL gate for local protection must be passed to the create
598 call. If no local protection is desired, a
599 <a class="xdoc-link" href="../../../../xdc/runtime/GateNull.html" title="xdc.runtime.GateNull">xdc.runtime.GateNull</a> handle must be passed in.</div>
600 <a class="xdocAnchor" id="per-instance_deletion"></a>
601 <table class="xdocHdr"><tr>
602 <td class="xdocHdrTitle"><span class="xdocSynSum">Instance Deletion</span></td>
603 <td class="xdocHdrArrow">
604 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><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/gates/GateHWSpinlock.html#per-instance_deletion">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><span class="xdoc-kw2">Void</span> <span class="xdoc-id">GateHWSpinlock_delete</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> *handleP);
616 </div>
617 <div class='xdocSynSum'><tt></tt><tt></tt>// Finalize and free this previously allocated instance object, setting the referenced handle to NULL</div>
618 <div class="xdocSynSpacer"> </div>
619 <div class="xdocSynCode">
620 <tt></tt><tt></tt><span class="xdoc-kw2">Void</span> <span class="xdoc-id">GateHWSpinlock_destruct</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Struct">GateHWSpinlock_Struct</a> *structP);
621 </div>
622 <div class='xdocSynSum'><tt></tt><tt></tt>// Finalize the instance object inside the provided structure</div>
623 </div>
624 <a class="xdocAnchor" id="per-instance_convertors"></a>
625 <table class="xdocHdr"><tr>
626 <td class="xdocHdrTitle"><span class="xdocSynSum">Instance Convertors</span></td>
627 <td class="xdocHdrArrow">
628 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
629 </table>
630 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_convertors">index URL</a></div>
631 <p class="xdocHdrSummary"></p>
632 <span id='targ-synop'></span>
633 <table class="xdocLabel"><tr>
634 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
635 <td class="xdocLabelRight">target-domain</td>
636 </tr></table>
637 <div class="xdocSynTdcl">
638 <div class="xdocSynCode">
639 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/interfaces/IGateMPSupport.html#per-instance_object_types" title="ti.sdo.ipc.interfaces.IGateMPSupport.Handle">IGateMPSupport_Handle</a> <span class="xdoc-id">GateHWSpinlock_Handle_upCast</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> handle);
640 </div>
641 <div class='xdocSynSum'><tt></tt><tt></tt>// unconditionally move one level up the inheritance hierarchy</div>
642 <div class="xdocSynSpacer"> </div>
643 <div class="xdocSynCode">
644 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> <span class="xdoc-id">GateHWSpinlock_Handle_downCast</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/interfaces/IGateMPSupport.html#per-instance_object_types" title="ti.sdo.ipc.interfaces.IGateMPSupport.Handle">IGateMPSupport_Handle</a> handle);
645 </div>
646 <div class='xdocSynSum'><tt></tt><tt></tt>// conditionally move one level down the inheritance hierarchy; NULL upon failure</div>
647 <div class="xdocSynSpacer"> </div>
648 <div class="xdocSynCode">
649 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../xdc/runtime/IGateProvider.html#per-instance_object_types" title="xdc.runtime.IGateProvider.Handle">IGateProvider_Handle</a> <span class="xdoc-id">GateHWSpinlock_Handle_upCast2</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> handle);
650 </div>
651 <div class='xdocSynSum'><tt></tt><tt></tt>// unconditionally move 2 levels up the inheritance hierarchy</div>
652 <div class="xdocSynSpacer"> </div>
653 <div class="xdocSynCode">
654 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> <span class="xdoc-id">GateHWSpinlock_Handle_downCast2</span>(<a class="xdoc-link" href="../../../../xdc/runtime/IGateProvider.html#per-instance_object_types" title="xdc.runtime.IGateProvider.Handle">IGateProvider_Handle</a> handle);
655 </div>
656 <div class='xdocSynSum'><tt></tt><tt></tt>// conditionally move 2 levels down the inheritance hierarchy; NULL upon failure</div>
657 </div>
658 <a class="xdocAnchor" id="per-instance_built-ins"></a>
659 <table class="xdocHdr"><tr>
660 <td class="xdocHdrTitle"><span class="xdocSynSum">Instance Built-Ins</span></td>
661 <td class="xdocHdrArrow">
662 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
663 </table>
664 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_built-ins">index URL</a></div>
665 <p class="xdocHdrSummary"></p>
666 <span id='targ-synop'></span>
667 <table class="xdocLabel"><tr>
668 <td class="xdocLabelLeft"><tt><span class="xdoc-id-targ2dcl">C</span></tt> synopsis</td>
669 <td class="xdocLabelRight">target-domain</td>
670 </tr></table>
671 <div class="xdocSynTdcl">
672 <div class="xdocSynCode">
673 <tt></tt><tt></tt><span class="xdoc-kw2">Int</span> <span class="xdoc-id">GateHWSpinlock_Object_count</span>();
674 </div>
675 <div class='xdocSynSum'><tt></tt><tt></tt>// The number of statically-created instance objects</div>
676 <div class="xdocSynSpacer"> </div>
677 <div class="xdocSynCode">
678 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> <span class="xdoc-id">GateHWSpinlock_Object_get</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Object">GateHWSpinlock_Object</a> *array, <span class="xdoc-kw2">Int</span> i);
679 </div>
680 <div class='xdocSynSum'><tt></tt><tt></tt>// The handle of the i-th statically-created instance object (array == NULL)</div>
681 <div class="xdocSynSpacer"> </div>
682 <div class="xdocSynCode">
683 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> <span class="xdoc-id">GateHWSpinlock_Object_first</span>();
684 </div>
685 <div class='xdocSynSum'><tt></tt><tt></tt>// The handle of the first dynamically-created instance object, or NULL</div>
686 <div class="xdocSynSpacer"> </div>
687 <div class="xdocSynCode">
688 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> <span class="xdoc-id">GateHWSpinlock_Object_next</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> handle);
689 </div>
690 <div class='xdocSynSum'><tt></tt><tt></tt>// The handle of the next dynamically-created instance object, or NULL</div>
691 <div class="xdocSynSpacer"> </div>
692 <div class="xdocSynCode">
693 <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">GateHWSpinlock_Object_heap</span>();
694 </div>
695 <div class='xdocSynSum'><tt></tt><tt></tt>// The heap used to allocate dynamically-created instance objects</div>
696 <div class="xdocSynSpacer"> </div>
697 <div class="xdocSynCode">
698 <tt></tt><tt></tt><a class="xdoc-link" href="../../../../xdc/runtime/Types.html#.Label" title="xdc.runtime.Types.Label">Types_Label</a> *<span class="xdoc-id">GateHWSpinlock_Handle_label</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> handle, <a class="xdoc-link" href="../../../../xdc/runtime/Types.html#.Label" title="xdc.runtime.Types.Label">Types_Label</a> *buf);
699 </div>
700 <div class='xdocSynSum'><tt></tt><tt></tt>// The label associated with this instance object</div>
701 <div class="xdocSynSpacer"> </div>
702 <div class="xdocSynCode">
703 <tt></tt><tt></tt><span class="xdoc-kw2">String</span> <span class="xdoc-id">GateHWSpinlock_Handle_name</span>(<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_object_types" title="ti.sdo.ipc.gates.GateHWSpinlock.Handle">GateHWSpinlock_Handle</a> handle);
704 </div>
705 <div class='xdocSynSum'><tt></tt><tt></tt>// The name of this instance object</div>
706 </div>
707 </div>
708 <div class="xdocSynSpacer"> </div>
709 <span id='meta-synop'></span>
710 <table class="xdocLabel"><tr>
711 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2"></span></tt>Configuration settings</td>
712 <td class="xdocLabelRight">sourced in <a class="xdocLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock-src.html"><span class="xdocLabelFile">ti/sdo/ipc/gates/GateHWSpinlock.xdc</span></a></td>
713 </tr></table>
714 <div class="xdocSynM">
715 <div class="xdocSynCode">
716 <tt></tt><span class="xdoc-kw1">var</span> GateHWSpinlock = <span class="xdoc-kw3">xdc.useModule</span>(<span class="xdoc-id">'ti.sdo.ipc.gates.GateHWSpinlock'</span>);
717 </div>
718 <div class='xdocSynHdr'>module-wide constants & types</div>
720 <div class="xdocSynCode">
721 <tt> </tt><tt></tt><span class="xdoc-kw1">const</span> <a class="xdocSynGo" href="#meta.Q_.B.L.O.C.K.I.N.G">GateHWSpinlock.<span class="xdoc-id">Q_BLOCKING</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Blocking quality</span></span></a> = 1;
722 </div>
723 <div class="xdocSynCode">
724 <tt> </tt><tt></tt><span class="xdoc-kw1">const</span> <a class="xdocSynGo" href="#meta.Q_.P.R.E.E.M.P.T.I.N.G">GateHWSpinlock.<span class="xdoc-id">Q_PREEMPTING</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Preempting quality</span></span></a> = 2;
725 </div>
726 <div class='xdocSynHdr'>module-wide config parameters</div>
728 <div class="xdocSynCode">
729 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.A_inv.Spin.Lock.Num">GateHWSpinlock.<span class="xdoc-id">A_invSpinLockNum</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Assert raised when provided lockNum is invalid for the relevant device</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
730 </div>
731 <div class="xdocSynCode">
732 <tt> </tt><tt> </tt>msg: "A_invSpinLockNum: Invalid hardware spinlock number"
733 </div>
734 <div class="xdocSynCode">
735 <tt> </tt><tt></tt>};
736 </div>
737 <div class="xdocSynCode">
738 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.L.M_close">GateHWSpinlock.<span class="xdoc-id">LM_close</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logged on gate close</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event.Desc" title="xdc.runtime.Log.EventDesc">Log.EventDesc</a></i> {
739 </div>
740 <div class="xdocSynCode">
741 <tt> </tt><tt> </tt>mask: <a class="xdoc-link" href="../../../../xdc/runtime/Diags.html#.U.S.E.R1" title="xdc.runtime.Diags.USER1">Diags.USER1</a>,
742 </div>
743 <div class="xdocSynCode">
744 <tt> </tt><tt> </tt>msg: "LM_close: Gate (lockNum = %d) closed"
745 </div>
746 <div class="xdocSynCode">
747 <tt> </tt><tt></tt>};
748 </div>
749 <div class="xdocSynCode">
750 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.L.M_create">GateHWSpinlock.<span class="xdoc-id">LM_create</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logged on gate create</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event.Desc" title="xdc.runtime.Log.EventDesc">Log.EventDesc</a></i> {
751 </div>
752 <div class="xdocSynCode">
753 <tt> </tt><tt> </tt>mask: <a class="xdoc-link" href="../../../../xdc/runtime/Diags.html#.U.S.E.R1" title="xdc.runtime.Diags.USER1">Diags.USER1</a>,
754 </div>
755 <div class="xdocSynCode">
756 <tt> </tt><tt> </tt>msg: "LM_create: Gate (lockNum = %d) created"
757 </div>
758 <div class="xdocSynCode">
759 <tt> </tt><tt></tt>};
760 </div>
761 <div class="xdocSynCode">
762 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.L.M_delete">GateHWSpinlock.<span class="xdoc-id">LM_delete</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logged on gate deletion</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event.Desc" title="xdc.runtime.Log.EventDesc">Log.EventDesc</a></i> {
763 </div>
764 <div class="xdocSynCode">
765 <tt> </tt><tt> </tt>mask: <a class="xdoc-link" href="../../../../xdc/runtime/Diags.html#.U.S.E.R1" title="xdc.runtime.Diags.USER1">Diags.USER1</a>,
766 </div>
767 <div class="xdocSynCode">
768 <tt> </tt><tt> </tt>msg: "LM_delete: Gate (lockNum = %d) deleted"
769 </div>
770 <div class="xdocSynCode">
771 <tt> </tt><tt></tt>};
772 </div>
773 <div class="xdocSynCode">
774 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.L.M_enter">GateHWSpinlock.<span class="xdoc-id">LM_enter</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logged on gate enter</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event.Desc" title="xdc.runtime.Log.EventDesc">Log.EventDesc</a></i> {
775 </div>
776 <div class="xdocSynCode">
777 <tt> </tt><tt> </tt>mask: <a class="xdoc-link" href="../../../../xdc/runtime/Diags.html#.U.S.E.R1" title="xdc.runtime.Diags.USER1">Diags.USER1</a>,
778 </div>
779 <div class="xdocSynCode">
780 <tt> </tt><tt> </tt>msg: "LM_enter: Gate (lockNum = %d) entered, returning key = %d"
781 </div>
782 <div class="xdocSynCode">
783 <tt> </tt><tt></tt>};
784 </div>
785 <div class="xdocSynCode">
786 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.L.M_leave">GateHWSpinlock.<span class="xdoc-id">LM_leave</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logged on gate leave</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event.Desc" title="xdc.runtime.Log.EventDesc">Log.EventDesc</a></i> {
787 </div>
788 <div class="xdocSynCode">
789 <tt> </tt><tt> </tt>mask: <a class="xdoc-link" href="../../../../xdc/runtime/Diags.html#.U.S.E.R1" title="xdc.runtime.Diags.USER1">Diags.USER1</a>,
790 </div>
791 <div class="xdocSynCode">
792 <tt> </tt><tt> </tt>msg: "LM_leave: Gate (lockNum = %d) left using key = %d"
793 </div>
794 <div class="xdocSynCode">
795 <tt> </tt><tt></tt>};
796 </div>
797 <div class="xdocSynCode">
798 <tt> </tt><tt></tt><a class="xdocSynGo" href="#meta.L.M_open">GateHWSpinlock.<span class="xdoc-id">LM_open</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logged on gate open</span></span></a> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event.Desc" title="xdc.runtime.Log.EventDesc">Log.EventDesc</a></i> {
799 </div>
800 <div class="xdocSynCode">
801 <tt> </tt><tt> </tt>mask: <a class="xdoc-link" href="../../../../xdc/runtime/Diags.html#.U.S.E.R1" title="xdc.runtime.Diags.USER1">Diags.USER1</a>,
802 </div>
803 <div class="xdocSynCode">
804 <tt> </tt><tt> </tt>msg: "LM_open: Remote gate (lockNum = %d) opened"
805 </div>
806 <div class="xdocSynCode">
807 <tt> </tt><tt></tt>};
808 </div>
809 <div class="xdocSynCode">
810 <tt> </tt><tt></tt><a class="xdocSynGo" href="#metabase.Addr">GateHWSpinlock.<span class="xdoc-id">baseAddr</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Device-specific base address for HW Semaphore subsystem</span></span></a> = <i><span class="xdoc-kw2">Ptr</span></i> <span class="xdoc-kw2">null</span>;
811 </div>
812 <div class="xdocSynSpacer"> </div>
813 <div class="xdocSynCode">
814 <tt> </tt><tt></tt><a class="xdocSynGo" href="#common$">GateHWSpinlock.<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>;
815 </div>
816 <div class='xdocSynHdr'>module-wide functions</div>
818 <div class="xdocSynCode">
819 <tt> </tt><tt></tt><a class="xdocSynGo" href="#get.Num.Resources">GateHWSpinlock.<span class="xdoc-id">getNumResources</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Returns the number of resources offered by the GateMP delegate</span></span></a>() <i>returns</i> <i><span class="xdoc-kw2">UInt</span></i>
820 </div>
821 <div class="xdocSynCode">
822 <tt> </tt><tt></tt><a class="xdocSynGo" href="#query.Meta">GateHWSpinlock.<span class="xdoc-id">queryMeta</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Configuration time test for a particular gate quality</span></span></a>(<i><span class="xdoc-kw2">Int</span></i> <span class="xdoc-id">qual</span>) <i>returns</i> <i><span class="xdoc-kw2">Bool</span></i>
823 </div>
824 <div class="xdocSynCode">
825 <tt> </tt><tt></tt><a class="xdocSynGo" href="#set.Reserved">GateHWSpinlock.<span class="xdoc-id">setReserved</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Reserve a HW spinlock for use outside of IPC</span></span></a>(<i><span class="xdoc-kw2">UInt</span></i> <span class="xdoc-id">lockNum</span>) <i>returns</i> <i><span class="xdoc-kw2">Void</span></i>
826 </div>
827 <div class='xdocSynHdr'>per-instance config parameters</div>
829 <div class="xdocSynCode">
830 <tt> </tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> GateHWSpinlock.<a class="xdocSynGo" href="#metaper-instance_config_parameters"><span class="xdoc-id">Params</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Instance config-params object</span></span></a>;
831 </div>
832 <div class="xdocSynCode">
833 <tt> </tt><tt> </tt>params.<a class="xdocSynGo" href="#metaresource.Id"><span class="xdoc-id">resourceId</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Logical resource id</span></span></a> = <i><span class="xdoc-kw2">UInt</span></i> 0;
834 </div>
835 <div class="xdocSynCode">
836 <tt> </tt><tt> </tt>params.<a class="xdocSynGo" href="#metashared.Addr"><span class="xdoc-id">sharedAddr</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Physical address of the shared memory</span></span></a> = <i><span class="xdoc-kw2">Ptr</span></i> <span class="xdoc-kw2">null</span>;
837 </div>
838 <div class='xdocSynHdr'>per-instance creation</div>
840 <div class="xdocSynCode">
841 <tt> </tt><tt></tt><span class="xdoc-kw1">var</span> inst = GateHWSpinlock.<a class="xdocSynGo" href="#metaper-instance_creation"><span class="xdoc-id">create</span><span class="xdocSynHoverShadow"><span class="xdocSynHover">// Create an instance-object</span></span></a>(<i><a class="xdoc-link" href="../../../../xdc/runtime/IGateProvider.html#per-instance_object_types" title="xdc.runtime.IGateProvider.Handle">IGateProvider.Handle</a></i> <span class="xdoc-id">localGate</span>, params);
842 </div>
843 <div class="xdocSynSpacer"> </div>
844 </div>
845 <div id="xdocSep">
846 </div>
847 <div id="xdocMetaElems">
848 <div class="xdocSynSpacer"> </div>
849 <a class="xdocAnchor" id="meta.Q_.B.L.O.C.K.I.N.G"></a>
850 <table class="xdocHdr"><tr>
851 <td class="xdocHdrTitle"><span class="xdoc-kw1">const</span> <span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">Q_BLOCKING</span></td>
852 <td class="xdocHdrArrow">
853 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
854 </table>
855 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.Q_.B.L.O.C.K.I.N.G">index URL</a></div>
856 <p class="xdocHdrSummaryDcl">Blocking quality</p>
857 <span id='meta-synop'></span>
858 <table class="xdocLabel"><tr>
859 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
860 <td class="xdocLabelRight"></td>
861 </tr></table>
862 <div class="xdocSynMdcl">
863 <div class="xdocSynCode">
864 <tt></tt><tt></tt><span class="xdoc-kw1">const</span> GateHWSpinlock.<span class="xdoc-id">Q_BLOCKING</span> = 1;
865 </div>
866 </div>
867 <div class="xdocSynSpacer"> </div>
868 <span id="xdoc-sect-1"></span>
869 <div class="xdocSect">DETAILS</div>
870 <div class="xdocText">Gates with this "quality" may cause the calling thread to block;
871 i.e., suspend execution until another thread leaves the gate.</div>
872 <div class="xdocSect">C SYNOPSIS</div>
873 <div class="xdocText"><a class="xdoc-link" href="#.Q_.B.L.O.C.K.I.N.G" title="GateHWSpinlock_Q_BLOCKING">GateHWSpinlock_Q_BLOCKING</a></div>
874 <div class="xdocSynSpacer"> </div>
875 <a class="xdocAnchor" id="meta.Q_.P.R.E.E.M.P.T.I.N.G"></a>
876 <table class="xdocHdr"><tr>
877 <td class="xdocHdrTitle"><span class="xdoc-kw1">const</span> <span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">Q_PREEMPTING</span></td>
878 <td class="xdocHdrArrow">
879 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
880 </table>
881 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.Q_.P.R.E.E.M.P.T.I.N.G">index URL</a></div>
882 <p class="xdocHdrSummaryDcl">Preempting quality</p>
883 <span id='meta-synop'></span>
884 <table class="xdocLabel"><tr>
885 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
886 <td class="xdocLabelRight"></td>
887 </tr></table>
888 <div class="xdocSynMdcl">
889 <div class="xdocSynCode">
890 <tt></tt><tt></tt><span class="xdoc-kw1">const</span> GateHWSpinlock.<span class="xdoc-id">Q_PREEMPTING</span> = 2;
891 </div>
892 </div>
893 <div class="xdocSynSpacer"> </div>
894 <span id="xdoc-sect-1"></span>
895 <div class="xdocSect">DETAILS</div>
896 <div class="xdocText">Gates with this "quality" allow other threads to preempt the thread
897 that has already entered the gate.</div>
898 <div class="xdocSect">C SYNOPSIS</div>
899 <div class="xdocText"><a class="xdoc-link" href="#.Q_.P.R.E.E.M.P.T.I.N.G" title="GateHWSpinlock_Q_PREEMPTING">GateHWSpinlock_Q_PREEMPTING</a></div>
900 <div class="xdocSynSpacer"> </div>
901 <a class="xdocAnchor" id="meta.A_inv.Spin.Lock.Num"></a>
902 <table class="xdocHdr"><tr>
903 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">A_invSpinLockNum</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
904 <td class="xdocHdrArrow">
905 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
906 </table>
907 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.A_inv.Spin.Lock.Num">index URL</a></div>
908 <p class="xdocHdrSummaryDcl">Assert raised when provided lockNum is invalid for the relevant device</p>
909 <span id='meta-synop'></span>
910 <table class="xdocLabel"><tr>
911 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
912 <td class="xdocLabelRight"></td>
913 </tr></table>
914 <div class="xdocSynMdcl">
915 <div class="xdocSynCode">
916 <tt></tt><tt></tt>GateHWSpinlock.<span class="xdoc-id">A_invSpinLockNum</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Assert.html#.Desc" title="xdc.runtime.Assert.Desc">Assert.Desc</a></i> {
917 </div>
918 <div class="xdocSynCode">
919 <tt></tt><tt> </tt>msg: "A_invSpinLockNum: Invalid hardware spinlock number"
920 </div>
921 <div class="xdocSynCode">
922 <tt></tt><tt></tt>};
923 </div>
924 </div>
925 <div class="xdocSynSpacer"> </div>
926 <div class="xdocSect">C SYNOPSIS</div>
927 <div class="xdocText"><a class="xdoc-link" href="#.A_inv.Spin.Lock.Num" title="GateHWSpinlock_A_invSpinLockNum">GateHWSpinlock_A_invSpinLockNum</a></div>
928 <div class="xdocSynSpacer"> </div>
929 <a class="xdocAnchor" id="meta.L.M_close"></a>
930 <table class="xdocHdr"><tr>
931 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">LM_close</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
932 <td class="xdocHdrArrow">
933 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
934 </table>
935 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.L.M_close">index URL</a></div>
936 <p class="xdocHdrSummaryDcl">Logged on gate close</p>
937 <span id='meta-synop'></span>
938 <table class="xdocLabel"><tr>
939 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
940 <td class="xdocLabelRight"></td>
941 </tr></table>
942 <div class="xdocSynMdcl">
943 <div class="xdocSynCode">
944 <tt></tt><tt></tt>GateHWSpinlock.<span class="xdoc-id">LM_close</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event.Desc" title="xdc.runtime.Log.EventDesc">Log.EventDesc</a></i> {
945 </div>
946 <div class="xdocSynCode">
947 <tt></tt><tt> </tt>mask: <a class="xdoc-link" href="../../../../xdc/runtime/Diags.html#.U.S.E.R1" title="xdc.runtime.Diags.USER1">Diags.USER1</a>,
948 </div>
949 <div class="xdocSynCode">
950 <tt></tt><tt> </tt>msg: "LM_close: Gate (lockNum = %d) closed"
951 </div>
952 <div class="xdocSynCode">
953 <tt></tt><tt></tt>};
954 </div>
955 </div>
956 <div class="xdocSynSpacer"> </div>
957 <div class="xdocSect">C SYNOPSIS</div>
958 <div class="xdocText"><a class="xdoc-link" href="#.L.M_close" title="GateHWSpinlock_LM_close">GateHWSpinlock_LM_close</a></div>
959 <div class="xdocSynSpacer"> </div>
960 <a class="xdocAnchor" id="meta.L.M_create"></a>
961 <table class="xdocHdr"><tr>
962 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">LM_create</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
963 <td class="xdocHdrArrow">
964 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
965 </table>
966 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.L.M_create">index URL</a></div>
967 <p class="xdocHdrSummaryDcl">Logged on gate create</p>
968 <span id='meta-synop'></span>
969 <table class="xdocLabel"><tr>
970 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
971 <td class="xdocLabelRight"></td>
972 </tr></table>
973 <div class="xdocSynMdcl">
974 <div class="xdocSynCode">
975 <tt></tt><tt></tt>GateHWSpinlock.<span class="xdoc-id">LM_create</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event.Desc" title="xdc.runtime.Log.EventDesc">Log.EventDesc</a></i> {
976 </div>
977 <div class="xdocSynCode">
978 <tt></tt><tt> </tt>mask: <a class="xdoc-link" href="../../../../xdc/runtime/Diags.html#.U.S.E.R1" title="xdc.runtime.Diags.USER1">Diags.USER1</a>,
979 </div>
980 <div class="xdocSynCode">
981 <tt></tt><tt> </tt>msg: "LM_create: Gate (lockNum = %d) created"
982 </div>
983 <div class="xdocSynCode">
984 <tt></tt><tt></tt>};
985 </div>
986 </div>
987 <div class="xdocSynSpacer"> </div>
988 <div class="xdocSect">C SYNOPSIS</div>
989 <div class="xdocText"><a class="xdoc-link" href="#.L.M_create" title="GateHWSpinlock_LM_create">GateHWSpinlock_LM_create</a></div>
990 <div class="xdocSynSpacer"> </div>
991 <a class="xdocAnchor" id="meta.L.M_delete"></a>
992 <table class="xdocHdr"><tr>
993 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">LM_delete</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
994 <td class="xdocHdrArrow">
995 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
996 </table>
997 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.L.M_delete">index URL</a></div>
998 <p class="xdocHdrSummaryDcl">Logged on gate deletion</p>
999 <span id='meta-synop'></span>
1000 <table class="xdocLabel"><tr>
1001 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1002 <td class="xdocLabelRight"></td>
1003 </tr></table>
1004 <div class="xdocSynMdcl">
1005 <div class="xdocSynCode">
1006 <tt></tt><tt></tt>GateHWSpinlock.<span class="xdoc-id">LM_delete</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event.Desc" title="xdc.runtime.Log.EventDesc">Log.EventDesc</a></i> {
1007 </div>
1008 <div class="xdocSynCode">
1009 <tt></tt><tt> </tt>mask: <a class="xdoc-link" href="../../../../xdc/runtime/Diags.html#.U.S.E.R1" title="xdc.runtime.Diags.USER1">Diags.USER1</a>,
1010 </div>
1011 <div class="xdocSynCode">
1012 <tt></tt><tt> </tt>msg: "LM_delete: Gate (lockNum = %d) deleted"
1013 </div>
1014 <div class="xdocSynCode">
1015 <tt></tt><tt></tt>};
1016 </div>
1017 </div>
1018 <div class="xdocSynSpacer"> </div>
1019 <div class="xdocSect">C SYNOPSIS</div>
1020 <div class="xdocText"><a class="xdoc-link" href="#.L.M_delete" title="GateHWSpinlock_LM_delete">GateHWSpinlock_LM_delete</a></div>
1021 <div class="xdocSynSpacer"> </div>
1022 <a class="xdocAnchor" id="meta.L.M_enter"></a>
1023 <table class="xdocHdr"><tr>
1024 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">LM_enter</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1025 <td class="xdocHdrArrow">
1026 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1027 </table>
1028 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.L.M_enter">index URL</a></div>
1029 <p class="xdocHdrSummaryDcl">Logged on gate enter</p>
1030 <span id='meta-synop'></span>
1031 <table class="xdocLabel"><tr>
1032 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1033 <td class="xdocLabelRight"></td>
1034 </tr></table>
1035 <div class="xdocSynMdcl">
1036 <div class="xdocSynCode">
1037 <tt></tt><tt></tt>GateHWSpinlock.<span class="xdoc-id">LM_enter</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event.Desc" title="xdc.runtime.Log.EventDesc">Log.EventDesc</a></i> {
1038 </div>
1039 <div class="xdocSynCode">
1040 <tt></tt><tt> </tt>mask: <a class="xdoc-link" href="../../../../xdc/runtime/Diags.html#.U.S.E.R1" title="xdc.runtime.Diags.USER1">Diags.USER1</a>,
1041 </div>
1042 <div class="xdocSynCode">
1043 <tt></tt><tt> </tt>msg: "LM_enter: Gate (lockNum = %d) entered, returning key = %d"
1044 </div>
1045 <div class="xdocSynCode">
1046 <tt></tt><tt></tt>};
1047 </div>
1048 </div>
1049 <div class="xdocSynSpacer"> </div>
1050 <div class="xdocSect">C SYNOPSIS</div>
1051 <div class="xdocText"><a class="xdoc-link" href="#.L.M_enter" title="GateHWSpinlock_LM_enter">GateHWSpinlock_LM_enter</a></div>
1052 <div class="xdocSynSpacer"> </div>
1053 <a class="xdocAnchor" id="meta.L.M_leave"></a>
1054 <table class="xdocHdr"><tr>
1055 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">LM_leave</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1056 <td class="xdocHdrArrow">
1057 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1058 </table>
1059 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.L.M_leave">index URL</a></div>
1060 <p class="xdocHdrSummaryDcl">Logged on gate leave</p>
1061 <span id='meta-synop'></span>
1062 <table class="xdocLabel"><tr>
1063 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1064 <td class="xdocLabelRight"></td>
1065 </tr></table>
1066 <div class="xdocSynMdcl">
1067 <div class="xdocSynCode">
1068 <tt></tt><tt></tt>GateHWSpinlock.<span class="xdoc-id">LM_leave</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event.Desc" title="xdc.runtime.Log.EventDesc">Log.EventDesc</a></i> {
1069 </div>
1070 <div class="xdocSynCode">
1071 <tt></tt><tt> </tt>mask: <a class="xdoc-link" href="../../../../xdc/runtime/Diags.html#.U.S.E.R1" title="xdc.runtime.Diags.USER1">Diags.USER1</a>,
1072 </div>
1073 <div class="xdocSynCode">
1074 <tt></tt><tt> </tt>msg: "LM_leave: Gate (lockNum = %d) left using key = %d"
1075 </div>
1076 <div class="xdocSynCode">
1077 <tt></tt><tt></tt>};
1078 </div>
1079 </div>
1080 <div class="xdocSynSpacer"> </div>
1081 <div class="xdocSect">C SYNOPSIS</div>
1082 <div class="xdocText"><a class="xdoc-link" href="#.L.M_leave" title="GateHWSpinlock_LM_leave">GateHWSpinlock_LM_leave</a></div>
1083 <div class="xdocSynSpacer"> </div>
1084 <a class="xdocAnchor" id="meta.L.M_open"></a>
1085 <table class="xdocHdr"><tr>
1086 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">LM_open</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1087 <td class="xdocHdrArrow">
1088 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1089 </table>
1090 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#.L.M_open">index URL</a></div>
1091 <p class="xdocHdrSummaryDcl">Logged on gate open</p>
1092 <span id='meta-synop'></span>
1093 <table class="xdocLabel"><tr>
1094 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1095 <td class="xdocLabelRight"></td>
1096 </tr></table>
1097 <div class="xdocSynMdcl">
1098 <div class="xdocSynCode">
1099 <tt></tt><tt></tt>GateHWSpinlock.<span class="xdoc-id">LM_open</span> = <i><a class="xdoc-link" href="../../../../xdc/runtime/Log.html#.Event.Desc" title="xdc.runtime.Log.EventDesc">Log.EventDesc</a></i> {
1100 </div>
1101 <div class="xdocSynCode">
1102 <tt></tt><tt> </tt>mask: <a class="xdoc-link" href="../../../../xdc/runtime/Diags.html#.U.S.E.R1" title="xdc.runtime.Diags.USER1">Diags.USER1</a>,
1103 </div>
1104 <div class="xdocSynCode">
1105 <tt></tt><tt> </tt>msg: "LM_open: Remote gate (lockNum = %d) opened"
1106 </div>
1107 <div class="xdocSynCode">
1108 <tt></tt><tt></tt>};
1109 </div>
1110 </div>
1111 <div class="xdocSynSpacer"> </div>
1112 <div class="xdocSect">C SYNOPSIS</div>
1113 <div class="xdocText"><a class="xdoc-link" href="#.L.M_open" title="GateHWSpinlock_LM_open">GateHWSpinlock_LM_open</a></div>
1114 <div class="xdocSynSpacer"> </div>
1115 <a class="xdocAnchor" id="metabase.Addr"></a>
1116 <table class="xdocHdr"><tr>
1117 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">baseAddr</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1118 <td class="xdocHdrArrow">
1119 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1120 </table>
1121 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#base.Addr">index URL</a></div>
1122 <p class="xdocHdrSummaryDcl">Device-specific base address for HW Semaphore subsystem</p>
1123 <span id='meta-synop'></span>
1124 <table class="xdocLabel"><tr>
1125 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1126 <td class="xdocLabelRight"></td>
1127 </tr></table>
1128 <div class="xdocSynMdcl">
1129 <div class="xdocSynCode">
1130 <tt></tt><tt></tt>GateHWSpinlock.<span class="xdoc-id">baseAddr</span> = <i><span class="xdoc-kw2">Ptr</span></i> <span class="xdoc-kw2">null</span>;
1131 </div>
1132 </div>
1133 <div class="xdocSynSpacer"> </div>
1134 <div class="xdocSect">C SYNOPSIS</div>
1135 <div class="xdocText"><a class="xdoc-link" href="#base.Addr" title="GateHWSpinlock_baseAddr">GateHWSpinlock_baseAddr</a></div>
1136 <div class="xdocSynSpacer"> </div>
1137 <a class="xdocAnchor" id="common$"></a>
1138 <table class="xdocHdr"><tr>
1139 <td class="xdocHdrTitle"><span class="xdoc-kw1">metaonly </span><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">common$</span> <small><span class="xdocSynSum">// module-wide</span></small></td>
1140 <td class="xdocHdrArrow">
1141 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1142 </table>
1143 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#common$">index URL</a></div>
1144 <p class="xdocHdrSummaryDcl">Common module configuration parameters</p>
1145 <span id='meta-synop'></span>
1146 <table class="xdocLabel"><tr>
1147 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1148 <td class="xdocLabelRight"></td>
1149 </tr></table>
1150 <div class="xdocSynMdcl">
1151 <div class="xdocSynCode">
1152 <tt></tt><tt></tt>GateHWSpinlock.<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>;
1153 </div>
1154 </div>
1155 <div class="xdocSynSpacer"> </div>
1156 <span id="xdoc-sect-1"></span>
1157 <div class="xdocSect">DETAILS</div>
1158 <div class="xdocText">All modules have this configuration parameter. Its name
1159 contains the '$' character to ensure it does not conflict with
1160 configuration parameters declared by the module. This allows
1161 new configuration parameters to be added in the future without
1162 any chance of breaking existing modules.</div>
1163 <div class="xdocSynSpacer"> </div>
1164 <a class="xdocAnchor" id="get.Num.Resources"></a>
1165 <table class="xdocHdr"><tr>
1166 <td class="xdocHdrTitle"><span class="xdoc-kw1">metaonly </span><span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">getNumResources</span>() <small><span class="xdocSynSum">// module-wide</span></small></td>
1167 <td class="xdocHdrArrow">
1168 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1169 </table>
1170 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#get.Num.Resources">index URL</a></div>
1171 <p class="xdocHdrSummaryDcl">Returns the number of resources offered by the GateMP delegate</p>
1172 <span id='meta-synop'></span>
1173 <table class="xdocLabel"><tr>
1174 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1175 <td class="xdocLabelRight"></td>
1176 </tr></table>
1177 <div class="xdocSynMdcl">
1178 <div class="xdocSynCode">
1179 <tt></tt><tt></tt>GateHWSpinlock.<span class="xdoc-id">getNumResources</span>() <i>returns</i> <i><span class="xdoc-kw2">UInt</span></i>
1180 </div>
1181 </div>
1182 <div class="xdocSynSpacer"> </div>
1183 <div class="xdocSynSpacer"> </div>
1184 <a class="xdocAnchor" id="query.Meta"></a>
1185 <table class="xdocHdr"><tr>
1186 <td class="xdocHdrTitle"><span class="xdoc-kw1">metaonly </span><span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">queryMeta</span>() <small><span class="xdocSynSum">// module-wide</span></small></td>
1187 <td class="xdocHdrArrow">
1188 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1189 </table>
1190 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#query.Meta">index URL</a></div>
1191 <p class="xdocHdrSummaryDcl">Configuration time test for a particular gate quality</p>
1192 <span id='meta-synop'></span>
1193 <table class="xdocLabel"><tr>
1194 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1195 <td class="xdocLabelRight"></td>
1196 </tr></table>
1197 <div class="xdocSynMdcl">
1198 <div class="xdocSynCode">
1199 <tt></tt><tt></tt>GateHWSpinlock.<span class="xdoc-id">queryMeta</span>(<i><span class="xdoc-kw2">Int</span></i> <span class="xdoc-id">qual</span>) <i>returns</i> <i><span class="xdoc-kw2">Bool</span></i>
1200 </div>
1201 </div>
1202 <div class="xdocSynSpacer"> </div>
1203 <span id="xdoc-sect-1"></span>
1204 <div class="xdocSect">ARGUMENTS</div>
1205 <div class="xdocChild"><span class="xdocChildId">qual</span>
1206 <span class="xdocChildSum">— constant describing a quality</span>
1207 </div>
1208 <span id="xdoc-sect-2"></span>
1209 <div class="xdocSect">RETURNS</div>
1210 <div class="xdocText">Returns <tt>TRUE</tt> if the gate has the given quality,
1211 and <tt>FALSE</tt> otherwise, which includes the case when the gate does not
1212 recognize the constant describing the quality.</div>
1213 <div class="xdocSynSpacer"> </div>
1214 <a class="xdocAnchor" id="set.Reserved"></a>
1215 <table class="xdocHdr"><tr>
1216 <td class="xdocHdrTitle"><span class="xdoc-kw1">metaonly </span><span class="xdoc-id">GateHWSpinlock.</span><span class="xdoc-id">setReserved</span>() <small><span class="xdocSynSum">// module-wide</span></small></td>
1217 <td class="xdocHdrArrow">
1218 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1219 </table>
1220 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#set.Reserved">index URL</a></div>
1221 <p class="xdocHdrSummaryDcl">Reserve a HW spinlock for use outside of IPC</p>
1222 <span id='meta-synop'></span>
1223 <table class="xdocLabel"><tr>
1224 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1225 <td class="xdocLabelRight"></td>
1226 </tr></table>
1227 <div class="xdocSynMdcl">
1228 <div class="xdocSynCode">
1229 <tt></tt><tt></tt>GateHWSpinlock.<span class="xdoc-id">setReserved</span>(<i><span class="xdoc-kw2">UInt</span></i> <span class="xdoc-id">lockNum</span>) <i>returns</i> <i><span class="xdoc-kw2">Void</span></i>
1230 </div>
1231 </div>
1232 <div class="xdocSynSpacer"> </div>
1233 <span id="xdoc-sect-1"></span>
1234 <div class="xdocSect">ARGUMENTS</div>
1235 <div class="xdocChild"><span class="xdocChildId">lockNum</span>
1236 <span class="xdocChildSum">— HW spinlock number to reserve</span>
1237 </div>
1238 <span id="xdoc-sect-2"></span>
1239 <div class="xdocSect">DETAILS</div>
1240 <div class="xdocText">GateMP will, by default, manage all HW spinlocks on the device unless
1241 this API is used to set aside specific spinlocks for use outside
1242 of IPC.</div>
1243 <a class="xdocAnchor" id="metaper-instance_config_parameters"></a>
1244 <table class="xdocHdr"><tr>
1245 <td class="xdocHdrTitle"><span class="xdocSynSum">Instance Config Parameters</span></td>
1246 <td class="xdocHdrArrow">
1247 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1248 </table>
1249 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_config_parameters">index URL</a></div>
1250 <p class="xdocHdrSummary"></p>
1251 <span id='meta-synop'></span>
1252 <table class="xdocLabel"><tr>
1253 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1254 <td class="xdocLabelRight"></td>
1255 </tr></table>
1256 <div class="xdocSynMdcl">
1257 <div class="xdocSynCode">
1258 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> GateHWSpinlock.<span class="xdoc-id">Params</span>;
1259 </div>
1260 <div class='xdocSynSum'><tt></tt><tt></tt>// Instance config-params object</div>
1261 <div class="xdocSynCode">
1262 <tt></tt><tt> </tt>params.<span class="xdoc-id">resourceId</span> = <i><span class="xdoc-kw2">UInt</span></i> 0;
1263 </div>
1264 <div class='xdocSynSum'><tt></tt><tt> </tt>// Logical resource id</div>
1265 <div class="xdocSynCode">
1266 <tt></tt><tt> </tt>params.<span class="xdoc-id">sharedAddr</span> = <i><span class="xdoc-kw2">Ptr</span></i> <span class="xdoc-kw2">null</span>;
1267 </div>
1268 <div class='xdocSynSum'><tt></tt><tt> </tt>// Physical address of the shared memory</div>
1269 </div>
1270 <div class="xdocSynSpacer"> </div>
1271 <a class="xdocAnchor" id="metaresource.Id"></a>
1272 <table class="xdocHdr"><tr>
1273 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock.Params.</span><span class="xdoc-id">resourceId</span> <small><span class="xdocSynSum">// instance</span></small></td>
1274 <td class="xdocHdrArrow">
1275 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1276 </table>
1277 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#resource.Id">index URL</a></div>
1278 <p class="xdocHdrSummaryDcl">Logical resource id</p>
1279 <span id='meta-synop'></span>
1280 <table class="xdocLabel"><tr>
1281 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1282 <td class="xdocLabelRight"></td>
1283 </tr></table>
1284 <div class="xdocSynMdcl">
1285 <div class="xdocSynCode">
1286 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> GateHWSpinlock.<span class="xdoc-id">Params</span>;
1287 </div>
1288 <div class="xdocSynCode">
1289 <tt></tt><tt></tt><b> ...</b>
1290 </div>
1291 <div class="xdocSynCode">
1292 <tt></tt><tt></tt>params.<span class="xdoc-id">resourceId</span> = <i><span class="xdoc-kw2">UInt</span></i> 0;
1293 </div>
1294 </div>
1295 <div class="xdocSynSpacer"> </div>
1296 <div class="xdocSect">C SYNOPSIS</div>
1297 <div class="xdocText"><a class="xdoc-link" href="#resource.Id" title="GateHWSpinlock_Params.resourceId">GateHWSpinlock_Params.resourceId</a></div>
1298 <div class="xdocSynSpacer"> </div>
1299 <a class="xdocAnchor" id="metashared.Addr"></a>
1300 <table class="xdocHdr"><tr>
1301 <td class="xdocHdrTitle"><span class="xdoc-kw1">config</span> <span class="xdoc-id">GateHWSpinlock.Params.</span><span class="xdoc-id">sharedAddr</span> <small><span class="xdocSynSum">// instance</span></small></td>
1302 <td class="xdocHdrArrow">
1303 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1304 </table>
1305 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#shared.Addr">index URL</a></div>
1306 <p class="xdocHdrSummaryDcl">Physical address of the shared memory</p>
1307 <span id='meta-synop'></span>
1308 <table class="xdocLabel"><tr>
1309 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1310 <td class="xdocLabelRight"></td>
1311 </tr></table>
1312 <div class="xdocSynMdcl">
1313 <div class="xdocSynCode">
1314 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> GateHWSpinlock.<span class="xdoc-id">Params</span>;
1315 </div>
1316 <div class="xdocSynCode">
1317 <tt></tt><tt></tt><b> ...</b>
1318 </div>
1319 <div class="xdocSynCode">
1320 <tt></tt><tt></tt>params.<span class="xdoc-id">sharedAddr</span> = <i><span class="xdoc-kw2">Ptr</span></i> <span class="xdoc-kw2">null</span>;
1321 </div>
1322 </div>
1323 <div class="xdocSynSpacer"> </div>
1324 <span id="xdoc-sect-1"></span>
1325 <div class="xdocSect">DETAILS</div>
1326 <div class="xdocText">This parameter is only used by GateMP delegates that use shared memory</div>
1327 <div class="xdocSect">C SYNOPSIS</div>
1328 <div class="xdocText"><a class="xdoc-link" href="#shared.Addr" title="GateHWSpinlock_Params.sharedAddr">GateHWSpinlock_Params.sharedAddr</a></div>
1329 <a class="xdocAnchor" id="metaper-instance_creation"></a>
1330 <table class="xdocHdr"><tr>
1331 <td class="xdocHdrTitle"><span class="xdocSynSum">Static Instance Creation</span></td>
1332 <td class="xdocHdrArrow">
1333 <a class="xdocHdrLink" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html" title="module GateHWSpinlock"><img class="xdocHdrArrow" src="../../../../Arrow_up.png"/></a></td>
1334 </table>
1335 <div class=xdocHdrIndex><a class=xdocHdrIndex title="right-click to capture" href="../../../../index.html#ti/sdo/ipc/gates/GateHWSpinlock.html#per-instance_creation">index URL</a></div>
1336 <p class="xdocHdrSummary"></p>
1337 <span id='meta-synop'></span>
1338 <table class="xdocLabel"><tr>
1339 <td class="xdocLabelLeft"><tt><span class="xdoc-id-meta2dcl"></span></tt>Configuration settings</td>
1340 <td class="xdocLabelRight"></td>
1341 </tr></table>
1342 <div class="xdocSynMdcl">
1343 <div class="xdocSynCode">
1344 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> params = <span class="xdoc-kw1">new</span> GateHWSpinlock.<a class="xdoc-link" href="../../../../ti/sdo/ipc/gates/GateHWSpinlock.html#metaper-instance_config_parameters" title="ti.sdo.ipc.gates.GateHWSpinlock.Params">Params</a>;
1345 </div>
1346 <div class='xdocSynSum'><tt></tt><tt></tt>// Allocate instance config-params</div>
1347 <div class="xdocSynCode">
1348 <tt></tt><tt></tt>params.<i>config</i> = <b> ...</b>
1349 </div>
1350 <div class='xdocSynSum'><tt></tt><tt></tt>// Assign individual configs</div>
1351 <div class="xdocSynSpacer"> </div>
1352 <div class="xdocSynCode">
1353 <tt></tt><tt></tt><span class="xdoc-kw1">var</span> inst = GateHWSpinlock.<span class="xdoc-id">create</span>(<i><a class="xdoc-link" href="../../../../xdc/runtime/IGateProvider.html#per-instance_object_types" title="xdc.runtime.IGateProvider.Handle">IGateProvider.Handle</a></i> <span class="xdoc-id">localGate</span>, params);
1354 </div>
1355 <div class='xdocSynSum'><tt></tt><tt></tt>// Create an instance-object</div>
1356 </div>
1357 <span id="xdoc-sect-1"></span>
1358 <div class="xdocSect">ARGUMENTS</div>
1359 <div class="xdocChild"><span class="xdocChildId">localGate</span>
1360 <span class="xdocChildSum">— Gate to use for local protection.</span>
1361 </div>
1362 <div class="xdocChild"><span class="xdocChildId">params</span>
1363 <span class="xdocChildSum">— per-instance config params, or <tt>NULL</tt> to select default values (target-domain only)</span>
1364 </div>
1365 <div class="xdocChild"><span class="xdocChildId">eb</span>
1366 <span class="xdocChildSum">— active error-handling block, or <tt>NULL</tt> to select default policy (target-domain only)</span>
1367 </div>
1368 <span id="xdoc-sect-2"></span>
1369 <div class="xdocSect">DETAILS</div>
1370 <div class="xdocText">A Non-NULL gate for local protection must be passed to the create
1371 call. If no local protection is desired, a
1372 <a class="xdoc-link" href="../../../../xdc/runtime/GateNull.html" title="xdc.runtime.GateNull">xdc.runtime.GateNull</a> handle must be passed in.</div>
1373 </div>
1374 <div id="xdocDate">generated on Mon, 23 May 2016 14:31:20 GMT</div>
1375 </div></div></body>
1376 </html>