~ubuntu-branches/ubuntu/saucy/dahdi-tools/saucy-proposed

« back to all changes in this revision

Viewing changes to xpp/oct612x/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_stats.c

  • Committer: Package Import Robot
  • Author(s): Jackson Doak
  • Date: 2013-08-25 12:48:37 UTC
  • mfrom: (2.1.7 sid)
  • Revision ID: package-import@ubuntu.com-20130825124837-wtefi7f9dsihg8is
Tags: 1:2.7.0-1ubuntu1
* Merge from debian. Remaining changes:
  - debian/control: Added gawk as dependency for dkms build
  - debian/control: Package dahdi Depends on dahdi-dkms | dahdi-source
  - debian/control: Set ubuntu maintainer    
  - added debian/dahdi.postinst
  - debian/control: Removed Uploaders field.
  - added debian/dahdi.postinst
  - added --error-handler=init_failed to debian/rules
  

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
 
2
 
 
3
File: oct6100_chip_stats.c
 
4
 
 
5
    Copyright (c) 2001-2007 Octasic Inc.
 
6
    
 
7
Description: 
 
8
 
 
9
        This file contains functions used to retreive the OCT6100 chip stats.
 
10
 
 
11
This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API  is 
 
12
free software; you can redistribute it and/or modify it under the terms of 
 
13
the GNU General Public License as published by the Free Software Foundation; 
 
14
either version 2 of the License, or (at your option) any later version.
 
15
 
 
16
The OCT6100 GPL API is distributed in the hope that it will be useful, but 
 
17
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
 
18
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 
 
19
for more details. 
 
20
 
 
21
You should have received a copy of the GNU General Public License 
 
22
along with the OCT6100 GPL API; if not, write to the Free Software 
 
23
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 
24
 
 
25
$Octasic_Release: OCT612xAPI-01.00-PR49 $
 
26
 
 
27
$Octasic_Revision: 89 $
 
28
 
 
29
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 
30
 
 
31
 
 
32
/*****************************  INCLUDE FILES  *******************************/
 
33
 
 
34
 
 
35
#include "octdef.h"
 
36
 
 
37
#include "oct6100api/oct6100_defines.h"
 
38
#include "oct6100api/oct6100_errors.h"
 
39
#include "oct6100api/oct6100_apiud.h"
 
40
 
 
41
#include "apilib/octapi_llman.h"
 
42
 
 
43
#include "oct6100api/oct6100_tlv_inst.h"
 
44
#include "oct6100api/oct6100_chip_open_inst.h"
 
45
#include "oct6100api/oct6100_chip_stats_inst.h"
 
46
#include "oct6100api/oct6100_interrupts_inst.h"
 
47
#include "oct6100api/oct6100_remote_debug_inst.h"
 
48
#include "oct6100api/oct6100_debug_inst.h"
 
49
#include "oct6100api/oct6100_api_inst.h"
 
50
#include "oct6100api/oct6100_channel_inst.h"
 
51
 
 
52
#include "oct6100api/oct6100_interrupts_pub.h"
 
53
#include "oct6100api/oct6100_chip_open_pub.h"
 
54
#include "oct6100api/oct6100_channel_pub.h"
 
55
#include "oct6100api/oct6100_chip_stats_pub.h"
 
56
 
 
57
#include "oct6100_chip_open_priv.h"
 
58
#include "oct6100_chip_stats_priv.h"
 
59
#include "oct6100_miscellaneous_priv.h"
 
60
#include "oct6100_chip_stats_priv.h"
 
61
 
 
62
/****************************  PUBLIC FUNCTIONS  *****************************/
 
63
 
 
64
 
 
65
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
 
66
 
 
67
Function:               Oct6100ChipGetStats
 
68
 
 
69
Description:    Retreives the chip statistics and configuration.
 
70
 
 
71
-------------------------------------------------------------------------------
 
72
|       Argument                |       Description
 
73
-------------------------------------------------------------------------------
 
74
f_pApiInstance          Pointer to API instance. This memory is used to keep the
 
75
                                        present state of the chip and all its resources.
 
76
 
 
77
f_pChipStats            Pointer to a tOCT6100_CHIP_STATS structure.
 
78
 
 
79
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 
80
#if !SKIP_Oct6100ChipGetStatsDef
 
