• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Copyright 2001-2008 Texas Instruments - http://www.ti.com/
3  *
4  *  Licensed under the Apache License, Version 2.0 (the "License");
5  *  you may not use this file except in compliance with the License.
6  *  You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *  Unless required by applicable law or agreed to in writing, software
11  *  distributed under the License is distributed on an "AS IS" BASIS,
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License.
15  */
16 
17 
18 /*
19  *  ======== DSPManager.h ========
20  *  DSP-BIOS Bridge driver support functions for TI OMAP processors.
21  *  Description:
22  *      This is the header for the DSP/BIOS Bridge manager module.
23  *
24  *  Public Functions:
25  *      DspManager_Open
26  *      DspManager_Close
27  *      DSPManager_EnumNodeInfo
28  *      DSPManager_EnumProcessorInfo
29  *      DSPManager_WaitForEvents
30  *      DSPManager_RegisterObject
31  *      DSPManager_UnregisterObject
32  *
33  *! Revision History:
34  *! ================
35  *! 03-Dec-2003 map Replaced include of dbdcddefs.h with dbdefs.h
36  *! 22-Nov-2002 gp  Replaced include of dbdcd.h w/ dbdcddefs.h (hiding DCD APIs)
37  *!                 Formatting cleanup.
38  *! 15-Oct-2002 kc  Removed legacy PERF definitions.
39  *! 16-Aug-2002 map Added DSPManager_RegisterObject/UnregisterObject for
40  *!                     registering Dynamic Libraries
41  *! 13-Feb-2001 kc: DSP/BIOS Bridge name updates.
42  *! 22-Nov-2000 kc: Added DSPManager_PerfGetStat to acquire PERF stats.
43  *! 25-Sep-2000 rr: Updated to Version 0.9
44  *! 14-Aug-2000 rr: Cleaned up.
45  *! 20-Jul-2000 rr: Updated to Version 0.8.
46  *! 27-Jun-2000 rr: Created from dbapi.h
47  */
48 
49 #ifndef DSPMANAGER_
50 #define DSPMANAGER_
51 
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
55 
56 #include <dbdefs.h>
57 
58 /*
59  *  ======== DspManager_Open ========
60  *  Purpose:
61  *      Open handle to the DSP/BIOS Bridge driver
62  *  Parameters:
63  *      argc:               Reserved, set to zero
64  *      argp:               Reserved, set to NULL
65  *                          in the database will be returned.
66  *  Returns:
67  *      DSP_SOK:            Success.
68  *      DSP_EFAIL:          Failed to open handle to the DSP/BIOS Bridge driver
69  *  Details:
70  */
71 	extern DBAPI DspManager_Open(UINT argc, PVOID argp);
72 
73 /*
74  *  ======== DspManager_Close ========
75  *  Purpose:
76  *      Close handle to the DSP/BIOS Bridge driver
77  *  Parameters:
78  *      argc:               Reserved, set to zero
79  *      argp:               Reserved, set to NULL
80  *                          in the database will be returned.
81  *  Returns:
82  *      DSP_SOK:            Success.
83  *      DSP_EFAIL:          Failed to close handle to the DSP/BIOS Bridge driver
84  *  Details:
85  */
86 	extern DBAPI DspManager_Close(UINT argc, PVOID argp);
87 
88 /*
89  *  ======== DSPManager_EnumNodeInfo ========
90  *  Purpose:
91  *      Enumerate and get configuration information about nodes configured
92  *      in the node database.
93  *  Parameters:
94  *      uNode:              The node index, counting up from 0.
95  *      pNDBProps:          Ptr to the DSP_NDBPROPS structure for output.
96  *      uNDBPropsSize:      Size of the DSP_NDBPROPS structure.
97  *      puNumNodes:         Location where the number of nodes configured
98  *                          in the database will be returned.
99  *  Returns:
100  *      DSP_SOK:            Success.
101  *      DSP_EINVALIDARG:    Parameter uNode is out of range
102  *      DSP_EPOINTER:       Parameter pNDBProps or puNumNodes is not valid
103  *      DSP_EFAIL:          Unable to get the node information.
104  *      DSP_ESIZE:          The size of the specified DSP_NDBPROPS structure
105  *                          is too small to hold all node information,
106  *                          (i.e., uNDBPropsSize is too small).
107  *      DSP_ECHANGEDURINGENUM:  During Enumeration there has been a change in
108  *                          the number of nodes configured or in the
109  *                          the properties of the enumerated nodes.
110  *  Details:
111  */
112 	extern DBAPI DSPManager_EnumNodeInfo(UINT uNode,
113 					     OUT struct DSP_NDBPROPS * pNDBProps,
114 					     UINT uNDBPropsSize,
115 					     OUT UINT * puNumNodes);
116 
117 /*
118  *  ======== DSPManager_EnumProcessorInfo ========
119  *  Purpose:
120  *      Enumerate and get configuration information about available DSP
121  *      processors.
122  *  Parameters:
123  *      uProcessor:         The processor index, counting up from 0.
124  *      pProcessorInfo:     Ptr to the DSP_PROCESSORINFO structure .
125  *      uProcessorInfoSize: Size of DSP_PROCESSORINFO structure.
126  *      puNumProcs:         Location where the number of DSPs configured
127  *                          in the database will be returned
128  *  Returns:
129  *      DSP_SOK:            Success.
130  *      DSP_EINVALIDARG:    Parameter uProcessor is out of range
131  *      DSP_EPOINTER:       Parameter pProcessorInfo or puNumProcs is not valid.
132  *      DSP_EFAIL:          Unable to get the processor information.
133  *      DSP_ESIZE:          The size of the specified DSP_PROCESSORINFO struct
134  *                          is too small to hold all the processor information,
135  *                          (i.e., uProcessorInfoSize is too small).
136  *  Details:
137  */
138 	extern DBAPI DSPManager_EnumProcessorInfo(UINT uProcessor,
139 						  OUT struct DSP_PROCESSORINFO *
140 						  pProcessorInfo,
141 						  UINT uProcessorInfoSize,
142 						  OUT UINT * puNumProcs);
143 
144 /*
145  *  ======== DSPManager_WaitForEvents ========
146  *  Purpose:
147  *      Block on any Bridge event(s)
148  *  Parameters:
149  *      aNotifications  : array of pointers to notification objects.
150  *      uCount          : number of elements in above array
151  *      puIndex         : index of signaled event object
152  *      uTimeout        : timeout interval in milliseocnds
153  *  Returns:
154  *      DSP_SOK         : Success.
155  *      DSP_ETIMEOUT    : Wait timed out. *puIndex is undetermined.
156  *  Details:
157  */
158 	extern DBAPI DSPManager_WaitForEvents(struct DSP_NOTIFICATION**
159 					      aNotifications, UINT uCount,
160 					      OUT UINT * puIndex,
161 					      UINT uTimeout);
162 
163 /*
164  *  ======== DSPManager_RegisterObject ========
165  *  Purpose:
166  *     Register object with DSP/BIOS Bridge Configuration database (DCD).
167  *  Parameters:
168  *     pUuid:          Pointer to UUID structure.
169  *     objType:        Library Type
170  *     pszPathName:    Path to library
171  *  Returns:
172  *     DSP_SOK:        Success.
173  *     DSP_EFAIL:      Unable to register object with the DCD.
174  *  Details:
175  */
176 	extern DBAPI DSPManager_RegisterObject(struct DSP_UUID * pUuid,
177 					       DSP_DCDOBJTYPE objType,
178 					       CHAR * pszPathName);
179 
180 /*
181  *  ======== DSPManager_UnregisterObject ========
182  *  Purpose:
183  *     Unregister object with DSP/BIOS Bridge Configuration Database (DCD).
184  *  Parameters:
185  *     pUuid:          Pointer to UUID structure.
186  *     objType:        Library Type
187  *  Returns:
188  *     DSP_SOK:        Success.
189  *     DSP_EFAIL:      Unable to unregister object from the DCD.
190  *  Details:
191  */
192 	extern DBAPI DSPManager_UnregisterObject(struct DSP_UUID * pUuid,
193 						 DSP_DCDOBJTYPE objType);
194 
195 #ifndef RES_CLEANUP_DISABLE
196 /*
197  *  ======== DSPManager_GetProcResourceInfo========
198  *  Purpose:
199  *     Get GPP process resource information.
200  *  Parameters:
201  *     pBuf:           Pointer to information buffer.
202  *  Returns:
203  *     DSP_SOK:        Success.
204  *     DSP_EFAIL:      Unable to unregister object from the DCD.
205  *  Details:
206  */
207 	extern DBAPI DSPManager_GetProcResourceInfo(UINT *pBuf, UINT *pSize);
208 #endif
209 
210 
211 #ifdef __cplusplus
212 }
213 #endif
214 #endif				/* DSPManager_ */
215