• 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  *  ======== 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 
106