81
UINT32 Oct6100ChipGetStatsDef(
 
82
                                tPOCT6100_CHIP_STATS                            f_pChipStats )
 
83
{
 
84
        f_pChipStats->fResetChipStats                           = FALSE;
 
85
 
 
86
        f_pChipStats->ulNumberChannels                          = cOCT6100_INVALID_STAT;
 
87
        f_pChipStats->ulNumberTsiCncts                          = cOCT6100_INVALID_STAT;
 
88
        f_pChipStats->ulNumberConfBridges                       = cOCT6100_INVALID_STAT;
 
89
        f_pChipStats->ulNumberPlayoutBuffers            = cOCT6100_INVALID_STAT;
 
90
        f_pChipStats->ulPlayoutFreeMemSize                      = cOCT6100_INVALID_STAT;
 
91
 
 
92
        f_pChipStats->ulNumberPhasingTssts                      = cOCT6100_INVALID_STAT;
 
93
        f_pChipStats->ulNumberAdpcmChannels                     = cOCT6100_INVALID_STAT;
 
94
 
 
95
        f_pChipStats->ulH100OutOfSynchCount                     = cOCT6100_INVALID_STAT;
 
96
        f_pChipStats->ulH100ClockABadCount                      = cOCT6100_INVALID_STAT;
 
97
        f_pChipStats->ulH100FrameABadCount                      = cOCT6100_INVALID_STAT;
 
98
        f_pChipStats->ulH100ClockBBadCount                      = cOCT6100_INVALID_STAT;
 
99
        f_pChipStats->ulInternalReadTimeoutCount        = cOCT6100_INVALID_STAT;
 
100
        f_pChipStats->ulSdramRefreshTooLateCount        = cOCT6100_INVALID_STAT;
 
101
        f_pChipStats->ulPllJitterErrorCount                     = cOCT6100_INVALID_STAT;
 
102
 
 
103
        f_pChipStats->ulOverflowToneEventsCount                                 = cOCT6100_INVALID_STAT;
 
104
        f_pChipStats->ulSoftOverflowToneEventsCount                             = cOCT6100_INVALID_STAT;
 
105
        f_pChipStats->ulSoftOverflowBufferPlayoutEventsCount    = cOCT6100_INVALID_STAT;
 
106
        
 
107
 
 
108
        
 
109
        return cOCT6100_ERR_OK;
 
110
}
 
111
#endif
 
112
 
 
113
 
 
114
#if !SKIP_Oct6100ChipGetStats
 
115
UINT32 Oct6100ChipGetStats(
 
116
                                tPOCT6100_INSTANCE_API                  f_pApiInstance,
 
117
                                tPOCT6100_CHIP_STATS                    f_pChipStats )
 
118
{
 
119
        tOCT6100_SEIZE_SERIALIZE_OBJECT         SeizeSerObj;
 
120
        tOCT6100_RELEASE_SERIALIZE_OBJECT       ReleaseSerObj;
 
121
        UINT32                                                          ulSerRes = cOCT6100_ERR_OK;
 
122
        UINT32                                                          ulFncRes = cOCT6100_ERR_OK;
 
123
 
 
124
        /* Set the process context of the serialize structure. */
 
125
        SeizeSerObj.pProcessContext = f_pApiInstance->pProcessContext;
 
126
        ReleaseSerObj.pProcessContext = f_pApiInstance->pProcessContext;
 
127
 
 
128
        /* Seize all list semaphores needed by this function. */
 
129
        SeizeSerObj.ulSerialObjHndl = f_pApiInstance->ulApiSerObj;
 
130
        SeizeSerObj.ulTryTimeMs = cOCT6100_WAIT_INFINITELY;
 
131
        ulSerRes = Oct6100UserSeizeSerializeObject( &SeizeSerObj );
 
132
        if ( ulSerRes == cOCT6100_ERR_OK )
 
133
        {
 
134
                /* Call the serialized function. */
 
135
                ulFncRes = Oct6100ChipGetStatsSer( f_pApiInstance, f_pChipStats );
 
136
        }
 
137
        else
 
138
        {
 
139
                return ulSerRes;
 
140
        }
 
141
 
 
142
        /* Release the seized semaphores. */
 
143
        ReleaseSerObj.ulSerialObjHndl = f_pApiInstance->ulApiSerObj;
 
144
        ulSerRes = Oct6100UserReleaseSerializeObject( &ReleaseSerObj );
 
145
 
 
146
        /* If an error occured then return the error code. */
 
147
        if ( ulSerRes != cOCT6100_ERR_OK )
 
148
                return ulSerRes;
 
149
        if ( ulFncRes != cOCT6100_ERR_OK )
 
150
                return ulFncRes;
 
151
 
 
152
        return cOCT6100_ERR_OK;
 
153
}
 
