DSPStream.h revision 73b11d6e96b6d49896738a1a1c87b295c1b96be2
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 * ======== DSPStream.h ======== 2073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP-BIOS Bridge driver support functions for TI OMAP processors. 2173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Description: 2273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This is the header for the DSP/BIOS Bridge stream module. 2373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 2473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Public Functions: 2573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPStream_AllocateBuffers 2673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPStream_Close 2773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPStream_FreeBuffers 2873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPStream_GetInfo 2973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPStream_Idle 3073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPStream_Issue 3173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPStream_Open 3273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPStream_Reclaim 3373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPStream_RegisterNotify 3473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPStream_Select 3573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 3673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Notes: 3773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 3873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! Revision History: 3973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! ================ 4073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 23-Nov-2002 gp: Comment change: uEventMask is really a "type". 4173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 17-Dec-2001 ag Fix return codes in DSPStream_[Issue][Reclaim] 4273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 12-Dec-2001 ag Added DSP_ENOTIMPL error code to DSPStream_Open(). 4373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 17-Nov-2001 ag Added DSP_ETRANSLATE error. 4473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! Added bufSize param and renamed dwBytes to dwDataSize in 4573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! DSPStream_[Issue][Reclaim](). 4673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 07-Jun-2001 sg: Made buffer alloc/free fxn names plural. 4773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 13-Feb-2001 kc: DSP/BIOS Bridge name updates. 4873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 27-Sep-2000 jeh Removed DSP_BUFFERATTR parameter from DSPStream_Allocate- 4973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! Buffer(), since these have been moved to DSP_STREAMATTRIN. 5073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 07-Sep-2000 jeh Changed type HANDLE in DSPStream_RegisterNotify to 5173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! DSP_HNOTIFICATION. 5273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 20-Jul-2000 rr: Updated to version 0.8 5373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 27-Jun-2000 rr: Created from DBAPI.h 5473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 5573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#include <host_os.h> 5673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifndef DSPStream_ 5773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSPStream_ 5873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 5973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus 6073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinextern "C" { 6173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif 6273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 6373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 6473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPStream_AllocateBuffers ======== 6573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 6673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Allocate data buffers for use with a specific stream. 6773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 6873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hStream: The stream handle. 6973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uSize: Size of the buffer 7073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * apBuffer: Ptr to location to hold array of buffers. 7173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uNumBufs: The number of buffers to allocate of size uSize. 7273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 7373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 7473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid Stream handle. 7573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EMEMORY: Insufficient memory 7673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: Parameter apBuffer is not valid. 7773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EALIGNMENT: Stream's alignment value not supported. 7873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ESIZE: Illegal size. 7973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: General failure to allocate buffer. 8073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 8173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 8273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPStream_AllocateBuffers(DSP_HSTREAM hStream, 8373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uSize, OUT BYTE ** apBuffer, 8473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uNumBufs); 8573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 8673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 8773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPStream_Close ======== 8873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 8973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Close a stream and free the underlying stream object. 9073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 9173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hStream: The stream handle. 9273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 9373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 9473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid Stream handle. 9573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPENDING: Not all stream buffers have been reclaimed 9673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Failure to Close the Stream 9773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 9873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 9973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPStream_Close(DSP_HSTREAM hStream); 10073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 10173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 10273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPStream_FreeBuffers ======== 10373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 10473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Free a previously allocated stream data buffer. 10573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 10673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hStream: The stream handle. 10773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * apBuffer: The array of buffers to free. 10873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uNumBufs: The number of buffers. 10973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 11073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 11173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid Stream handle. 11273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: Parameter apBuffer is not valid. 11373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Failure to free the data buffers 11473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 11573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 11673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPStream_FreeBuffers(DSP_HSTREAM hStream, 11773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN BYTE ** apBuffer, UINT uNumBufs); 11873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 11973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 12073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPStream_GetInfo ======== 12173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 12273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Get information about a stream. 12373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 12473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hStream: The stream handle. 12573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pStreamInfo: Ptr to the DSP_STREAMINFO structure. 12673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uStreamInfoSize: The size of structure. 12773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 12873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 12973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid Stream handle. 13073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: Parameter pStreamInfo is invalid. 13173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ESIZE: uStreamInfoSize is too small to hold all stream 13273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * information. 13373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to retrieve Stream info 13473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 13573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 13673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPStream_GetInfo(DSP_HSTREAM hStream, 13773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT struct DSP_STREAMINFO * pStreamInfo, 13873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uStreamInfoSize); 13973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 14073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 14173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPStream_Idle ======== 14273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 14373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Terminate I/O with a particular stream, and (optionally) 14473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * flush output data buffers. 14573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 14673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hStream: The stream handle. 14773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * bFlush: Boolean flag 14873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 14973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 15073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid Stream handle. 15173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ETIMEOUT: Time out occurred. 15273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ERESTART: A critical error has 15373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * occurred and the DSP is being restarted. 15473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to Idle the stream 15573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 15673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 15773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPStream_Idle(DSP_HSTREAM hStream, bool bFlush); 15873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 15973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 16073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPStream_Issue ======== 16173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 16273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Send a buffer of data to a stream. 16373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 16473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hStream: The stream handle. 16573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pBuffer: Ptr to the buffer. 16673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * dwDataSize: Size of data in buffer in bytes. 16773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * dwBufSize: Size of actual buffer in bytes. 16873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * dwArg: User defined buffer context. 16973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 17073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 17173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid Stream handle. 17273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: Invalid pBuffer pointer 17373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ESTREAMFULL: The stream has been issued the maximum number 17473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * of buffers allowed in the stream at once; 17573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * buffers must be reclaimed from the stream 17673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * before any more can be issued. 17773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to issue the buffer. 17873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ETRANSLATE: Unable to map shared buffer to client process. 17973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 18073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 18173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPStream_Issue(DSP_HSTREAM hStream, IN BYTE * pBuffer, 18273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG dwDataSize, ULONG dwBufSize, 18373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN DWORD dwArg); 18473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 18573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 18673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPStream_Open ======== 18773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 18873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Retrieve a stream handle for sending/receiving data buffers 18973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * to/from a task node on a DSP. 19073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 19173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hNode: The node handle. 19273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uDirection: Stream direction: {DSP_TONODE | DSP_FROMNODE}. 19373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uIndex: Stream index (zero based). 19473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pAttrIn: Ptr to the stream attributes (optional) 19573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * phStream: Ptr to location to store the stream handle. 19673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 19773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 19873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: Invalid phStream pointer. 19973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ENODETYPE: Stream can not be opened for this node type/ 20073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDIRECTION: uDirection is invalid 20173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EVALUE: uIndex is invalid, or, if pAttrIn != NULL, 20273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pAttrIn->uSegment is invalid. 20373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: General failure. 20473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ESTRMMODE: Stream mode is invalid. 20573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EDMACHNL: DMAChnlId is invalid, if STRMMODE is LDMA or RDMA. 20673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid Stream handle. 20773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ENOTIMPL: Stream mode is not supported. 20873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 20973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 21073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 21173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPStream_Open(DSP_HNODE hNode, UINT uDirection, 21273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uIndex, 21373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN OPTIONAL struct DSP_STREAMATTRIN * pAttrIn, 21473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT DSP_HSTREAM * phStream); 21573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 21673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 21773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPStream_PrepareBuffer ======== 21873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 21973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Prepare a buffer that was not allocated by DSPStream_AllocateBuffers 22073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * for use with a stream 22173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 22273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hStream: Stream handle 22373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uSize: Size of the allocated buffer(GPP bytes) 22473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pBffer: Address of the Allocated buffer 22573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 22673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success 22773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid Stream handle 22873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: Invalid pBuffer 22973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Failure to Prepare a buffer 23073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 23173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPStream_PrepareBuffer(DSP_HSTREAM hStream, UINT uSize, 23273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin BYTE * pBuffer); 23373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 23473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 23573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPStream_Reclaim ======== 23673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 23773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Request a buffer back from a stream. 23873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 23973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hStream: The stream handle. 24073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pBufPtr: Ptr to location to store stream buffer. 24173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pDataSize: Ptr to location to store data size of the buffer. 24273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pBufSize: Ptr to location to store actual size of the buffer. 24373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pdwArg: Ptr to location to store user defined context. 24473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 24573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 24673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid Stream handle. 24773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: One of pBufPtr or pBytes is invalid. 24873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ETIMEOUT: Timeout waiting from I/O completion. 24973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ERESTART: A critical error has occurred and 25073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * the DSP is being restarted. 25173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to Reclaim buffer. 25273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ETRANSLATE: Unable to map shared buffer to client process. 25373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 25473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 25573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPStream_Reclaim(DSP_HSTREAM hStream, 25673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT BYTE ** pBufPtr, 25773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT ULONG * pDataSize, 25873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT ULONG * pBufSize, 25973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT DWORD * pdwArg); 26073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 26173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 26273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPStream_RegisterNotify ======== 26373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 26473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Register to be notified of specific events for this stream. 26573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 26673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hStream: The stream handle. 26773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uEventMask: Type of event to be notified about. 26873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uNotifyType: Type of notification to be sent. 26973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hNotification: Handle to be used for notification. 27073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 27173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 27273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid stream handle or invalid hNotification 27373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EVALUE: uEventMask is invalid 27473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ENOTIMP: Not supported as specified in uNotifyType 27573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to Register for notification 27673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 27773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 27873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPStream_RegisterNotify(DSP_HSTREAM hStream, 27973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uEventMask, UINT uNotifyType, 28073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_NOTIFICATION* hNotification); 28173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 28273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 28373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPStream_Select ======== 28473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 28573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Select a ready stream. 28673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 28773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * aStreamTab: Array of stream handles. 28873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * nStreams: Number of streams in array. 28973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pMask: Pointer to the mask of ready streams. 29073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uTimeout: Timeout value in milliseconds. 29173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 29273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 29373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ERANGE: nStreams is out of range 29473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: Invalid aStreamTab or pMask pointer. 29573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ETIMEOUT Timeout occured. 29673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Failure to select a stream. 29773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ERESTART: A critical error has occurred and 29873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * the DSP is being restarted. 29973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 30073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 30173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPStream_Select(IN DSP_HSTREAM * aStreamTab, 30273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT nStreams, OUT UINT * pMask, 30373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uTimeout); 30473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 30573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 30673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPStream_UnprepareBuffer ======== 30773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 30873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * UnPrepare a buffer that was prepared by DSPStream_PrepareBuffer 30973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * and will no longer be used with the stream 31073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 31173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hStream: Stream handle 31273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uSize: Size of the allocated buffer(GPP bytes) 31373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pBffer: Address of the Allocated buffer 31473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 31573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success 31673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid Stream handle 31773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: Invalid pBuffer 31873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Failure to UnPrepare a buffer 31973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 32073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPStream_UnprepareBuffer(DSP_HSTREAM hStream, UINT uSize, 32173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin BYTE * pBuffer); 32273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 32373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus 32473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin} 32573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif 32673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif /* DSPStream_ */ 327