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