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