154
#endif
 
155
 
 
156
 
 
157
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
 
158
 
 
159
Function:               Oct6100ChipGetImageInfo
 
160
 
 
161
Description:    Retrieves the chip image information indicating the supported 
 
162
                                features and tones.
 
163
 
 
164
-------------------------------------------------------------------------------
 
165
|       Argument                |       Description
 
166
-------------------------------------------------------------------------------
 
167
f_pApiInstance          Pointer to API instance. This memory is used to keep the
 
168
                                        present state of the chip and all its resources.
 
169
 
 
170
f_pChipImageInfo        Pointer to a tPOCT6100_CHIP_IMAGE_INFO structure.
 
171
 
 
172
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 
173
#if !SKIP_Oct6100ChipGetImageInfoDef
 
174
UINT32 Oct6100ChipGetImageInfoDef(
 
175
                                tPOCT6100_CHIP_IMAGE_INFO                               f_pChipImageInfo )
 
176
{
 
177
        UINT32  i;
 
178
 
 
179
        Oct6100UserMemSet( f_pChipImageInfo->szVersionNumber, 0x0, cOCT6100_VERSION_NUMBER_MAX_SIZE );
 
180
 
 
181
        f_pChipImageInfo->fBufferPlayout                                = FALSE;
 
182
        f_pChipImageInfo->fAdaptiveNoiseReduction               = FALSE;
 
183
        f_pChipImageInfo->fSoutNoiseBleaching                   = FALSE;
 
184
        f_pChipImageInfo->fConferencingNoiseReduction   = FALSE;
 
185
        f_pChipImageInfo->fAutoLevelControl                             = FALSE;
 
186
        f_pChipImageInfo->fHighLevelCompensation                = FALSE;
 
187
        f_pChipImageInfo->fSilenceSuppression                   = FALSE;
 
188
        
 
189
        f_pChipImageInfo->fAdpcm                                = FALSE;
 
190
        f_pChipImageInfo->fConferencing                 = FALSE;
 
191
        f_pChipImageInfo->fDominantSpeaker              = FALSE;
 
192
        f_pChipImageInfo->ulMaxChannels                 = cOCT6100_INVALID_VALUE;
 
193
        f_pChipImageInfo->ulNumTonesAvailable   = cOCT6100_INVALID_VALUE;
 
194
        f_pChipImageInfo->ulToneProfileNumber   = cOCT6100_INVALID_VALUE;
 
195
        f_pChipImageInfo->ulMaxTailDisplacement = cOCT6100_INVALID_VALUE;
 
196
        f_pChipImageInfo->ulBuildId                             = cOCT6100_INVALID_VALUE;
 
197
        f_pChipImageInfo->ulMaxTailLength               = cOCT6100_INVALID_VALUE;
 
198
        f_pChipImageInfo->ulDebugEventSize              = cOCT6100_INVALID_VALUE;
 
199
        f_pChipImageInfo->ulMaxPlayoutEvents    = cOCT6100_INVALID_VALUE;
 
200
        f_pChipImageInfo->ulImageType                   = cOCT6100_INVALID_VALUE;
 
201
 
 
202
        f_pChipImageInfo->fAcousticEcho                                 = FALSE;
 
203
        f_pChipImageInfo->fAecTailLength                                = FALSE;
 
204
        f_pChipImageInfo->fToneRemoval                                  = FALSE;
 
205
 
 
206
        f_pChipImageInfo->fDefaultErl                                   = FALSE;
 
207
        f_pChipImageInfo->fNonLinearityBehaviorA                = FALSE;
 
208
        f_pChipImageInfo->fNonLinearityBehaviorB                = FALSE;
 
209
        f_pChipImageInfo->fPerChannelTailDisplacement   = FALSE;
 
210
        f_pChipImageInfo->fPerChannelTailLength                 = FALSE;
 
211
        f_pChipImageInfo->fListenerEnhancement                  = FALSE;
 
212
        f_pChipImageInfo->fRoutNoiseReduction                   = FALSE;
 
213
        f_pChipImageInfo->fRoutNoiseReductionLevel              = FALSE;
 
214
        f_pChipImageInfo->fAnrSnrEnhancement                    = FALSE;
 
215
        f_pChipImageInfo->fAnrVoiceNoiseSegregation             = FALSE;
 
216
        f_pChipImageInfo->fToneDisablerVqeActivationDelay = FALSE;
 
217
        f_pChipImageInfo->fMusicProtection                              = FALSE;
 
218
        f_pChipImageInfo->fDoubleTalkBehavior                   = FALSE;
 
219
        f_pChipImageInfo->fIdleCodeDetection                    = TRUE;
 
220
        f_pChipImageInfo->fSinLevel                                             = TRUE;
 
221
 
 
222
        for ( i = 0; i < cOCT6100_MAX_TONE_EVENT; i++ )
 
223
        {
 
224
                Oct6100UserMemSet( f_pChipImageInfo->aToneInfo[ i ].aszToneName, 0x00, cOCT6100_TLV_MAX_TONE_NAME_SIZE );
 
225
                f_pChipImageInfo->aToneInfo[ i ].ulDetectionPort = cOCT6100_INVALID_PORT;
 
226
                f_pChipImageInfo->aToneInfo[ i ].ulToneID = cOCT6100_INVALID_VALUE;
 
227
        }
 
228
 
 
229
        return cOCT6100_ERR_OK;
 
230
}
 
