dahdi-linux/drivers/dahdi/voicebus/GpakApi.h

628 lines
25 KiB
C
Raw Normal View History

/*
* 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