⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m803xx.h

📁 m80320 VoIP DSP驱动源码
💻 H
📖 第 1 页 / 共 2 页
字号:
    UINT8    tx_cmd_requested;     /* 发送CMD标志位 0 - 可以发送;1 - 不能发送 */
}CHANNEL;

/*openchannel 的命令FIFO队列的最大值,单位是sizeof(UINT16)*/
#define  MAX_LEN_OF_CMD_FIFO    512

typedef struct
{
    UINT8    Channel;            /* M803xx的实际通道号 */
    UINT8    Slot;               /* 对应的时隙 */
    UINT8    VAD;                /* ZhengQishan, 数据流的类型, refer to enum TVFDCode */
    UINT8    Active;             /* 0: DOWN,  1: UP 2: BUSY*/
    
    UINT8    CallType;           /* 0:Idle, 1:In, 2:Out */
    UINT8    OldServiceType;
    UINT8    OldActiveStatus;    /* for RTCP Timer detecting */
    UINT8    ExpectServiceType;
    
    UINT8    ExpectActiveStatus;
    UINT8    ReceiveRTCPFlag;
    UINT8    ReceiveRTPFlag;
    UINT8    Dtmf_Receive_Flag;  /* 是否上报收到的DTMF号码 */
    
    UINT8    status;
    UINT8    asysynmode;         /* 工作模式 0 - 异步;1 - 同步 */
    UINT8    tx_cmd_requested;   /* 发送CMD标志位 0 - 可以发送;1 - 不能发送 */
    UINT8    Ackok;

    UINT16   tx_data_requested;  /* 发送数据标志位 0 - 可以发送;1 - 不能发送 */
    UINT16   pt_value;
    
    UINT16   PackLen;
    UINT16   callingFialedCnt;   /*ZhengQishan 增加一个记数器用于统计由于没有正常关闭引起的呼叫失败次数*/
        
    UINT16   InCmd;
    UINT16   OutCmd;

    UINT8    Stop_Tone_Generate_Flag;
    UINT8    Tone_Err_Open_flag;
    UINT16   Tone_Type_Temp;
    
    UINT32   syncerrcnt;         /* 错误帧数 */
    UINT32   ReOpenNum;
    
    UINT8    Recdisch;
    UINT8    CID_Len;
    UINT8    CID_Send_Len;
    UINT8    CID_Time_Num;
    
    UINT32   RECNum;
    UINT32   PLAYNum;
    UINT16   tx_cmd_fifo[MAX_LEN_OF_CMD_FIFO];    /* cmd 数据 */
    UINT16   rx_cmd_fifo[MAX_LEN_OF_CMD_FIFO];    /* cmd 数据 */
    char     CID_digit[M80320_MAX_CID_NUMBER];
}M803xx_PORT_STATE;

typedef struct
{
   UINT8 Port;
   BOOL Result;
}PORT_RESULT;

typedef struct {
    unsigned long bl_decompress_code;
    unsigned long bl_self_reloc_code;
    unsigned long bl_dbg_int_zeroinit;
    unsigned long bl_image_entry_point;
    unsigned long program_exit_instr;
    unsigned long image_readonly_size;
    unsigned long image_readwrite_size;
    unsigned long image_debug_size;
    unsigned long image_zero_init_size;
    unsigned long image_debug_type;
    unsigned long image_base;
    unsigned long work_space;
    unsigned long address_mode;
    unsigned long data_base;
    unsigned long first_fat;
    unsigned long reserved2;
    unsigned long debug_init_instr;
    unsigned long zero_init_code[15];
} AIF_HEADER, *PAIF_HEADER;

typedef struct
{
    UINT32  file_offset_next;
    UINT32  load_address;
    UINT32  words;
    char    region_name[32];
}FAT_AIF_HEADER;

typedef struct
{
    UINT8    Call;
    UINT8    Success;
    UINT8    Reason;
    UINT8    Port;
    UINT8    PortType;
    UINT32  Time;
    char    Reserved[11];
}CallLogStruc;

typedef struct {
   UINT8 chan;          /* Modem/Channel ID byte of the DP message header */
   UINT8 chip;          /* Datapump number */
}CSM_PORT;

#define DTMF_OUT_BAND_TRANSFER    0
#define DTMF_IN_BAND_TRANSFER     1
#define DTMF_NOT_TRANSFER         2

typedef struct
{
    UINT8    LPWmax;
    UINT8    LPWmin;
    UINT8    LPR;
    UINT8    LPWinitial;
    UINT16  HardSoftmode;/*0:soft, 1: hard*/
    UINT16  MAT;
    UINT16  DT;
}RPPH;