231
#endif
 
232
 
 
233
 
 
234
#if !SKIP_Oct6100ChipGetImageInfo
 
235
UINT32 Oct6100ChipGetImageInfo(
 
236
                                tPOCT6100_INSTANCE_API                  f_pApiInstance,
 
237
                                tPOCT6100_CHIP_IMAGE_INFO               f_pChipImageInfo )
 
238
{
 
239
        tPOCT6100_API_IMAGE_INFO        pImageInfo;
 
240
        UINT32  i;
 
241
 
 
242
        /* Get local pointer(s). */
 
243
        pImageInfo = &f_pApiInstance->pSharedInfo->ImageInfo;
 
244
 
 
245
        Oct6100UserMemCopy( f_pChipImageInfo->szVersionNumber, pImageInfo->szVersionNumber, cOCT6100_VERSION_NUMBER_MAX_SIZE );
 
246
 
 
247
        /* Copy the customer info. */
 
248
        f_pChipImageInfo->ulBuildId = pImageInfo->ulBuildId;
 
249
 
 
250
        /* Copy the features list. */
 
251
        f_pChipImageInfo->fBufferPlayout                                = pImageInfo->fBufferPlayout;
 
252
        f_pChipImageInfo->fAdaptiveNoiseReduction               = pImageInfo->fAdaptiveNoiseReduction;
 
253
        f_pChipImageInfo->fSoutNoiseBleaching                   = pImageInfo->fSoutNoiseBleaching;
 
254
        f_pChipImageInfo->fSilenceSuppression                   = pImageInfo->fSilenceSuppression;
 
255
 
 
256
        f_pChipImageInfo->fAdpcm                                                = pImageInfo->fAdpcm;
 
257
        f_pChipImageInfo->fConferencing                                 = pImageInfo->fConferencing;
 
258
        f_pChipImageInfo->fDominantSpeaker                              = pImageInfo->fDominantSpeakerEnabled;
 
259
        f_pChipImageInfo->fConferencingNoiseReduction   = pImageInfo->fConferencingNoiseReduction;
 
260
        f_pChipImageInfo->fAcousticEcho                                 = pImageInfo->fAcousticEcho;
 
261
        f_pChipImageInfo->fAecTailLength                                = pImageInfo->fAecTailLength;
 
262
        f_pChipImageInfo->fDefaultErl                                   = pImageInfo->fDefaultErl;
 
263
        f_pChipImageInfo->fToneRemoval                                  = pImageInfo->fToneRemoval;
 
264
 
 
265
        f_pChipImageInfo->fNonLinearityBehaviorA                = pImageInfo->fNonLinearityBehaviorA;
 
266
        f_pChipImageInfo->fNonLinearityBehaviorB                = pImageInfo->fNonLinearityBehaviorB;
 
267
        f_pChipImageInfo->fPerChannelTailDisplacement   = pImageInfo->fPerChannelTailDisplacement;
 
268
        f_pChipImageInfo->fListenerEnhancement                  = pImageInfo->fListenerEnhancement;
 
269
        f_pChipImageInfo->fRoutNoiseReduction                   = pImageInfo->fRoutNoiseReduction;
 
270
        f_pChipImageInfo->fRoutNoiseReductionLevel              = pImageInfo->fRoutNoiseReductionLevel;
 
271
        f_pChipImageInfo->fAnrSnrEnhancement                    = pImageInfo->fAnrSnrEnhancement;
 
272
        f_pChipImageInfo->fAnrVoiceNoiseSegregation             = pImageInfo->fAnrVoiceNoiseSegregation;
 
273
        f_pChipImageInfo->fMusicProtection                              = pImageInfo->fMusicProtection;
 
274
        f_pChipImageInfo->fIdleCodeDetection                    = pImageInfo->fIdleCodeDetection;
 
275
        f_pChipImageInfo->fSinLevel                                             = pImageInfo->fSinLevel;
 
276
        f_pChipImageInfo->fDoubleTalkBehavior                   = pImageInfo->fDoubleTalkBehavior;
 
277
        f_pChipImageInfo->fHighLevelCompensation                = pImageInfo->fRinHighLevelCompensation;
 
278
 
 
279
        if ( ( pImageInfo->fRinAutoLevelControl == TRUE ) && ( pImageInfo->fSoutAutoLevelControl == TRUE ) )
 
280
                f_pChipImageInfo->fAutoLevelControl = TRUE;
 
281
        else
 
282
                f_pChipImageInfo->fAutoLevelControl = FALSE;
 
283
        
 
284
        f_pChipImageInfo->ulMaxChannels                                 = pImageInfo->usMaxNumberOfChannels;
 
285
        f_pChipImageInfo->ulNumTonesAvailable                   = pImageInfo->byNumToneDetectors;
 
286
        f_pChipImageInfo->ulToneProfileNumber                   = pImageInfo->ulToneProfileNumber;
 
287
        f_pChipImageInfo->ulMaxTailDisplacement                 = pImageInfo->usMaxTailDisplacement;
 
288
        f_pChipImageInfo->ulMaxTailLength                               = pImageInfo->usMaxTailLength;
 
289
        f_pChipImageInfo->fPerChannelTailLength                 = pImageInfo->fPerChannelTailLength;
 
290
        f_pChipImageInfo->ulDebugEventSize                              = f_pApiInstance->pSharedInfo->DebugInfo.ulDebugEventSize;
 
291
        f_pChipImageInfo->fToneDisablerVqeActivationDelay = pImageInfo->fToneDisablerVqeActivationDelay;
 
292
        f_pChipImageInfo->ulMaxPlayoutEvents                    = pImageInfo->byMaxNumberPlayoutEvents - 1; /* 127 or 31 */
 
293
        f_pChipImageInfo->ulImageType                                   = pImageInfo->byImageType;
 
294
 
 
295
        for ( i = 0; i < cOCT6100_MAX_TONE_EVENT; i++ )
 
296
        {
 
297
                Oct6100UserMemCopy( f_pChipImageInfo->aToneInfo[ i ].aszToneName, pImageInfo->aToneInfo[ i ].aszToneName, cOCT6100_TLV_MAX_TONE_NAME_SIZE );
 
298
                f_pChipImageInfo->aToneInfo[ i ].ulDetectionPort = pImageInfo->aToneInfo[ i ].ulDetectionPort;
 
299
                f_pChipImageInfo->aToneInfo[ i ].ulToneID = pImageInfo->aToneInfo[ i ].ulToneID;
 
300
        }
 
301
        
 
302
        return cOCT6100_ERR_OK;
 
303
}
 
