OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / hardware / ti / omap3 / dspbridge / inc / dbdcddef.h
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  *  ======== dbdcddef.h ========
19  *  DSP-BIOS Bridge driver support functions for TI OMAP processors.
20  *  Description:
21  *      DCD (DSP/BIOS Bridge Configuration Database) constants and types.
22  *
23  *! Revision History:
24  *! ================
25  *! 03-Dec-2003 map Moved and renamed DCD_OBJTYPE to DSP_DCDOBJTYPE in dbdefs.h
26  *! 05-Dec-2002 map Added DCD_CREATELIBTYPE, DCD_EXECUTELIBTYPE, 
27                                         DCD_DELETELIBTYPE
28  *! 24-Feb-2003 kc  Updated REG entry names to DspBridge.
29  *! 22-Nov-2002 gp  Cleaned up comments, formatting.
30  *! 05-Aug-2002 jeh Added DCD_REGISTERFXN.
31  *! 19-Apr-2002 jeh Added DCD_LIBRARYTYPE to DCD_OBJTYPE, dynamic load
32  *!                 properties to DCD_NODEPROPS.
33  *! 29-Jul-2001 ag  Added extended procObj.
34  *! 13-Feb-2001 kc: Named changed from dcdbsdef.h dbdcddef.h.
35  *! 12-Dec-2000 jeh Added DAIS iAlg name to DCD_NODEPROPS.
36  *! 30-Oct-2000 kc: Added #defines for DCD_AutoRegister function.
37  *! 05-Sep-2000 jeh Added DCD_NODEPROPS.
38  *! 12-Aug-2000 kc: Incoroporated the use of types defined in <dspdefs.h>.
39  *! 29-Jul-2000 kc: Created.
40  */
41
42 #ifndef DBDCDDEF_
43 #define DBDCDDEF_
44
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48
49 #include <dbdefs.h>
50 #include <mgrpriv.h>            /* for MGR_PROCESSOREXTINFO */
51
52 /*
53  *  The following defines are critical elements for the DCD module:
54  *
55  * - DCD_REGKEY enables DCD functions to locate registered DCD objects.
56  * - DCD_REGISTER_SECTION identifies the COFF section where the UUID of
57  *   registered DCD objects are stored.
58  */
59 #define DCD_REGKEY              "Software\\TexasInstruments\\DspBridge\\DCD"
60 #define DCD_REGISTER_SECTION    ".dcd_register"
61
62 /* DCD Manager Object */
63         struct DCD_MANAGER;
64         /*typedef struct DCD_MANAGER *DCD_HMANAGER;*/
65
66 /* DCD Node Properties */
67         struct DCD_NODEPROPS {
68                 struct DSP_NDBPROPS ndbProps;
69                 UINT uMsgSegid;
70                 UINT uMsgNotifyType;
71                 PSTR pstrCreatePhaseFxn;
72                 PSTR pstrDeletePhaseFxn;
73                 PSTR pstrExecutePhaseFxn;
74                 PSTR pstrIAlgName;
75
76                 /* Dynamic load properties */
77                 USHORT usLoadType;      /* Static, dynamic, overlay */
78                 ULONG ulDataMemSegMask; /* Data memory requirements */
79                 ULONG ulCodeMemSegMask; /* Code memory requirements */
80         } ;
81
82 /* DCD Generic Object Type */
83         struct DCD_GENERICOBJ {
84                 union dcdObjUnion {
85                         struct DCD_NODEPROPS nodeObj;   /* node object. */
86                         struct DSP_PROCESSORINFO procObj;       /* processor object. */
87                         /* extended proc object (private) */
88                         struct MGR_PROCESSOREXTINFO extProcObj;
89                 } objData;
90         } ;
91
92 /* DCD Internal Callback Type */
93         typedef DSP_STATUS(CDECL * DCD_REGISTERFXN) (IN struct DSP_UUID * pUuid,
94                                                      IN DSP_DCDOBJTYPE objType,
95                                                      IN PVOID handle);
96
97         typedef DSP_STATUS(CDECL * DCD_UNREGISTERFXN) (IN struct DSP_UUID * pUuid,
98                                                        IN DSP_DCDOBJTYPE
99                                                        objType);
100
101 #ifdef __cplusplus
102 }
103 #endif
104 #endif                          /* DBDCDDEF_ */
105