173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Copyright 2001-2008 Texas Instruments - http://www.ti.com/ 373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Licensed under the Apache License, Version 2.0 (the "License"); 573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * you may not use this file except in compliance with the License. 673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * You may obtain a copy of the License at 773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * http://www.apache.org/licenses/LICENSE-2.0 973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 1073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Unless required by applicable law or agreed to in writing, software 1173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * distributed under the License is distributed on an "AS IS" BASIS, 1273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * See the License for the specific language governing permissions and 1473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * limitations under the License. 1573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 1673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 1773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 1873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== dbdcd.h ======== 1973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP-BIOS Bridge driver support functions for TI OMAP processors. 2073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Description: 2173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Defines the DSP/BIOS Bridge Configuration Database (DCD) API. 2273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 2373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! Revision History 2473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! ================ 2573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 03-Dec-2003 map Changed DCD_OBJTYPE to DSP_DCDOBJTYPE 2673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 24-Feb-2003 kc Updated DCD_AutoUnregister and DCD_GetObjects to simplify 2773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! DCD implementation. 2873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 05-Aug-2002 jeh Added DCD_GetObjects(). 2973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 11-Jul-2002 jeh Added DCD_GetDepLibs(), DCD_GetNumDepLibs(). 3073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 22-Apr-2002 jeh Added DCD_GetLibraryName(). 3173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 03-Apr-2001 sg Changed error names to have DCD_E* format. 3273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 13-Feb-2001 kc Name changed from dcdbs.h to dbdcd.h. 3373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 12-Dec-2000 kc Added DCD_AutoUnregister. 3473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 09-Nov-2000 kc Updated usage of DCD_EnumerateObject. 3573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 30-Oct-2000 kc Added DCD_AutoRegister. Updated error DCD error codes. 3673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 29-Sep-2000 kc Incorporated code review comments. See 3773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! /src/reviews/dcd_review.txt. 3873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 26-Jul-2000 kc Created. 3973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 4073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 4173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 4273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifndef DBDCD_ 4373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DBDCD_ 4473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 4573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus 4673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinextern "C" { 4773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif 4873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 4973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#include <dbdcddef.h> 5073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#include <nldrdefs.h> 5173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 5273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 5373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_AutoRegister ======== 5473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 5573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function automatically registers DCD objects specified in a 5673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * special COFF section called ".dcd_register" 5773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 5873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hDcdMgr: A DCD manager handle. 5973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pszCoffPath: Pointer to name of COFF file containing DCD 6073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * objects to be registered. 6173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 6273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 6373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDNOAUTOREGISTER: Unable to find auto-registration section. 6473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDREADSECT: Unable to read object code section. 6573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDLOADBASE: Unable to load code base. 6673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid DCD_HMANAGER handle.. 6773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 6873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 6973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 7073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Note: 7173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Due to the DCD database construction, it is essential for a DCD-enabled 7273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * COFF file to contain the right COFF sections, especially 7373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ".dcd_register", which is used for auto registration. 7473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 7573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DSP_STATUS DCD_AutoRegister(IN struct DCD_MANAGER* hDcdMgr, 7673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN CHAR * pszCoffPath); 7773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 7873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 7973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_AutoUnregister ======== 8073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 8173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function automatically unregisters DCD objects specified in a 8273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * special COFF section called ".dcd_register" 8373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 8473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hDcdMgr: A DCD manager handle. 8573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pszCoffPath: Pointer to name of COFF file containing 8673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD objects to be unregistered. 8773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 8873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 8973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDNOAUTOREGISTER: Unable to find auto-registration section. 9073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDREADSECT: Unable to read object code section. 9173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDLOADBASE: Unable to load code base. 9273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid DCD_HMANAGER handle.. 9373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 9473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 9573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 9673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Note: 9773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Due to the DCD database construction, it is essential for a DCD-enabled 9873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * COFF file to contain the right COFF sections, especially 9973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ".dcd_register", which is used for auto unregistration. 10073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 10173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DSP_STATUS DCD_AutoUnregister(IN struct DCD_MANAGER* hDcdMgr, 10273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN CHAR * pszCoffPath); 10373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 10473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 10573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_CreateManager ======== 10673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 10773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function creates a DCD module manager. 10873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 10973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pszZlDllName: Pointer to a DLL name string. 11073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * phDcdMgr: A pointer to a DCD manager handle. 11173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 11273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 11373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EMEMORY: Unable to allocate memory for DCD manager handle. 11473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: General failure. 11573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 11673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 11773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pszZlDllName is non-NULL. 11873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * phDcdMgr is non-NULL. 11973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 12073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * A DCD manager handle is created. 12173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 12273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DSP_STATUS DCD_CreateManager(IN CHAR * pszZlDllName, 12373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT struct DCD_MANAGER* * phDcdMgr); 12473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 12573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 12673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_DestroyManager ======== 12773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 12873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function destroys a DCD module manager. 12973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 13073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hDcdMgr: A DCD manager handle. 13173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 13273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 13373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid DCD manager handle. 13473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 13573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 13673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 13773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 13873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DSP_STATUS DCD_DestroyManager(IN struct DCD_MANAGER* hDcdMgr); 13973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 14073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 14173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_EnumerateObject ======== 14273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 14373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function enumerates currently visible DSP/BIOS Bridge objects 14473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * and returns the UUID and type of each enumerated object. 14573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 14673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * cIndex: The object enumeration index. 14773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * objType: Type of object to enumerate. 14873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid: Pointer to a DSP_UUID object. 14973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 15073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 15173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to enumerate through the DCD database. 15273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SENUMCOMPLETE: Enumeration completed. This is not an error code. 15373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 15473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 15573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid is a valid pointer. 15673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 15773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 15873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function can be used in conjunction with DCD_GetObjectDef to 15973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * retrieve object properties. 16073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 16173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DSP_STATUS DCD_EnumerateObject(IN INT cIndex, 16273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN DSP_DCDOBJTYPE objType, 16373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT struct DSP_UUID * pUuid); 16473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 16573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 16673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_Exit ======== 16773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 16873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function cleans up the DCD module. 16973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 17073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 17173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 17273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 17373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 17473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 17573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern VOID DCD_Exit(); 17673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 17773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 17873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_GetDepLibs ======== 17973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 18073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Given the uuid of a library and size of array of uuids, this function 18173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * fills the array with the uuids of all dependent libraries of the input 18273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * library. 18373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 18473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hDcdMgr: A DCD manager handle. 18573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid: Pointer to a DSP_UUID for a library. 18673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * numLibs: Size of uuid array (number of library uuids). 18773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pDepLibUuids: Array of dependent library uuids to be filled in. 18873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pPersistentDepLibs: Array indicating if corresponding lib is persistent. 18973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * phase: phase to obtain correct input library 19073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 19173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 19273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EMEMORY: Memory allocation failure. 19373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDREADSECT: Failure to read section containing library info. 19473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: General failure. 19573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 19673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 19773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Valid hDcdMgr. 19873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid != NULL 19973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pDepLibUuids != NULL. 20073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 20173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 20273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DSP_STATUS DCD_GetDepLibs(IN struct DCD_MANAGER* hDcdMgr, 20373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN struct DSP_UUID * pUuid, 20473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin USHORT numLibs, 20573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT struct DSP_UUID * pDepLibUuids, 20673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT bool * pPersistentDepLibs, 20773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN NLDR_PHASE phase); 20873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 20973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 21073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_GetNumDepLibs ======== 21173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 21273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Given the uuid of a library, determine its number of dependent 21373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * libraries. 21473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 21573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hDcdMgr: A DCD manager handle. 21673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid: Pointer to a DSP_UUID for a library. 21773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pNumLibs: Size of uuid array (number of library uuids). 21873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pNumPersLibs: number of persistent dependent library. 21973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * phase: Phase to obtain correct input library 22073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 22173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 22273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EMEMORY: Memory allocation failure. 22373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDREADSECT: Failure to read section containing library info. 22473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: General failure. 22573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 22673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 22773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Valid hDcdMgr. 22873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid != NULL 22973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pNumLibs != NULL. 23073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 23173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 23273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DSP_STATUS DCD_GetNumDepLibs(IN struct DCD_MANAGER* hDcdMgr, 23373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN struct DSP_UUID * pUuid, 23473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT USHORT * pNumLibs, 23573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT USHORT * pNumPersLibs, 23673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN NLDR_PHASE phase); 23773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 23873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 23973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_GetLibraryName ======== 24073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 24173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function returns the name of a (dynamic) library for a given 24273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * UUID. 24373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 24473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hDcdMgr: A DCD manager handle. 24573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid: Pointer to a DSP_UUID that represents a unique DSP/BIOS 24673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Bridge object. 24773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pstrLibName: Buffer to hold library name. 24873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pdwSize: Contains buffer size. Set to string size on output. 24973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * phase: Which phase to load 25073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * fPhaseSplit: Are phases in multiple libraries 25173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 25273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 25373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: General failure. 25473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 25573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 25673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Valid hDcdMgr. 25773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pstrLibName != NULL. 25873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid != NULL 25973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pdwSize != NULL. 26073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 26173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 26273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DSP_STATUS DCD_GetLibraryName(IN struct DCD_MANAGER* hDcdMgr, 26373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN struct DSP_UUID * pUuid, 26473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN OUT PSTR pstrLibName, 26573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN OUT DWORD * pdwSize, 26673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN NLDR_PHASE phase, 26773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT bool * fPhaseSplit); 26873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 26973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 27073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_GetObjectDef ======== 27173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 27273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function returns the properties/attributes of a DSP/BIOS Bridge 27373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * object. 27473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 27573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hDcdMgr: A DCD manager handle. 27673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid: Pointer to a DSP_UUID that represents a unique 27773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP/BIOS Bridge object. 27873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * objType: The type of DSP/BIOS Bridge object to be 27973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * referenced (node, processor, etc). 28073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pObjDef: Pointer to an object definition structure. A 28173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * union of various possible DCD object types. 28273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 28373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 28473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDPARSESECT: Unable to parse content of object code section. 28573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDREADSECT: Unable to read object code section. 28673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDGETSECT: Unable to access object code section. 28773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDLOADBASE: Unable to load code base. 28873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: General failure. 28973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid DCD_HMANAGER handle. 29073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 29173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 29273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pObjUuid is non-NULL. 29373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pObjDef is non-NULL. 29473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 29573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 29673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DSP_STATUS DCD_GetObjectDef(IN struct DCD_MANAGER* hDcdMgr, 29773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN struct DSP_UUID * pObjUuid, 29873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN DSP_DCDOBJTYPE objType, 29973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT struct DCD_GENERICOBJ *pObjDef); 30073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 30173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 30273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_GetObjects ======== 30373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 30473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function finds all DCD objects specified in a special 30573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * COFF section called ".dcd_register", and for each object, 30673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * call a "register" function. The "register" function may perform 30773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * various actions, such as 1) register nodes in the node database, 2) 30873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * unregister nodes from the node database, and 3) add overlay nodes. 30973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 31073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hDcdMgr: A DCD manager handle. 31173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pszCoffPath: Pointer to name of COFF file containing DCD 31273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * objects. 31373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * registerFxn: Callback fxn to be applied on each located 31473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD object. 31573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * handle: Handle to pass to callback. 31673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 31773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 31873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDNOAUTOREGISTER: Unable to find .dcd_register section. 31973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDREADSECT: Unable to read object code section. 32073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDCDLOADBASE: Unable to load code base. 32173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid DCD_HMANAGER handle.. 32273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 32373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 32473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 32573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Note: 32673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Due to the DCD database construction, it is essential for a DCD-enabled 32773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * COFF file to contain the right COFF sections, especially 32873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ".dcd_register", which is used for auto registration. 32973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 33073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DSP_STATUS DCD_GetObjects(IN struct DCD_MANAGER* hDcdMgr, 33173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN CHAR * pszCoffPath, 33273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DCD_REGISTERFXN registerFxn, 33373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PVOID handle); 33473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 33573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 33673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_Init ======== 33773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 33873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function initializes DCD. 33973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 34073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 34173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * FALSE: Initialization failed. 34273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * TRUE: Initialization succeeded. 34373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 34473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 34573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 34673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 34773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern bool DCD_Init(); 34873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 34973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 35073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_RegisterObject ======== 35173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 35273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function registers a DSP/BIOS Bridge object in the DCD database. 35373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 35473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid: Pointer to a DSP_UUID that identifies a DSP/BIOS 35573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Bridge object. 35673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * objType: Type of object. 35773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pszPathName: Path to the object's COFF file. 35873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 35973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 36073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Failed to register object. 36173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 36273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 36373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid and szPathName are non-NULL values. 36473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * objType is a valid type value. 36573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 36673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 36773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DSP_STATUS DCD_RegisterObject(IN struct DSP_UUID * pUuid, 36873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN DSP_DCDOBJTYPE objType, 36973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN CHAR * pszPathName); 37073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 37173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 37273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DCD_UnregisterObject ======== 37373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 37473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function de-registers a valid DSP/BIOS Bridge object from the DCD 37573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * database. 37673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 37773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid: Pointer to a DSP_UUID that identifies a DSP/BIOS Bridge 37873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * object. 37973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * objType: Type of object. 38073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 38173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 38273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to de-register the specified object. 38373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 38473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DCD initialized. 38573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pUuid is a non-NULL value. 38673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * objType is a valid type value. 38773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 38873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 38973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DSP_STATUS DCD_UnregisterObject(IN struct DSP_UUID * pUuid, 39073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN DSP_DCDOBJTYPE objType); 39173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 39273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus 39373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin} 39473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif 39573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif /* _DBDCD_H */ 396