304
#endif
 
305
 
 
306
 
 
307
/****************************  PRIVATE FUNCTIONS  ****************************/
 
308
 
 
309
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
 
310
 
 
311
Function:               Oct6100ApiChipStatsSwInit
 
312
 
 
313
Description:    Initializes portions of API instance associated to chip stats.
 
314
 
 
315
-------------------------------------------------------------------------------
 
316
|       Argument                |       Description
 
317
-------------------------------------------------------------------------------
 
318
f_pApiInstance          Pointer to API instance. This memory is used to keep
 
319
                                        the present state of the chip and all its resources.
 
320
 
 
321
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 
322
#if !SKIP_Oct6100ApiChipStatsSwInit
 
323
UINT32 Oct6100ApiChipStatsSwInit(
 
324
                                IN OUT  tPOCT6100_INSTANCE_API                  f_pApiInstance )
 
325
{
 
326
        tPOCT6100_SHARED_INFO   pSharedInfo;
 
327
 
 
328
        /* Get local pointer to shared portion of API instance. */
 
329
        pSharedInfo = f_pApiInstance->pSharedInfo;
 
330
 
 
331
        /* Initialize chip stats. */
 
332
        pSharedInfo->ErrorStats.fFatalChipError = FALSE;
 
333
 
 
334
        pSharedInfo->ErrorStats.ulH100ClkABadCnt = 0;
 
335
        pSharedInfo->ErrorStats.ulH100ClkBBadCnt = 0;
 
336
        pSharedInfo->ErrorStats.ulH100FrameABadCnt = 0;
 
337
        pSharedInfo->ErrorStats.ulH100OutOfSyncCnt = 0;
 
338
 
 
339
        pSharedInfo->ErrorStats.ulInternalReadTimeoutCnt = 0;
 
340
        pSharedInfo->ErrorStats.ulSdramRefreshTooLateCnt = 0;
 
341
        pSharedInfo->ErrorStats.ulPllJitterErrorCnt     = 0;
 
342
        pSharedInfo->ErrorStats.ulOverflowToneEventsCnt = 0;
 
343
 
 
344
 
 
345
        
 
346
        pSharedInfo->ErrorStats.ulToneDetectorErrorCnt = 0;
 
347
 
 
348
        /* Init the chip stats. */
 
349
        pSharedInfo->ChipStats.usNumberChannels = 0;
 
350
        pSharedInfo->ChipStats.usNumberBiDirChannels = 0;
 
351
        pSharedInfo->ChipStats.usNumberTsiCncts = 0;
 
352
        pSharedInfo->ChipStats.usNumberConfBridges = 0;
 
353
        pSharedInfo->ChipStats.usNumberPlayoutBuffers = 0;
 
354
        pSharedInfo->ChipStats.usNumberActiveBufPlayoutPorts = 0;
 
355
        pSharedInfo->ChipStats.ulPlayoutMemUsed = 0;
 
356
        pSharedInfo->ChipStats.usNumEcChanUsingMixer = 0;
 
357
 
 
358
        pSharedInfo->ChipStats.usNumberPhasingTssts = 0;
 
359
        pSharedInfo->ChipStats.usNumberAdpcmChans       = 0;
 
360
 
 
361
        return cOCT6100_ERR_OK;
 
362
}
 
