📄 m803xx.h
字号:
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 + -