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
1973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
2073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  ======== dbdefs.h ========
2173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  DSP-BIOS Bridge driver support functions for TI OMAP processors.
2273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Description:
2373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *      Global definitions and constants for DSP/BIOS Bridge.
2473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *
2573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! Revision History:
2673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! ================
2773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 19-Apr-2004 sb  Aligned DMM definitions with Symbian
2873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 08-Mar-2004 sb  Added MAPATTR & ELEM_SIZE for Dynamic Memory Mapping feature
2973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 09-Feb-2004 vp  Added processor ID numbers for DSP and IVA
3073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 06-Feb-2003 kc  Removed DSP_POSTMESSAGE. Updated IsValid*Event macros.
3173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 22-Nov-2002 gp  Cleaned up comments, formatting.
3273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!                 Removed unused DSP_ENUMLASTNODE define.
3373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 13-Feb-2002 jeh Added uSysStackSize to DSP_NDBPROPS.
3473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 23-Jan-2002 ag  Added #define DSP_SHMSEG0.
3573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 12-Dec-2001 ag  Added DSP_ESTRMMODE error code.
3673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 04-Dec-2001 jeh Added DSP_ENOTCONNECTED error code.
3773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 10-Dec-2001 kc: Modified macros and definitions to disable DSP_POSTMESSAGE.
3873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 01-Nov-2001 jeh Added DSP_EOVERLAYMEMORY.
3973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 18-Oct-2001 ag  Added DSP_STRMMODE type.
4073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!                 Added DSP_ENOTSHAREDMEM.
4173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 21-Sep-2001 ag  Added additional error codes.
4273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 07-Jun-2001 sg  Made DSPStream_AllocateBuffer fxn name plural.
4373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 11-May-2001 jeh Changed DSP_NODE_MIN_PRIORITY from 0 to 1. Removed hNode
4473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!                 from DSP_NODEINFO.
4573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 02-Apr-2001 sg  Added missing error codes, rearranged codes, switched to
4673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!             hex offsets, renamed some codes to match API spec.
4773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 16-Jan-2001 jeh Added DSP_ESYMBOL, DSP_EUUID.
4873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 13-Feb-2001 kc: DSP/BIOS Bridge name updates.
4973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 05-Dec-2000 ag: Added DSP_RMSxxx user available message command codes.
5073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 09-Nov-2000 rr: Added DSP_PROCEESORRESTART define; Removed DSP_PBUFFER.
5173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!                 Added DSP_DCD_ENOAUTOREGISTER, DSP_EUSER1-16, DSP_ESTRMFUL
5273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!                 Removed DSP_EDONE. Macros's modified.
5373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 23-Oct-2000 jeh Replaced DSP_STREAMSTATECHANGE with DSP_STREAMDONE.
5473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 09-Oct-2000 jeh Updated to version 0.9 DSP Bridge API spec.
5573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 29-Sep-2000 kc  Added error codes for DCD and REG to simplify use of
5673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!                 these codes within the RM module.
5773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 27-Sep-2000 jeh Added segid, alignment, uNumBufs to DSP_STREAMATTRIN.
5873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 29-Aug-2000 jeh Added DSP_NODETYPE enum, changed DSP_EALREADYATTACHED to
5973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!                 DSP_EALREADYCONNECTED. Changed scStreamConnection[1]
6073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!                 to scStreamConnection[16] in DSP_NODEINFO structure.
6173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!                 Added DSP_NOTIFICATION, DSP_STRMATTR. PSTRING changed
6273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *!                 back to TCHAR * and moved to dbtype.h.
6373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 11-Aug-2000 rr: Macros to check valid events and notify masks added.
6473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 09-Aug-2000 rr: Changed PSTRING to *CHAR
6573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 07-Aug-2000 rr: PROC_IDLE/SYNCINIT/UNKNOWN state removed.
6673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 20-Jul-2000 rr: Updated to version 0.8
6773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 17-Jul-2000 rr: New PROC states added to the DSP_PROCSTATE.
6873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 27-Jun-2000 rr: Created from dspapi.h
6973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
7073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
7173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifndef DBDEFS_
7273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DBDEFS_
7373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
7473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#include <dbtype.h>		/* GPP side type definitions           */
7573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#include <std.h>		/* DSP/BIOS type definitions           */
7673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#include <rms_sh.h>		/* Types shared between GPP and DSP    */
7773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
7873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus
7973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinextern "C" {
8073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif
8173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
8273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define PG_SIZE_4K 4096
8373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define PG_MASK(pg_size) (~((pg_size)-1))
8473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define PG_ALIGN_LOW(addr, pg_size) ((addr) & PG_MASK(pg_size))
8573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define PG_ALIGN_HIGH(addr, pg_size) (((addr)+(pg_size)-1) & PG_MASK(pg_size))
8673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
8773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* API return value and calling convention */
8873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DBAPI                       DSP_STATUS CDECL
8973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
9073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Infinite time value for the uTimeout parameter to DSPStream_Select() */
9173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_FOREVER                 (-1)
9273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
9373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Maximum length of node name, used in DSP_NDBPROPS */
9473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAXNAMELEN              32
9573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
9673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* uNotifyType values for the RegisterNotify() functions. */
9773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_SIGNALEVENT             0x00000001
9873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
9973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Types of events for processors */
10073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_PROCESSORSTATECHANGE    0x00000001
10173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_PROCESSORATTACH         0x00000002
10273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_PROCESSORDETACH         0x00000004
10373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_PROCESSORRESTART        0x00000008
10473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
10573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* DSP exception events (DSP/BIOS and DSP MMU fault) */
10673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MMUFAULT                0x00000010
10773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_SYSERROR                0x00000020
10873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
10973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* IVA exception events (IVA MMU fault) */
11073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define IVA_MMUFAULT                0x00000040
11173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Types of events for nodes */
11273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_NODESTATECHANGE         0x00000100
11373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_NODEMESSAGEREADY        0x00000200
11473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
11573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Types of events for streams */
11673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_STREAMDONE              0x00001000
11773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_STREAMIOCOMPLETION      0x00002000
11873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
11973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Handle definition representing the GPP node in DSPNode_Connect() calls */
12073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_HGPPNODE                0xFFFFFFFF
12173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
12273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Node directions used in DSPNode_Connect() */
12373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_TONODE                  1
12473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_FROMNODE                2
12573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
12673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Define Node Minimum and Maximum Priorities */
12773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_NODE_MIN_PRIORITY       1
12873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_NODE_MAX_PRIORITY       15
12973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
13073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Pre-Defined Message Command Codes available to user: */
13173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_RMSUSERCODESTART RMS_USER	/* Start of RMS user cmd codes */
13273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_RMSUSERCODEEND RMS_USER + RMS_MAXUSERCODES;	/* end of user codes */
13373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_RMSBUFDESC RMS_BUFDESC	/* MSG contains SM buffer description */
13473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
13573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Shared memory identifier for MEM segment named "SHMSEG0" */
13673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_SHMSEG0     (UINT)(-1)
13773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
13873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Processor ID numbers */
13973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_UNIT    0
14073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define IVA_UNIT    1
14173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
14273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#if ! defined (OMAP_2430) && ! defined (OMAP_3430)
14373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSPWORD       SHORT
14473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#else
14573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSPWORD       BYTE
14673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif
14773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSPWORDSIZE     sizeof(DSPWORD)
14873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
14973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Success & Failure macros  */
15073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_SUCCEEDED(Status)      ((INT)(Status) >= 0)
15173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_FAILED(Status)         ((INT)(Status) < 0)
15273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
15373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Power control enumerations */
15473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define PROC_PWRCONTROL             0x8070
15573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
15673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define PROC_PWRMGT_ENABLE          (PROC_PWRCONTROL + 0x3)
15773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define PROC_PWRMGT_DISABLE         (PROC_PWRCONTROL + 0x4)
15873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
15973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Bridge Code Version */
16073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define BRIDGE_VERSION_CODE         333
16173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
16273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#if defined (OMAP_2430) || defined (OMAP_3430)
16373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define    MAX_PROFILES     16
16473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif
16573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
16673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Types defined for 'Bridge API */
16773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef DWORD DSP_STATUS;	/* API return code type         */
16873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
16973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef HANDLE DSP_HNODE;	/* Handle to a DSP Node object  */
17073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef HANDLE DSP_HPROCESSOR;	/* Handle to a Processor object */
17173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef HANDLE DSP_HSTREAM;	/* Handle to a Stream object    */
17273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
17373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef ULONG DSP_PROCFAMILY;	/* Processor family             */
17473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef ULONG DSP_PROCTYPE;	/* Processor type (w/in family) */
17573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef ULONG DSP_RTOSTYPE;	/* Type of DSP RTOS             */
17673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
17773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef ULONG DSP_RESOURCEMASK;	/* Mask for processor resources */
17873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef ULONG DSP_ERRORMASK;	/* Mask for various error types */
17973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
18073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Handy Macros */
18173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define IsValidProcEvent(x)    (((x) == 0) || (((x) & (DSP_PROCESSORSTATECHANGE | \
18273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_PROCESSORATTACH | \
18373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_PROCESSORDETACH | \
18473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_PROCESSORRESTART | \
18573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_NODESTATECHANGE | \
18673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_STREAMDONE | \
18773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_STREAMIOCOMPLETION | \
18873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_MMUFAULT | \
18973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_SYSERROR)) && \
19073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                !((x) & ~(DSP_PROCESSORSTATECHANGE | \
19173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_PROCESSORATTACH | \
19273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_PROCESSORDETACH | \
19373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_PROCESSORRESTART | \
19473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_NODESTATECHANGE | \
19573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_STREAMDONE | \
19673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_STREAMIOCOMPLETION | \
19773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_MMUFAULT | \
19873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                    DSP_SYSERROR))))
19973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
20073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define IsValidNodeEvent(x)    (((x) == 0) || (((x) & (DSP_NODESTATECHANGE | \
20173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                DSP_NODEMESSAGEREADY)) && \
20273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                !((x) & ~(DSP_NODESTATECHANGE | \
20373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                DSP_NODEMESSAGEREADY))))
20473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
20573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define IsValidStrmEvent(x)     (((x) == 0) || (((x) & (DSP_STREAMDONE | \
20673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                DSP_STREAMIOCOMPLETION)) && \
20773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                !((x) & ~(DSP_STREAMDONE | \
20873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin                                DSP_STREAMIOCOMPLETION))))
20973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
21073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define IsValidNotifyMask(x)   ((x) & DSP_SIGNALEVENT)
21173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
21273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The Node UUID structure */
21373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_UUID {
21473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG ulData1;
21573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		USHORT usData2;
21673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		USHORT usData3;
21773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		BYTE ucData4;
21873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		BYTE ucData5;
21973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UCHAR ucData6[6];
22073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	};
22173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_UUID, *DSP_HUUID;*/
22273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
22373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* DCD types */
22473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef enum {
22573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_DCDNODETYPE,
22673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_DCDPROCESSORTYPE,
22773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_DCDLIBRARYTYPE,
22873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_DCDCREATELIBTYPE,
22973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_DCDEXECUTELIBTYPE,
23073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_DCDDELETELIBTYPE
23173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} DSP_DCDOBJTYPE;
23273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
23373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Processor states */
23473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef enum {
23573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		PROC_STOPPED,
23673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		PROC_LOADED,
23773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		PROC_RUNNING,
23873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		PROC_ERROR
23973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} DSP_PROCSTATE;
24073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
24173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Node types */
24273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef enum {
24373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		NODE_DEVICE,
24473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		NODE_TASK,
24573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		NODE_DAISSOCKET,
24673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		NODE_MESSAGE
24773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} DSP_NODETYPE;
24873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
24973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Node states */
25073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef enum {
25173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		NODE_ALLOCATED,
25273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		NODE_CREATED,
25373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		NODE_RUNNING,
25473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		NODE_PAUSED,
25573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		NODE_DONE
25673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} DSP_NODESTATE;
25773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
25873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Stream states */
25973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef enum {
26073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		STREAM_IDLE,
26173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		STREAM_READY,
26273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		STREAM_PENDING,
26373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		STREAM_DONE
26473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} DSP_STREAMSTATE;
26573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
26673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Stream connect types */
26773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef enum {
26873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		CONNECTTYPE_NODEOUTPUT,
26973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		CONNECTTYPE_GPPOUTPUT,
27073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		CONNECTTYPE_NODEINPUT,
27173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		CONNECTTYPE_GPPINPUT
27273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} DSP_CONNECTTYPE;
27373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
27473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Stream mode types */
27573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef enum {
27673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		STRMMODE_PROCCOPY,	/* Processor(s) copy stream data payloads */
27773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		STRMMODE_ZEROCOPY,	/* Stream buffer pointers swapped, no data copied */
27873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		STRMMODE_LDMA,	/* Local DMA : OMAP's System-DMA device */
27973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		STRMMODE_RDMA	/* Remote DMA: OMAP's DSP-DMA device */
28073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} DSP_STRMMODE;
28173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
28273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Stream DMA priority. Only Low and High supported */
28373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef enum {
28473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DMAPRI_LOW,
28573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DMAPRI_HIGH
28673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} DSP_DMAPRIORITY;
28773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
28873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Resource Types */
28973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef enum {
29073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_RESOURCE_DYNDARAM = 0,
29173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_RESOURCE_DYNSARAM,
29273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_RESOURCE_DYNEXTERNAL,
29373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_RESOURCE_DYNSRAM,
29473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_RESOURCE_PROCLOAD
29573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} DSP_RESOURCEINFOTYPE;
29673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
29773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Memory Segment Types */
29873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	typedef enum {
29973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_DYNDARAM = 0,
30073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_DYNSARAM,
30173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_DYNEXTERNAL,
30273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_DYNSRAM
30373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} DSP_MEMTYPE;
30473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
30573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Memory Flush Types */
30673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin       typedef enum {
30773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		PROC_INVALIDATE_MEM = 0,
30873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		PROC_WRITEBACK_MEM,
30973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		PROC_WRITEBACK_INVALIDATE_MEM,
31073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} DSP_FLUSHTYPE;
31173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
31273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Memory Segment Status Values */
31373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	 struct DSP_MEMSTAT {
31473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG ulSize;
31573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG ulTotalFreeSize;
31673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG ulLenMaxFreeBlock;
31773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG ulNumFreeBlocks;
31873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG ulNumAllocBlocks;
31973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
32073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
32173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Processor Load information Values */
32273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	 struct DSP_PROCLOADSTAT {
32373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG uCurrLoad;
32473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG uPredictedLoad;
32573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG uCurrDspFreq;
32673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG uPredictedFreq;
32773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
32873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
32973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Attributes for STRM connections between nodes */
33073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_STRMATTR {
33173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uSegid;	/* Memory segment on DSP to allocate buffers */
33273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uBufsize;	/* Buffer size (DSP words) */
33373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uNumBufs;	/* Number of buffers */
33473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uAlignment;	/* Buffer alignment */
33573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uTimeout;	/* Timeout for blocking STRM calls */
33673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT lMode;	/* mode of stream when opened */
33773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uDMAChnlId;	/* DMA chnl id if DSP_STRMMODE is LDMA or RDMA */
33873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uDMAPriority;	/* DMA channel priority 0=lowest, >0=high */
33973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
34073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
34173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_CBDATA structure */
34273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_CBDATA {
34373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG cbData;
34473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		BYTE cData[1];
34573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
34673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_CBDATA, *DSP_HCBDATA;*/
34773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
34873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_MSG structure */
34973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_MSG {
35073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD dwCmd;
35173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD dwArg1;
35273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD dwArg2;
35373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
35473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_MSG, *DSP_HMSG;*/
35573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
35673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_RESOURCEREQMTS structure for node's resource requirements  */
35773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_RESOURCEREQMTS {
35873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD cbStruct;
35973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uStaticDataSize;
36073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uGlobalDataSize;
36173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uProgramMemSize;
36273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uWCExecutionTime;
36373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uWCPeriod;
36473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uWCDeadline;
36573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uAvgExectionTime;
36673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uMinimumPeriod;
36773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
36873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_RESOURCEREQMTS, *DSP_HRESOURCEREQMTS;*/
36973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
37073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
37173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * The DSP_STREAMCONNECT structure describes a stream connection
37273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * between two nodes, or between a node and the GPP
37373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
37473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_STREAMCONNECT {
37573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD cbStruct;
37673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_CONNECTTYPE lType;
37773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uThisNodeStreamIndex;
37873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_HNODE hConnectedNode;
37973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		struct DSP_UUID uiConnectedNodeID;
38073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uConnectedNodeStreamIndex;
38173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
38273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_STREAMCONNECT, *DSP_HSTREAMCONNECT;*/
38373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
38473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#if defined (OMAP_2430) || defined (OMAP_3430)
38573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_NODEPROFS {
38673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT ulHeapSize;
38773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
38873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_NODEPROFS, *DSP_HNODEPROFS;*/
38973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif
39073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
39173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_NDBPROPS structure reports the attributes of a node */
39273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_NDBPROPS {
39373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD cbStruct;
39473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		struct DSP_UUID uiNodeID;
39573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		CHARACTER acName[DSP_MAXNAMELEN];
39673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_NODETYPE uNodeType;
39773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT bCacheOnGPP;
39873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		struct DSP_RESOURCEREQMTS dspResourceReqmts;
39973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		INT iPriority;
40073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uStackSize;
40173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uSysStackSize;
40273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uStackSeg;
40373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uMessageDepth;
40473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uNumInputStreams;
40573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uNumOutputStreams;
40673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uTimeout;
40773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#if defined (OMAP_2430) || defined (OMAP_3430)
40873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uCountProfiles;	/* Number of supported profiles */
40973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		struct DSP_NODEPROFS aProfiles[MAX_PROFILES];	/* Array of profiles */
41073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif
41173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uStackSegName; /* Stack Segment Name */
41273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
41373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_NDBPROPS, *DSP_HNDBPROPS;*/
41473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
41573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin    /* The DSP_NODEATTRIN structure describes the attributes of a node client */
41673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin    struct DSP_NODEATTRIN {
41773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin            DWORD cbStruct;
41873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin            INT iPriority;
41973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin            UINT uTimeout;
42073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#if defined (OMAP_2430) || defined (OMAP_3430)
42173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin            UINT    uProfileID;
42273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin			/* Reserved, for Bridge Internal use only */
42373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin            UINT    uHeapSize;
42473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin            PVOID   pGPPVirtAddr; /* Reserved, for Bridge Internal use only */
42573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif
42673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin        } ;
42773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_NODEATTRIN, *DSP_HNODEATTRIN;*/
42873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
42973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_NODEINFO structure is used to retrieve information about a node */
43073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_NODEINFO {
43173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD cbStruct;
43273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		struct DSP_NDBPROPS nbNodeDatabaseProps;
43373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uExecutionPriority;
43473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_NODESTATE nsExecutionState;
43573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_HNODE hDeviceOwner;
43673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uNumberStreams;
43773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		struct DSP_STREAMCONNECT scStreamConnection[16];
43873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uNodeEnv;
43973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
44073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_NODEINFO, *DSP_HNODEINFO;*/
44173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
44273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_NODEATTR structure describes the attributes of a node */
44373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_NODEATTR {
44473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD cbStruct;
44573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		struct DSP_NODEATTRIN inNodeAttrIn;
44673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG uInputs;
44773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG uOutputs;
44873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		struct DSP_NODEINFO iNodeInfo;
44973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
45073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_NODEATTR, *DSP_HNODEATTR;*/
45173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
45273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
45373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  Notification type: either the name of an opened event, or an event or
45473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  window handle.
45573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
45673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_NOTIFICATION {
45773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		PSTRING psName;
45873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		HANDLE handle;
45973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
46073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_NOTIFICATION, *DSP_HNOTIFICATION;*/
46173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
46273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_PROCESSORATTRIN structure describes the attributes of a processor */
46373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_PROCESSORATTRIN{
46473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD cbStruct;
46573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uTimeout;
46673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
46773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_PROCESSORATTRIN, *DSP_HPROCESSORATTRIN;*/
46873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
46973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	enum chipTypes {
47073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSPTYPE_55 = 6,
47173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		IVA_ARM7 = 0x97,
47273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSPTYPE_64 = 0x99
47373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	};
47473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
47573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
47673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * The DSP_PROCESSORINFO structure describes basic capabilities of a
47773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP processor
47873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
47973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_PROCESSORINFO {
48073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD cbStruct;
48173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_PROCFAMILY uProcessorFamily;
48273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_PROCTYPE uProcessorType;
48373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uClockRate;
48473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG ulInternalMemSize;
48573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG ulExternalMemSize;
48673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uProcessorID;
48773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_RTOSTYPE tyRunningRTOS;
48873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		INT nNodeMinPriority;
48973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		INT nNodeMaxPriority;
49073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
49173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_PROCESSORINFO, *DSP_HPROCESSORINFO;*/
49273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
49373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Error information of last DSP exception signalled to the GPP */
49473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_ERRORINFO {
49573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD dwErrMask;
49673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD dwVal1;
49773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD dwVal2;
49873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD dwVal3;
49973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
50073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_ERRORINFO;*/
50173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
50273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_PROCESSORSTATE structure describes the state of a DSP processor */
50373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_PROCESSORSTATE {
50473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD cbStruct;
50573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_PROCSTATE iState;
50673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		struct DSP_ERRORINFO errInfo;
50773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
50873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_PROCESSORSTATE, *DSP_HPROCESSORSTATE;*/
50973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
51073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
51173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * The DSP_RESOURCEINFO structure is used to retrieve information about a
51273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * processor's resources
51373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
51473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_RESOURCEINFO {
51573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD cbStruct;
51673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_RESOURCEINFOTYPE uResourceType;
51773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		union {
51873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin			ULONG ulResource;
51973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin			struct DSP_MEMSTAT memStat;
52073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin			struct DSP_PROCLOADSTAT procLoadStat;
52173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		} result;
52273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
52373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_RESOURCEINFO, *DSP_HRESOURCEINFO;*/
52473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
52573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
52673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * The DSP_STREAMATTRIN structure describes the attributes of a stream,
52773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * including segment and alignment of data buffers allocated with
52873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPStream_AllocateBuffers(), if applicable
52973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
53073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_STREAMATTRIN {
53173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD cbStruct;
53273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uTimeout;
53373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uSegment;
53473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uAlignment;
53573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uNumBufs;
53673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT lMode;
53773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uDMAChnlId;
53873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uDMAPriority;
53973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
54073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_STREAMATTRIN, *DSP_HSTREAMATTRIN;*/
54173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
54273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_BUFFERATTR structure describes the attributes of a data buffer */
54373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_BUFFERATTR {
54473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD cbStruct;
54573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uSegment;
54673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uAlignment;
54773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
54873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_BUFFERATTR, *DSP_HBUFFERATTR;*/
54973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
55073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
55173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  The DSP_STREAMINFO structure is used to retrieve information
55273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *  about a stream.
55373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
55473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	struct DSP_STREAMINFO {
55573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DWORD cbStruct;
55673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uNumberBufsAllowed;
55773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		UINT uNumberBufsInStream;
55873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		ULONG ulNumberBytes;
55973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		HANDLE hSyncObjectHandle;
56073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin		DSP_STREAMSTATE ssStreamState;
56173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	} ;
56273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin	/*DSP_STREAMINFO, *DSP_HSTREAMINFO;*/
56373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
56473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* DMM MAP attributes
56573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz ZavinIt is a bit mask with each bit value indicating a specific attribute
56673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 0 - GPP address type (user virtual=0, physical=1)
56773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 1 - MMU Endianism (Big Endian=1, Little Endian=0)
56873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 2 - MMU mixed page attribute (Mixed/ CPUES=1, TLBES =0)
56973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 3 - MMU element size = 8bit (valid only for non mixed page entries)
57073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 4 - MMU element size = 16bit (valid only for non mixed page entries)
57173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 5 - MMU element size = 32bit (valid only for non mixed page entries)
57273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 6 - MMU element size = 64bit (valid only for non mixed page entries)
57373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin*/
57473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
57573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Types of mapping attributes */
57673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
57773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* MPU address is virtual and needs to be translated to physical addr */
57873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPVIRTUALADDR          0x00000000
57973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPPHYSICALADDR         0x00000001
58073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
58173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Mapped data is big endian */
58273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPBIGENDIAN            0x00000002
58373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPLITTLEENDIAN         0x00000000
58473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
58573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Element size is based on DSP r/w access size */
58673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPMIXEDELEMSIZE        0x00000004
58773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
58873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/*
58973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Element size for MMU mapping (8, 16, 32, or 64 bit)
59073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ignored if DSP_MAPMIXEDELEMSIZE enabled
59173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */
59273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPELEMSIZE8            0x00000008
59373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPELEMSIZE16           0x00000010
59473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPELEMSIZE32           0x00000020
59573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPELEMSIZE64           0x00000040
59673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
59773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPVMALLOCADDR         0x00000080
59873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
59973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#if defined (OMAP_2430) || defined (OMAP_3430)
60073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define GEM_CACHE_LINE_SIZE     128
60173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define GEM_L1P_PREFETCH_SIZE   128
60273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif
60373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin
60473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus
60573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin}
60673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif
60773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif				/* DBDEFS_ */
608