Add FAX Class 1 support
This commit is contained in:
parent
19d8a79e5d
commit
f8bceb4ebc
|
@ -26,6 +26,10 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.27 1999/11/29 13:12:03 armin
|
||||
* Autoconnect on L2_TRANS doesn't work with link_level correctly,
|
||||
* changed back to former mode.
|
||||
*
|
||||
* Revision 1.26 1999/11/25 11:43:27 armin
|
||||
* Fixed statectrl and connect message.
|
||||
* X.75 fix and HDLC/transparent with autoconnect.
|
||||
|
@ -220,7 +224,7 @@ idi_assign_req(eicon_REQ *reqbuf, int signet, eicon_chan *chan)
|
|||
reqbuf->XBuffer.P[l++] = 1;
|
||||
}
|
||||
switch(chan->l3prot) {
|
||||
case ISDN_PROTO_L3_FAX:
|
||||
case ISDN_PROTO_L3_FCLASS2:
|
||||
#ifdef CONFIG_ISDN_TTY_FAX
|
||||
reqbuf->XBuffer.P[l++] = 6;
|
||||
reqbuf->XBuffer.P[l++] = NLC;
|
||||
|
|
|
@ -31,6 +31,9 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.22 1999/11/27 12:56:19 armin
|
||||
* Forgot some iomem changes for last ioremap compat.
|
||||
*
|
||||
* Revision 1.21 1999/11/25 11:35:10 armin
|
||||
* Microchannel fix from Erik Weber (exrz73@ibm.net).
|
||||
* Minor cleanup.
|
||||
|
@ -756,7 +759,7 @@ eicon_command(eicon_card * card, isdn_ctrl * c)
|
|||
break;
|
||||
chan->l3prot = (c->arg >> 8);
|
||||
#ifdef CONFIG_ISDN_TTY_FAX
|
||||
if (chan->l3prot == ISDN_PROTO_L3_FAX)
|
||||
if (chan->l3prot == ISDN_PROTO_L3_FCLASS2)
|
||||
chan->fax = c->parm.fax;
|
||||
#endif
|
||||
return 0;
|
||||
|
@ -948,8 +951,7 @@ if_sendbuf(int id, int channel, int ack, struct sk_buff *skb)
|
|||
}
|
||||
|
||||
/* jiftime() copied from HiSax */
|
||||
inline int
|
||||
jiftime(char *s, long mark)
|
||||
static inline int jiftime(char *s, long mark)
|
||||
{
|
||||
s += 8;
|
||||
|
||||
|
@ -1186,7 +1188,7 @@ eicon_alloccard(int Type, int membase, int irq, char *id)
|
|||
ISDN_FEATURE_L2_MODEM |
|
||||
ISDN_FEATURE_L2_FAX |
|
||||
ISDN_FEATURE_L3_TRANSDSP |
|
||||
ISDN_FEATURE_L3_FAX;
|
||||
ISDN_FEATURE_L3_FCLASS2;
|
||||
card->hwif.pci.card = (void *)card;
|
||||
card->hwif.pci.PCIreg = pcic->PCIreg;
|
||||
card->hwif.pci.PCIcfg = pcic->PCIcfg;
|
||||
|
@ -1210,7 +1212,7 @@ eicon_alloccard(int Type, int membase, int irq, char *id)
|
|||
ISDN_FEATURE_L2_MODEM |
|
||||
ISDN_FEATURE_L2_FAX |
|
||||
ISDN_FEATURE_L3_TRANSDSP |
|
||||
ISDN_FEATURE_L3_FAX;
|
||||
ISDN_FEATURE_L3_FCLASS2;
|
||||
card->hwif.pci.card = (void *)card;
|
||||
card->hwif.pci.shmem = (eicon_pci_shmem *)pcic->shmem;
|
||||
card->hwif.pci.PCIreg = pcic->PCIreg;
|
||||
|
|
|
@ -21,6 +21,10 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.95 2000/01/09 20:43:13 detabc
|
||||
* exand logical bind-group's for both call's (in and out).
|
||||
* add first part of kernel-config-help for abc-extension.
|
||||
*
|
||||
* Revision 1.94 1999/11/20 22:14:13 detabc
|
||||
* added channel dial-skip in case of external use
|
||||
* (isdn phone or another isdn device) on the same NTBA.
|
||||
|
@ -454,6 +458,7 @@ isdn_divert_if *divert_if = NULL; /* interface to diversion module */
|
|||
|
||||
|
||||
static int isdn_writebuf_stub(int, int, const u_char *, int, int);
|
||||
static void set_global_features(void);
|
||||
|
||||
void
|
||||
isdn_MOD_INC_USE_COUNT(void)
|
||||
|
@ -736,29 +741,33 @@ isdn_receive_skb_callback(int di, int channel, struct sk_buff *skb)
|
|||
int
|
||||
isdn_command(isdn_ctrl *cmd)
|
||||
{
|
||||
if (cmd->driver == -1) {
|
||||
printk(KERN_WARNING "isdn_command command(%x) driver -1\n", cmd->command);
|
||||
return(1);
|
||||
}
|
||||
if (cmd->command == ISDN_CMD_SETL2) {
|
||||
int idx = isdn_dc2minor(cmd->driver, cmd->arg & 255);
|
||||
unsigned long l2prot = (cmd->arg >> 8) & 255;
|
||||
unsigned long features = (dev->drv[cmd->driver]->interface->features
|
||||
>> ISDN_FEATURE_L2_SHIFT) &
|
||||
ISDN_FEATURE_L2_MASK;
|
||||
unsigned long l2_feature = (1 << l2prot);
|
||||
int idx = isdn_dc2minor(cmd->driver, cmd->arg & 255);
|
||||
unsigned long l2prot = (cmd->arg >> 8) & 255;
|
||||
unsigned long features = (dev->drv[cmd->driver]->interface->features
|
||||
>> ISDN_FEATURE_L2_SHIFT) &
|
||||
ISDN_FEATURE_L2_MASK;
|
||||
unsigned long l2_feature = (1 << l2prot);
|
||||
|
||||
switch (l2prot) {
|
||||
case ISDN_PROTO_L2_V11096:
|
||||
case ISDN_PROTO_L2_V11019:
|
||||
case ISDN_PROTO_L2_V11038:
|
||||
/* If V.110 requested, but not supported by
|
||||
* HL-driver, set emulator-flag and change
|
||||
* Layer-2 to transparent
|
||||
*/
|
||||
if (!(features & l2_feature)) {
|
||||
dev->v110emu[idx] = l2prot;
|
||||
cmd->arg = (cmd->arg & 255) |
|
||||
(ISDN_PROTO_L2_TRANS << 8);
|
||||
} else
|
||||
dev->v110emu[idx] = 0;
|
||||
}
|
||||
switch (l2prot) {
|
||||
case ISDN_PROTO_L2_V11096:
|
||||
case ISDN_PROTO_L2_V11019:
|
||||
case ISDN_PROTO_L2_V11038:
|
||||
/* If V.110 requested, but not supported by
|
||||
* HL-driver, set emulator-flag and change
|
||||
* Layer-2 to transparent
|
||||
*/
|
||||
if (!(features & l2_feature)) {
|
||||
dev->v110emu[idx] = l2prot;
|
||||
cmd->arg = (cmd->arg & 255) |
|
||||
(ISDN_PROTO_L2_TRANS << 8);
|
||||
} else
|
||||
dev->v110emu[idx] = 0;
|
||||
}
|
||||
}
|
||||
return dev->drv[cmd->driver]->interface->command(cmd);
|
||||
}
|
||||
|
@ -838,6 +847,7 @@ isdn_status_callback(isdn_ctrl * c)
|
|||
for (i = 0; i < ISDN_MAX_CHANNELS; i++)
|
||||
if (dev->drvmap[i] == di)
|
||||
isdn_all_eaz(di, dev->chanmap[i]);
|
||||
set_global_features();
|
||||
break;
|
||||
case ISDN_STAT_STOP:
|
||||
dev->drv[di]->flags &= ~DRV_FLAG_RUNNING;
|
||||
|
@ -1097,6 +1107,7 @@ isdn_status_callback(isdn_ctrl * c)
|
|||
dev->drv[di] = NULL;
|
||||
dev->drvid[di][0] = '\0';
|
||||
isdn_info_update();
|
||||
set_global_features();
|
||||
restore_flags(flags);
|
||||
return 0;
|
||||
case ISDN_STAT_L1ERR:
|
||||
|
@ -2503,6 +2514,19 @@ isdn_add_channels(driver *d, int drvidx, int n, int adding)
|
|||
* Low-level-driver registration
|
||||
*/
|
||||
|
||||
static void
|
||||
set_global_features(void)
|
||||
{
|
||||
int drvidx;
|
||||
|
||||
dev->global_features = 0;
|
||||
for (drvidx = 0; drvidx < ISDN_MAX_DRIVERS; drvidx++) {
|
||||
if (!dev->drv[drvidx])
|
||||
continue;
|
||||
if (dev->drv[drvidx]->interface)
|
||||
dev->global_features |= dev->drv[drvidx]->interface->features;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ISDN_DIVERSION
|
||||
extern isdn_divert_if *divert_if;
|
||||
|
@ -2616,6 +2640,7 @@ register_isdn(isdn_if * i)
|
|||
strcpy(dev->drvid[drvidx], i->id);
|
||||
isdn_info_update();
|
||||
dev->drivers++;
|
||||
set_global_features();
|
||||
restore_flags(flags);
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -20,6 +20,9 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.80 1999/11/07 13:34:30 armin
|
||||
* Fixed AT command line editor
|
||||
*
|
||||
* Revision 1.79 1999/10/29 18:35:08 armin
|
||||
* Check number len in isdn_get_msnstr() to avoid buffer overflow.
|
||||
*
|
||||
|
@ -345,6 +348,7 @@
|
|||
#endif
|
||||
|
||||
#define FIX_FILE_TRANSFER
|
||||
#define DUMMY_HAYES_AT
|
||||
|
||||
/* Prototypes */
|
||||
|
||||
|
@ -1552,6 +1556,25 @@ isdn_tty_write(struct tty_struct *tty, int from_user, const u_char * buf, int co
|
|||
}
|
||||
}
|
||||
} else
|
||||
#ifdef ISDN_TTY_FCLASS1
|
||||
if (TTY_IS_FCLASS1(info)) {
|
||||
int cc = isdn_tty_handleDLEdown(info, m, c);
|
||||
|
||||
if (info->vonline & 4) { /* ETX seen */
|
||||
isdn_ctrl c;
|
||||
|
||||
c.command = ISDN_CMD_FAXCMD;
|
||||
c.driver = info->isdn_driver;
|
||||
c.arg = info->isdn_channel;
|
||||
c.parm.aux.cmd = ISDN_FAX_CLASS1_CTRL;
|
||||
c.parm.aux.subcmd = ETX;
|
||||
isdn_command(&c);
|
||||
}
|
||||
info->vonline = 0;
|
||||
printk(KERN_DEBUG "fax dle cc/c %d/%d\n", cc,c);
|
||||
info->xmit_count += cc;
|
||||
} else
|
||||
#endif
|
||||
#endif
|
||||
info->xmit_count += c;
|
||||
} else {
|
||||
|
@ -2578,7 +2601,7 @@ isdn_tty_find_icall(int di, int ch, setup_parm setup)
|
|||
(info->flags & (ISDN_ASYNC_NORMAL_ACTIVE | ISDN_ASYNC_CALLOUT_ACTIVE))
|
||||
|
||||
int
|
||||
isdn_tty_stat_callback(int i, isdn_ctrl * c)
|
||||
isdn_tty_stat_callback(int i, isdn_ctrl *c)
|
||||
{
|
||||
int mi;
|
||||
modem_info *info;
|
||||
|
@ -2679,8 +2702,7 @@ isdn_tty_stat_callback(int i, isdn_ctrl * c)
|
|||
if (info->emu.mdmreg[REG_L2PROT] == ISDN_PROTO_L2_MODEM) {
|
||||
strcpy(info->emu.connmsg, c->parm.num);
|
||||
isdn_tty_modem_result(1, info);
|
||||
}
|
||||
else
|
||||
} else
|
||||
isdn_tty_modem_result(5, info);
|
||||
}
|
||||
if (USG_VOICE(dev->usage[i]))
|
||||
|
@ -2731,7 +2753,7 @@ isdn_tty_stat_callback(int i, isdn_ctrl * c)
|
|||
#ifdef CONFIG_ISDN_TTY_FAX
|
||||
case ISDN_STAT_FAXIND:
|
||||
if (TTY_IS_ACTIVE(info)) {
|
||||
isdn_tty_fax_command(info);
|
||||
isdn_tty_fax_command(info, c);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
@ -3258,8 +3280,22 @@ isdn_tty_cmd_ATand(char **p, modem_info * info)
|
|||
info->xmit_size /= 10;
|
||||
}
|
||||
break;
|
||||
case 'C':
|
||||
/* &C - DCD Status */
|
||||
p[0]++;
|
||||
switch (isdn_getnum(p)) {
|
||||
case 0:
|
||||
m->mdmreg[REG_DCD] &= ~BIT_DCD;
|
||||
break;
|
||||
case 1:
|
||||
m->mdmreg[REG_DCD] |= BIT_DCD;
|
||||
break;
|
||||
default:
|
||||
PARSE_ERROR1
|
||||
}
|
||||
break;
|
||||
case 'D':
|
||||
/* &D - Set DCD-Low-behavior */
|
||||
/* &D - Set DTR-Low-behavior */
|
||||
p[0]++;
|
||||
switch (isdn_getnum(p)) {
|
||||
case 0:
|
||||
|
@ -3291,6 +3327,14 @@ isdn_tty_cmd_ATand(char **p, modem_info * info)
|
|||
isdn_tty_reset_profile(m);
|
||||
isdn_tty_modem_reset_regs(info, 1);
|
||||
break;
|
||||
#ifdef DUMMY_HAYES_AT
|
||||
case 'K':
|
||||
/* only for be compilant with common scripts */
|
||||
/* &K Flowcontrol - no function */
|
||||
p[0]++;
|
||||
isdn_getnum(p);
|
||||
break;
|
||||
#endif
|
||||
case 'L':
|
||||
/* &L -Set Numbers to listen on */
|
||||
p[0]++;
|
||||
|
@ -3576,8 +3620,12 @@ isdn_tty_cmd_PLUSF(char **p, modem_info * info)
|
|||
sprintf(rs, "\r\n%d",
|
||||
(m->mdmreg[REG_SI1] & 1) ? 8 : 0);
|
||||
#ifdef CONFIG_ISDN_TTY_FAX
|
||||
if (m->mdmreg[REG_L2PROT] == ISDN_PROTO_L2_FAX)
|
||||
sprintf(rs, "\r\n2");
|
||||
if (TTY_IS_FCLASS2(info))
|
||||
sprintf(rs, "\r\n2");
|
||||
#ifdef ISDN_TTY_FCLASS1
|
||||
else if (TTY_IS_FCLASS1(info))
|
||||
sprintf(rs, "\r\n1");
|
||||
#endif
|
||||
#endif
|
||||
isdn_tty_at_cout(rs, info);
|
||||
break;
|
||||
|
@ -3593,11 +3641,27 @@ isdn_tty_cmd_PLUSF(char **p, modem_info * info)
|
|||
m->mdmreg[REG_PSIZE] * 16;
|
||||
break;
|
||||
#ifdef CONFIG_ISDN_TTY_FAX
|
||||
case '2':
|
||||
#ifdef ISDN_TTY_FCLASS1
|
||||
case '1':
|
||||
p[0]++;
|
||||
if (!(dev->global_features &
|
||||
ISDN_FEATURE_L3_FCLASS1))
|
||||
PARSE_ERROR1;
|
||||
m->mdmreg[REG_SI1] = 1;
|
||||
m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_FAX;
|
||||
m->mdmreg[REG_L3PROT] = ISDN_PROTO_L3_FAX;
|
||||
m->mdmreg[REG_L3PROT] = ISDN_PROTO_L3_FCLASS1;
|
||||
info->xmit_size =
|
||||
m->mdmreg[REG_PSIZE] * 16;
|
||||
break;
|
||||
#endif
|
||||
case '2':
|
||||
p[0]++;
|
||||
if (!(dev->global_features &
|
||||
ISDN_FEATURE_L3_FCLASS2))
|
||||
PARSE_ERROR1;
|
||||
m->mdmreg[REG_SI1] = 1;
|
||||
m->mdmreg[REG_L2PROT] = ISDN_PROTO_L2_FAX;
|
||||
m->mdmreg[REG_L3PROT] = ISDN_PROTO_L3_FCLASS2;
|
||||
info->xmit_size =
|
||||
m->mdmreg[REG_PSIZE] * 16;
|
||||
break;
|
||||
|
@ -3612,11 +3676,19 @@ isdn_tty_cmd_PLUSF(char **p, modem_info * info)
|
|||
break;
|
||||
case '?':
|
||||
p[0]++;
|
||||
strcpy(rs, "\r\n0,");
|
||||
#ifdef CONFIG_ISDN_TTY_FAX
|
||||
isdn_tty_at_cout("\r\n0,2,8", info);
|
||||
#else
|
||||
isdn_tty_at_cout("\r\n0,8", info);
|
||||
#ifdef ISDN_TTY_FCLASS1
|
||||
if (dev->global_features &
|
||||
ISDN_FEATURE_L3_FCLASS1)
|
||||
strcat(rs, "1,");
|
||||
#endif
|
||||
if (dev->global_features &
|
||||
ISDN_FEATURE_L3_FCLASS2)
|
||||
strcat(rs, "2,");
|
||||
#endif
|
||||
strcat(rs, "8");
|
||||
isdn_tty_at_cout(rs, info);
|
||||
break;
|
||||
default:
|
||||
PARSE_ERROR1;
|
||||
|
@ -4006,6 +4078,15 @@ isdn_tty_parse_at(modem_info * info)
|
|||
default:
|
||||
}
|
||||
break;
|
||||
#ifdef DUMMY_HAYES_AT
|
||||
case 'L':
|
||||
case 'M':
|
||||
/* only for be compilant with common scripts */
|
||||
/* no function */
|
||||
p++;
|
||||
isdn_getnum(&p);
|
||||
break;
|
||||
#endif
|
||||
case 'O':
|
||||
/* O - Go online */
|
||||
p++;
|
||||
|
|
|
@ -20,6 +20,10 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.17 1999/09/21 19:00:35 armin
|
||||
* Extended FCON message with added CPN
|
||||
* can now be activated with Bit 1 of Reg 23.
|
||||
*
|
||||
* Revision 1.16 1999/08/22 20:26:10 calle
|
||||
* backported changes from kernel 2.3.14:
|
||||
* - several #include "config.h" gone, others come.
|
||||
|
@ -156,6 +160,15 @@
|
|||
#define BIT_CPN 1
|
||||
#define BIT_CPNFCON 2
|
||||
|
||||
#ifdef ISDN_TTY_FCLASS1
|
||||
#define TTY_IS_FCLASS1(info) \
|
||||
((info->emu.mdmreg[REG_L2PROT] == ISDN_PROTO_L2_FAX) && \
|
||||
(info->emu.mdmreg[REG_L3PROT] == ISDN_PROTO_L3_FCLASS1))
|
||||
#endif
|
||||
#define TTY_IS_FCLASS2(info) \
|
||||
((info->emu.mdmreg[REG_L2PROT] == ISDN_PROTO_L2_FAX) && \
|
||||
(info->emu.mdmreg[REG_L3PROT] == ISDN_PROTO_L3_FCLASS2))
|
||||
|
||||
extern void isdn_tty_modem_escape(void);
|
||||
extern void isdn_tty_modem_ring(void);
|
||||
extern void isdn_tty_carrier_timeout(void);
|
||||
|
@ -171,6 +184,6 @@ extern void isdn_tty_at_cout(char *, modem_info *);
|
|||
extern void isdn_tty_modem_hup(modem_info *, int);
|
||||
#ifdef CONFIG_ISDN_TTY_FAX
|
||||
extern int isdn_tty_cmd_PLUSF_FAX(char **, modem_info *);
|
||||
extern int isdn_tty_fax_command(modem_info *);
|
||||
extern int isdn_tty_fax_command(modem_info *, isdn_ctrl *);
|
||||
extern void isdn_tty_fax_bitorder(modem_info *, struct sk_buff *);
|
||||
#endif
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -21,6 +21,10 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.87 2000/01/09 20:43:15 detabc
|
||||
* exand logical bind-group's for both call's (in and out).
|
||||
* add first part of kernel-config-help for abc-extension.
|
||||
*
|
||||
* Revision 1.86 1999/12/05 16:06:09 detabc
|
||||
* add resethandling for rawip-compression.
|
||||
* at now all B2-Protocols are usable with rawip-compression
|
||||
|
@ -376,21 +380,21 @@
|
|||
#define ISDN_DW_ABC_FLAG_NO_UDP_CHECK 0x00000002L
|
||||
#define ISDN_DW_ABC_FLAG_NO_UDP_HANGUP 0x00000004L
|
||||
#define ISDN_DW_ABC_FLAG_NO_UDP_DIAL 0x00000008L
|
||||
#define ISDN_DW_ABC_FLAG_DYNADDR 0x00000010L
|
||||
#define ISDN_DW_ABC_FLAG_DYNADDR 0x00000010L
|
||||
#define ISDN_DW_ABC_FLAG_RCV_NO_HUPTIMER 0x00000020L
|
||||
#define ISDN_DW_ABC_FLAG_NO_CH_EXTINUSE 0x00000040L
|
||||
#define ISDN_DW_ABC_FLAG_NO_CONN_ERROR 0x00000080L
|
||||
#define ISDN_DW_ABC_FLAG_BSD_COMPRESS 0x00000100L
|
||||
#define ISDN_DW_ABC_FLAG_NO_LCR 0x00000200L
|
||||
#define ISDN_DW_ABC_FLAG_NO_LCR 0x00000200L
|
||||
|
||||
#define ISDN_DW_ABC_IFFLAG_NODCHAN 0x00000001L
|
||||
#define ISDN_DW_ABC_IFFLAG_BSDAKTIV 0x00000002L
|
||||
#define ISDN_DW_ABC_IFFLAG_NODCHAN 0x00000001L
|
||||
#define ISDN_DW_ABC_IFFLAG_BSDAKTIV 0x00000002L
|
||||
#define ISDN_DW_ABC_IFFLAG_RSTREMOTE 0x00000004L
|
||||
|
||||
#define ISDN_DW_ABC_BITLOCK_SEND 0
|
||||
#define ISDN_DW_ABC_BITLOCK_RECEIVE 1
|
||||
#define ISDN_DW_ABC_BITLOCK_SEND 0
|
||||
#define ISDN_DW_ABC_BITLOCK_RECEIVE 1
|
||||
|
||||
#define ISDN_DW_ABC_MAX_CH_P_RIVER (32)
|
||||
#define ISDN_DW_ABC_MAX_CH_P_RIVER (32)
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -1053,35 +1057,36 @@ typedef struct isdn_devt {
|
|||
isdn_v110_stream *v110[ISDN_MAX_CHANNELS]; /* V.110 private data */
|
||||
struct semaphore sem; /* serialize list access*/
|
||||
isdn_module *modules;
|
||||
unsigned long global_features;
|
||||
#ifdef CONFIG_ISDN_WITH_ABC_ICALL_BIND
|
||||
u_long dwabc_lch_check; /* lasttime a locical chanelmap checked */
|
||||
u_long dwabc_lch_check; /* lasttime a locical chanelmap checked */
|
||||
#endif
|
||||
} isdn_dev;
|
||||
|
||||
extern isdn_dev *dev;
|
||||
|
||||
#ifdef CONFIG_ISDN_WITH_ABC
|
||||
extern void isdn_net_unreachable(struct net_device *,struct sk_buff *,char *);
|
||||
extern void isdn_net_unreachable(struct net_device *,struct sk_buff *,char *);
|
||||
extern void isdn_net_log_skb_dwabc(struct sk_buff *,isdn_net_local *,char *);
|
||||
extern void isdn_net_hangup(struct net_device *d);
|
||||
extern void isdn_dw_clear_if(ulong pm,isdn_net_local *);
|
||||
extern void isdn_dwabc_test_phone(isdn_net_local *);
|
||||
extern void isdn_dwabc_test_phone(isdn_net_local *);
|
||||
extern void isdn_dw_abc_init_func(void);
|
||||
extern void isdn_dw_abc_release_func(void);
|
||||
extern int isdn_dw_abc_reset_interface(isdn_net_local *,int);
|
||||
extern int dwabc_bsd_init(isdn_net_local *lp);
|
||||
extern void dwabc_bsd_free(isdn_net_local *lp);
|
||||
extern int isdn_dw_abc_reset_interface(isdn_net_local *,int);
|
||||
extern int dwabc_bsd_init(isdn_net_local *lp);
|
||||
extern void dwabc_bsd_free(isdn_net_local *lp);
|
||||
extern struct sk_buff *dwabc_bsd_compress(isdn_net_local *,struct sk_buff *,struct net_device *);
|
||||
extern void dwabc_bsd_first_gen(isdn_net_local *);
|
||||
extern struct sk_buff *dwabc_bsd_rx_pkt(isdn_net_local *,struct sk_buff *,struct net_device *);
|
||||
#ifdef CONFIG_ISDN_WITH_ABC_LCR_SUPPORT
|
||||
extern size_t isdn_dw_abc_lcr_readstat(char *,size_t);
|
||||
extern ulong isdn_dw_abc_lcr_call_number(isdn_net_local *,isdn_ctrl *);
|
||||
extern void isdn_dw_abc_lcr_open(void);
|
||||
extern void isdn_dw_abc_lcr_close(void);
|
||||
extern void isdn_dw_abc_lcr_ioctl(u_long);
|
||||
extern void isdn_dw_abc_lcr_clear(isdn_net_local *);
|
||||
extern void isdn_dw_abc_free_lch_with_pch(int,int);
|
||||
extern size_t isdn_dw_abc_lcr_readstat(char *,size_t);
|
||||
extern ulong isdn_dw_abc_lcr_call_number(isdn_net_local *,isdn_ctrl *);
|
||||
extern void isdn_dw_abc_lcr_open(void);
|
||||
extern void isdn_dw_abc_lcr_close(void);
|
||||
extern void isdn_dw_abc_lcr_ioctl(u_long);
|
||||
extern void isdn_dw_abc_lcr_clear(isdn_net_local *);
|
||||
extern void isdn_dw_abc_free_lch_with_pch(int,int);
|
||||
#endif
|
||||
#ifdef CONFIG_ISDN_WITH_ABC_UDP_CHECK
|
||||
extern int dw_abc_udp_test(struct sk_buff *skb,struct net_device *ndev);
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.32 1999/10/11 22:03:00 keil
|
||||
* COMPAT_NEED_UACCESS (no include in isdn_compat.h)
|
||||
*
|
||||
* Revision 1.31 1999/09/06 07:29:36 fritz
|
||||
* Changed my mail-address.
|
||||
*
|
||||
|
@ -173,10 +176,11 @@
|
|||
/*
|
||||
* Values for Layer-3-protocol-selection
|
||||
*/
|
||||
#define ISDN_PROTO_L3_TRANS 0 /* Transparent */
|
||||
#define ISDN_PROTO_L3_TRANSDSP 1 /* Transparent with DSP */
|
||||
#define ISDN_PROTO_L3_FAX 2 /* Fax Group 2/3 */
|
||||
#define ISDN_PROTO_L3_MAX 7 /* Max. 8 Protocols */
|
||||
#define ISDN_PROTO_L3_TRANS 0 /* Transparent */
|
||||
#define ISDN_PROTO_L3_TRANSDSP 1 /* Transparent with DSP */
|
||||
#define ISDN_PROTO_L3_FCLASS2 2 /* Fax Group 2/3 CLASS 2 */
|
||||
#define ISDN_PROTO_L3_FCLASS1 3 /* Fax Group 2/3 CLASS 1 */
|
||||
#define ISDN_PROTO_L3_MAX 7 /* Max. 8 Protocols */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
|
@ -360,7 +364,8 @@ typedef struct
|
|||
/* Layer 3 */
|
||||
#define ISDN_FEATURE_L3_TRANS (0x10000 << ISDN_PROTO_L3_TRANS)
|
||||
#define ISDN_FEATURE_L3_TRANSDSP (0x10000 << ISDN_PROTO_L3_TRANSDSP)
|
||||
#define ISDN_FEATURE_L3_FAX (0x10000 << ISDN_PROTO_L3_FAX)
|
||||
#define ISDN_FEATURE_L3_FCLASS2 (0x10000 << ISDN_PROTO_L3_FCLASS2)
|
||||
#define ISDN_FEATURE_L3_FCLASS1 (0x10000 << ISDN_PROTO_L3_FCLASS1)
|
||||
|
||||
#define ISDN_FEATURE_L3_MASK (0x0FF0000) /* Max. 8 Protocols */
|
||||
#define ISDN_FEATURE_L3_SHIFT (16)
|
||||
|
@ -461,6 +466,33 @@ typedef struct T30_s {
|
|||
|
||||
#endif /* TTY_FAX */
|
||||
|
||||
#define ISDN_FAX_CLASS1_FAE 0
|
||||
#define ISDN_FAX_CLASS1_FTS 1
|
||||
#define ISDN_FAX_CLASS1_FRS 2
|
||||
#define ISDN_FAX_CLASS1_FTM 3
|
||||
#define ISDN_FAX_CLASS1_FRM 4
|
||||
#define ISDN_FAX_CLASS1_FTH 5
|
||||
#define ISDN_FAX_CLASS1_FRH 6
|
||||
#define ISDN_FAX_CLASS1_CTRL 7
|
||||
|
||||
#define ISDN_FAX_CLASS1_OK 0
|
||||
#define ISDN_FAX_CLASS1_CONNECT 1
|
||||
#define ISDN_FAX_CLASS1_NOCARR 2
|
||||
#define ISDN_FAX_CLASS1_ERROR 3
|
||||
#define ISDN_FAX_CLASS1_FCERROR 4
|
||||
#define ISDN_FAX_CLASS1_QUERY 5
|
||||
|
||||
typedef struct {
|
||||
__u8 cmd;
|
||||
__u8 subcmd;
|
||||
__u8 para[50];
|
||||
} aux_s;
|
||||
|
||||
#define AT_COMMAND 0
|
||||
#define AT_EQ_VALUE 1
|
||||
#define AT_QUERY 2
|
||||
#define AT_EQ_QUERY 3
|
||||
|
||||
/* CAPI structs */
|
||||
|
||||
/* this is compatible to the old union size */
|
||||
|
@ -492,13 +524,14 @@ typedef struct {
|
|||
int command; /* Command or Status (see above) */
|
||||
ulong arg; /* Additional Data */
|
||||
union {
|
||||
ulong errcode; /* Type of error with STAT_L1ERR */
|
||||
int length; /* Amount of bytes sent with STAT_BSENT */
|
||||
u_char num[50];/* Additional Data */
|
||||
ulong errcode; /* Type of error with STAT_L1ERR */
|
||||
int length; /* Amount of bytes sent with STAT_BSENT */
|
||||
u_char num[50]; /* Additional Data */
|
||||
setup_parm setup;/* For SETUP msg */
|
||||
capi_msg cmsg; /* For CAPI like messages */
|
||||
char display[85];/* display message data */
|
||||
dss1_cmd_stat dss1_io; /* DSS1 IO-parameter/result */
|
||||
char display[85];/* display message data */
|
||||
dss1_cmd_stat dss1_io; /* DSS1 IO-parameter/result */
|
||||
aux_s aux; /* for modem commands/indications */
|
||||
#ifdef CONFIG_ISDN_TTY_FAX
|
||||
T30_s *fax; /* Pointer to ttys fax struct */
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue