blob: 1c894d84c36d8bf06763f2c3ae6467f4592196eb [file] [log] [blame]
preludedrewf4ed1b62010-12-30 20:53:51 -07001/*
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