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