fbe294659b70d0e228d6aab60bf16107632bca97
[processor-sdk/performance-audio-sr.git] / pasdk / test_dsp / framework / audioStreamInpProc.h
2 /*
3 Copyright (c) 2017, Texas Instruments Incorporated - http://www.ti.com/
4 All rights reserved.
6 * Redistribution and use in source and binary forms, with or without 
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the
16 * distribution.
17 *
18 * Neither the name of Texas Instruments Incorporated nor the names of
19 * its contributors may be used to endorse or promote products derived
20 * from this software without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 *
34 */
36 /*
37  *  ======== audioStreamInpProc.h ========
38  */
40 #ifndef _ASIP_H_
41 #define _ASIP_H_
42  
43 #include <xdc/std.h>
44 #include <ti/sysbios/knl/Task.h>
46 #include "audioStreamProc_params.h"
47 #include "audioStreamProc_patchs.h"
48 #include "audioStreamProc_config.h"
49 #include "audioStreamProc_master.h"
50 #include "statusOp_common.h"
51 #include "ioPhy.h"
52 #include "ioBuff.h"
53 #include "ioData.h"
55 // Global debug counter */
56 extern Uint32 gTaskAsipCnt; // debug counter for ASP task
58 struct PAF_ASIT_Params;
59 struct PAF_ASIT_Patchs;
60 struct PAF_ASIT_Config;
62 // Audio Stream Input Task (ASIT) parameters, functions
63 typedef struct PAF_ASIT_Fxns {
64     Int (*initPhase[8]) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *);
65     //Int (*initFrame0) (const struct PAF_AST_Params *, const struct PAF_AST_Patchs *, struct PAF_AST_Config *, Int);
66     //Int (*initFrame1) (const struct PAF_AST_Params *, const struct PAF_AST_Patchs *, struct PAF_AST_Config *, Int, Int);
67     Int (*passProcessing) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *, Int);
68     //Int (*passProcessingCopy) (const struct PAF_AST_Params *, const struct PAF_AST_Patchs *, struct PAF_AST_Config *);
69     Int (*autoProcessing) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *, Int, ALG_Handle);
70     Int (*decodeProcessing) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *, Int);    
71     Int (*decodeCommand) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *);
72     Int (*decodeInit) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *, Int);
73     Int (*decodeInfo) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *, Int, Int);
74     Int (*decodeInfo1) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *, Int, Int);
75     Int (*decodeInfo2) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *, Int, Int);
76     //Int (*decodeCont) (const struct PAF_AST_Params *, const struct PAF_AST_Patchs *, struct PAF_AST_Config *, ALG_Handle *, Int, Int);
77     Int (*decodeDecode) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *, Int, Int, Int);
78     Int (*decodeFinalTest) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *, Int, Int);    
79     Int (*decodeComplete) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *, ALG_Handle *, Int, Int);
80     Int (*selectDevices) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *);
81     Int (*sourceDecode) (const struct PAF_ASIT_Params *, const struct PAF_ASIT_Patchs *, struct PAF_ASIT_Config *, Int);    
82     Int (*deviceAllocate) (SIO_Handle *, int, int, int, Ptr);
83     Int (*deviceSelect) (SIO_Handle *, int, int, Ptr);
84     Int (*computeFrameLength) (Int, Int, Int);
85     Int (*updateInputStatus) (SIO_Handle, PAF_InpBufStatus *, PAF_InpBufConfig *);
86     //Int (*copy) (Uns, PAF_InpBufConfig *, Uns, PAF_OutBufConfig *);
88     // For RAM_report
89     Void (*headerPrint)();
90     Int  (*allocPrint)(const PAF_ALG_AllocInit *pInit, Int sizeofInit, PAF_IALG_Config *p);
91     Void (*commonPrint)(IALG_MemRec common[], PAF_IALG_Config *p);
92     Void (*bufMemPrint)(Int z, Int size, Int heapId, Int bufType);
93     Void (*memStatusPrint)(
94         CString header, 
95         HeapMem_Handle hInternalHeap, 
96         HeapMem_Handle hInternal1Heap, 
97         HeapMem_Handle hExternalHeap, 
98         HeapMem_Handle hInternal1HeapShm, 
99         HeapMem_Handle hExternalHeapShm, 
100         HeapMem_Handle hExternalNoncachedHeapShm);
101 } PAF_ASIT_Fxns;
103 // Audio Stream Input Task (ASIT) parameters
104 typedef struct PAF_ASIT_Params {
105     const PAF_ASIT_Fxns *fxns;
106     struct {
107         SmInt master;
108         SmInt inputs;
109         SmInt input1;
110         SmInt inputN;
111         SmInt decodes;
112         SmInt decode1;
113         SmInt decodeN;
114         SmInt streams;
115         SmInt stream1; /* unused */
116         SmInt streamN; /* unused */
117         SmInt encodes;
118         SmInt encode1;
119         SmInt encodeN;
120         SmInt outputs;
121         SmInt output1;
122         SmInt outputN;
123     } zone;
124     const SmInt *inputsFromDecodes;
125     const SmInt *outputsFromEncodes;
126     struct {
127         int *pHeapIdIntern;             // INT memory heap ID
128         int *pHeapIdExtern;             // EXT memory heap ID
129         int *pHeapIdInpbuf;             // IB buffer heap ID
130         int *pHeapIdOutbuf;             // OB buffer heap ID
131         int *pHeapIdFrmbuf;             // Frame buffer heap ID
132         int *pHeapIdIntern1;            // INT1 memory heap ID
133         int *pHeapIdInt1Shm;            // INT1 SHared Memory heap ID
134         int *pHeapIdExtShm;             // EXT SHared Memory heap ID
135         int *pHeapIdExtNonCachedShm;    // EXT Non-Cached SHared Memory heap ID
136         int clear; 
137     } heap;
138     struct {
139         const IALG_MemSpace *space;
140     } common;
141     const LgInt *z_rx_bufsiz;
142     const LgInt *z_tx_bufsiz;
143     const SmInt *z_numchan;
144     MdInt framelength;
145     const PAF_AudioFunctions *pAudioFrameFunctions;
146     const struct PAF_ASP_ChainFxns *pChainFxns;
147     const PAF_InpBufStatus *pInpBufStatus;
148     const PAF_DecodeStatus * const *z_pDecodeStatus;
149     const PAF_OutBufStatus *pOutBufStatus;
150     const PAF_EncodeStatus * const *z_pEncodeStatus;
151     const PAF_VolumeStatus *pVolumeStatus;
152     const PAF_ASP_AlgKey *pDecAlgKey;
153     const PAF_ASP_AlgKey *pEncAlgKey;
154     const PAF_ASP_SioMap *pDecSioMap;
155     const SmInt *streamsFromDecodes;
156     const SmInt *streamsFromEncodes;
157     const MdInt maxFramelength;
158     const SmInt *streamOrder;
159     const PAF_ASP_LinkInit * const (*i_inpLinkInit);
160     const PAF_ASP_LinkInit * const (*i_outLinkInit);
161     const PAF_ASP_outNumBufMap *  const (*poutNumBufMap);
162     const PAF_MetadataBufStatus *pMetadataBufStatus;
163     const PAF_AudioFrameBufStatus *pAudioFrameBufStatus;
164     const PAF_AST_DecOpCircBufStatus * const *z_pDecOpCircBufStatus;    
165 } PAF_ASIT_Params;
167 // Audio Stream Input Task (ASIT) patchs
168 typedef struct PAF_ASIT_Patchs {
169     const PAF_SIO_ParamsN * devinp;
170     //const PAF_SIO_ParamsN * devout;
171     //const PAF_ASP_LinkInit * const (*i_decLinkInit);
172     //const PAF_ASP_LinkInit * const (*i_aspLinkInit)[GEARS];
173     //const PAF_ASP_LinkInit * const (*i_encLinkInit);
174 } PAF_ASIT_Patchs;
176 enum {
177     ASIP_NO_ERR,
178     ASIP_ERR_AUTO_DETECION,
179     ASIP_ERR_NO_MATCHING_SOURCE,
180     ASIP_ERR_SWITCH_TO_PCM,
181     ASIP_ERR_D10_CFG,
182     ASIP_ERR_MCASP_CFG,
183     ASIP_ERR_INPUT_CFG,
184     ASIP_ERR_DECODE_INIT,
185     ASIP_ERR_DECODE_COMMAND,
186     ASIP_ERR_DECODE_INFO1,
187     ASIP_ERR_DECODE_INFO2,
188     ASIP_ERR_DECODE_DATA,
189     ASIP_ERR_DECODE_FINAL,
190     ASIP_ERR_DECODE_COMPLETE,
191     ASIP_ERR_DECODE_MSG,
192     ASIP_ERR_DECODE_QUIT,
193     ASIP_ERR_ABORT
194 };
196 enum {
197     ASIT_NO_ERR,
198     ASIT_ERR_AUTO_DETECION,
199     ASIT_ERR_NO_MATCHING_SOURCE,
200     ASIT_ERR_SWITCH_TO_PCM,
201     ASIT_ERR_D10_CFG,
202     ASIT_ERR_MCASP_CFG,
203     ASIT_ERR_INPUT_CFG,
204     ASIT_ERR_DECODE_INIT,
205     ASIT_ERR_DECODE_COMMAND,
206     ASIT_ERR_DECODE_INFO1,
207     ASIT_ERR_DECODE_INFO2,
208     ASIT_ERR_DECODE_DATA,
209     ASIT_ERR_DECODE_FINAL,
210     ASIT_ERR_DECODE_COMPLETE,
211     ASIT_ERR_DECODE_MSG,
212     ASIT_ERR_DECODE_QUIT,
213     ASIT_ERR_ABORT
214 };
216 #define DEC_MSGMSK_INPDATA   0x1
217 #define DEC_MSGMSK_INFOACK   0x2
218 #define DEC_MSGMSK_DECACK    0x4
221 // Input I/O structure
222 typedef struct PAF_AST_InpIO {
223     ioPhyHandle_t        hIoPhy;     /* handle to I/O physical layer */
224     ioBuffHandle_t       hIoBuff;    /* handle to I/O buffer management */
225     ioDataHandle_t       hIoData;    /* handle to I/O data processing */
226     Ptr                  hMcaspChan;
227     const void           *pRxParams; /* pointer to D10 Rx Params */
229     Int sourceSelect;
230     Int sourceProgram;
232     Int       preSyncState;
233     Int       numPrimeXfers;
234     Int       mcaspXferErr;
235 /*
236     void     *mcaspRxBuf1;
237     void     *mcaspRxBuf2;
238     uint32_t  mcaspRxSize1;
239     uint32_t  mcaspRxSize2;
240     Int       mcaspRxtwoXfers;
241 */
242     // debugging counters
243     //uint32_t numXferStart;
244     //uint32_t numXferFinish;
245     //uint32_t numXferInterm;
246     uint32_t numInputOverrun;
247     uint32_t numUnderflow;
248     uint32_t numAsipRestart;
249     uint32_t numAsipDecodeQuit;
250     uint32_t numFrameReceived;
251     uint32_t numPcmFrameReceived;
253     size_t         phyXferSize;
254     int_fast32_t   pcmSwitchHangOver;
255     uint_least16_t asipState;
256     uint_least16_t asipProcState;
257     bool           buffReadComplete;
258     bool           swapData;
259 } PAF_AST_IoInp;
261 // Decoder structure
262 typedef struct asipDecProc_s {
263     Int state;
264     Int frame;
265     Int block;
267     Int initDone;
268 } asipDecProc_t;
270 // Audio Stream Input Task (ASIT) configuration
271 typedef struct PAF_ASIT_Config {
272     Task_Handle taskHandle;      // ASIT handle
273     ACP_Handle acp;              // ASIT local ACP handle
274     PAF_ASPM_Config  *pAspmCfg;  // ASIT/ASOT shared configuration
275     PAF_AST_Config   *pAstCfg;   // ASIT/ASOT/ASDT shared configuration
276     PAF_AST_IoInp    *pIoInp;
277     asipDecProc_t    inpDec;
278 } PAF_ASIT_Config;
281 //   Purpose:   Audio Stream Input Task Function for initialization of data pointers
282 //              by allocation of memory.
283 Int 
284 PAF_ASIT_initPhaseMalloc(
285     const PAF_ASIT_Params *pP, 
286     const PAF_ASIT_Patchs *pQ, 
287     PAF_ASIT_Config *pAsitCfg
288 );
290 //   Purpose:   Audio Stream Input Task Function for initialization of data values
291 //              from parameters.
292 Int
293 PAF_ASIT_initPhaseConfig(
294     const PAF_ASIT_Params *pP, 
295     const PAF_ASIT_Patchs *pQ, 
296     PAF_ASIT_Config *pAsitCfg
297 );
299 //   Purpose:   Audio Stream Input Task Function for initialization of ACP by
300 //              instantiation of the algorithm.
301 Int
302 PAF_ASIT_initPhaseAcpAlg(
303     const PAF_ASIT_Params *pP, 
304     const PAF_ASIT_Patchs *pQ, 
305     PAF_ASIT_Config *pAsitCfg
306 );
308 //   (***) FL: re-visit this, ASIT/ASOT currently consider common memory independently.
309 //             Should simultaneously consider all algs in ASIT/ASOT.
310 //   Purpose:   Audio Stream Input Task Function for allocation of common memory.
311 Int
312 PAF_ASIT_initPhaseCommon(
313     const PAF_ASIT_Params *pP, 
314     const PAF_ASIT_Patchs *pQ, 
315     PAF_ASIT_Config *pAsitCfg
316 );
318 //   Purpose:   Audio Stream Input Task Function for initialization of ASP algorithms.
319 Int
320 PAF_ASIT_initPhaseAspAlg(
321     const PAF_ASIT_Params *pP, 
322     const PAF_ASIT_Patchs *pQ, 
323     PAF_ASIT_Config *pAsitCfg
324 );
326 //   Purpose:   Audio Stream Input Task Function for initialization of data values
327 //              from parameters for Algorithm Keys.
328 Int
329 PAF_ASIT_initPhaseAlgKey(
330     const PAF_ASIT_Params *pP, 
331     const PAF_ASIT_Patchs *pQ, 
332     PAF_ASIT_Config *pAsitCfg
333 );
335 //   Purpose:   Audio Stream Input Task Function for initialization of Decoder Output Circular Buffer.
336 Int
337 PAF_ASIT_initPhaseDecOpCircBuf(
338     const PAF_ASIT_Params *pP, 
339     const PAF_ASIT_Patchs *pQ, 
340     PAF_ASIT_Config *pAsitCfg
341 );
343 //   Purpose:   Audio Stream Input Task Function for initialization of Input Devices.
344 Int
345 PAF_ASIT_initPhaseDevice(
346     const PAF_ASIT_Params *pP, 
347     const PAF_ASIT_Patchs *pQ, 
348     PAF_ASIT_Config *pAsitCfg
349 );
351 //   Purpose:   Audio Stream Input Task Function for initialization of Output Init-Sync.
352 Int
353 PAF_ASIT_initPhaseOutIS(
354     const PAF_ASIT_Params *pP, 
355     const PAF_ASIT_Patchs *pQ, 
356     PAF_ASIT_Config *pAsdtCfg
357 );
360 #if 0
361 //   Purpose:   Audio Stream Task Function for initialization or reinitiali-
362 //              zation of the Audio Frame(s) by loading of data values of a
363 //              time-varying nature.
364 Int
365 PAF_AST_initFrame1(
366     const PAF_ASIT_Params *pP, 
367     const PAF_ASIT_Patchs *pQ, 
368     PAF_AST_Config *pAsitCfg, 
369     Int z, 
370     Int apply
371 );
372 #endif
374 //   Purpose:   Audio Stream Task Function for processing audio data to
375 //              determine the input type without output.
376 Int
377 PAF_ASIT_autoProcessing(
378     const PAF_ASIT_Params *pP, 
379     const PAF_ASIT_Patchs *pQ, 
380     PAF_ASIT_Config *pAsitCfg, 
381     Int inputTypeSelect, 
382     ALG_Handle pcmAlgMaster);
384 //   Purpose:   Audio Stream Input Task Function for processing audio data.
385 //
386 Int
387 PAF_ASIT_decodeProcessing(
388     const PAF_ASIT_Params *pP, 
389     const PAF_ASIT_Patchs *pQ, 
390     PAF_ASIT_Config *pAsitCfg, 
391     Int sourceSelect
392 );
394 //   Purpose:   Decoding Function for processing Decode Commands.
395 Int
396 PAF_ASIT_decodeCommand(
397     const PAF_ASIT_Params *pP, 
398     const PAF_ASIT_Patchs *pQ, 
399     PAF_ASIT_Config *pAsitCfg
400 );
402 //   Purpose:   Decoding Function for reinitializing the decoding process.
403 Int
404 PAF_ASIT_decodeInit(
405     const PAF_ASIT_Params *pP, 
406     const PAF_ASIT_Patchs *pQ, 
407     PAF_ASIT_Config *pAsitCfg, 
408     Int sourceSelect
409 );
411 //   Purpose:   Decoding Function for processing information in a manner that
412 //              is common for both initial and subsequent frames of input data.
413 Int
414 PAF_ASIT_decodeInfo(
415     const PAF_ASIT_Params *pP, 
416     const PAF_ASIT_Patchs *pQ, 
417     PAF_ASIT_Config *pAsitCfg, 
418     Int frame, 
419     Int block
420 );
422 //   Purpose:   Decoding Function for processing information in a manner that
423 //              is unique to initial frames of input data.
424 Int
425 PAF_ASIT_decodeInfo1(
426     const PAF_ASIT_Params *pP, 
427     const PAF_ASIT_Patchs *pQ, 
428     PAF_ASIT_Config *pAsitCfg, 
429     Int frame, 
430     Int block
431 );
433 //   Purpose:   Decoding Function for processing information in a manner that
434 //              is unique to frames of input data other than the initial one.
435 Int
436 PAF_ASIT_decodeInfo2(
437     const PAF_ASIT_Params *pP, 
438     const PAF_ASIT_Patchs *pQ, 
439     PAF_ASIT_Config *pAsitCfg, 
440     Int frame, 
441     Int block
442 );
444 #if 0
445 //   Purpose:   Decoding Function for processing that occurs subsequent to
446 //              information processing but antecedent to timing processing
447 //              for frames of input data other than the initial one.
448 Int
449 PAF_AST_decodeCont(
450     const PAF_ASIT_Params *pP, 
451     const PAF_ASIT_Patchs *pQ, 
452     PAF_ASIT_Config *pAsitCfg, 
453     ALG_Handle decAlg[], 
454     Int frame, 
455     Int block
456 );
457 #endif
459 //   Purpose:   Decoding Function for processing of input data by the
460 //              Decode Algorithm.
461 Int
462 PAF_ASIT_decodeDecode(
463     const PAF_ASIT_Params *pP, 
464     const PAF_ASIT_Patchs *pQ, 
465     PAF_ASIT_Config *pAsitCfg, 
466     Int sourceSelect, 
467     Int frame, 
468     Int block
469 );
471 //   Purpose:   Decoding Function for determining whether processing of the
472 //              current frame is complete.
473 Int
474 PAF_ASIT_decodeFinalTest(
475     const PAF_ASIT_Params *pP, 
476     const PAF_ASIT_Patchs *pQ, 
477     PAF_ASIT_Config *pAsitCfg, 
478     Int frame, 
479     Int block
480 );
482 //   Purpose:   Decoding Function for terminating the decoding process.
483 Int
484 PAF_ASIT_decodeComplete(
485     const PAF_ASIT_Params *pP, 
486     const PAF_ASIT_Patchs *pQ, 
487     PAF_ASIT_Config *pAsitCfg, 
488     ALG_Handle decAlg[], 
489     Int frame, 
490     Int block
491 );
493 //   Purpose:   Audio Stream Input Task Function for selecting the devices used
494 //              for input.
495 Int
496 PAF_ASIT_selectDevices(
497     const PAF_ASIT_Params *pP, 
498     const PAF_ASIT_Patchs *pQ, 
499     PAF_ASIT_Config *pAsitCfg
500 );
502 //   Purpose:   Audio Stream Input Task Function for selecting the sources used
503 //              for decoding of input to output.
504 Int
505 PAF_ASIT_sourceDecode(
506     const PAF_ASIT_Params *pP, 
507     const PAF_ASIT_Patchs *pQ, 
508     PAF_ASIT_Config *pAsitCfg, 
509     Int x
510 );
512 //   Purpose:   Common Function for processing algorithm chains.
513 Int
514 PAF_AST_streamChainFunction(
515     const PAF_ASIT_Params *pP, 
516     const PAF_ASIT_Patchs *pQ, 
517     PAF_ASIT_Config *pAsitCfg, 
518     Int iChainFrameFxns, 
519     Int abortOnError, 
520     Int logArg
521 );
523 //   Purpose:   writing 8-bit integer to shared memeory
524 static inline
525 sharedMemWriteInt8(
526         volatile XDAS_Int8 *address, /* address to write to */
527         Int8 value,                  /* value to write to the adddress */
528         Int gateIdx)                 /* GateMP Index, defined in statusOp_common.h */
530 #ifdef NON_CACHE_STATUS
531         statusOp_write((void *)address, (void *)&value, sizeof(Int8), gateIdx);
532 #else
533         *address = value;
534 #endif
537 //   Purpose:   read 8-bit integer from shared memeory
538 static inline Int8               /* return the value read in the shared memory */
539 sharedMemReadInt8(
540         volatile XDAS_Int8 *address, /* address to read from */
541         Int gateIdx)                 /* GateMP Index, defined in statusOp_common.h */
543 #ifdef NON_CACHE_STATUS
544         Int8 tempVar;
545         statusOp_read((void *)&tempVar, (void *)address, sizeof(Int8), gateIdx);
547         return tempVar;
548 #else
549         return(*address);
550 #endif
553 //   Purpose:   writing 32-bit integer to shared memeory
554 static inline sharedMemWriteInt(volatile XDAS_Int32 *address, Int value, Int gateIdx)
556 #ifdef NON_CACHE_STATUS
557         statusOp_write((void *)address, (void *)&value, sizeof(Int), gateIdx);
558 #else
559         *address = value;
560 #endif
563 //   Purpose:   read 32-bit integer from shared memeory
564 static inline Int sharedMemReadInt(volatile XDAS_Int32 *address, Int gateIdx)
566 #ifdef NON_CACHE_STATUS
567         Int tempVar;
568         statusOp_read((void *)&tempVar, (void *)address, sizeof(Int), gateIdx);
570         return tempVar;
571 #else
572         return(*address);
573 #endif
576 Int asipUpdateInputStatus(const void *pRxParams, PAF_InpBufStatus *pStatus,
577                           PAF_InpBufConfig *pInpBuf);
578 /*
579 Int asipDecodeInit(
580         const PAF_ASIT_Params *pP,
581         PAF_ASIT_Config *pAsitCfg,
582         Int sourceSelect);
583 */
584 Int asipDecodeProcessing(
585         const PAF_ASIT_Params *pP,
586         const PAF_ASIT_Patchs *pQ,
587         PAF_ASIT_Config *pAsitCfg,
588         Int sourceSelect);
590 /*
591 Int decDecodeInit(
592         const PAF_ASIT_Params *pP,
593         PAF_ASIT_Config *pAsitCfg,
594         Int sourceSelect);
595 */        
596 Int getFrameLengthSourceSel(
597         const PAF_ASIT_Params *pP,
598         Int8 sourceSelect);
600 Int rxDecodePcm(PAF_AST_IoInp  *pInp);
602 Int rxDecodeBitStream(PAF_AST_IoInp  *pInp);
604 Int rxDecodePlayZero(PAF_AST_IoInp  *pInp);
606 #endif /* _ASIP_H_ */