173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * dspbridge/mpu_api/inc/dbdefs.h 373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP-BIOS Bridge driver support functions for TI OMAP processors. 573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Copyright (C) 2007 Texas Instruments, Inc. 773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This program is free software; you can redistribute it and/or modify it 973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * under the terms of the GNU Lesser General Public License as published 1073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * by the Free Software Foundation version 2.1 of the License. 1173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 1273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This program is distributed .as is. WITHOUT ANY WARRANTY of any kind, 1373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * whether express or implied; without even the implied warranty of 1473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Lesser General Public License for more details. 1673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 1773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 1873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 1973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 2073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 2173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== dbdefs.h ======== 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#define DSPWORD BYTE 14373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSPWORDSIZE sizeof(DSPWORD) 14473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 14573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Success & Failure macros */ 14673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_SUCCEEDED(Status) ((INT)(Status) >= 0) 14773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_FAILED(Status) ((INT)(Status) < 0) 14873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 14973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Power control enumerations */ 15073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define PROC_PWRCONTROL 0x8070 15173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 15273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define PROC_PWRMGT_ENABLE (PROC_PWRCONTROL + 0x3) 15373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define PROC_PWRMGT_DISABLE (PROC_PWRCONTROL + 0x4) 15473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 15573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Bridge Code Version */ 15673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define BRIDGE_VERSION_CODE 333 15773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 15873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define MAX_PROFILES 16 15973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 16073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Types defined for 'Bridge API */ 16173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef DWORD DSP_STATUS; /* API return code type */ 16273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 16373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef HANDLE DSP_HNODE; /* Handle to a DSP Node object */ 16473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef HANDLE DSP_HPROCESSOR; /* Handle to a Processor object */ 16573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef HANDLE DSP_HSTREAM; /* Handle to a Stream object */ 16673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 16773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef ULONG DSP_PROCFAMILY; /* Processor family */ 16873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef ULONG DSP_PROCTYPE; /* Processor type (w/in family) */ 16973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef ULONG DSP_RTOSTYPE; /* Type of DSP RTOS */ 17073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 17173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef ULONG DSP_RESOURCEMASK; /* Mask for processor resources */ 17273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef ULONG DSP_ERRORMASK; /* Mask for various error types */ 17373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 17473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Handy Macros */ 17573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define IsValidProcEvent(x) (((x) == 0) || (((x) & (DSP_PROCESSORSTATECHANGE | \ 17673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_PROCESSORATTACH | \ 17773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_PROCESSORDETACH | \ 17873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_PROCESSORRESTART | \ 17973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_NODESTATECHANGE | \ 18073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_STREAMDONE | \ 18173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_STREAMIOCOMPLETION | \ 18273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_MMUFAULT | \ 18373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_SYSERROR)) && \ 18473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin !((x) & ~(DSP_PROCESSORSTATECHANGE | \ 18573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_PROCESSORATTACH | \ 18673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_PROCESSORDETACH | \ 18773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_PROCESSORRESTART | \ 18873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_NODESTATECHANGE | \ 18973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_STREAMDONE | \ 19073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_STREAMIOCOMPLETION | \ 19173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_MMUFAULT | \ 19273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_SYSERROR)))) 19373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 19473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define IsValidNodeEvent(x) (((x) == 0) || (((x) & (DSP_NODESTATECHANGE | \ 19573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_NODEMESSAGEREADY)) && \ 19673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin !((x) & ~(DSP_NODESTATECHANGE | \ 19773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_NODEMESSAGEREADY)))) 19873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 19973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define IsValidStrmEvent(x) (((x) == 0) || (((x) & (DSP_STREAMDONE | \ 20073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_STREAMIOCOMPLETION)) && \ 20173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin !((x) & ~(DSP_STREAMDONE | \ 20273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_STREAMIOCOMPLETION)))) 20373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 20473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define IsValidNotifyMask(x) ((x) & DSP_SIGNALEVENT) 20573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 20673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The Node UUID structure */ 20773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_UUID { 20873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulData1; 20973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin USHORT usData2; 21073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin USHORT usData3; 21173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin BYTE ucData4; 21273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin BYTE ucData5; 21373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UCHAR ucData6[6]; 21473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin }; 21573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_UUID, *DSP_HUUID;*/ 21673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 21773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* DCD types */ 21873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef enum { 21973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_DCDNODETYPE, 22073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_DCDPROCESSORTYPE, 22173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_DCDLIBRARYTYPE, 22273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_DCDCREATELIBTYPE, 22373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_DCDEXECUTELIBTYPE, 22473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_DCDDELETELIBTYPE 22573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } DSP_DCDOBJTYPE; 22673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 22773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Processor states */ 22873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef enum { 22973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PROC_STOPPED, 23073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PROC_LOADED, 23173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PROC_RUNNING, 23273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PROC_ERROR 23373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } DSP_PROCSTATE; 23473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 23573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Node types */ 23673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef enum { 23773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin NODE_DEVICE, 23873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin NODE_TASK, 23973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin NODE_DAISSOCKET, 24073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin NODE_MESSAGE 24173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } DSP_NODETYPE; 24273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 24373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Node states */ 24473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef enum { 24573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin NODE_ALLOCATED, 24673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin NODE_CREATED, 24773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin NODE_RUNNING, 24873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin NODE_PAUSED, 24973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin NODE_DONE 25073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } DSP_NODESTATE; 25173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 25273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Stream states */ 25373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef enum { 25473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin STREAM_IDLE, 25573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin STREAM_READY, 25673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin STREAM_PENDING, 25773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin STREAM_DONE 25873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } DSP_STREAMSTATE; 25973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 26073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Stream connect types */ 26173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef enum { 26273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin CONNECTTYPE_NODEOUTPUT, 26373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin CONNECTTYPE_GPPOUTPUT, 26473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin CONNECTTYPE_NODEINPUT, 26573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin CONNECTTYPE_GPPINPUT 26673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } DSP_CONNECTTYPE; 26773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 26873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Stream mode types */ 26973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef enum { 27073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin STRMMODE_PROCCOPY, /* Processor(s) copy stream data payloads */ 27173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin STRMMODE_ZEROCOPY, /* Stream buffer pointers swapped, no data copied */ 27273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin STRMMODE_LDMA, /* Local DMA : OMAP's System-DMA device */ 27373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin STRMMODE_RDMA /* Remote DMA: OMAP's DSP-DMA device */ 27473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } DSP_STRMMODE; 27573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 27673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Stream DMA priority. Only Low and High supported */ 27773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef enum { 27873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DMAPRI_LOW, 27973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DMAPRI_HIGH 28073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } DSP_DMAPRIORITY; 28173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 28273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Resource Types */ 28373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef enum { 28473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_RESOURCE_DYNDARAM = 0, 28573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_RESOURCE_DYNSARAM, 28673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_RESOURCE_DYNEXTERNAL, 28773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_RESOURCE_DYNSRAM, 28873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_RESOURCE_PROCLOAD 28973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } DSP_RESOURCEINFOTYPE; 29073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 29173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Memory Segment Types */ 29273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef enum { 29373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_DYNDARAM = 0, 29473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_DYNSARAM, 29573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_DYNEXTERNAL, 29673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_DYNSRAM 29773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } DSP_MEMTYPE; 29873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 29973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Memory Flush Types */ 30073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin typedef enum { 30173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PROC_INVALIDATE_MEM = 0, 30273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PROC_WRITEBACK_MEM, 30373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PROC_WRITEBACK_INVALIDATE_MEM, 30473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } DSP_FLUSHTYPE; 30573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 30673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Memory Segment Status Values */ 30773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_MEMSTAT { 30873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulSize; 30973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulTotalFreeSize; 31073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulLenMaxFreeBlock; 31173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulNumFreeBlocks; 31273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulNumAllocBlocks; 31373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 31473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 31573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Processor Load information Values */ 31673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_PROCLOADSTAT { 31773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG uCurrLoad; 31873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG uPredictedLoad; 31973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG uCurrDspFreq; 32073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG uPredictedFreq; 32173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 32273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 32373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Attributes for STRM connections between nodes */ 32473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_STRMATTR { 32573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uSegid; /* Memory segment on DSP to allocate buffers */ 32673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uBufsize; /* Buffer size (DSP words) */ 32773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uNumBufs; /* Number of buffers */ 32873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uAlignment; /* Buffer alignment */ 32973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uTimeout; /* Timeout for blocking STRM calls */ 33073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT lMode; /* mode of stream when opened */ 33173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uDMAChnlId; /* DMA chnl id if DSP_STRMMODE is LDMA or RDMA */ 33273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uDMAPriority; /* DMA channel priority 0=lowest, >0=high */ 33373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 33473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 33573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_CBDATA structure */ 33673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_CBDATA { 33773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG cbData; 33873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin BYTE cData[1]; 33973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 34073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_CBDATA, *DSP_HCBDATA;*/ 34173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 34273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_MSG structure */ 34373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_MSG { 34473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD dwCmd; 34573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD dwArg1; 34673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD dwArg2; 34773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 34873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_MSG, *DSP_HMSG;*/ 34973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 35073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_RESOURCEREQMTS structure for node's resource requirements */ 35173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_RESOURCEREQMTS { 35273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 35373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uStaticDataSize; 35473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uGlobalDataSize; 35573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uProgramMemSize; 35673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uWCExecutionTime; 35773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uWCPeriod; 35873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uWCDeadline; 35973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uAvgExectionTime; 36073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uMinimumPeriod; 36173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 36273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_RESOURCEREQMTS, *DSP_HRESOURCEREQMTS;*/ 36373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 36473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 36573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * The DSP_STREAMCONNECT structure describes a stream connection 36673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * between two nodes, or between a node and the GPP 36773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 36873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_STREAMCONNECT { 36973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 37073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_CONNECTTYPE lType; 37173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uThisNodeStreamIndex; 37273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_HNODE hConnectedNode; 37373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_UUID uiConnectedNodeID; 37473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uConnectedNodeStreamIndex; 37573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 37673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_STREAMCONNECT, *DSP_HSTREAMCONNECT;*/ 37773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 37873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_NODEPROFS { 37973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT ulHeapSize; 38073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 38173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_NODEPROFS, *DSP_HNODEPROFS;*/ 38273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 38373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_NDBPROPS structure reports the attributes of a node */ 38473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_NDBPROPS { 38573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 38673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_UUID uiNodeID; 38773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin CHARACTER acName[DSP_MAXNAMELEN]; 38873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_NODETYPE uNodeType; 38973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT bCacheOnGPP; 39073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_RESOURCEREQMTS dspResourceReqmts; 39173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin INT iPriority; 39273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uStackSize; 39373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uSysStackSize; 39473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uStackSeg; 39573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uMessageDepth; 39673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uNumInputStreams; 39773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uNumOutputStreams; 39873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uTimeout; 39973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uCountProfiles; /* Number of supported profiles */ 40073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /* Array of profiles */ 40173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_NODEPROFS aProfiles[MAX_PROFILES]; 40273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uStackSegName; /* Stack Segment Name */ 40373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 40473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_NDBPROPS, *DSP_HNDBPROPS;*/ 40573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 40673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /* The DSP_NODEATTRIN structure describes the attributes of a node client */ 40773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_NODEATTRIN { 40873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 40973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin INT iPriority; 41073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uTimeout; 41173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uProfileID; 41273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /* Reserved, for Bridge Internal use only */ 41373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uHeapSize; 41473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PVOID pGPPVirtAddr; /* Reserved, for Bridge Internal use only */ 41573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 41673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_NODEATTRIN, *DSP_HNODEATTRIN;*/ 41773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 41873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_NODEINFO structure is used to retrieve information about a node */ 41973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_NODEINFO { 42073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 42173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_NDBPROPS nbNodeDatabaseProps; 42273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uExecutionPriority; 42373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_NODESTATE nsExecutionState; 42473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_HNODE hDeviceOwner; 42573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uNumberStreams; 42673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_STREAMCONNECT scStreamConnection[16]; 42773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uNodeEnv; 42873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 42973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_NODEINFO, *DSP_HNODEINFO;*/ 43073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 43173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_NODEATTR structure describes the attributes of a node */ 43273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_NODEATTR { 43373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 43473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_NODEATTRIN inNodeAttrIn; 43573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG uInputs; 43673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG uOutputs; 43773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_NODEINFO iNodeInfo; 43873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 43973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_NODEATTR, *DSP_HNODEATTR;*/ 44073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 44173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 44273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Notification type: either the name of an opened event, or an event or 44373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * window handle. 44473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 44573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_NOTIFICATION { 44673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PSTRING psName; 44773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin HANDLE handle; 44873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 44973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_NOTIFICATION, *DSP_HNOTIFICATION;*/ 45073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 45173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_PROCESSORATTRIN structure describes the attributes of a processor */ 45273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_PROCESSORATTRIN{ 45373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 45473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uTimeout; 45573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 45673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_PROCESSORATTRIN, *DSP_HPROCESSORATTRIN;*/ 45773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 45873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin enum chipTypes { 45973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSPTYPE_55 = 6, 46073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IVA_ARM7 = 0x97, 46173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSPTYPE_64 = 0x99 46273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin }; 46373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 46473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 46573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * The DSP_PROCESSORINFO structure describes basic capabilities of a 46673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP processor 46773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 46873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_PROCESSORINFO { 46973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 47073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_PROCFAMILY uProcessorFamily; 47173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_PROCTYPE uProcessorType; 47273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uClockRate; 47373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulInternalMemSize; 47473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulExternalMemSize; 47573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uProcessorID; 47673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_RTOSTYPE tyRunningRTOS; 47773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin INT nNodeMinPriority; 47873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin INT nNodeMaxPriority; 47973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 48073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_PROCESSORINFO, *DSP_HPROCESSORINFO;*/ 48173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 48273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Error information of last DSP exception signalled to the GPP */ 48373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_ERRORINFO { 48473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD dwErrMask; 48573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD dwVal1; 48673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD dwVal2; 48773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD dwVal3; 48873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 48973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_ERRORINFO;*/ 49073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 49173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_PROCESSORSTATE structure describes the state of a DSP processor */ 49273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_PROCESSORSTATE { 49373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 49473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_PROCSTATE iState; 49573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_ERRORINFO errInfo; 49673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 49773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_PROCESSORSTATE, *DSP_HPROCESSORSTATE;*/ 49873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 49973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 50073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * The DSP_RESOURCEINFO structure is used to retrieve information about a 50173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * processor's resources 50273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 50373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_RESOURCEINFO { 50473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 50573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_RESOURCEINFOTYPE uResourceType; 50673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin union { 50773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulResource; 50873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_MEMSTAT memStat; 50973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_PROCLOADSTAT procLoadStat; 51073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } result; 51173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 51273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_RESOURCEINFO, *DSP_HRESOURCEINFO;*/ 51373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 51473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 51573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * The DSP_STREAMATTRIN structure describes the attributes of a stream, 51673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * including segment and alignment of data buffers allocated with 51773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPStream_AllocateBuffers(), if applicable 51873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 51973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_STREAMATTRIN { 52073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 52173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uTimeout; 52273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uSegment; 52373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uAlignment; 52473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uNumBufs; 52573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT lMode; 52673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uDMAChnlId; 52773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uDMAPriority; 52873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 52973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_STREAMATTRIN, *DSP_HSTREAMATTRIN;*/ 53073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 53173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* The DSP_BUFFERATTR structure describes the attributes of a data buffer */ 53273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_BUFFERATTR { 53373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 53473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uSegment; 53573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uAlignment; 53673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 53773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_BUFFERATTR, *DSP_HBUFFERATTR;*/ 53873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 53973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 54073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * The DSP_STREAMINFO structure is used to retrieve information 54173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * about a stream. 54273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 54373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_STREAMINFO { 54473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DWORD cbStruct; 54573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uNumberBufsAllowed; 54673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uNumberBufsInStream; 54773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulNumberBytes; 54873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin HANDLE hSyncObjectHandle; 54973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin DSP_STREAMSTATE ssStreamState; 55073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } ; 55173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin /*DSP_STREAMINFO, *DSP_HSTREAMINFO;*/ 55273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 55373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* DMM MAP attributes 55473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz ZavinIt is a bit mask with each bit value indicating a specific attribute 55573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 0 - GPP address type (user virtual=0, physical=1) 55673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 1 - MMU Endianism (Big Endian=1, Little Endian=0) 55773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 2 - MMU mixed page attribute (Mixed/ CPUES=1, TLBES =0) 55873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 3 - MMU element size = 8bit (valid only for non mixed page entries) 55973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 4 - MMU element size = 16bit (valid only for non mixed page entries) 56073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 5 - MMU element size = 32bit (valid only for non mixed page entries) 56173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinbit 6 - MMU element size = 64bit (valid only for non mixed page entries) 56273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin*/ 56373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 56473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Types of mapping attributes */ 56573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 56673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* MPU address is virtual and needs to be translated to physical addr */ 56773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPVIRTUALADDR 0x00000000 56873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPPHYSICALADDR 0x00000001 56973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 57073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Mapped data is big endian */ 57173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPBIGENDIAN 0x00000002 57273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPLITTLEENDIAN 0x00000000 57373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 57473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* Element size is based on DSP r/w access size */ 57573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPMIXEDELEMSIZE 0x00000004 57673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 57773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 57873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Element size for MMU mapping (8, 16, 32, or 64 bit) 57973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ignored if DSP_MAPMIXEDELEMSIZE enabled 58073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 58173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPELEMSIZE8 0x00000008 58273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPELEMSIZE16 0x00000010 58373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPELEMSIZE32 0x00000020 58473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPELEMSIZE64 0x00000040 58573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 58673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSP_MAPVMALLOCADDR 0x00000080 58773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 58873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define GEM_CACHE_LINE_SIZE 128 58973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define GEM_L1P_PREFETCH_SIZE 128 59073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 59173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus 59273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin} 59373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif 59473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif /* DBDEFS_ */ 595