363
#endif
 
364
 
 
365
 
 
366
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
 
367
 
 
368
Function:               Oct6100ChipGetStatsSer
 
369
 
 
370
Description:    Serialized function retreiving the chip statistics.
 
371
 
 
372
-------------------------------------------------------------------------------
 
373
|       Argument                |       Description
 
374
-------------------------------------------------------------------------------
 
375
f_pApiInstance          Pointer to API instance. This memory is used to keep the
 
376
                                        present state of the chip and all its resources.
 
377
 
 
378
f_pChipStats            Pointer to master mode configuration structure.
 
379
 
 
380
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 
381
#if !SKIP_Oct6100ChipGetStatsSer
 
382
UINT32 Oct6100ChipGetStatsSer(
 
383
                                IN OUT  tPOCT6100_INSTANCE_API                  f_pApiInstance,
 
384
                                OUT             tPOCT6100_CHIP_STATS                    f_pChipStats )
 
385
{
 
386
        tPOCT6100_SHARED_INFO   pSharedInfo;
 
387
 
 
388
        /* Get local pointer(s). */
 
389
        pSharedInfo = f_pApiInstance->pSharedInfo;
 
390
 
 
391
        f_pChipStats->ulNumberChannels = pSharedInfo->ChipStats.usNumberChannels;
 
392
        f_pChipStats->ulNumberTsiCncts = pSharedInfo->ChipStats.usNumberTsiCncts;
 
393
        f_pChipStats->ulNumberConfBridges = pSharedInfo->ChipStats.usNumberConfBridges;
 
394
        f_pChipStats->ulNumberPlayoutBuffers = pSharedInfo->ChipStats.usNumberPlayoutBuffers;
 
395
        f_pChipStats->ulPlayoutFreeMemSize = ( f_pApiInstance->pSharedInfo->MiscVars.ulTotalMemSize - ( f_pApiInstance->pSharedInfo->MemoryMap.ulFreeMemBaseAddress - cOCT6100_EXTERNAL_MEM_BASE_ADDRESS ) ) - ( pSharedInfo->ChipStats.ulPlayoutMemUsed );
 
396
 
 
397
        f_pChipStats->ulNumberPhasingTssts      = pSharedInfo->ChipStats.usNumberPhasingTssts;
 
398
        f_pChipStats->ulNumberAdpcmChannels     = pSharedInfo->ChipStats.usNumberAdpcmChans;
 
399
 
 
400
        /* Check the input parameters. */
 
401
        if ( f_pChipStats->fResetChipStats != TRUE && 
 
402
                 f_pChipStats->fResetChipStats != FALSE )
 
403
                return cOCT6100_ERR_CHIP_STATS_RESET;
 
404
        
 
405
        if ( f_pChipStats->fResetChipStats == TRUE )
 
406
        {
 
407
                pSharedInfo->ErrorStats.ulH100OutOfSyncCnt = 0;
 
408
                pSharedInfo->ErrorStats.ulH100ClkABadCnt = 0;
 
409
                pSharedInfo->ErrorStats.ulH100FrameABadCnt = 0;
 
410
                pSharedInfo->ErrorStats.ulH100ClkBBadCnt = 0;
 
411
 
 
412
                pSharedInfo->ErrorStats.ulInternalReadTimeoutCnt = 0;
 
413
                pSharedInfo->ErrorStats.ulPllJitterErrorCnt = 0;
 
414
                pSharedInfo->ErrorStats.ulSdramRefreshTooLateCnt = 0;
 
415
 
 
416
                pSharedInfo->ErrorStats.ulOverflowToneEventsCnt = 0;    
 
417
                pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt = 0;
 
418
                pSharedInfo->SoftBufs.ulBufPlayoutEventBufferOverflowCnt = 0;
 
419
 
 
420
 
 
421
        }
 
422
 
 
423
        f_pChipStats->ulH100OutOfSynchCount = pSharedInfo->ErrorStats.ulH100OutOfSyncCnt;
 
424
        f_pChipStats->ulH100ClockABadCount = pSharedInfo->ErrorStats.ulH100ClkABadCnt;
 
425
        f_pChipStats->ulH100FrameABadCount = pSharedInfo->ErrorStats.ulH100FrameABadCnt;
 
426
        f_pChipStats->ulH100ClockBBadCount = pSharedInfo->ErrorStats.ulH100ClkBBadCnt;
 
427
 
 
428
        f_pChipStats->ulInternalReadTimeoutCount        = pSharedInfo->ErrorStats.ulInternalReadTimeoutCnt;
 
429
        f_pChipStats->ulPllJitterErrorCount                     = pSharedInfo->ErrorStats.ulPllJitterErrorCnt;
 
430
        f_pChipStats->ulSdramRefreshTooLateCount        = pSharedInfo->ErrorStats.ulSdramRefreshTooLateCnt;
 
431
 
 
432
        f_pChipStats->ulOverflowToneEventsCount = pSharedInfo->ErrorStats.ulOverflowToneEventsCnt;
 
433
        f_pChipStats->ulSoftOverflowToneEventsCount = pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt;
 
434
        f_pChipStats->ulSoftOverflowBufferPlayoutEventsCount = pSharedInfo->SoftBufs.ulBufPlayoutEventBufferOverflowCnt;
 
435
 
 
436
 
 
437
 
 
438
        return cOCT6100_ERR_OK;
 
439
}
 
440
#endif
 
441