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
46extern "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