Home | History | Annotate | Download | only in inc
      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