#define PCI_BRM_ERRIND         0x0000
#define PCI_BRM_MCUREADY       0x0001
#define PCI_BRM_BYTEREAD       0x0200
#define PCI_BRM_BYTEWRITE      0x0300
#define PCI_BRM_CMD_ACK        0x1400
#define PCI_BRM_FIFOREAD       0x0400
#define PCI_BRM_FIFOWRITE      0x0500
#define PCI_BRM_PROGSTART      0x0600
#define CS_SETUP               0x0007
#define PCI_BRM_ZEROFILL       0x0800
#define PCI_BRM_WORDREAD       0x0a00
#define PCI_BRM_WORDWRITE      0x0b00
#define PCI_BRM_RUN_CHECKSUM   0x1000
#define SUPVSR                 0xd4ff
#define SUPVSR_CREATE_CHANNEL_ACK 0xd2ff

#define FIFO_CTR_REG                    0x00
#define FIFO_STA_REG                    0x04
#define TX_FIFO_SIZE                    0x10
#define TX_FIFO_THRESHOLD_H             0x14
#define TX_FIFO_THRESHOLD_L             0x18
#define RX_FIFO_SIZE                    0x20
#define RX_FIFO_THRESHOLD_H             0x24
#define RX_FIFO_THRESHOLD_L             0x28
#define TXMAIL0                         0x30
#define TXMAIL1                         0x34
#define TXMAIL2                         0x38
#define TXMAIL3                         0x3c
#define RXMAIL0                         0x40
#define RXMAIL1                         0x44
#define RXMAIL2                         0x48
#define RXMAIL3                         0x4c
#define HOST_START_DATA_ADD             0x100

/* control bit in HOST FIFO control reg (0x00)  */
#define CTRL_TXFF_EN            0x0001 /* Enables TX_FIFO operation */
#define CTRL_HBTXRQ_EN          0x0002 /* Enables TX HBRQSTW operation enable= 1, disable =0    */
#define CTRL_RXFF_EN            0x0008 /* Enables RX FIFO operation */
#define CTRL_HBRXRQ_EN          0x0010 /* Enables RX HBRQSTW operation enable= 1, disable =0    */
#define CTRL_TXCP_INH           0x0020 /* Enables TC COMPLETE INTERRUPT enable = 1, disable =0  */
#define CTRL_TXEIE              0x0100 /* TX_FIFO Empty Interrupt Enable    */
#define CTRL_TXHIE              0x0200 /* TX_FIFO Treshold Interrupt Enable */
#define CTRL_TXM3IE             0x0400 /* TXMAIL3 Interrupt Enable  */
#define CTRL_DMABFI             0x0800 /* The DMA Buffer is empty   */
#define CTRL_RXFIE              0x1000 /* RX_FIFO FULL Interrupt Enable */
#define CTRL_RXTHIE             0x2000 /* RX_FIFO Threshold Interrupt Enable    */
#define CTRL_RXM3IE             0x4000 /* RXMAIL3 Interrupt Enable  */
#define CTRL_TAINTEN            0x8000 /* Target abort interrupt enable */

#define RESET_MASK              0x0100
#define TXEIAK_MASK             0x0001
#define TXM3IAK_MASK            0x00000004
#define RXTHAK_MASK             0x0020
#define RXM3IAK_MASK            0x0040
#define TXE_MASK                0x0100
#define TXM3I_MASK              0x00000400
#define RXTH_MASK               0x00002000
#define RXM3I_MASK              0x00004000
#define RXF_MASK                0x1000
#define RXFAK_MASK              0x0010

#define FUN_VOPENA      0x8000
#define FUN_VCEOPT      0x8001
#define FUN_DTMFOPT     0X8002
#define FUN_FAXOPT      0X8003
#define FUN_FAXQUAL     0X8004
#define FUN_DGAIN       0X8005
#define FUN_ECHOCAN     0X8006
#define FUN_RPPH        0X8007
#define FUN_EXTENC      0X8008
#define FUN_TONEGEN     0X8009
#define FUN_SSRCFILT    0X800A
#define FUN_RTPSUPP     0X800B
#define FUN_RTCPSTAT    0X800C
#define FUN_TONEDET     0X800D
#define FUN_SSRCCHG     0X800E
#define FUN_PTCHNG      0X800F
#define FUN_TCMPLT      0X8010
#define FUN_FAXSTATE    0X8011
#define FUN_LOOPBACK    0X8012
#define FUN_TONEOFF     0X8014
#define FUN_ECOVR       0X8016
#define FUN_EVENTDET    0X8017
#define FUN_PTMNG       0X8018

