/*
* Copyright 2001-2008 Texas Instruments - http://www.ti.com/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* ======== dbdcddef.h ========
* DSP-BIOS Bridge driver support functions for TI OMAP processors.
* Description:
* DCD (DSP/BIOS Bridge Configuration Database) constants and types.
*
*! Revision History:
*! ================
*! 03-Dec-2003 map Moved and renamed DCD_OBJTYPE to DSP_DCDOBJTYPE in dbdefs.h
*! 05-Dec-2002 map Added DCD_CREATELIBTYPE, DCD_EXECUTELIBTYPE,
DCD_DELETELIBTYPE
*! 24-Feb-2003 kc Updated REG entry names to DspBridge.
*! 22-Nov-2002 gp Cleaned up comments, formatting.
*! 05-Aug-2002 jeh Added DCD_REGISTERFXN.
*! 19-Apr-2002 jeh Added DCD_LIBRARYTYPE to DCD_OBJTYPE, dynamic load
*! properties to DCD_NODEPROPS.
*! 29-Jul-2001 ag Added extended procObj.
*! 13-Feb-2001 kc: Named changed from dcdbsdef.h dbdcddef.h.
*! 12-Dec-2000 jeh Added DAIS iAlg name to DCD_NODEPROPS.
*! 30-Oct-2000 kc: Added #defines for DCD_AutoRegister function.
*! 05-Sep-2000 jeh Added DCD_NODEPROPS.
*! 12-Aug-2000 kc: Incoroporated the use of types defined in <dspdefs.h>.
*! 29-Jul-2000 kc: Created.
*/
#ifndef DBDCDDEF_
#define DBDCDDEF_
#ifdef __cplusplus
extern "C" {
#endif
#include <dbdefs.h>
#include <mgrpriv.h> /* for MGR_PROCESSOREXTINFO */
/*
* The following defines are critical elements for the DCD module:
*
* - DCD_REGKEY enables DCD functions to locate registered DCD objects.
* - DCD_REGISTER_SECTION identifies the COFF section where the UUID of
* registered DCD objects are stored.
*/
#define DCD_REGKEY "Software\\TexasInstruments\\DspBridge\\DCD"
#define DCD_REGISTER_SECTION ".dcd_register"
/* DCD Manager Object */
struct DCD_MANAGER;
/*typedef struct DCD_MANAGER *DCD_HMANAGER;*/
/* DCD Node Properties */
struct DCD_NODEPROPS {
struct DSP_NDBPROPS ndbProps;
UINT uMsgSegid;
UINT uMsgNotifyType;
PSTR pstrCreatePhaseFxn;
PSTR pstrDeletePhaseFxn;
PSTR pstrExecutePhaseFxn;
PSTR pstrIAlgName;
/* Dynamic load properties */
USHORT usLoadType; /* Static, dynamic, overlay */
ULONG ulDataMemSegMask; /* Data memory requirements */
ULONG ulCodeMemSegMask; /* Code memory requirements */
} ;
/* DCD Generic Object Type */
struct DCD_GENERICOBJ {
union dcdObjUnion {
struct DCD_NODEPROPS nodeObj; /* node object. */
struct DSP_PROCESSORINFO procObj; /* processor object. */
/* extended proc object (private) */
struct MGR_PROCESSOREXTINFO extProcObj;
} objData;
} ;
/* DCD Internal Callback Type */
typedef DSP_STATUS(CDECL * DCD_REGISTERFXN) (IN struct DSP_UUID * pUuid,
IN DSP_DCDOBJTYPE objType,
IN PVOID handle);
typedef DSP_STATUS(CDECL * DCD_UNREGISTERFXN) (IN struct DSP_UUID * pUuid,
IN DSP_DCDOBJTYPE
objType);
#ifdef __cplusplus
}
#endif
#endif /* DBDCDDEF_ */