a9b791c0a7d075aa293241a4f81588cd9c092123
[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_IOBUFF_INIT,
199     ASIT_ERR_IODATA_INIT,
200     ASIT_ERR_IOPYH_INIT,
201     ASIT_ERR_INPDATA_PROC,
202     ASIT_ERR_INPBUF_UNDERFLOW,
203     ASIT_ERR_AUTO_DETECION,
204     ASIT_ERR_NO_MATCHING_SOURCE,
205     ASIT_ERR_SWITCH_TO_PCM,
206     ASIT_ERR_D10_CFG,
207     ASIT_ERR_MCASP_CFG,
208     ASIT_ERR_INPUT_CFG,
209     ASIT_ERR_DECODE_INIT,
210     ASIT_ERR_DECODE,
211     ASIT_ERR_DECODE_COMMAND,
212     ASIT_ERR_DECODE_INFO1,
213     ASIT_ERR_DECODE_INFO2,
214     ASIT_ERR_DECODE_DATA,
215     ASIT_ERR_DECODE_FINAL,
216     ASIT_ERR_DECODE_COMPLETE,
217     ASIT_ERR_DECODE_MSG,
218     ASIT_ERR_DECODE_QUIT,
219     ASIP_ERR_DECODE_ABORT,
220     ASIT_ERR_EVENTS,
221     ASIT_ERR_ABORT
222 };
224 enum {
225     DEC_NO_ERR,
226     DEC_ERR_SOURCE_NONE,
227     DEC_ERR_ASPERR_ABORT,
228     DEC_ERR_ASPERR_QUIT,
229     DEC_ERR_WRONG_MSG,
230     DEC_ERR_INFO_SNDMSG,
231     DEC_ERR_INFO_ACKMSG,
232     DEC_ERR_DECODE_SNDMSG,
233     DEC_ERR_DECODE_ACKMSG,
234     DEC_ERR_DECODE_FINAL,
235     DEC_ERR_COMPLETE_MSG
236 };
239 #define DEC_MSGMSK_INPDATA   0x1
240 #define DEC_MSGMSK_INFOACK   0x2
241 #define DEC_MSGMSK_DECACK    0x4
244 // Input I/O structure
245 typedef struct PAF_AST_InpIO {
246     ioPhyHandle_t        hIoPhy;     /* handle to I/O physical layer */
247     ioBuffHandle_t       hIoBuff;    /* handle to I/O buffer management */
248     ioDataHandle_t       hIoData;    /* handle to I/O data processing */
249     Ptr                  hMcaspChan;
250     const void           *pRxParams; /* pointer to D10 Rx Params */
252     Int sourceSelect;
253     Int sourceProgram;
255     Int       preSyncState;
256     Int       numPrimeXfers;
257     Int       mcaspXferErr;
258 /*
259     void     *mcaspRxBuf1;
260     void     *mcaspRxBuf2;
261     uint32_t  mcaspRxSize1;
262     uint32_t  mcaspRxSize2;
263     Int       mcaspRxtwoXfers;
264 */
265     // debugging counters
266     //uint32_t numXferStart;
267     //uint32_t numXferFinish;
268     //uint32_t numXferInterm;
269     uint32_t numInputOverrun;
270     uint32_t numUnderflow;
271     uint32_t numAsitRestart;
272     uint32_t numAsitDecodeQuit;
273     uint32_t numFrameReceived;
274     uint32_t numPcmFrameReceived;
276     size_t         phyXferSize;
277     int_fast32_t   pcmSwitchHangOver;
278     uint_least16_t asipState;
279     //uint_least16_t asipProcState;
280     bool           buffReadComplete;
281     bool           swapData;
282     bool           firstTimeInit;
283 } PAF_AST_IoInp;
285 // Decoder structure
286 typedef struct asipDecProc_s {
287     Int state;
288     Int frame;
289     Int block;
291     Int majorAuFound;
292     Int initDone;
293     Int decodeAckDelayed;
294 } asipDecProc_t;
296 // Audio Stream Input Task (ASIT) configuration
297 typedef struct PAF_ASIT_Config {
298     Task_Handle taskHandle;      // ASIT handle
299     ACP_Handle acp;              // ASIT local ACP handle
300     PAF_ASPM_Config  *pAspmCfg;  // ASIT/ASOT shared configuration
301     PAF_AST_Config   *pAstCfg;   // ASIT/ASOT/ASDT shared configuration
302     PAF_AST_IoInp    *pIoInp;
303     asipDecProc_t    inpDec;
304 } PAF_ASIT_Config;
307 //   Purpose:   Audio Stream Input Task Function for initialization of data pointers
308 //              by allocation of memory.
309 Int 
310 PAF_ASIT_initPhaseMalloc(
311     const PAF_ASIT_Params *pP, 
312     const PAF_ASIT_Patchs *pQ, 
313     PAF_ASIT_Config *pAsitCfg
314 );
316 //   Purpose:   Audio Stream Input Task Function for initialization of data values
317 //              from parameters.
318 Int
319 PAF_ASIT_initPhaseConfig(
320     const PAF_ASIT_Params *pP, 
321     const PAF_ASIT_Patchs *pQ, 
322     PAF_ASIT_Config *pAsitCfg
323 );
325 //   Purpose:   Audio Stream Input Task Function for initialization of ACP by
326 //              instantiation of the algorithm.
327 Int
328 PAF_ASIT_initPhaseAcpAlg(
329     const PAF_ASIT_Params *pP, 
330     const PAF_ASIT_Patchs *pQ, 
331     PAF_ASIT_Config *pAsitCfg
332 );
334 //   (***) FL: re-visit this, ASIT/ASOT currently consider common memory independently.
335 //             Should simultaneously consider all algs in ASIT/ASOT.
336 //   Purpose:   Audio Stream Input Task Function for allocation of common memory.
337 Int
338 PAF_ASIT_initPhaseCommon(
339     const PAF_ASIT_Params *pP, 
340     const PAF_ASIT_Patchs *pQ, 
341     PAF_ASIT_Config *pAsitCfg
342 );
344 //   Purpose:   Audio Stream Input Task Function for initialization of ASP algorithms.
345 Int
346 PAF_ASIT_initPhaseAspAlg(
347     const PAF_ASIT_Params *pP, 
348     const PAF_ASIT_Patchs *pQ, 
349     PAF_ASIT_Config *pAsitCfg
350 );
352 //   Purpose:   Audio Stream Input Task Function for initialization of data values
353 //              from parameters for Algorithm Keys.
354 Int
355 PAF_ASIT_initPhaseAlgKey(
356     const PAF_ASIT_Params *pP, 
357     const PAF_ASIT_Patchs *pQ, 
358     PAF_ASIT_Config *pAsitCfg
359 );
361 //   Purpose:   Audio Stream Input Task Function for initialization of Decoder Output Circular Buffer.
362 Int
363 PAF_ASIT_initPhaseDecOpCircBuf(
364     const PAF_ASIT_Params *pP, 
365     const PAF_ASIT_Patchs *pQ, 
366     PAF_ASIT_Config *pAsitCfg
367 );
369 //   Purpose:   Audio Stream Input Task Function for initialization of Input Devices.
370 Int
371 PAF_ASIT_initPhaseDevice(
372     const PAF_ASIT_Params *pP, 
373     const PAF_ASIT_Patchs *pQ, 
374     PAF_ASIT_Config *pAsitCfg
375 );
377 //   Purpose:   Audio Stream Input Task Function for initialization of Output Init-Sync.
378 Int
379 PAF_ASIT_initPhaseOutIS(
380     const PAF_ASIT_Params *pP, 
381     const PAF_ASIT_Patchs *pQ, 
382     PAF_ASIT_Config *pAsdtCfg
383 );
386 #if 0
387 //   Purpose:   Audio Stream Task Function for initialization or reinitiali-
388 //              zation of the Audio Frame(s) by loading of data values of a
389 //              time-varying nature.
390 Int
391 PAF_AST_initFrame1(
392     const PAF_ASIT_Params *pP, 
393     const PAF_ASIT_Patchs *pQ, 
394     PAF_AST_Config *pAsitCfg, 
395     Int z, 
396     Int apply
397 );
398 #endif
400 //   Purpose:   Audio Stream Task Function for processing audio data to
401 //              determine the input type without output.
402 Int
403 PAF_ASIT_autoProcessing(
404     const PAF_ASIT_Params *pP, 
405     const PAF_ASIT_Patchs *pQ, 
406     PAF_ASIT_Config *pAsitCfg, 
407     Int inputTypeSelect, 
408     ALG_Handle pcmAlgMaster);
410 //   Purpose:   Audio Stream Input Task Function for processing audio data.
411 //
412 Int
413 PAF_ASIT_decodeProcessing(
414     const PAF_ASIT_Params *pP, 
415     const PAF_ASIT_Patchs *pQ, 
416     PAF_ASIT_Config *pAsitCfg, 
417     Int sourceSelect
418 );
420 //   Purpose:   Decoding Function for processing Decode Commands.
421 Int
422 PAF_ASIT_decodeCommand(
423     const PAF_ASIT_Params *pP, 
424     const PAF_ASIT_Patchs *pQ, 
425     PAF_ASIT_Config *pAsitCfg
426 );
428 //   Purpose:   Decoding Function for reinitializing the decoding process.
429 Int
430 PAF_ASIT_decodeInit(
431     const PAF_ASIT_Params *pP, 
432     const PAF_ASIT_Patchs *pQ, 
433     PAF_ASIT_Config *pAsitCfg, 
434     Int sourceSelect
435 );
437 //   Purpose:   Decoding Function for processing information in a manner that
438 //              is common for both initial and subsequent frames of input data.
439 Int
440 PAF_ASIT_decodeInfo(
441     const PAF_ASIT_Params *pP, 
442     const PAF_ASIT_Patchs *pQ, 
443     PAF_ASIT_Config *pAsitCfg, 
444     Int frame, 
445     Int block
446 );
448 //   Purpose:   Decoding Function for processing information in a manner that
449 //              is unique to initial frames of input data.
450 Int
451 PAF_ASIT_decodeInfo1(
452     const PAF_ASIT_Params *pP, 
453     const PAF_ASIT_Patchs *pQ, 
454     PAF_ASIT_Config *pAsitCfg, 
455     Int frame, 
456     Int block
457 );
459 //   Purpose:   Decoding Function for processing information in a manner that
460 //              is unique to frames of input data other than the initial one.
461 Int
462 PAF_ASIT_decodeInfo2(
463     const PAF_ASIT_Params *pP, 
464     const PAF_ASIT_Patchs *pQ, 
465     PAF_ASIT_Config *pAsitCfg, 
466     Int frame, 
467     Int block
468 );
470 #if 0
471 //   Purpose:   Decoding Function for processing that occurs subsequent to
472 //              information processing but antecedent to timing processing
473 //              for frames of input data other than the initial one.
474 Int
475 PAF_AST_decodeCont(
476     const PAF_ASIT_Params *pP, 
477     const PAF_ASIT_Patchs *pQ, 
478     PAF_ASIT_Config *pAsitCfg, 
479     ALG_Handle decAlg[], 
480     Int frame, 
481     Int block
482 );
483 #endif
485 //   Purpose:   Decoding Function for processing of input data by the
486 //              Decode Algorithm.
487 Int
488 PAF_ASIT_decodeDecode(
489     const PAF_ASIT_Params *pP, 
490     const PAF_ASIT_Patchs *pQ, 
491     PAF_ASIT_Config *pAsitCfg, 
492     Int sourceSelect, 
493     Int frame, 
494     Int block
495 );
497 //   Purpose:   Decoding Function for determining whether processing of the
498 //              current frame is complete.
499 Int
500 PAF_ASIT_decodeFinalTest(
501     const PAF_ASIT_Params *pP, 
502     const PAF_ASIT_Patchs *pQ, 
503     PAF_ASIT_Config *pAsitCfg, 
504     Int frame, 
505     Int block
506 );
508 //   Purpose:   Decoding Function for terminating the decoding process.
509 Int
510 PAF_ASIT_decodeComplete(
511     const PAF_ASIT_Params *pP, 
512     const PAF_ASIT_Patchs *pQ, 
513     PAF_ASIT_Config *pAsitCfg, 
514     ALG_Handle decAlg[], 
515     Int frame, 
516     Int block
517 );
519 //   Purpose:   Audio Stream Input Task Function for selecting the devices used
520 //              for input.
521 Int
522 PAF_ASIT_selectDevices(
523     const PAF_ASIT_Params *pP, 
524     const PAF_ASIT_Patchs *pQ, 
525     PAF_ASIT_Config *pAsitCfg
526 );
528 //   Purpose:   Audio Stream Input Task Function for selecting the sources used
529 //              for decoding of input to output.
530 Int
531 PAF_ASIT_sourceDecode(
532     const PAF_ASIT_Params *pP, 
533     const PAF_ASIT_Patchs *pQ, 
534     PAF_ASIT_Config *pAsitCfg, 
535     Int x
536 );
538 //   Purpose:   Common Function for processing algorithm chains.
539 Int
540 PAF_AST_streamChainFunction(
541     const PAF_ASIT_Params *pP, 
542     const PAF_ASIT_Patchs *pQ, 
543     PAF_ASIT_Config *pAsitCfg, 
544     Int iChainFrameFxns, 
545     Int abortOnError, 
546     Int logArg
547 );
549 //   Purpose:   writing 8-bit integer to shared memeory
550 static inline
551 sharedMemWriteInt8(
552         volatile XDAS_Int8 *address, /* address to write to */
553         Int8 value,                  /* value to write to the adddress */
554         Int gateIdx)                 /* GateMP Index, defined in statusOp_common.h */
556 #ifdef NON_CACHE_STATUS
557         statusOp_write((void *)address, (void *)&value, sizeof(Int8), gateIdx);
558 #else
559         *address = value;
560 #endif
563 //   Purpose:   read 8-bit integer from shared memeory
564 static inline Int8               /* return the value read in the shared memory */
565 sharedMemReadInt8(
566         volatile XDAS_Int8 *address, /* address to read from */
567         Int gateIdx)                 /* GateMP Index, defined in statusOp_common.h */
569 #ifdef NON_CACHE_STATUS
570         Int8 tempVar;
571         statusOp_read((void *)&tempVar, (void *)address, sizeof(Int8), gateIdx);
573         return tempVar;
574 #else
575         return(*address);
576 #endif
579 //   Purpose:   writing 32-bit integer to shared memeory
580 static inline sharedMemWriteInt(volatile XDAS_Int32 *address, Int value, Int gateIdx)
582 #ifdef NON_CACHE_STATUS
583         statusOp_write((void *)address, (void *)&value, sizeof(Int), gateIdx);
584 #else
585         *address = value;
586 #endif
589 //   Purpose:   read 32-bit integer from shared memeory
590 static inline Int sharedMemReadInt(volatile XDAS_Int32 *address, Int gateIdx)
592 #ifdef NON_CACHE_STATUS
593         Int tempVar;
594         statusOp_read((void *)&tempVar, (void *)address, sizeof(Int), gateIdx);
596         return tempVar;
597 #else
598         return(*address);
599 #endif
602 Int asitUpdateInputStatus(const void *pRxParams, PAF_InpBufStatus *pStatus,
603                           PAF_InpBufConfig *pInpBuf);
604 /*
605 Int asipDecodeInit(
606         const PAF_ASIT_Params *pP,
607         PAF_ASIT_Config *pAsitCfg,
608         Int sourceSelect);
609 */
610 /*Int asipDecodeProcessing(
611         const PAF_ASIT_Params *pP,
612         const PAF_ASIT_Patchs *pQ,
613         PAF_ASIT_Config *pAsitCfg,
614         Int sourceSelect);*/
615 Int asitDecodeProcessing(const PAF_ASIT_Params *pP,
616                          const PAF_ASIT_Patchs *pQ,
617                          PAF_ASIT_Config       *pAsitCfg,
618                          UInt asitEvents);
620 Int decDecodeInit(
621         const PAF_ASIT_Params *pP,
622         PAF_ASIT_Config *pAsitCfg,
623         Int sourceSelect);
625 Int decDecodeFsm(
626         const PAF_ASIT_Params *pP,
627         const PAF_ASIT_Patchs *pQ,
628         PAF_ASIT_Config *pAsitCfg,
629         Int sourceSelect,
630         UInt decMsg);
632 Int getFrameLengthSourceSel(
633         const PAF_ASIT_Params *pP,
634         Int8 sourceSelect);
636 Int rxDecodePcm(PAF_AST_IoInp  *pInp);
638 Int rxDecodeBitStream(PAF_AST_IoInp  *pInp);
640 Int rxDecodePlayZero(PAF_AST_IoInp  *pInp);
642 #endif /* _ASIP_H_ */