628 lines
25 KiB
C
628 lines
25 KiB
C
|
/*
|
||
|
* Copyright (c) 2005 , Adaptive Digital Technologies, Inc.
|
||
|
*
|
||
|
* File Name: GpakApi.h
|
||
|
*
|
||
|
* Description:
|
||
|
* This file contains the function prototypes and data types for the user
|
||
|
* API functions that communicate with DSPs executing G.PAK software. The
|
||
|
* file is used by application software in the host processor connected to
|
||
|
* C55X G.PAK DSPs via a Host Port Interface.
|
||
|
*
|
||
|
* Version: 1.0
|
||
|
*
|
||
|
* Revision History:
|
||
|
* 06/15/05 - Initial release.
|
||
|
* 11/15/2006 - 24 TDM-TDM Channels EC release
|
||
|
*/
|
||
|
|
||
|
#ifndef _GPAKAPI_H /* prevent multiple inclusion */
|
||
|
#define _GPAKAPI_H
|
||
|
#include "gpakErrs.h"
|
||
|
#include "gpakenum.h"
|
||
|
|
||
|
// Bit masks to select which algorithm's parameters to update: Or-together the
|
||
|
// desired masks into the UpdateBits function parameter.
|
||
|
#define DTMF_UPDATE_MASK 0x0010 // update DTMF params, MinLevel, SNRFlag and Freq
|
||
|
#define DTMF_TWIST_UPDATE_MASK 0x0020 // update DTMF TWIST system params
|
||
|
#define DTMF_VALID_MASK 0x0080 // update DTMF ValidMask params
|
||
|
|
||
|
#define DSP_DEBUG_BUFF_SIZE 42 // units of 16-bit words
|
||
|
|
||
|
/* Definition of an Asynchronous Event Data Structure */
|
||
|
typedef union
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
GpakToneCodes_t ToneCode; // detected tone code
|
||
|
unsigned short int ToneDuration; // tone duration
|
||
|
GpakTdmDirection Direction; // detected on A r B side
|
||
|
short int DebugToneStatus;// reserved for debug info
|
||
|
} toneEvent;
|
||
|
|
||
|
} GpakAsyncEventData_t;
|
||
|
|
||
|
/* Definition of an Echo Canceller Parameters information structure. */
|
||
|
typedef struct GpakEcanParms
|
||
|
{
|
||
|
short int EcanTapLength; // Echo Can Num Taps (tail length)
|
||
|
short int EcanNlpType; // Echo Can NLP Type
|
||
|
short int EcanAdaptEnable; // Echo Can Adapt Enable flag
|
||
|
short int EcanG165DetEnable; // Echo Can G165 Detect Enable flag
|
||
|
short int EcanDblTalkThresh; // Echo Can Double Talk threshold
|
||
|
short int EcanMaxDoubleTalkThres; // Maximum double-talk threshold
|
||
|
short int EcanNlpThreshold; // Echo Can NLP threshold
|
||
|
short int EcanNlpConv; // Dynamic NLP control, NLP limit when EC about to converged
|
||
|
short int EcanNlpUnConv;// Dynamic NLP control, NLP limit when EC not converged yet
|
||
|
short int EcanNlpMaxSuppress; // suppression level for NLP_SUPP mode
|
||
|
short int EcanCngThreshold; // Echo Can CNG Noise threshold
|
||
|
short int EcanAdaptLimit; // Echo Can Max Adapts per frame
|
||
|
short int EcanCrossCorrLimit; // Echo Can Cross Correlation limit
|
||
|
short int EcanNumFirSegments; // Echo Can Num FIR Segments
|
||
|
short int EcanFirSegmentLen; // Echo Can FIR Segment Length
|
||
|
short int EcanTandemOperationEnable; //Enable tandem operation
|
||
|
short int EcanMixedFourWireMode; // Handle possible 4-wire (echo-free) lines
|
||
|
short int EcanReconvergenceCheckEnable; // Handle possible 4-wire (echo-free) lines
|
||
|
short int EcanSaturationLevel; /* Far end input level above which significant saturation/nonlinearity may be expected. */
|
||
|
short int EcanNLPSaturationThreshold; /* NLP threshold under conditions of possible saturation */
|
||
|
} GpakEcanParms_t;
|
||
|
|
||
|
/* Definition of a Channel Configuration information structure. */
|
||
|
typedef struct GpakChannelConfig
|
||
|
{
|
||
|
GpakSerialPort_t PcmInPortA; // A side PCM Input Serial Port Id
|
||
|
unsigned short int PcmInSlotA; // A side PCM Input Time Slot
|
||
|
GpakSerialPort_t PcmOutPortA; // A side PCM Output Serial Port Id
|
||
|
unsigned short int PcmOutSlotA; // A side PCM Output Time Slot
|
||
|
GpakSerialPort_t PcmInPortB; // B side PCM Input Serial Port Id
|
||
|
unsigned short int PcmInSlotB; // B side PCM Input Time Slot
|
||
|
GpakSerialPort_t PcmOutPortB; // B side PCM Output Serial Port Id
|
||
|
unsigned short int PcmOutSlotB; // B side PCM Output Time Slot
|
||
|
GpakToneTypes ToneTypesA; // A side Tone Detect Types
|
||
|
GpakToneTypes ToneTypesB; // B side Tone Detect Types
|
||
|
GpakActivation EcanEnableA; // Echo Cancel A Enabled
|
||
|
GpakActivation EcanEnableB; // Echo Cancel B Enabled
|
||
|
GpakEcanParms_t EcanParametersA; // Echo Cancel parameters
|
||
|
GpakEcanParms_t EcanParametersB; // Echo Cancel parameters
|
||
|
GpakCompandModes SoftwareCompand; // software companding
|
||
|
GpakRate_t FrameRate; // Gpak Frame Rate
|
||
|
GpakActivation MuteToneA; // A side mute DTMF Enabled
|
||
|
GpakActivation MuteToneB; // B side mute DTMF Enabled
|
||
|
GpakActivation FaxCngDetA; // A side FaxCng Tone Detector Enabled
|
||
|
GpakActivation FaxCngDetB; // B side FaxCng Tone Detector Enabled
|
||
|
unsigned short int ChannelId_tobe_Debug; /* Channel Id of the channel that we'd like to debug */
|
||
|
/* (0 to MaxChannels-1), only used for tdmToTdmDebug */
|
||
|
|
||
|
} GpakChannelConfig_t;
|
||
|
|
||
|
|
||
|
/* Definition of a Serial Port Configuration Structure */
|
||
|
typedef struct GpakPortConfig
|
||
|
{
|
||
|
GpakSlotCfg_t SlotsSelect1; // port 1 Slot selection
|
||
|
unsigned short int FirstBlockNum1; // port 1 first group Block Number
|
||
|
unsigned short int FirstSlotMask1; // port 1 first group Slot Mask
|
||
|
unsigned short int SecBlockNum1; // port 1 second group Block Number
|
||
|
unsigned short int SecSlotMask1; // port 1 second group Slot Mask
|
||
|
|
||
|
GpakSerWordSize_t SerialWordSize1; // port 1 serial word size
|
||
|
GpakCompandModes CompandingMode1; // port 1 companding mode
|
||
|
GpakSerFrameSyncPol_t TxFrameSyncPolarity1; // port 1 Tx Frame Sync Polarity
|
||
|
GpakSerFrameSyncPol_t RxFrameSyncPolarity1; // port 1 Rx Frame Sync Polarity
|
||
|
GpakSerClockPol_t TxClockPolarity1; // port 1 Tx Clock Polarity
|
||
|
GpakSerClockPol_t RxClockPolarity1; // port 1 Rx Clock Polarity
|
||
|
GpakSerDataDelay_t TxDataDelay1; // port 1 Tx data delay
|
||
|
GpakSerDataDelay_t RxDataDelay1; // port 1 Rx data delay
|
||
|
GpakActivation DxDelay1; // port 1 DX Delay
|
||
|
|
||
|
unsigned short int ThirdSlotMask1; // port 1 3rd group Slot Mask
|
||
|
unsigned short int FouthSlotMask1; // port 1 4th group Slot Mask
|
||
|
unsigned short int FifthSlotMask1; // port 1 5th group Slot Mask
|
||
|
unsigned short int SixthSlotMask1; // port 1 6th group Slot Mask
|
||
|
unsigned short int SevenSlotMask1; // port 1 7th group Slot Mask
|
||
|
unsigned short int EightSlotMask1; // port 1 8th group Slot Mask
|
||
|
|
||
|
|
||
|
GpakSlotCfg_t SlotsSelect2; // port 2 Slot selection
|
||
|
unsigned short int FirstBlockNum2; // port 2 first group Block Number
|
||
|
unsigned short int FirstSlotMask2; // port 2 first group Slot Mask
|
||
|
unsigned short int SecBlockNum2; // port 2 second group Block Number
|
||
|
unsigned short int SecSlotMask2; // port 2 second group Slot Mask
|
||
|
GpakSerWordSize_t SerialWordSize2; // port 2 serial word size
|
||
|
GpakCompandModes CompandingMode2; // port 2 companding mode
|
||
|
GpakSerFrameSyncPol_t TxFrameSyncPolarity2; // port 2 Tx Frame Sync Polarity
|
||
|
GpakSerFrameSyncPol_t RxFrameSyncPolarity2; // port 2 Rx Frame Sync Polarity
|
||
|
GpakSerClockPol_t TxClockPolarity2; // port 2 Tx Clock Polarity
|
||
|
GpakSerClockPol_t RxClockPolarity2; // port 2 Rx Clock Polarity
|
||
|
GpakSerDataDelay_t TxDataDelay2; // port 2 Tx data delay
|
||
|
GpakSerDataDelay_t RxDataDelay2; // port 2 Rx data delay
|
||
|
GpakActivation DxDelay2; // port 2 DX Delay
|
||
|
|
||
|
unsigned short int ThirdSlotMask2; // port 2 3rd group Slot Mask
|
||
|
unsigned short int FouthSlotMask2; // port 2 4th group Slot Mask
|
||
|
unsigned short int FifthSlotMask2; // port 2 5th group Slot Mask
|
||
|
unsigned short int SixthSlotMask2; // port 2 6th group Slot Mask
|
||
|
unsigned short int SevenSlotMask2; // port 2 7th group Slot Mask
|
||
|
unsigned short int EightSlotMask2; // port 2 8th group Slot Mask
|
||
|
|
||
|
GpakSlotCfg_t SlotsSelect3; // port 3 Slot selection
|
||
|
unsigned short int FirstBlockNum3; // port 3 first group Block Number
|
||
|
unsigned short int FirstSlotMask3; // port 3 first group Slot Mask
|
||
|
unsigned short int SecBlockNum3; // port 3 second group Block Number
|
||
|
unsigned short int SecSlotMask3; // port 3 second group Slot Mask
|
||
|
GpakSerWordSize_t SerialWordSize3; // port 3 serial word size
|
||
|
GpakCompandModes CompandingMode3; // port 3 companding mode
|
||
|
GpakSerFrameSyncPol_t TxFrameSyncPolarity3; // port 3 Tx Frame Sync Polarity
|
||
|
GpakSerFrameSyncPol_t RxFrameSyncPolarity3; // port 3 Rx Frame Sync Polarity
|
||
|
GpakSerClockPol_t TxClockPolarity3; // port 3 Tx Clock Polarity
|
||
|
GpakSerClockPol_t RxClockPolarity3; // port 3 Rx Clock Polarity
|
||
|
GpakSerDataDelay_t TxDataDelay3; // port 3 Tx data delay
|
||
|
GpakSerDataDelay_t RxDataDelay3; // port 3 Rx data delay
|
||
|
GpakActivation DxDelay3; // port 3 DX Delay
|
||
|
|
||
|
unsigned short int ThirdSlotMask3; // port 3 3rd group Slot Mask
|
||
|
unsigned short int FouthSlotMask3; // port 3 4th group Slot Mask
|
||
|
unsigned short int FifthSlotMask3; // port 3 5th group Slot Mask
|
||
|
unsigned short int SixthSlotMask3; // port 3 6th group Slot Mask
|
||
|
unsigned short int SevenSlotMask3; // port 3 7th group Slot Mask
|
||
|
unsigned short int EightSlotMask3; // port 3 8th group Slot Mask
|
||
|
|
||
|
} GpakPortConfig_t;
|
||
|
|
||
|
/* Definition of a Tone Generation Parameter Structure */
|
||
|
/*
|
||
|
typedef struct
|
||
|
{
|
||
|
GpakToneGenType_t ToneType; // Tone Type
|
||
|
unsigned short int Frequency[4]; // Frequency (Hz)
|
||
|
short int Level[4]; // Frequency's Level (1 dBm)
|
||
|
unsigned short int OnTime[4]; // On Times (msecs)
|
||
|
unsigned short int OffTime[4]; // Off Times (msecs)
|
||
|
} GpakToneGenParms_t;
|
||
|
*/
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
|
||
|
/* gpakConfigureChannel return status. */
|
||
|
typedef enum
|
||
|
{
|
||
|
CcsSuccess = 0, /* Channel Configured successfully */
|
||
|
CcsParmError = 1, /* Channel Config Parameter error */
|
||
|
CcsInvalidChannel = 2, /* invalid channel */
|
||
|
CcsInvalidDsp = 3, /* invalid DSP */
|
||
|
CcsDspCommFailure = 4 /* failed to communicate with DSP */
|
||
|
} gpakConfigChanStatus_t;
|
||
|
|
||
|
/*
|
||
|
* gpakConfigureChannel - Configure a DSP's Channel.
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function configures a DSP's Channel.
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*
|
||
|
*/
|
||
|
extern gpakConfigChanStatus_t gpakConfigureChannel(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
unsigned short int ChannelId, // channel identifier
|
||
|
GpakChanType ChannelType, // channel type
|
||
|
GpakChannelConfig_t *pChanConfig, // pointer to channel config info
|
||
|
GPAK_ChannelConfigStat_t *pStatus // pointer to Channel Config Status
|
||
|
);
|
||
|
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
|
||
|
/* gpakTearDownChannel return status. */
|
||
|
typedef enum
|
||
|
{
|
||
|
TdsSuccess = 0, /* Channel Tear Down successful */
|
||
|
TdsError = 1, /* Channel Tear Down error */
|
||
|
TdsInvalidChannel = 2, /* invalid channel */
|
||
|
TdsInvalidDsp = 3, /* invalid DSP */
|
||
|
TdsDspCommFailure = 4 /* failed to communicate with DSP */
|
||
|
} gpakTearDownStatus_t;
|
||
|
|
||
|
/*
|
||
|
* gpakTearDownChannel - Tear Down a DSP's Channel.
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function tears down a DSP's Channel.
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
extern gpakTearDownStatus_t gpakTearDownChannel(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
unsigned short int ChannelId, // channel identifier
|
||
|
GPAK_TearDownChanStat_t *pStatus // pointer to Tear Down Status
|
||
|
);
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
|
||
|
/* gpakAlgControl return status. */
|
||
|
typedef enum
|
||
|
{
|
||
|
AcSuccess = 0, /* control successful */
|
||
|
AcInvalidChannel = 1, /* invalid channel identifier */
|
||
|
AcInvalidDsp = 2, /* invalid DSP */
|
||
|
AcParmError = 3, /* invalid control parameter */
|
||
|
AcDspCommFailure = 4 /* failed to communicate with DSP */
|
||
|
} gpakAlgControlStat_t;
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||
|
* gpakAlgControl - Control an Algorithm.
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function controls an Algorithm
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*
|
||
|
*/
|
||
|
extern gpakAlgControlStat_t gpakAlgControl(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
unsigned short int ChannelId, // channel identifier
|
||
|
GpakAlgCtrl_t ControlCode, // algorithm control code
|
||
|
GPAK_AlgControlStat_t *pStatus // pointer to return status
|
||
|
);
|
||
|
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
|
||
|
/* gpakConfigurePorts return status. */
|
||
|
typedef enum
|
||
|
{
|
||
|
CpsSuccess = 0, /* Serial Ports configured successfully */
|
||
|
CpsParmError = 1, /* Configure Ports Parameter error */
|
||
|
CpsInvalidDsp = 2, /* invalid DSP */
|
||
|
CpsDspCommFailure = 3 /* failed to communicate with DSP */
|
||
|
} gpakConfigPortStatus_t;
|
||
|
|
||
|
/*
|
||
|
* gpakConfigurePorts - Configure a DSP's serial ports.
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function configures a DSP's serial ports.
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*
|
||
|
*/
|
||
|
extern gpakConfigPortStatus_t gpakConfigurePorts(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
const GpakPortConfig_t *pPortConfig, // pointer to Port Config info
|
||
|
GPAK_PortConfigStat_t *pStatus // pointer to Port Config Status
|
||
|
);
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
|
||
|
/* gpakDownloadDsp return status. */
|
||
|
typedef enum
|
||
|
{
|
||
|
GdlSuccess = 0, /* DSP download successful */
|
||
|
GdlFileReadError = 1, /* error reading Download file */
|
||
|
GdlInvalidFile = 2, /* invalid Download file content */
|
||
|
GdlInvalidDsp = 3 /* invalid DSP */
|
||
|
} gpakDownloadStatus_t;
|
||
|
|
||
|
/*
|
||
|
* gpakDownloadDsp - Download a DSP's Program and initialized Data memory.
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function reads a DSP's Program and Data memory image from the
|
||
|
* specified file and writes the image to the DSP's memory.
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*
|
||
|
*/
|
||
|
extern gpakDownloadStatus_t gpakDownloadDsp(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
GPAK_FILE_ID FileId // G.PAK download file identifier
|
||
|
);
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||
|
|
||
|
/* gpakReadEventFIFOMessage return status */
|
||
|
typedef enum
|
||
|
{
|
||
|
RefEventAvail = 0, /* an event was successfully read from the fifo */
|
||
|
RefNoEventAvail = 1, /* no event was in the fifo */
|
||
|
RefInvalidDsp = 2, /* invalid DSP identifier */
|
||
|
RefInvalidEvent = 3, /* invalid event */
|
||
|
RefDspCommFailure = 4 /* error communicating with DSP */
|
||
|
} gpakReadEventFIFOMessageStat_t;
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||
|
* gpakReadEventFIFOMessage - read from the event fifo
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function reads a single event from the event fifo if one is available
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*
|
||
|
* Note: This function should be called in a loop until the return status
|
||
|
* indicates that the fifo is empty.
|
||
|
*/
|
||
|
extern gpakReadEventFIFOMessageStat_t gpakReadEventFIFOMessage(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
unsigned short int *pChannelId, // pointer to channel identifier
|
||
|
GpakAsyncEventCode_t *pEventCode, // pointer to Event Code
|
||
|
GpakAsyncEventData_t *pEventData // pointer to Event Data Struct
|
||
|
);
|
||
|
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
||
|
|
||
|
/* gpakPingDsp return status values */
|
||
|
typedef enum
|
||
|
{
|
||
|
PngSuccess = 0, /* DSP responded successfully */
|
||
|
PngInvalidDsp = 1, /* invalid DSP identifier */
|
||
|
PngDspCommFailure = 2 /* error communicating with DSP */
|
||
|
} gpakPingDspStat_t;
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||
|
* gpakPingDsp - ping the DSP to see if it's alive
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function checks if the DSP is still communicating with the host
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*/
|
||
|
extern gpakPingDspStat_t gpakPingDsp(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
unsigned short int *pDspSwVersion // DSP software version
|
||
|
);
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
||
|
|
||
|
/* gpakSerialTxFixedValue return status values */
|
||
|
typedef enum
|
||
|
{
|
||
|
TfvSuccess = 0, /* operation successful */
|
||
|
TfvInvalidChannel = 1, /* invalid channel identifier */
|
||
|
TfvInvalidDsp = 2, /* invalid DSP identifier */
|
||
|
TfvDspCommFailure = 3 /* failed to communicate with DSP */
|
||
|
} gpakSerialTxFixedValueStat_t;
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||
|
* gpakSerialTxFixedValue - transmit a fixed value on a timeslot
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function controls transmission of a fixed value out onto a serial
|
||
|
* port's timeslot.
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*/
|
||
|
extern gpakSerialTxFixedValueStat_t gpakSerialTxFixedValue(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
unsigned short int ChannelId, // channel identifier
|
||
|
GpakSerialPort_t PcmOutPort, // PCM Output Serial Port Id
|
||
|
unsigned short int PcmOutSlot, // PCM Output Time Slot
|
||
|
unsigned short int Value, // 16-bit value
|
||
|
GpakActivation State // activation state
|
||
|
);
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
||
|
|
||
|
/* gpakControlTdmLoopBack return status values */
|
||
|
typedef enum
|
||
|
{
|
||
|
ClbSuccess = 0, /* operation successful */
|
||
|
ClbSerPortInactive = 1, /* serial port is inactive */
|
||
|
ClbInvalidDsp = 2, /* invalid DSP identifier */
|
||
|
ClbDspCommFailure = 3 /* failed to communicate with DSP */
|
||
|
} gpakControlTdmLoopBackStat_t;
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||
|
* gpakControlTdmLoopBack - control a serial port's loopback state
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function enables/disables the tdm input to output looback mode on a
|
||
|
* serial port
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*/
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
||
|
gpakControlTdmLoopBackStat_t gpakControlTdmLoopBack(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
GpakSerialPort_t SerialPort, // Serial Port Id
|
||
|
GpakActivation LoopBackState // Loopback State
|
||
|
);
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
||
|
|
||
|
/* gpakReadCpuUsage return status values */
|
||
|
typedef enum
|
||
|
{
|
||
|
RcuSuccess = 0, /* operation successful */
|
||
|
RcuInvalidDsp = 1, /* invalid DSP identifier */
|
||
|
RcuDspCommFailure = 2 /* communication failure */
|
||
|
} gpakReadCpuUsageStat_t;
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||
|
* gpakReadCpuUsage - read the cpu usage statistics
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function reads cpu utilization from the DSP.
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*/
|
||
|
extern gpakReadCpuUsageStat_t gpakReadCpuUsage(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
unsigned short int *pPeakUsage, // pointer to peak usage variable
|
||
|
unsigned short int *pPrev1SecPeakUsage // peak usage over previous 1 second
|
||
|
);
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
||
|
|
||
|
/* gpakResetCpuUsageStats return status values */
|
||
|
typedef enum
|
||
|
{
|
||
|
RstcSuccess = 0, /* operation successful */
|
||
|
RstcInvalidDsp = 1, /* invalid DSP identifier */
|
||
|
RstcDspCommFailure = 2 /* communication failure */
|
||
|
} gpakResetCpuUsageStat_t;
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||
|
* gpakResetCpuUsageStats - reset the cpu usage statistics
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function resets the cpu utilization statistics
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*/
|
||
|
extern gpakResetCpuUsageStat_t gpakResetCpuUsageStats(
|
||
|
unsigned short int DspId // DSP identifier
|
||
|
);
|
||
|
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
||
|
|
||
|
/* gpakReadFramingStats return status values */
|
||
|
typedef enum
|
||
|
{
|
||
|
RfsSuccess = 0, /* operation successful */
|
||
|
RfsInvalidDsp = 1, /* invalid DSP identifier */
|
||
|
RfsDspCommFailure = 2 /* communication failure */
|
||
|
} gpakReadFramingStatsStatus_t;
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||
|
* gpakReadFramingStats
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function reads a DSP's framing interrupt statistics
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*/
|
||
|
extern gpakReadFramingStatsStatus_t gpakReadFramingStats(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
unsigned short int *pFramingError1Count, // port 1 Framing error count
|
||
|
unsigned short int *pFramingError2Count, // port 2 Framing error count
|
||
|
unsigned short int *pFramingError3Count, // port 3 Framing error count
|
||
|
unsigned short int *pDmaStopErrorCount, // DMA-stoppage error count
|
||
|
unsigned short int *pDmaSlipStatsBuffer // DMA slips count
|
||
|
);
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/
|
||
|
|
||
|
/* gpakResetFramingStats return values */
|
||
|
typedef enum
|
||
|
{
|
||
|
RstfSuccess = 0, /* operation successful */
|
||
|
RstfInvalidDsp = 1, /* invalid DSP identifier */
|
||
|
RstfDspCommFailure = 2 /* communication failure */
|
||
|
} gpakResetFramingStatsStatus_t;
|
||
|
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||
|
* gpakResetFramingStats - reset a DSP's framing interrupt statistics
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function resets a DSP's framing interrupt statistics
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*/
|
||
|
extern gpakResetFramingStatsStatus_t gpakResetFramingStats(
|
||
|
unsigned short int DspId // DSP identifier
|
||
|
);
|
||
|
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
RmmSuccess =0,
|
||
|
RmmInvalidDsp = 1,
|
||
|
RmmSizeTooBig = 2,
|
||
|
RmmFailure = 3,
|
||
|
RmmInvalidAddress = 4
|
||
|
|
||
|
} gpakReadDSPMemoryStat_t;
|
||
|
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||
|
* gpakResetFramingStats - read a section of DSP memory
|
||
|
* to get access DSP registers, since 0x00--0x60 not HPI-accessable
|
||
|
*
|
||
|
* FUNCTION
|
||
|
* This function resets a DSP's framing interrupt statistics
|
||
|
*
|
||
|
* RETURNS
|
||
|
* Status code indicating success or a specific error.
|
||
|
*/
|
||
|
|
||
|
extern gpakReadDSPMemoryStat_t gpakReadDSPMemoryMap(
|
||
|
unsigned short int DspId, // Dsp Identifier
|
||
|
unsigned short int *pDest, // Buffer on host to hold DSP memory map
|
||
|
DSP_ADDRESS BufrBaseAddress, // DSP memory users want to read out
|
||
|
unsigned short int MemoryLength_Word16 // Length of memory section read out, unit is 16-bit word
|
||
|
);
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
GPIOSuccess =0,
|
||
|
GPIOInvalidDsp = 1,
|
||
|
GPIODspCommFailure = 2
|
||
|
}gpakAccessGPIOStat_t;
|
||
|
|
||
|
extern gpakAccessGPIOStat_t gpakAccessGPIO(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
GpakGPIOCotrol_t gpakControlGPIO,// select oeration, changeDIR/write/read
|
||
|
unsigned short int *pGPIOValue // pointer for the read/write value or DIR mask
|
||
|
);
|
||
|
|
||
|
/* gpakWriteSystemParms return status. */
|
||
|
typedef enum
|
||
|
{
|
||
|
WspSuccess = 0, /* System Parameters written successfully */
|
||
|
WspParmError = 1, /* Write System Parms's Parameter error */
|
||
|
WspInvalidDsp = 2, /* invalid DSP */
|
||
|
WspDspCommFailure = 3 /* failed to communicate with DSP */
|
||
|
} gpakWriteSysParmsStatus_t;
|
||
|
|
||
|
/* Definition of a System Parameters information structure. */
|
||
|
typedef struct
|
||
|
{
|
||
|
/* DTMF Parameters */
|
||
|
short int MinSigLevel; /* 0 = Disabled, Min Sig Power Level for detection */
|
||
|
short int SNRFlag; /* 0 = Disabled, relax SNR tolerances */
|
||
|
short int FreqDeviation; /* 0 = Disabled, X Percent Deviation times 10 (e.g. 1.7% is entered as 17) */
|
||
|
short int DtmfFwdTwist; /* 0 to 8 db */
|
||
|
short int DtmfRevTwist; /* 0 to 8 db */
|
||
|
|
||
|
short int DtmfValidityMask; /* This flag allows users to relax the trailing conditions of the tone */
|
||
|
|
||
|
} GpakSystemParms_t;
|
||
|
/* gpakReadSystemParms return status. */
|
||
|
typedef enum
|
||
|
{
|
||
|
RspSuccess = 0, /* System Parameters read successfully */
|
||
|
RspInvalidDsp = 1, /* invalid DSP */
|
||
|
RspDspCommFailure = 2 /* failed to communicate with DSP */
|
||
|
} gpakReadSysParmsStatus_t;
|
||
|
|
||
|
extern gpakReadSysParmsStatus_t gpakReadSystemParms(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
GpakSystemParms_t *pSysParms /* pointer to System Parms info var */
|
||
|
);
|
||
|
|
||
|
extern gpakWriteSysParmsStatus_t gpakWriteSystemParms(
|
||
|
unsigned short int DspId, // DSP identifier
|
||
|
GpakSystemParms_t *pSysParms, /* pointer to System Parms info var */
|
||
|
unsigned short int UpdateBits, /* input: flags indicating which parms to update */
|
||
|
GPAK_SysParmsStat_t *pStatus /* pointer to Write System Parms Status */
|
||
|
);
|
||
|
|
||
|
#endif // end multiple inclusion
|
||
|
|