173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * dspbridge/mpu_api/inc/DSPProcessor.h
373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *
473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP-BIOS Bridge driver support functions for TI OMAP processors.
573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *
673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Copyright (C) 2007 Texas Instruments, Inc.
773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *
873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This program is free software; you can redistribute it and/or modify it
973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * under the terms of the GNU Lesser General Public License as published
1073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * by the Free Software Foundation version 2.1 of the License.
1173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *
1273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This program is distributed .as is. WITHOUT ANY WARRANTY of any kind,
1373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * whether express or implied; without even the implied warranty of
1473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Lesser General Public License for more details.
1673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
1773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
1873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
1973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
2073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor.h ========
2173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Description:
2273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      This is the header for the DSP/BIOS Bridge processor module.
2373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *
2473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Public Functions:
2573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSPProcessor_Attach
2673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSPProcessor_Detach
2773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSPProcessor_EnumNodes
2873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSPProcessor_FlushMemory
2973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSPProcessor_GetResourceInfo
3073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSPProcessor_GetState
3173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSPProcessor_Map
3273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSPProcessor_RegisterNotify
3373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSPProcessor_ReserveMemory
3473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSPProcessor_UnMap
3573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSPProcessor_UnReserveMemory
3673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSPProcessor_InvalidateMemory
3773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
3873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Notes:
3973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *
4073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! Revision History:
4173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! ================
4273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 04-04-2007  sh  Added DSPProcessor_InvalidateMemory
4373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 19-Apr-2004 sb  Aligned DMM definitions with Symbian
4473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 08-Mar-2004 sb  Added the Dynamic Memory Mapping APIs
4573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 23-Nov-2002 gp: Comment cleanup.
4673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 13-Feb-2001 kc: DSP/BIOS Bridge name updates.
4773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 29-Nov-2000 rr: OEM Fxns moved to DSPProcessor_OEM.h
4873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!                 Incorporated code review changes.
4973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 27-Oct-2000 jeh Changed uNotifyMask to uNotifyType.
5073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 28-Sep-2000 rr: Updated to Version 0.9.
5173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 07-Sep-2000 jeh Changed type HANDLE in DSPProcessor_RegisterNotify to
5273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!                 DSP_HNOTIFICATION.
5373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 14-Aug-2000 rr: Cleaned up.
5473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 20-Jul-2000 rr: Updated to Version 0.8
5573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 27-Jun-2000 rr: Created from DBAPI.h
5673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
5773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
5873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifndef DSPPROCESSOR_
5973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSPPROCESSOR_
6073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
6173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus
6273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinextern "C" {
6373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif
6473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
6573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
6673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor_Attach ========
6773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Purpose:
6873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Prepare for communication with a particular DSP processor, and return
6973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      a processor handle for subsequent operations.
7073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Parameters:
7173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      uProcessor:             The processor index.
7273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      pAttrIn:                Ptr to the DSP_PROCESSORATTRIN structure.
7373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                              A NULL value means use default values.
7473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      phProcessor:            Ptr to location to store processor handle.
7573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Returns:
7673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SOK:                Success.
7773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EPOINTER:           Parameter phProcessor is not valid.
7873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EINVALIDARG:        Parameter uProcessor is invalid
7973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EFAIL:              Unable to attach the processor
8073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SALREADYATTACHED:   Success; Processor already attached.
8173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Details:
8273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Returns DSP_EINVALIDARG if uProcessor index >= number of processors.
8373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      When pAttrIn is NULL, the default timeout value is 10 seconds.
8473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      This call does not affect the actual execution state of the DSP.
8573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
8673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	extern DBAPI DSPProcessor_Attach(UINT uProcessor,
8773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin					 OPTIONAL CONST struct DSP_PROCESSORATTRIN *
8873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin					 pAttrIn,
8973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin					 OUT DSP_HPROCESSOR * phProcessor);
9073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
9173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
9273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor_Detach ========
9373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Purpose:
9473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Detach from a DSP processor and de-allocate all (GPP) resources reserved
9573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      for it.
9673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Parameters:
9773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      hProcessor:     The processor handle.
9873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Returns:
9973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SOK:        Success.
10073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EHANDLE:    Invalid processor handle.
10173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EFAIL:      Unable to detach from the processor.
10273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Details:
10373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      This call does not affect the actual execution state of the DSP.
10473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
10573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	extern DBAPI DSPProcessor_Detach(DSP_HPROCESSOR hProcessor);
10673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
10773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
10873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor_EnumNodes ========
10973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Purpose:
11073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Enumerate the nodes currently allocated on a processor.
11173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Parameters:
11273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      hProcessor:     The processor handle.
11373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      aNodeTab:       An array allocated to receive the node handles.
11473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      uNodeTabSize:   The number of (DSP_HNODE) handles that can be held
11573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                      in aNodeTab.
11673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      puNumNodes:     Location where DSPProcessor_EnumNodes will return
11773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                      the number of valid handles written to aNodeTab
11873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      puAllocated:    Location where DSPProcessor_EnumNodes will return
11973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                      the number of nodes that are allocated on the DSP.
12073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Returns:
12173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SOK:        Success.
12273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EHANDLE:    Invalid processor handle.
12373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EPOINTER:   Parameters puNumNodes or puAllocated is not valid
12473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_ESIZE:      The amount of memory allocated for aNodeTab is
12573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                      insufficent.   The number of nodes actually
12673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                      allocated on the DSP is greater than the value
12773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                      specified for uNodeTabSize.
12873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EFAIL:      A failure occurred during enumeration.
12973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Details:
13073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
13173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	extern DBAPI DSPProcessor_EnumNodes(DSP_HPROCESSOR hProcessor,
13273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin					    IN DSP_HNODE * aNodeTab,
13373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin					    IN UINT uNodeTabSize,
13473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin					    OUT UINT * puNumNodes,
13573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin					    OUT UINT * puAllocated);
13673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
13773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
13873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor_FlushMemory ========
13973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Purpose:
14073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Flushes a buffer from the MPU data cache.
14173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Parameters:
14273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      hProcessor      :   The processor handle.
14373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      pMpuAddr        :   Buffer start address
14473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      ulSize          :   Buffer size
14573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      ulFlags         :   Reserved.
14673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Returns:
14773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SOK         :   Success.
14873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EHANDLE     :   Invalid processor handle.
14973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EFAIL       :   General failure.
15073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Requires:
15173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      PROC Initialized.
15273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Ensures:
15373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Details:
15473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      All the arguments are currently ignored.
15573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
15673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	extern DBAPI DSPProcessor_FlushMemory(DSP_HPROCESSOR hProcessor,
15773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin					      PVOID pMpuAddr,
15873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin					      ULONG ulSize, ULONG ulFlags);
15973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
16073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
16173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor_InvalidateMemory ========
16273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Purpose:
16373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Invalidates  a buffer from the MPU data cache.
16473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Parameters:
16573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      hProcessor      :   The processor handle.
16673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      pMpuAddr        :   Buffer start address
16773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      ulSize          :   Buffer size
16873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Returns:
16973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SOK         :   Success.
17073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EHANDLE     :   Invalid processor handle.
17173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EFAIL       :   General failure.
17273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Requires:
17373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      PROC Initialized.
17473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Ensures:
17573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Details:
17673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
17773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin        extern DBAPI DSPProcessor_InvalidateMemory(DSP_HPROCESSOR hProcessor,
17873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                              PVOID pMpuAddr,
17973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	                                             ULONG ulSize);
18073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
18173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
18273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor_GetResourceInfo ========
18373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Purpose:
18473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Get information about a DSP Resources.
18573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Parameters:
18673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      hProcessor:         The processor handle.
18773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      uResourceType:      Type of resource to be reported.
18873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      pResourceInfo:      Ptr to the DSP_RESOURCEINFO structure in which
18973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                          the processor resource information will be returned.
19073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      uResourceInfoSize:  Size of the DSP_RESOURCEINFO structure.
19173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Returns:
19273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SOK:            Success.
19373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EHANDLE:        Invalid processor handle.
19473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EPOINTER:       Parameter pResourceInfo is not valid
19573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EVALUE:         Parameter uResourceType is invalid.
19673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EWRONGSTATE:    The processor is not in the PROC_RUNNING state.
19773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_ETIMEOUT:       A timeout occured before the DSP responded to the
19873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                          querry.
19973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_ERESTART:       A Critical error has occured and the DSP is being
20073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                          restarted.
20173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_ESIZE:          The size of the specified DSP_RESOURCEINFO struct
20273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                          is too small to hold all the information.
20373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EFAIL:          Unable to get Resource Information
20473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Details:
20573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
20673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	extern DBAPI DSPProcessor_GetResourceInfo(DSP_HPROCESSOR hProcessor,
20773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin						  UINT uResourceType,
20873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin						  OUT struct DSP_RESOURCEINFO *
20973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin						  pResourceInfo,
21073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin						  UINT uResourceInfoSize);
21173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
21273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
21373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor_GetState ========
21473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Purpose:
21573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Report the state of the specified DSP processor.
21673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Parameters:
21773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      hProcessor:         The processor handle.
21873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      pProcStatus:        Ptr to location to store the DSP_PROCESSORSTATE
21973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                          structure.
22073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      uStateInfoSize:     Size of DSP_PROCESSORSTATE.
22173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Returns:
22273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SOK:            Success.
22373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EHANDLE:        Invalid processor handle.
22473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EPOINTER:       Parameter pProcStatus is not valid.
22573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EFAIL:          General failure while querying processor state.
22673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_ESIZE:          uStateInfoSize is smaller than sizeof
22773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                          DSP_PROCESSORSTATE.
22873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Details:
22973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
23073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	extern DBAPI DSPProcessor_GetState(DSP_HPROCESSOR hProcessor,
23173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin					   OUT struct DSP_PROCESSORSTATE * pProcStatus,
23273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin					   UINT uStateInfoSize);
23373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
23473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
23573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor_Map ========
23673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Purpose:
23773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Maps a MPU buffer to DSP address space.
23873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Parameters:
23973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      hProcessor      :   The processor handle.
24073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      pMpuAddr        :   Starting address of the memory region to map.
24173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      ulSize          :   Size of the memory region to map.
24273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      pReqAddr        :   Requested DSP start address. Offset-adjusted actual
24373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                          mapped address is in the last argument.
24473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      ppMapAddr       :   Ptr to DSP side mapped BYTE address.
24573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      ulMapAttr       :   Optional endianness attributes, virt to phys flag.
24673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Returns:
24773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SOK         :   Success.
24873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EHANDLE     :   Invalid processor handle.
24973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EFAIL       :   General failure.
25073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EMEMORY     :   MPU side memory allocation error.
25173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_ENOTFOUND   :   Cannot find a reserved region starting with this
25273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                      :   address.
25373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Requires:
25473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      pMpuAddr is not NULL
25573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      ulSize is not zero
25673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      ppMapAddr is not NULL
25773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      PROC Initialized.
25873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Ensures:
25973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Details:
26073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
26173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	extern DBAPI DSPProcessor_Map(DSP_HPROCESSOR hProcessor,
26273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin				      PVOID pMpuAddr,
26373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin				      ULONG ulSize,
26473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin				      PVOID pReqAddr,
26573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin				      PVOID * ppMapAddr, ULONG ulMapAttr);
26673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
26773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
26873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor_RegisterNotify ========
26973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Purpose:
27073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Register to be notified of specific processor events
27173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Parameters:
27273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      hProcessor:         The processor handle.
27373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      uEventMask:         Type of event to be notified about.
27473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      uNotifyType:        Type of notification to be sent.
27573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      hNotification:      Handle or event name to be used for notification.
27673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                          about, or to de-register this notification.
27773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Returns:
27873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SOK:            Success.
27973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EHANDLE:        Invalid processor handle or hNotification.
28073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EVALUE:         Parameter uEventMask is Invalid
28173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_ENOTIMP:        The notification type specified in uNotifyType
28273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                          is not supported.
28373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EFAIL:          Unable to register for notification.
28473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Details:
28573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
28673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	extern DBAPI DSPProcessor_RegisterNotify(DSP_HPROCESSOR hProcessor,
28773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin						 UINT uEventMask,
28873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin						 UINT uNotifyType,
28973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin						 struct DSP_NOTIFICATION*
29073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin						 hNotification);
29173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
29273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
29373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor_ReserveMemory ========
29473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Purpose:
29573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Reserve a virtually contiguous region of DSP address space.
29673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Parameters:
29773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      hProcessor      :   The processor handle.
29873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      ulSize          :   Size of the address space to reserve.
29973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      ppRsvAddr       :   Ptr to DSP side reserved BYTE address.
30073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Returns:
30173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SOK         :   Success.
30273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EHANDLE     :   Invalid processor handle.
30373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EFAIL       :   General failure.
30473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EMEMORY     :   Cannot reserve chunk of this size.
30573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Requires:
30673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      ppRsvAddr is not NULL
30773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      PROC Initialized.
30873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Ensures:
30973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Details:
31073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
31173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	extern DBAPI DSPProcessor_ReserveMemory(DSP_HPROCESSOR hProcessor,
31273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin						ULONG ulSize,
31373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin						PVOID * ppRsvAddr);
31473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
31573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
31673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor_UnMap ========
31773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Purpose:
31873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Removes a MPU buffer mapping from the DSP address space.
31973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Parameters:
32073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      hProcessor      :   The processor handle.
32173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      pMapAddr        :   Starting address of the mapped memory region.
32273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Returns:
32373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SOK         :   Success.
32473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EHANDLE     :   Invalid processor handle.
32573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EFAIL       :   General failure.
32673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_ENOTFOUND   :   Cannot find a mapped region starting with this
32773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                      :   address.
32873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Requires:
32973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      pMapAddr is not NULL
33073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      PROC Initialized.
33173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Ensures:
33273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Details:
33373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
33473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	extern DBAPI DSPProcessor_UnMap(DSP_HPROCESSOR hProcessor,
33573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin					PVOID pMapAddr);
33673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
33773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
33873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== DSPProcessor_UnReserveMemory ========
33973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Purpose:
34073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Frees a previously reserved region of DSP address space.
34173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Parameters:
34273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      hProcessor      :   The processor handle.
34373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      pRsvAddr        :   Ptr to DSP side reservedBYTE address.
34473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Returns:
34573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_SOK         :   Success.
34673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EHANDLE     :   Invalid processor handle.
34773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_EFAIL       :   General failure.
34873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      DSP_ENOTFOUND   :   Cannot find a reserved region starting with this
34973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *                      :   address.
35073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Requires:
35173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      pRsvAddr is not NULL
35273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      PROC Initialized.
35373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Ensures:
35473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Details:
35573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
35673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	extern DBAPI DSPProcessor_UnReserveMemory(DSP_HPROCESSOR hProcessor,
35773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin						  PVOID pRsvAddr);
35873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
35973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus
36073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin}
36173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif
36273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif				/* DSPPROCESSOR_ */
363