#define FUN_VINFOTMR    0x801A
#define FUN_FINFOTMR    0x801B
#define FUN_VINFOIND    0x801c
#define FUN_FINFOIND    0x801D
#define FUN_DTMFDPAR    0x8021
#define FUN_FAXLVL      0x8026
#define FUN_SSRCVIOL    0x8027
#define FUN_PTSET       0x802B
#define FUN_PTSETRXOVR  0x802D
#define FUN_CID_GENERATION 0x8039
#define RESULT_OF_CID_GENERATION 0x803d
#define FUN_SET_CID_PAR    0x803A
#define FUN_DSPACC      0X80FE
#define FUN_DVTTEST     0X80FF

#define CMD_MASK        0xFF00
#define CHAN_MASK       0x00FF

#define ERRIND          0x0000
#define MCUREADY        0x0001
#define BYTEREAD        0x0002
#define BYTEWRITE       0x0003
#define FIFOREAD        0x0004
#define FIFOWRITE       0x0005
#define PROGSTART       0x0006
#define ZEROFILL        0x0008
#define RESET           0x0009
#define WORDREAD        0x000A
#define WORDWRITE       0x000B
#define CMD_BYTEREAD    0x0200
#define CMD_BYTEWRITE   0x0300
#define CMD_DATAREQ     0x0800
#define CMD_FIFODAT     0x0900
#define CMD_SYNCDAT     0x1000
#define CMD_SYNCEOF     0x1100
#define CMD_SYNCERR     0x1200
#define CMD_PACKREQ     0x1300
#define CMD_CMDDAT      0x1400
#define CMD_CMDREQ      0x1500
#define CMD_TXEMPTY     0x1C00
#define CMD_ACCMTX      0x2000
#define CMD_ACCMRX      0x2100
#define CMD_DTEREQ      0x2800
#define CMD_DTERPT      0x2900
#define CMD_DCEREQ      0x2A00
#define CMD_DCERPT      0x2B00
#define CMD_HGUPDN      0x2F00
#define CMD_DIALDET     0x3000
#define CMD_ANSDET      0x3100
#define CMD_HGUPDET     0x3200
#define CMD_LINECON     0x3300
#define CMD_LINEERR     0x3400
#define CMD_RINGIND     0x3500
#define CMD_SETTSA      0x3600
#define CMD_CONFIGACK   0x3800
#define CMD_CHSTATUS    0x3A00
#define CMD_CHRESET     0x3B00
#define CMD_CHDISABLE   0x3C00
#define CMD_CHANQUERY   0x3D00
#define CMD_SETASYN     0xB800
#define CMD_SETSYNC     0xB900
#define CMD_CRCENA      0xBA00
#define CMD_CRCDIS      0xBB00
#define CMD_NTWKENA     0xBE00
#define CMD_NTWKDIS     0xBF00
#define CMD_DEVREQ      0xF000
#define CMD_DEVRPT      0xF100
#define CMD_SETSYNCHOST 0xF200
#define CMD_CREATE_CHAN 0xD000
#define CMD_DESTROY_CHAN 0xD100
#define ACK_CREATE_CHAN 0xD200
#define ACK_DESTROY_CHAN 0xD300
#define CMD_CHANGE_TYPE 0xD500
#define ACK_CHANGE_TYPE 0xD600

#define CMD_PCIDAT      0xC000
#define CMD_PCIEOF      0xC100
#define CMD_PCIREQ      0xC200
#define CMD_PCIDONE     0xC300
#define CMD_PCIERR      0xC400

#define m80320_rtp  0
#define m80320_rtcp 1

#define Cmd_Class_Statics          1
#define Cmd_Class_Configuration    2

/* Cmd type for Cmd Class 01 (statistics) */
#define CMD_TYPE_Rtcp_Statics                   5  
#define CMD_TYPE_VOICE_PLAYOUT_DELAY_Statics    6
#define CMD_TYPE_VOICE_PLAYOUT_ERROR_Statics    7
#define CMD_TYPE_VOICE_PKT_TX_Statics           8
#define CMD_TYPE_VOICE_PKT_RX_Statics           9
#define CMD_TYPE_VOICE_LEVEL_Statics            0x0a
#define CMD_TYPE_FAX_TxAndRx_Statics            0x0b
#define CMD_TYPE_FAX_PLAYOUT_Statics            0x0c
#define CMD_TYPE_FAX_Data_PUMP_Statics          0x0d
#define CMD_TYPE_FAX_COMBINED_Statics           0x0F
#define CMD_TYPE_CFG_SUMMARY                    0x10

