[processor-sdk/performance-audio-sr.git] / processor_audio_sdk_1_00_00_00 / psdk_cust / ipc_3_43_00_00_eng / docs / cdoc / ti / sdo / ipc / notifyDrivers / IInterrupt-src.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <html><head><title>interface ti.sdo.ipc.notifyDrivers.IInterrupt</title>
3 <meta name="googlebot" content="noindex,nofollow">
4 <link rel="stylesheet" type="text/css" href="../../../../src.css"/>
5 </head>
6 <body>
7 <pre class=src>
8 1 <span class="comment">/*
9 </span> 2 <span class="comment"> * Copyright (c) 2012-2013, Texas Instruments Incorporated
10 </span> 3 <span class="comment"> * All rights reserved.
11 </span> 4 <span class="comment"> *
12 </span> 5 <span class="comment"> * Redistribution and use in source and binary forms, with or without
13 </span> 6 <span class="comment"> * modification, are permitted provided that the following conditions
14 </span> 7 <span class="comment"> * are met:
15 </span> 8 <span class="comment"> *
16 </span> 9 <span class="comment"> * * Redistributions of source code must retain the above copyright
17 </span> 10 <span class="comment"> * notice, this list of conditions and the following disclaimer.
18 </span> 11 <span class="comment"> *
19 </span> 12 <span class="comment"> * * Redistributions in binary form must reproduce the above copyright
20 </span> 13 <span class="comment"> * notice, this list of conditions and the following disclaimer in the
21 </span> 14 <span class="comment"> * documentation and/or other materials provided with the distribution.
22 </span> 15 <span class="comment"> *
23 </span> 16 <span class="comment"> * * Neither the name of Texas Instruments Incorporated nor the names of
24 </span> 17 <span class="comment"> * its contributors may be used to endorse or promote products derived
25 </span> 18 <span class="comment"> * from this software without specific prior written permission.
26 </span> 19 <span class="comment"> *
27 </span> 20 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
28 </span> 21 <span class="comment"> * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
29 </span> 22 <span class="comment"> * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30 </span> 23 <span class="comment"> * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
31 </span> 24 <span class="comment"> * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
32 </span> 25 <span class="comment"> * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
33 </span> 26 <span class="comment"> * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
34 </span> 27 <span class="comment"> * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
35 </span> 28 <span class="comment"> * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
36 </span> 29 <span class="comment"> * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
37 </span> 30 <span class="comment"> * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 </span> 31 <span class="comment"> */</span>
39 32 <span class="comment">/*
40 </span> 33 <span class="comment"> * ======== IInterrupt.xdc ========
41 </span> 34 <span class="comment"> *
42 </span> 35 <span class="comment"> */</span>
43 36
44 37 <span class="xdoc">/*!
45 </span> 38 <span class="xdoc"> * ======== IInterrupt ========
46 </span> 39 <span class="xdoc"> * Interface for the inter-processor interrupts
47 </span> 40 <span class="xdoc"> */</span>
48 41 <span class=key>interface</span> IInterrupt {
49 42
50 43 <span class=key>struct</span> IntInfo {
51 44 UInt localIntId;
52 45 UInt remoteIntId;
53 46 UInt intVectorId;
54 47 }
55 48
56 49 <span class="xdoc">/*!
57 </span> 50 <span class="xdoc"> * ======== intEnable ========
58 </span> 51 <span class="xdoc"> * Enables the interrupt corresponding to intId
59 </span> 52 <span class="xdoc"> *
60 </span> 53 <span class="xdoc"> * <b>@param(remoteProcId)</b> Remote MultiProc Id
61 </span> 54 <span class="xdoc"> * <b>@param(intInfo)</b> Information needed to configure interrupt line
62 </span> 55 <span class="xdoc"> */</span>
63 56 @DirectCall
64 57 Void intEnable(UInt16 remoteProcId, IntInfo *intInfo);
65 58
66 59 <span class="xdoc">/*!
67 </span> 60 <span class="xdoc"> * ======== intDisable ========
68 </span> 61 <span class="xdoc"> * Disables the interrupt corresponding to intId
69 </span> 62 <span class="xdoc"> *
70 </span> 63 <span class="xdoc"> * <b>@param(remoteProcId)</b> Remote MultiProc Id
71 </span> 64 <span class="xdoc"> * <b>@param(intInfo)</b> Information needed to configure interrupt line
72 </span> 65 <span class="xdoc"> */</span>
73 66 @DirectCall
74 67 Void intDisable(UInt16 remoteProcId, IntInfo *intInfo);
75 68
76 69 <span class="xdoc">/*!
77 </span> 70 <span class="xdoc"> * ======== intRegister ========
78 </span> 71 <span class="xdoc"> * Register an interrupt line to a remote processor
79 </span> 72 <span class="xdoc"> *
80 </span> 73 <span class="xdoc"> * <b>@param(remoteProcId)</b> Remote MultiProc Id
81 </span> 74 <span class="xdoc"> * <b>@param(intInfo)</b> Information needed to configure interrupt line
82 </span> 75 <span class="xdoc"> * <b>@param(func)</b> Function to register.
83 </span> 76 <span class="xdoc"> * <b>@param(arg)</b> Argument that will be passed to func
84 </span> 77 <span class="xdoc"> */</span>
85 78 @DirectCall
86 79 Void intRegister(UInt16 remoteProcId, IntInfo *intInfo, Fxn func, UArg arg);
87 80
88 81 <span class="xdoc">/*!
89 </span> 82 <span class="xdoc"> * ======== intUnregister ========
90 </span> 83 <span class="xdoc"> * Unregister an interrupt line to a remote processor
91 </span> 84 <span class="xdoc"> *
92 </span> 85 <span class="xdoc"> * <b>@param(remoteProcId)</b> Remote MultiProc Id
93 </span> 86 <span class="xdoc"> * <b>@param(intInfo)</b> Information needed to configure interrupt line
94 </span> 87 <span class="xdoc"> */</span>
95 88 @DirectCall
96 89 Void intUnregister(UInt16 remoteProcId, IntInfo *intInfo);
97 90
98 91 <span class="xdoc">/*!
99 </span> 92 <span class="xdoc"> * ======== intSend ========
100 </span> 93 <span class="xdoc"> * Send interrupt to the remote processor
101 </span> 94 <span class="xdoc"> *
102 </span> 95 <span class="xdoc"> * <b>@param(remoteProcId)</b> Remote MultiProc Id
103 </span> 96 <span class="xdoc"> * <b>@param(intInfo)</b> Information needed to configure interrupt line
104 </span> 97 <span class="xdoc"> * <b>@param(arg)</b> Argument for sending interrupt.
105 </span> 98 <span class="xdoc"> */</span>
106 99 @DirectCall
107 100 Void intSend(UInt16 remoteProcId, IntInfo *intInfo, UArg arg);
108 101
109 102 <span class="xdoc">/*!
110 </span> 103 <span class="xdoc"> * <b>@_nodoc</b>
111 </span> 104 <span class="xdoc"> * Post an interrupt locally.
112 </span> 105 <span class="xdoc"> *
113 </span> 106 <span class="xdoc"> * Used to simulate receiving an interrupt from a remote (source)
114 </span> 107 <span class="xdoc"> * processor
115 </span> 108 <span class="xdoc"> *
116 </span> 109 <span class="xdoc"> * <b>@param(remoteProcId)</b> Source MultiProc Id
117 </span> 110 <span class="xdoc"> * <b>@param(intInfo)</b> Information needed to configure interrupt line
118 </span> 111 <span class="xdoc"> * <b>@param(arg)</b> Argument for sending interrupt.
119 </span> 112 <span class="xdoc"> */</span>
120 113 @DirectCall
121 114 Void intPost(UInt16 srcProcId, IntInfo *intInfo, UArg arg);
122 115
123 116 <span class="xdoc">/*!
124 </span> 117 <span class="xdoc"> * ======== intClear ========
125 </span> 118 <span class="xdoc"> * Clear interrupt
126 </span> 119 <span class="xdoc"> *
127 </span> 120 <span class="xdoc"> * <b>@param(remoteProcId)</b> Remote MultiProc Id
128 </span> 121 <span class="xdoc"> * <b>@param(intInfo)</b> Information needed to configure interrupt line
129 </span> 122 <span class="xdoc"> *
130 </span> 123 <span class="xdoc"> * <b>@b(returns)</b> Value (if any) of the interrupt before
131 </span> 124 <span class="xdoc"> * it was cleared
132 </span> 125 <span class="xdoc"> */</span>
133 126 @DirectCall
134 127 UInt intClear(UInt16 remoteProcId, IntInfo *intInfo);
135 128 }
136 </pre>
137 </body></html>