📄 ixj.h
字号:
struct _CR5_REGS { BYTE V_0:1; /* CR5[0:0] */ BYTE V_1:1; /* CR5[1:1] */ BYTE V_2:1; /* CR5[2:2] */ BYTE V_3:1; /* CR5[3:3] */ BYTE V_4:1; /* CR5[4:4] */ BYTE V_5:1; /* CR5[5:5] */ BYTE V_6:1; /* CR5[6:6] */ BYTE V_7:1; /* CR5[7:7] */ } bitreg; } cr5; union /* SOP - CR6 Register */ { BYTE reg; struct _CR6_REGS { BYTE reserved:8; /* CR6[0:7] */ } bitreg; } cr6; union /* SOP - CR7 Register */ { BYTE reg; struct _CR7_REGS { BYTE reserved:8; /* CR7[0:7] */ } bitreg; } cr7; } SOP; BYTE ByteRegs[sizeof(struct _SOP)]; } SOP_REGS; /* DAA_REGS.SOP_REGS.SOP.CR5.reg */ /* DAA_REGS.SOP_REGS.SOP.CR5.bitreg */ /* DAA_REGS.SOP_REGS.SOP.CR5.bitreg.V_2 */ /* DAA_REGS.SOP_REGS.ByteRegs[5] */ /*----------------------------------------------- */ /* XOP Registers */ /* */ BYTE byXOP; union _XOP_REGS { struct _XOP { union XOPXR0/* XOP - XR0 Register - Read values */ { BYTE reg; struct _XR0_BITREGS { BYTE SI_0:1; /* XR0[0:0] - Read */ BYTE SI_1:1; /* XR0[1:1] - Read */ BYTE VDD_OK:1; /* XR0[2:2] - Read */ BYTE Caller_ID:1; /* XR0[3:3] - Read */ BYTE RING:1; /* XR0[4:4] - Read */ BYTE Cadence:1; /* XR0[5:5] - Read */ BYTE Wake_up:1; /* XR0[6:6] - Read */ BYTE RMR:1; /* XR0[7:7] - Read */ } bitreg; } xr0; union /* XOP - XR1 Register */ { BYTE reg; struct _XR1_BITREGS { BYTE M_SI_0:1; /* XR1[0:0] */ BYTE M_SI_1:1; /* XR1[1:1] */ BYTE M_VDD_OK:1; /* XR1[2:2] */ BYTE M_Caller_ID:1; /* XR1[3:3] */ BYTE M_RING:1; /* XR1[4:4] */ BYTE M_Cadence:1; /* XR1[5:5] */ BYTE M_Wake_up:1; /* XR1[6:6] */ BYTE unused:1; /* XR1[7:7] */ } bitreg; } xr1; union /* XOP - XR2 Register */ { BYTE reg; struct _XR2_BITREGS { BYTE CTO0:1; /* XR2[0:0] */ BYTE CTO1:1; /* XR2[1:1] */ BYTE CTO2:1; /* XR2[2:2] */ BYTE CTO3:1; /* XR2[3:3] */ BYTE CTO4:1; /* XR2[4:4] */ BYTE CTO5:1; /* XR2[5:5] */ BYTE CTO6:1; /* XR2[6:6] */ BYTE CTO7:1; /* XR2[7:7] */ } bitreg; } xr2; union /* XOP - XR3 Register */ { BYTE reg; struct _XR3_BITREGS { BYTE DCR0:1; /* XR3[0:0] */ BYTE DCR1:1; /* XR3[1:1] */ BYTE DCI:1; /* XR3[2:2] */ BYTE DCU0:1; /* XR3[3:3] */ BYTE DCU1:1; /* XR3[4:4] */ BYTE B_off:1; /* XR3[5:5] */ BYTE AGB0:1; /* XR3[6:6] */ BYTE AGB1:1; /* XR3[7:7] */ } bitreg; } xr3; union /* XOP - XR4 Register */ { BYTE reg; struct _XR4_BITREGS { BYTE C_0:1; /* XR4[0:0] */ BYTE C_1:1; /* XR4[1:1] */ BYTE C_2:1; /* XR4[2:2] */ BYTE C_3:1; /* XR4[3:3] */ BYTE C_4:1; /* XR4[4:4] */ BYTE C_5:1; /* XR4[5:5] */ BYTE C_6:1; /* XR4[6:6] */ BYTE C_7:1; /* XR4[7:7] */ } bitreg; } xr4; union /* XOP - XR5 Register */ { BYTE reg; struct _XR5_BITREGS { BYTE T_0:1; /* XR5[0:0] */ BYTE T_1:1; /* XR5[1:1] */ BYTE T_2:1; /* XR5[2:2] */ BYTE T_3:1; /* XR5[3:3] */ BYTE T_4:1; /* XR5[4:4] */ BYTE T_5:1; /* XR5[5:5] */ BYTE T_6:1; /* XR5[6:6] */ BYTE T_7:1; /* XR5[7:7] */ } bitreg; } xr5; union /* XOP - XR6 Register - Read Values */ { BYTE reg; struct _XR6_BITREGS { BYTE CPS0:1; /* XR6[0:0] */ BYTE CPS1:1; /* XR6[1:1] */ BYTE unused1:2; /* XR6[2:3] */ BYTE CLK_OFF:1; /* XR6[4:4] */ BYTE unused2:3; /* XR6[5:7] */ } bitreg; } xr6; union /* XOP - XR7 Register */ { BYTE reg; struct _XR7_BITREGS { BYTE unused1:1; /* XR7[0:0] */ BYTE Vdd0:1; /* XR7[1:1] */ BYTE Vdd1:1; /* XR7[2:2] */ BYTE unused2:5; /* XR7[3:7] */ } bitreg; } xr7; } XOP; BYTE ByteRegs[sizeof(struct _XOP)]; } XOP_REGS; /* DAA_REGS.XOP_REGS.XOP.XR7.reg */ /* DAA_REGS.XOP_REGS.XOP.XR7.bitreg */ /* DAA_REGS.XOP_REGS.XOP.XR7.bitreg.Vdd0 */ /* DAA_REGS.XOP_REGS.ByteRegs[7] */ /*----------------------------------------------- */ /* COP Registers */ /* */ BYTE byCOP; union _COP_REGS { struct _COP { BYTE THFilterCoeff_1[8]; /* COP - TH Filter Coefficients, CODE=0, Part 1 */ BYTE THFilterCoeff_2[8]; /* COP - TH Filter Coefficients, CODE=1, Part 2 */ BYTE THFilterCoeff_3[8]; /* COP - TH Filter Coefficients, CODE=2, Part 3 */ BYTE RingerImpendance_1[8]; /* COP - Ringer Impendance Coefficients, CODE=3, Part 1 */ BYTE IMFilterCoeff_1[8]; /* COP - IM Filter Coefficients, CODE=4, Part 1 */ BYTE IMFilterCoeff_2[8]; /* COP - IM Filter Coefficients, CODE=5, Part 2 */ BYTE RingerImpendance_2[8]; /* COP - Ringer Impendance Coefficients, CODE=6, Part 2 */ BYTE FRRFilterCoeff[8]; /* COP - FRR Filter Coefficients, CODE=7 */ BYTE FRXFilterCoeff[8]; /* COP - FRX Filter Coefficients, CODE=8 */ BYTE ARFilterCoeff[4]; /* COP - AR Filter Coefficients, CODE=9 */ BYTE AXFilterCoeff[4]; /* COP - AX Filter Coefficients, CODE=10 */ BYTE Tone1Coeff[4]; /* COP - Tone1 Coefficients, CODE=11 */ BYTE Tone2Coeff[4]; /* COP - Tone2 Coefficients, CODE=12 */ BYTE LevelmeteringRinging[4]; /* COP - Levelmetering Ringing, CODE=13 */ BYTE CallerID1stTone[8]; /* COP - Caller ID 1st Tone, CODE=14 */ BYTE CallerID2ndTone[8]; /* COP - Caller ID 2nd Tone, CODE=15 */ } COP; BYTE ByteRegs[sizeof(struct _COP)]; } COP_REGS; /* DAA_REGS.COP_REGS.COP.XR7.Tone1Coeff[3] */ /* DAA_REGS.COP_REGS.COP.XR7.bitreg */ /* DAA_REGS.COP_REGS.COP.XR7.bitreg.Vdd0 */ /* DAA_REGS.COP_REGS.ByteRegs[57] */ /*----------------------------------------------- */ /* CAO Registers */ /* */ BYTE byCAO; union _CAO_REGS { struct _CAO { BYTE CallerID[512]; /* CAO - Caller ID Bytes */ } CAO; BYTE ByteRegs[sizeof(struct _CAO)]; } CAO_REGS; union /* XOP - XR0 Register - Write values */ { BYTE reg; struct _XR0_BITREGSW { BYTE SO_0:1; /* XR1[0:0] - Write */ BYTE SO_1:1; /* XR1[1:1] - Write */ BYTE SO_2:1; /* XR1[2:2] - Write */ BYTE unused:5; /* XR1[3:7] - Write */ } bitreg; } XOP_xr0_W; union /* XOP - XR6 Register - Write values */ { BYTE reg; struct _XR6_BITREGSW { BYTE unused1:4; /* XR6[0:3] */ BYTE CLK_OFF:1; /* XR6[4:4] */ BYTE unused2:3; /* XR6[5:7] */ } bitreg; } XOP_xr6_W;} DAA_REGS;#define ALISDAA_ID_BYTE 0x81#define ALISDAA_CALLERID_SIZE 512/*------------------------------ *//* *//* Misc definitions *//* *//* Power Up Operation */#define SOP_PU_SLEEP 0#define SOP_PU_RINGING 1#define SOP_PU_CONVERSATION 2#define SOP_PU_PULSEDIALING 3#define SOP_PU_RESET 4#define ALISDAA_CALLERID_SIZE 512#define PLAYBACK_MODE_COMPRESSED 0 /* Selects: Compressed modes, TrueSpeech 8.5-4.1, G.723.1, G.722, G.728, G.729 */#define PLAYBACK_MODE_TRUESPEECH_V40 0 /* Selects: TrueSpeech 8.5, 6.3, 5.3, 4.8 or 4.1 Kbps */#define PLAYBACK_MODE_TRUESPEECH 8 /* Selects: TrueSpeech 8.5, 6.3, 5.3, 4.8 or 4.1 Kbps Version 5.1 */#define PLAYBACK_MODE_ULAW 2 /* Selects: 64 Kbit/sec MuA-law PCM */#define PLAYBACK_MODE_ALAW 10 /* Selects: 64 Kbit/sec A-law PCM */#define PLAYBACK_MODE_16LINEAR 6 /* Selects: 128 Kbit/sec 16-bit linear */#define PLAYBACK_MODE_8LINEAR 4 /* Selects: 64 Kbit/sec 8-bit signed linear */#define PLAYBACK_MODE_8LINEAR_WSS 5 /* Selects: 64 Kbit/sec WSS 8-bit unsigned linear */#define RECORD_MODE_COMPRESSED 0 /* Selects: Compressed modes, TrueSpeech 8.5-4.1, G.723.1, G.722, G.728, G.729 */#define RECORD_MODE_TRUESPEECH 0 /* Selects: TrueSpeech 8.5, 6.3, 5.3, 4.8 or 4.1 Kbps */#define RECORD_MODE_ULAW 4 /* Selects: 64 Kbit/sec Mu-law PCM */#define RECORD_MODE_ALAW 12 /* Selects: 64 Kbit/sec A-law PCM */#define RECORD_MODE_16LINEAR 5 /* Selects: 128 Kbit/sec 16-bit linear */#define RECORD_MODE_8LINEAR 6 /* Selects: 64 Kbit/sec 8-bit signed linear */#define RECORD_MODE_8LINEAR_WSS 7 /* Selects: 64 Kbit/sec WSS 8-bit unsigned linear */enum SLIC_STATES { PLD_SLIC_STATE_OC = 0, PLD_SLIC_STATE_RINGING, PLD_SLIC_STATE_ACTIVE, PLD_SLIC_STATE_OHT, PLD_SLIC_STATE_TIPOPEN, PLD_SLIC_STATE_STANDBY, PLD_SLIC_STATE_APR, PLD_SLIC_STATE_OHTPR};enum SCI_CONTROL { SCI_End = 0, SCI_Enable_DAA, SCI_Enable_Mixer, SCI_Enable_EEPROM};enum Mode { T63, T53, T48, T40};enum Dir { V3_TO_V4, V4_TO_V3, V4_TO_V5, V5_TO_V4};typedef struct Proc_Info_Tag { enum Mode convert_mode; enum Dir convert_dir; int Prev_Frame_Type; int Current_Frame_Type;} Proc_Info_Type;enum PREVAL { NORMAL = 0, NOPOST, POSTONLY, PREERROR};enum IXJ_EXTENSIONS { G729LOADER = 0, TS85LOADER, PRE_READ, POST_READ, PRE_WRITE, POST_WRITE, PRE_IOCTL, POST_IOCTL};typedef struct { char enable; char en_filter; unsigned int filter; unsigned int state; /* State 0 when cadence has not started. */ unsigned int on1; /* State 1 */ unsigned long on1min; /* State 1 - 10% + jiffies */ unsigned long on1dot; /* State 1 + jiffies */ unsigned long on1max; /* State 1 + 10% + jiffies */ unsigned int off1; /* State 2 */ unsigned long off1min; unsigned long off1dot; /* State 2 + jiffies */ unsigned long off1max; unsigned int on2; /* State 3 */ unsigned long on2min; unsigned long on2dot; unsigned long on2max; unsigned int off2; /* State 4 */ unsigned long off2min; unsigned long off2dot; /* State 4 + jiffies */ unsigned long off2max; unsigned int on3; /* State 5 */ unsigned long on3min; unsigned long on3dot; unsigned long on3max; unsigned int off3; /* State 6 */ unsigned long off3min; unsigned long off3dot; /* State 6 + jiffies */ unsigned long off3max;} IXJ_CADENCE_F;typedef struct { unsigned int busytone:1; unsigned int dialtone:1; unsigned int ringback:1; unsigned int ringing:1; unsigned int playing:1; unsigned int recording:1; unsigned int cringing:1; unsigned int play_first_frame:1; unsigned int pstn_present:1; unsigned int pstn_ringing:1; unsigned int pots_correct:1; unsigned int pots_pstn:1; unsigned int g729_loaded:1; unsigned int ts85_loaded:1; unsigned int dtmf_oob:1; /* DTMF Out-Of-Band */ unsigned int pcmciascp:1; /* SmartCABLE Present */ unsigned int pcmciasct:2; /* SmartCABLE Type */ unsigned int pcmciastate:3; /* SmartCABLE Init State */ unsigned int inwrite:1; /* Currently writing */ unsigned int inread:1; /* Currently reading */ unsigned int incheck:1; /* Currently checking the SmartCABLE */ unsigned int cidplay:1; /* Currently playing Caller ID */ unsigned int cidring:1; /* This is the ring for Caller ID */ unsigned int cidsent:1; /* Caller ID has been sent */ unsigned int cidcw_ack:1; /* Caller ID CW ACK (from CPE) */ unsigned int firstring:1; /* First ring cadence is complete */ unsigned int pstncheck:1; /* Currently checking the PSTN Line */ unsigned int pstn_rmr:1; unsigned int x:3; /* unsed bits */} IXJ_FLAGS;/******************************************************************************** This structure holds the state of all of the Quicknet cards*******************************************************************************/typedef struct { struct phone_device p; struct timer_list timer; unsigned int board; unsigned int DSPbase; unsigned int XILINXbase; unsigned int serial; atomic_t DSPWrite; struct phone_capability caplist[30]; unsigned int caps;#if LINUX_VERSION_CODE < 0x020400 struct pnp_dev *dev;#else struct pci_dev *dev;#endif unsigned int cardtype; unsigned int rec_codec; unsigned int cid_rec_codec; unsigned int cid_rec_volume; unsigned char cid_rec_flag; char rec_mode; unsigned int play_codec; unsigned int cid_play_codec; unsigned int cid_play_volume; unsigned char cid_play_flag; char play_mode; IXJ_FLAGS flags; unsigned int busyflags; unsigned int rec_frame_size; unsigned int play_frame_size; unsigned int cid_play_frame_size; unsigned int cid_base_frame_size; unsigned long cidcw_wait; int aec_level; int cid_play_aec_level; int readers, writers;#if LINUX_VERSION_CODE < 0x020400 struct wait_queue *poll_q; struct wait_queue *read_q;#else wait_queue_head_t poll_q; wait_queue_head_t read_q;#endif char *read_buffer, *read_buffer_end; char *read_convert_buffer; unsigned int read_buffer_size; unsigned int read_buffer_ready;#if LINUX_VERSION_CODE < 0x020400 struct wait_queue *write_q;#else wait_queue_head_t write_q;#endif char *write_buffer, *write_buffer_end; char *write_convert_buffer; unsigned int write_buffer_size; unsigned int write_buffers_empty; unsigned long drybuffer; char *write_buffer_rp, *write_buffer_wp; char dtmfbuffer[80]; char dtmf_current; int dtmf_wp, dtmf_rp, dtmf_state, dtmf_proc; int tone_off_time, tone_on_time; struct fasync_struct *async_queue; unsigned long tone_start_jif; char tone_index; char tone_state; char maxrings; IXJ_CADENCE *cadence_t; IXJ_CADENCE *cadence_r; int tone_cadence_state; IXJ_CADENCE_F cadence_f[6]; DTMF dtmf; CPTF cptf; BYTES dsp; BYTES ver; BYTES scr; BYTES ssr; BYTES baseframe; HSR hsr; GPIO gpio; PLD_SCRR pld_scrr; PLD_SCRW pld_scrw; PLD_SLICW pld_slicw; PLD_SLICR pld_slicr; PLD_CLOCK pld_clock; PCMCIA_CR1 pccr1; PCMCIA_CR2 pccr2; PCMCIA_SCCR psccr; PCMCIA_SLIC pslic; char pscdd; Si3C1 sic1; Si3C2 sic2; Si3RXG sirxg; Si3ADC siadc; Si3DAC sidac; Si3STAT sistat; Si3AATT siaatt; MIX mix; unsigned short ring_cadence; int ring_cadence_t; unsigned long ring_cadence_jif; unsigned long checkwait; int intercom; int m_hook; int r_hook; int p_hook; char pstn_envelope; char pstn_cid_intr; unsigned char fskz; unsigned char fskphase; unsigned char fskcnt; unsigned int cidsize; unsigned int cidcnt; unsigned pstn_cid_received; PHONE_CID cid; PHONE_CID cid_send; unsigned long pstn_ring_int; unsigned long pstn_ring_start; unsigned long pstn_ring_stop; unsigned long pstn_winkstart; unsigned long pstn_last_rmr; unsigned long pstn_prev_rmr; unsigned long pots_winkstart; unsigned int winktime; unsigned long flash_end; char port; char hookstate; union telephony_exception ex; union telephony_exception ex_sig; int ixj_signals[35]; IXJ_SIGDEF sigdef; char daa_mode; char daa_country; unsigned long pstn_sleeptil; DAA_REGS m_DAAShadowRegs; Proc_Info_Type Info_read; Proc_Info_Type Info_write; unsigned short frame_count; unsigned int filter_hist[4]; unsigned char filter_en[4]; unsigned short proc_load; unsigned long framesread; unsigned long frameswritten; unsigned long read_wait; unsigned long write_wait; unsigned long timerchecks; unsigned long txreadycheck; unsigned long rxreadycheck; unsigned long statuswait; unsigned long statuswaitfail; unsigned long pcontrolwait; unsigned long pcontrolwaitfail; unsigned long iscontrolready; unsigned long iscontrolreadyfail; unsigned long pstnstatecheck;#ifdef IXJ_DYN_ALLOC short *fskdata;#else short fskdata[8000];#endif int fsksize; int fskdcnt;} IXJ;typedef int (*IXJ_REGFUNC) (IXJ * j, unsigned long arg);extern IXJ *ixj_pcmcia_probe(unsigned long, unsigned long);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -