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

📄 ixj.h

📁 mgcp协议源代码。支持多种编码:g711
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************** *    ixj.h * *    Device Driver for the Internet PhoneJACK and *    Internet LineJACK Telephony Cards. * *    (c) Copyright 1999 Quicknet Technologies, Inc. * *    This program is free software; you can redistribute it and/or *    modify it under the terms of the GNU General Public License *    as published by the Free Software Foundation; either version *    2 of the License, or (at your option) any later version. * * Author:          Ed Okerson, <eokerson@quicknet.net> *     * Contributors:    Greg Herlein, <gherlein@quicknet.net> *                  David W. Erhart, <derhart@quicknet.net> *                  John Sellers, <jsellers@quicknet.net> *                  Mike Preston, <mpreston@quicknet.net> * * More information about the hardware related to this driver can be found * at our website:    http://www.quicknet.net * * Fixes: * * IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF QUICKNET * TECHNOLOGIES, INC.HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * QUICKNET TECHNOLOGIES, INC. SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND QUICKNET TECHNOLOGIES, INC. HAS NO OBLIGATION  * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * *****************************************************************************/static char ixj_h_rcsid[] = "$Id: ixj.h,v 1.1 2000/03/27 22:29:27 ctam Exp $";#ifndef _I386_TYPES_H#include <asm/types.h>#endif#include <linux/ixjuser.h>#include <linux/phonedev.h>typedef __u16 WORD;typedef __u32 DWORD;typedef __u8 BYTE;typedef __u8 BOOL;#define IXJMAX 16#define TRUE 1#define FALSE 0#ifndef min#define min(a,b) (((a)<(b))?(a):(b))#endif#ifndef max#define max(a,b) (((a)>(b))?(a):(b))#endif/********************************************************************************  This structure when unioned with the structures below makes simple byte*  access to the registers easier.*******************************************************************************/typedef struct {	unsigned char low;	unsigned char high;} BYTES;int ixj_WriteDSPCommand(unsigned short, int board);/********************************************************************************  This structure represents the Hardware Control Register of the CT8020/8021*  The CT8020 is used in the Internet PhoneJACK, and the 8021 in the*  Internet LineJACK*******************************************************************************/typedef struct {	unsigned int rxrdy:1;	unsigned int txrdy:1;	unsigned int status:1;	unsigned int auxstatus:1;	unsigned int rxdma:1;	unsigned int txdma:1;	unsigned int rxburst:1;	unsigned int txburst:1;	unsigned int dmadir:1;	unsigned int cont:1;	unsigned int irqn:1;	unsigned int t:5;} HCRBIT;typedef union {	HCRBIT bits;	BYTES bytes;} HCR;/********************************************************************************  This structure represents the Hardware Status Register of the CT8020/8021*  The CT8020 is used in the Internet PhoneJACK, and the 8021 in the*  Internet LineJACK*******************************************************************************/typedef struct {	unsigned int controlrdy:1;	unsigned int auxctlrdy:1;	unsigned int statusrdy:1;	unsigned int auxstatusrdy:1;	unsigned int rxrdy:1;	unsigned int txrdy:1;	unsigned int restart:1;	unsigned int irqn:1;	unsigned int rxdma:1;	unsigned int txdma:1;	unsigned int cohostshutdown:1;	unsigned int t:5;} HSRBIT;typedef union {	HSRBIT bits;	BYTES bytes;} HSR;/********************************************************************************  This structure represents the General Purpose IO Register of the CT8020/8021*  The CT8020 is used in the Internet PhoneJACK, and the 8021 in the*  Internet LineJACK*******************************************************************************/typedef struct {	unsigned int x:1;	unsigned int gpio1:1;	unsigned int gpio2:1;	unsigned int gpio3:1;	unsigned int gpio4:1;	unsigned int gpio5:1;	unsigned int gpio6:1;	unsigned int gpio7:1;	unsigned int xread:1;	unsigned int gpio1read:1;	unsigned int gpio2read:1;	unsigned int gpio3read:1;	unsigned int gpio4read:1;	unsigned int gpio5read:1;	unsigned int gpio6read:1;	unsigned int gpio7read:1;} GPIOBIT;typedef union {	GPIOBIT bits;	BYTES bytes;	unsigned short word;} GPIO;/********************************************************************************  This structure represents the Line Monitor status response*******************************************************************************/typedef struct {	unsigned int digit:4;	unsigned int cpf_valid:1;	unsigned int dtmf_valid:1;	unsigned int peak:1;	unsigned int z:1;	unsigned int f0:1;	unsigned int f1:1;	unsigned int f2:1;	unsigned int f3:1;	unsigned int frame:4;} LMON;typedef union {	LMON bits;	BYTES bytes;} DTMF;typedef struct {	unsigned int z:7;	unsigned int dtmf_en:1;	unsigned int y:4;	unsigned int F3:1;	unsigned int F2:1;	unsigned int F1:1;	unsigned int F0:1;} CP;typedef union {	CP bits;	BYTES bytes;} CPTF;/********************************************************************************  This structure represents the Status Control Register on the Internet*  LineJACK*******************************************************************************/typedef struct {	unsigned int c0:1;	unsigned int c1:1;	unsigned int stereo:1;	unsigned int daafsyncen:1;	unsigned int led1:1;	unsigned int led2:1;	unsigned int led3:1;	unsigned int led4:1;} PSCRWI;			// Internet LineJACK and Internet PhoneJACK Litetypedef struct {	unsigned int eidp:1;	unsigned int eisd:1;	unsigned int x:6;} PSCRWP;			// Internet PhoneJACK PCItypedef union {	PSCRWI bits;	PSCRWP pcib;	char byte;} PLD_SCRW;typedef struct {	unsigned int c0:1;	unsigned int c1:1;	unsigned int x:1;	unsigned int d0ee:1;	unsigned int mixerbusy:1;	unsigned int sci:1;	unsigned int dspflag:1;	unsigned int daaflag:1;} PSCRRI;typedef struct {	unsigned int eidp:1;	unsigned int eisd:1;	unsigned int x:4;	unsigned int dspflag:1;	unsigned int det:1;} PSCRRP;typedef union {	PSCRRI bits;	PSCRRP pcib;	char byte;} PLD_SCRR;/********************************************************************************  These structures represents the SLIC Control Register on the*  Internet LineJACK*******************************************************************************/typedef struct {	unsigned int c1:1;	unsigned int c2:1;	unsigned int c3:1;	unsigned int b2en:1;	unsigned int spken:1;	unsigned int rly1:1;	unsigned int rly2:1;	unsigned int rly3:1;} PSLICWRITE;typedef struct {	unsigned int state:3;	unsigned int b2en:1;	unsigned int spken:1;	unsigned int c3:1;	unsigned int potspstn:1;	unsigned int det:1;} PSLICREAD;typedef struct {	unsigned int c1:1;	unsigned int c2:1;	unsigned int c3:1;	unsigned int b2en:1;	unsigned int e1:1;	unsigned int mic:1;	unsigned int spk:1;	unsigned int x:1;} PSLICPCI;typedef union {	PSLICPCI pcib;	PSLICWRITE bits;	PSLICREAD slic;	char byte;} PLD_SLICW;typedef union {	PSLICPCI pcib;	PSLICREAD bits;	char byte;} PLD_SLICR;/********************************************************************************  These structures represents the Clock Control Register on the*  Internet LineJACK*******************************************************************************/typedef struct {	unsigned int clk0:1;	unsigned int clk1:1;	unsigned int clk2:1;	unsigned int x0:1;	unsigned int slic_e1:1;	unsigned int x1:1;	unsigned int x2:1;	unsigned int x3:1;} PCLOCK;typedef union {	PCLOCK bits;	char byte;} PLD_CLOCK;/********************************************************************************  These structures deal with the mixer on the Internet LineJACK*******************************************************************************/typedef struct {	unsigned short vol[10];	unsigned int recsrc;	unsigned int modcnt;	unsigned short micpreamp;} MIX;/********************************************************************************  These structures deal with the control logic on the Internet PhoneCARD*******************************************************************************/typedef struct {	unsigned int x0:4;	// unused bits	unsigned int ed:1;	// Event Detect	unsigned int drf:1;	// Smart Cable Removal Flag 1=no cable	unsigned int dspf:1;	// DSP Flag 1=DSP Ready	unsigned int crr:1;	// Control Register Ready} COMMAND_REG1;typedef union {	COMMAND_REG1 bits;	char byte;} PCMCIA_CR1;typedef struct {	unsigned int x0:4;	// unused bits	unsigned int rstc:1;	// Smart Cable Reset	unsigned int pwr:1;	// Smart Cable Power	unsigned int x1:2;	// unused bits} COMMAND_REG2;typedef union {	COMMAND_REG2 bits;	char byte;} PCMCIA_CR2;typedef struct {	unsigned int addr:5;	// R/W Smart Cable Register Address	unsigned int rw:1;	// Read / Write flag	unsigned int dev:2;	// 2 bit Smart Cable Device Address} CONTROL_REG;typedef union {	CONTROL_REG bits;	char byte;} PCMCIA_SCCR;typedef struct {	unsigned int cpd:1;	// Chip Power Down	unsigned int mpd:1;	// MIC Bias Power Down	unsigned int hpd:1;	// Handset Drive Power Down	unsigned int lpd:1;	// Line Drive Power Down	unsigned int spd:1;	// Speaker Drive Power Down	unsigned int x:2;	// unused bits	unsigned int sr:1;	// Software Reset} Si3CONTROL1;typedef union {	Si3CONTROL1 bits;	char byte;} Si3C1;typedef struct {	unsigned int al:1;	// Analog Loopback DAC analog -> ADC analog	unsigned int dl2:1;	// Digital Loopback DAC -> ADC one bit	unsigned int dl1:1;	// Digital Loopback ADC -> DAC one bit	unsigned int pll:1;	// 1 = div 10, 0 = div 5	unsigned int hpd:1;	// HPF disable	unsigned int x:3;	// unused bits} Si3CONTROL2;typedef union {	Si3CONTROL2 bits;	char byte;} Si3C2;typedef struct {	unsigned int iir:1;	// 1 enables IIR, 0 enables FIR	unsigned int him:1;	// Handset Input Mute	unsigned int mcm:1;	// MIC In Mute	unsigned int mcg:2;	// MIC In Gain	unsigned int lim:1;	// Line In Mute	unsigned int lig:2;	// Line In Gain} Si3RXGAIN;typedef union {	Si3RXGAIN bits;	char byte;} Si3RXG;typedef struct {	unsigned int hom:1;	// Handset Out Mute	unsigned int lom:1;	// Line Out Mute	unsigned int rxg:5;	// RX PGA Gain	unsigned int x:1;	// unused bit} Si3ADCVOLUME;typedef union {	Si3ADCVOLUME bits;	char byte;} Si3ADC;typedef struct {	unsigned int srm:1;	// Speaker Right Mute	unsigned int slm:1;	// Speaker Left Mute	unsigned int txg:5;	// TX PGA Gain	unsigned int x:1;	// unused bit} Si3DACVOLUME;typedef union {	Si3DACVOLUME bits;	char byte;} Si3DAC;typedef struct {	unsigned int x:5;	// unused bit	unsigned int losc:1;	// Line Out Short Circuit	unsigned int srsc:1;	// Speaker Right Short Circuit	unsigned int slsc:1;	// Speaker Left Short Circuit} Si3STATUSREPORT;typedef union {	Si3STATUSREPORT bits;	char byte;} Si3STAT;typedef struct {	unsigned int sot:2;	// Speaker Out Attenuation	unsigned int lot:2;	// Line Out Attenuation	unsigned int x:4;	// unused bits} Si3ANALOGATTN;typedef union {	Si3ANALOGATTN bits;	char byte;} Si3AATT;/********************************************************************************  These structures deal with the DAA on the Internet LineJACK*******************************************************************************/typedef struct _DAA_REGS {	//-----------------------------------------------	// SOP Registers	//	BYTE bySOP;	union _SOP_REGS {		struct _SOP {			union	// SOP - CR0 Register			 {				BYTE reg;				struct _CR0_BITREGS {					BYTE CLK_EXT:1;		// cr0[0:0]					BYTE RIP:1;	// cr0[1:1]					BYTE AR:1;	// cr0[2:2]					BYTE AX:1;	// cr0[3:3]					BYTE FRR:1;	// cr0[4:4]					BYTE FRX:1;	// cr0[5:5]					BYTE IM:1;	// cr0[6:6]					BYTE TH:1;	// cr0[7:7]				} bitreg;			} cr0;			union	// SOP - CR1 Register			 {				BYTE reg;				struct _CR1_REGS {					BYTE RM:1;	// cr1[0:0]					BYTE RMR:1;	// cr1[1:1]					BYTE No_auto:1;		// cr1[2:2]					BYTE Pulse:1;	// cr1[3:3]					BYTE P_Tone1:1;		// cr1[4:4]					BYTE P_Tone2:1;		// cr1[5:5]					BYTE E_Tone1:1;		// cr1[6:6]					BYTE E_Tone2:1;		// cr1[7:7]				} bitreg;			} cr1;			union	// SOP - CR2 Register			 {				BYTE reg;				struct _CR2_REGS {					BYTE Call_II:1;		// CR2[0:0]					BYTE Call_I:1;	// CR2[1:1]					BYTE Call_en:1;		// CR2[2:2]					BYTE Call_pon:1;	// CR2[3:3]					BYTE IDR:1;	// CR2[4:4]					BYTE COT_R:3;	// CR2[5:7]				} bitreg;			} cr2;			union	// SOP - CR3 Register			 {				BYTE reg;				struct _CR3_REGS {					BYTE DHP_X:1;	// CR3[0:0]					BYTE DHP_R:1;	// CR3[1:1]					BYTE Cal_pctl:1;	// CR3[2:2]

⌨️ 快捷键说明

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