/* Cmd type for Cmd class 02 (configuration)*/
#define Config_Change              0  
#define Config_Query               1
#define Config_Ack                 2
#define Config_Indication          3
#define Config_Query_Response      4

#define G711ulaw                0
#define G723                    4
#define G711Alaw                8
#define G728                    15
#define G729                    18
#define IFP                     98

#define M80320_PRINTF if(M80320_Printf) printf
#define VoIP_CALL_PRINTF if(VoIP_Call_Printf) printf

UINT8 Disable_Channel_Processing(UINT8 PortNo);
UINT8 Tone_Err_Disable_Channel_Processing(UINT8 PortNo);
void M80320_CID_SendDtmf(UINT8 PortNo);
void M80320_CID_Stop(UINT8 PortNo);
void M80320_CID_Digit(UINT32 Port, char *digit, UINT8 Len);
UINT8 Tone_Generate_Process(UINT16 Tone_Type, UINT8 PortNo);
void voip_driver_check_qos_dscp(UINT32 *dscp);


UINT8 M80320SendDtmf(VOIP_MUX_STRUCT *In);
BOOL VOIP_RTCP_InitScanTimer(void);
void RTCP_TimeoutProcess(void);
void RTCP_Timeout1Process(void);
unsigned long Swap_Word( unsigned long in );
unsigned long Swap_DwordM( unsigned long in );
UINT16 SendToM803xx(VOIP_MUX_STRUCT *in);
UINT16 Swap_WordM(UINT16 in );
UINT16 Swap_Byte( UINT16 in );
UINT8 QueueTxBoxMsg(UINT32 msg, UINT32 p0, UINT32 p1, UINT32 p2, UINT8 PortNo);
extern STATUS M80320_checkOpenChanQueue(UINT8 PortNo, UINT16 msgFIFOLen, UINT16 funID);
extern UINT8 SendMsgToOpenChannelQueue(UINT16 msg, UINT16 p0, UINT16 p1, UINT16 p2, UINT8 PortNo);
int M803xxPciIntConnect(UINT8 slotNum);
unsigned long ReadFromRegister(unsigned char reg_add,unsigned long Addr);
void Send_CONFSUM_Cmd(UINT8 PortNo);
void Tone_Detect_Process(UINT8 PortNo, UINT16* ptr, UINT8 len);
void Event_Detect_Process(UINT8 PortNo, UINT16* ptr, UINT8 len);
void SendMsgToTxDataQueue(UINT32 Addr, UINT16 Len, UINT8 PortNo, packet * p);
void InitPortQueue(UINT8 PortNo);
void InitOpenChanQueue(UINT8 PortNo);
extern void M803xxMsgProcess(VOIP_MUX_STRUCT *In);
extern void incCountForToneErr(void);
extern void * sysPhysToPci ( void * PhysAddr );
extern void * sysPciToPhys ( void * PciAddr );
extern void * sysVirtToPhys(void *virtAddr);
extern void * sysPhysToVirt(void *physAddr);
extern void*  endPktAlloc(void);
extern void   endPktFree(char* buff );
extern void OpenChannel(UINT8 PortNo, UINT8 Flag);
extern UINT8  Tone_Stop[M803XX_MAX_PORT_NUM * MAX_PIN_NUM];
extern SEM_ID M803xxOprSem[MAX_PIN_NUM];
extern UINT8 M803xx_Open_Channel_Flag[64];
extern STATUS voipConnect(unsigned int gPort1,unsigned int gPort2);
extern M803xx_PORT_STATE m_port[M803XX_MAX_PORT_NUM * MAX_PIN_NUM];
extern M803xx_PORT CON_TO_DP[PORTS_OF_CHIP * MAX_PIN_NUM];
extern void faxDebug(int dbgClass, UINT32 gport, const char *fmt, ...);
extern void faxGDebug(int logClass, const char *fmt, ...);
void SendFaxPktDebug(UINT32 *buf, UINT8 PortNo, UINT16 Len);
extern UINT8 Dtmf_Generate_Process(UINT8 digit, UINT8 PortNo);
extern void setPortDefaultArg(int PortNo);
extern UINT8 M80320_ToneOff(UINT8 PortNo);


#endif /*#if INSTALL_LFXS_DRIVER*/
#endif /*_M80320_H*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -