/*
* dspbridge/mpu_api/inc/dbdcddef.h
*
* DSP-BIOS Bridge driver support functions for TI OMAP processors.
*
* Copyright (C) 2007 Texas Instruments, Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation version 2.1 of the License.
*
* This program is distributed .as is. WITHOUT ANY WARRANTY of any kind,
* whether express or implied; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
/*
* ======== dbdcddef.h ========
* 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_ */