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