isdn: whitespace coding style cleanup

isdn source code uses a not-current coding style.

Update the coding style used on a per-line basis
so that git diff -w shows only elided blank lines
at EOF.

Done with emacs and some scripts and some typing.

Built x86 allyesconfig.
No detected change in objdump -d or size.

Signed-off-by: Joe Perches <joe@perches.com>
This commit is contained in:
Joe Perches
2012-02-19 19:52:38 -08:00
parent 0b0a635f79
commit 475be4d85a
314 changed files with 49170 additions and 49266 deletions

View File

@@ -129,7 +129,7 @@ typedef struct act2000_chan {
typedef struct msn_entry {
char eaz;
char msn[16];
struct msn_entry * next;
struct msn_entry *next;
} msn_entry;
typedef struct irq_data_isa {

View File

@@ -85,7 +85,7 @@ act2000_isa_interrupt(int dummy, void *dev_id)
}
static void
act2000_isa_select_irq(act2000_card * card)
act2000_isa_select_irq(act2000_card *card)
{
unsigned char reg;
@@ -117,7 +117,7 @@ act2000_isa_select_irq(act2000_card * card)
}
static void
act2000_isa_enable_irq(act2000_card * card)
act2000_isa_enable_irq(act2000_card *card)
{
act2000_isa_select_irq(card);
/* Enable READ irq */
@@ -129,7 +129,7 @@ act2000_isa_enable_irq(act2000_card * card)
* If irq is -1, choose next free irq, else irq is given explicitly.
*/
int
act2000_isa_config_irq(act2000_card * card, short irq)
act2000_isa_config_irq(act2000_card *card, short irq)
{
int old_irq;
@@ -147,7 +147,7 @@ act2000_isa_config_irq(act2000_card * card, short irq)
card->irq = old_irq;
card->flags |= ACT2000_FLAGS_IVALID;
printk(KERN_WARNING
"act2000: Could not request irq %d\n",irq);
"act2000: Could not request irq %d\n", irq);
return -EBUSY;
} else {
act2000_isa_select_irq(card);
@@ -159,7 +159,7 @@ act2000_isa_config_irq(act2000_card * card, short irq)
}
int
act2000_isa_config_port(act2000_card * card, unsigned short portbase)
act2000_isa_config_port(act2000_card *card, unsigned short portbase)
{
if (card->flags & ACT2000_FLAGS_PVALID) {
release_region(card->port, ISA_REGION);
@@ -178,7 +178,7 @@ act2000_isa_config_port(act2000_card * card, unsigned short portbase)
* Release ressources, used by an adaptor.
*/
void
act2000_isa_release(act2000_card * card)
act2000_isa_release(act2000_card *card)
{
unsigned long flags;
@@ -194,7 +194,7 @@ act2000_isa_release(act2000_card * card)
}
static int
act2000_isa_writeb(act2000_card * card, u_char data)
act2000_isa_writeb(act2000_card *card, u_char data)
{
u_char timeout = 40;
@@ -211,7 +211,7 @@ act2000_isa_writeb(act2000_card * card, u_char data)
}
static int
act2000_isa_readb(act2000_card * card, u_char * data)
act2000_isa_readb(act2000_card *card, u_char *data)
{
u_char timeout = 40;
@@ -291,7 +291,7 @@ act2000_isa_receive(act2000_card *card)
}
void
act2000_isa_send(act2000_card * card)
act2000_isa_send(act2000_card *card)
{
unsigned long flags;
struct sk_buff *skb;
@@ -307,7 +307,7 @@ act2000_isa_send(act2000_card * card)
card->ack_msg = card->sbuf->data;
msg = (actcapi_msg *)card->sbuf->data;
if ((msg->hdr.cmd.cmd == 0x86) &&
(msg->hdr.cmd.subcmd == 0) ) {
(msg->hdr.cmd.subcmd == 0)) {
/* Save flags in message */
card->need_b3ack = msg->msg.data_b3_req.flags;
msg->msg.data_b3_req.flags = 0;
@@ -335,7 +335,7 @@ act2000_isa_send(act2000_card * card)
}
msg = (actcapi_msg *)card->ack_msg;
if ((msg->hdr.cmd.cmd == 0x86) &&
(msg->hdr.cmd.subcmd == 0) ) {
(msg->hdr.cmd.subcmd == 0)) {
/*
* If it's user data, reset data-ptr
* and put skb into ackq.
@@ -354,11 +354,11 @@ act2000_isa_send(act2000_card * card)
* Get firmware ID, check for 'ISDN' signature.
*/
static int
act2000_isa_getid(act2000_card * card)
act2000_isa_getid(act2000_card *card)
{
act2000_fwid fid;
u_char *p = (u_char *) & fid;
u_char *p = (u_char *)&fid;
int count = 0;
while (1) {
@@ -392,7 +392,7 @@ act2000_isa_getid(act2000_card * card)
* Download microcode into card, check Firmware signature.
*/
int
act2000_isa_download(act2000_card * card, act2000_ddef __user * cb)
act2000_isa_download(act2000_card *card, act2000_ddef __user *cb)
{
unsigned int length;
int l;

View File

@@ -114,22 +114,22 @@ typedef enum {
/* Macros for accessing ports */
#define ISA_PORT_COR (card->port+ISA_COR)
#define ISA_PORT_ISR (card->port+ISA_ISR)
#define ISA_PORT_EPR (card->port+ISA_EPR)
#define ISA_PORT_EER (card->port+ISA_EER)
#define ISA_PORT_SDI (card->port+ISA_SDI)
#define ISA_PORT_SDO (card->port+ISA_SDO)
#define ISA_PORT_SIS (card->port+ISA_SIS)
#define ISA_PORT_SOS (card->port+ISA_SOS)
#define ISA_PORT_COR (card->port + ISA_COR)
#define ISA_PORT_ISR (card->port + ISA_ISR)
#define ISA_PORT_EPR (card->port + ISA_EPR)
#define ISA_PORT_EER (card->port + ISA_EER)
#define ISA_PORT_SDI (card->port + ISA_SDI)
#define ISA_PORT_SDO (card->port + ISA_SDO)
#define ISA_PORT_SIS (card->port + ISA_SIS)
#define ISA_PORT_SOS (card->port + ISA_SOS)
/* Prototypes */
extern int act2000_isa_detect(unsigned short portbase);
extern int act2000_isa_config_irq(act2000_card * card, short irq);
extern int act2000_isa_config_port(act2000_card * card, unsigned short portbase);
extern int act2000_isa_download(act2000_card * card, act2000_ddef __user * cb);
extern void act2000_isa_release(act2000_card * card);
extern int act2000_isa_config_irq(act2000_card *card, short irq);
extern int act2000_isa_config_port(act2000_card *card, unsigned short portbase);
extern int act2000_isa_download(act2000_card *card, act2000_ddef __user *cb);
extern void act2000_isa_release(act2000_card *card);
extern void act2000_isa_receive(act2000_card *card);
extern void act2000_isa_send(act2000_card *card);

View File

@@ -88,7 +88,7 @@ static actcapi_msgdsc valid_msg[] = {
* 2 = Valid message, B-Channel-data
*/
int
actcapi_chkhdr(act2000_card * card, actcapi_msghdr *hdr)
actcapi_chkhdr(act2000_card *card, actcapi_msghdr *hdr)
{
int i;
@@ -99,7 +99,7 @@ actcapi_chkhdr(act2000_card * card, actcapi_msghdr *hdr)
for (i = 0; i < num_valid_imsg; i++)
if ((hdr->cmd.cmd == valid_msg[i].cmd.cmd) &&
(hdr->cmd.subcmd == valid_msg[i].cmd.subcmd)) {
return (i?1:2);
return (i ? 1 : 2);
}
return 0;
}
@@ -113,19 +113,19 @@ actcapi_chkhdr(act2000_card * card, actcapi_msghdr *hdr)
m->hdr.cmd.cmd = c; \
m->hdr.cmd.subcmd = s; \
m->hdr.msgnum = actcapi_nextsmsg(card); \
} else m = NULL;\
}
} else m = NULL; \
}
#define ACTCAPI_CHKSKB if (!skb) { \
printk(KERN_WARNING "actcapi: alloc_skb failed\n"); \
return; \
}
}
#define ACTCAPI_QUEUE_TX { \
actcapi_debug_msg(skb, 1); \
skb_queue_tail(&card->sndq, skb); \
act2000_schedule_tx(card); \
}
}
int
actcapi_listen_req(act2000_card *card)
@@ -145,7 +145,7 @@ actcapi_listen_req(act2000_card *card)
m->msg.listen_req.controller = 0;
m->msg.listen_req.infomask = 0x3f; /* All information */
m->msg.listen_req.eazmask = eazmask;
m->msg.listen_req.simask = (eazmask)?0x86:0; /* All SI's */
m->msg.listen_req.simask = (eazmask) ? 0x86 : 0; /* All SI's */
ACTCAPI_QUEUE_TX;
return 0;
}
@@ -168,7 +168,7 @@ actcapi_connect_req(act2000_card *card, act2000_chan *chan, char *phone,
m->msg.connect_req.infomask = 0x3f;
m->msg.connect_req.si1 = si1;
m->msg.connect_req.si2 = si2;
m->msg.connect_req.eaz = eaz?eaz:'0';
m->msg.connect_req.eaz = eaz ? eaz : '0';
m->msg.connect_req.addr.len = strlen(phone) + 1;
m->msg.connect_req.addr.tnp = 0x81;
memcpy(m->msg.connect_req.addr.num, phone, strlen(phone));
@@ -209,14 +209,14 @@ actcapi_manufacturer_req_net(act2000_card *card)
}
m->msg.manufacturer_req_net.manuf_msg = 0x11;
m->msg.manufacturer_req_net.controller = 1;
m->msg.manufacturer_req_net.nettype = (card->ptype == ISDN_PTYPE_EURO)?1:0;
m->msg.manufacturer_req_net.nettype = (card->ptype == ISDN_PTYPE_EURO) ? 1 : 0;
ACTCAPI_QUEUE_TX;
printk(KERN_INFO "act2000 %s: D-channel protocol now %s\n",
card->interface.id, (card->ptype == ISDN_PTYPE_EURO)?"euro":"1tr6");
card->interface.id, (card->ptype == ISDN_PTYPE_EURO) ? "euro" : "1tr6");
card->interface.features &=
~(ISDN_FEATURE_P_UNKNOWN | ISDN_FEATURE_P_EURO | ISDN_FEATURE_P_1TR6);
card->interface.features |=
((card->ptype == ISDN_PTYPE_EURO)?ISDN_FEATURE_P_EURO:ISDN_FEATURE_P_1TR6);
((card->ptype == ISDN_PTYPE_EURO) ? ISDN_FEATURE_P_EURO : ISDN_FEATURE_P_1TR6);
return 0;
}
@@ -238,7 +238,7 @@ actcapi_manufacturer_req_v42(act2000_card *card, ulong arg)
}
m->msg.manufacturer_req_v42.manuf_msg = 0x10;
m->msg.manufacturer_req_v42.controller = 0;
m->msg.manufacturer_req_v42.v42control = (arg?1:0);
m->msg.manufacturer_req_v42.v42control = (arg ? 1 : 0);
ACTCAPI_QUEUE_TX;
return 0;
}
@@ -434,7 +434,7 @@ actcapi_connect_b3_resp(act2000_card *card, act2000_chan *chan, __u8 rejectcause
actcapi_msg *m;
struct sk_buff *skb;
ACTCAPI_MKHDR((rejectcause?3:17), 0x82, 0x03);
ACTCAPI_MKHDR((rejectcause ? 3 : 17), 0x82, 0x03);
ACTCAPI_CHKSKB;
m->msg.connect_b3_resp.ncci = chan->ncci;
m->msg.connect_b3_resp.rejectcause = rejectcause;
@@ -1030,7 +1030,7 @@ actcapi_debug_msg(struct sk_buff *skb, int direction)
descr = valid_msg[i].description;
break;
}
printk(KERN_DEBUG "%s %s msg\n", direction?"Outgoing":"Incoming", descr);
printk(KERN_DEBUG "%s %s msg\n", direction ? "Outgoing" : "Incoming", descr);
printk(KERN_DEBUG " ApplID = %d\n", msg->hdr.applicationID);
printk(KERN_DEBUG " Len = %d\n", msg->hdr.len);
printk(KERN_DEBUG " MsgNum = 0x%04x\n", msg->hdr.msgnum);
@@ -1086,7 +1086,7 @@ actcapi_debug_msg(struct sk_buff *skb, int direction)
int l = msg->hdr.len - 12;
int j;
char *p = tmp;
for (j = 0; j < l ; j++)
for (j = 0; j < l; j++)
p += sprintf(p, "%02x ", msg->msg.info_ind.el.display[j]);
printk(KERN_DEBUG " D = '%s'\n", tmp);
}

View File

@@ -46,10 +46,10 @@ typedef struct actcapi_addr {
typedef union actcapi_infonr { /* info number */
__u16 mask; /* info-mask field */
struct bmask { /* bit definitions */
unsigned codes : 3; /* code set */
unsigned rsvd : 5; /* reserved */
unsigned svind : 1; /* single, variable length ind. */
unsigned wtype : 7; /* W-element type */
unsigned codes:3; /* code set */
unsigned rsvd:5; /* reserved */
unsigned svind:1; /* single, variable length ind. */
unsigned wtype:7; /* W-element type */
} bmask;
} actcapi_infonr;
@@ -59,12 +59,12 @@ typedef union actcapi_infoel { /* info element */
__u8 display[40]; /* display contents */
__u8 uuinfo[40]; /* User-user info field */
struct cause { /* Cause information */
unsigned ext2 : 1; /* extension */
unsigned cod : 2; /* coding standard */
unsigned spare : 1; /* spare */
unsigned loc : 4; /* location */
unsigned ext1 : 1; /* extension */
unsigned cval : 7; /* Cause value */
unsigned ext2:1; /* extension */
unsigned cod:2; /* coding standard */
unsigned spare:1; /* spare */
unsigned loc:4; /* location */
unsigned ext1:1; /* extension */
unsigned cval:7; /* Cause value */
} cause;
struct charge { /* Charging information */
__u8 toc; /* type of charging info */
@@ -111,14 +111,14 @@ typedef struct actcapi_ncpd {
* Bit 5-7 = Controller
* Bit 8-15 = NCCI
*/
#define MAKE_NCCI(plci,contr,ncci) \
#define MAKE_NCCI(plci, contr, ncci) \
((plci & 0x1f) | ((contr & 0x7) << 5) | ((ncci & 0xff) << 8))
#define EVAL_NCCI(fakencci,plci,contr,ncci) { \
#define EVAL_NCCI(fakencci, plci, contr, ncci) { \
plci = fakencci & 0x1f; \
contr = (fakencci >> 5) & 0x7; \
ncci = (fakencci >> 8) & 0xff; \
}
}
/*
* Layout of PLCI field in a B3 DATA CAPI message is different from
@@ -128,13 +128,13 @@ typedef struct actcapi_ncpd {
* Bit 5-7 = Controller
* Bit 8-15 = reserved (must be 0)
*/
#define MAKE_PLCI(plci,contr) \
#define MAKE_PLCI(plci, contr) \
((plci & 0x1f) | ((contr & 0x7) << 5))
#define EVAL_PLCI(fakeplci,plci,contr) { \
#define EVAL_PLCI(fakeplci, plci, contr) { \
plci = fakeplci & 0x1f; \
contr = (fakeplci >> 5) & 0x7; \
}
}
typedef struct actcapi_msg {
actcapi_msghdr hdr;

View File

@@ -33,9 +33,9 @@ static int act_port = -1; /* -1 = Autoprobe */
static int act_irq = -1;
static char *act_id = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
MODULE_DESCRIPTION( "ISDN4Linux: Driver for IBM Active 2000 ISDN card");
MODULE_AUTHOR( "Fritz Elfert");
MODULE_LICENSE( "GPL");
MODULE_DESCRIPTION("ISDN4Linux: Driver for IBM Active 2000 ISDN card");
MODULE_AUTHOR("Fritz Elfert");
MODULE_LICENSE("GPL");
MODULE_PARM_DESC(act_bus, "BusType of first card, 1=ISA, 2=MCA, 3=PCMCIA, currently only ISA");
MODULE_PARM_DESC(membase, "Base port address of first card");
MODULE_PARM_DESC(act_irq, "IRQ of first card");
@@ -111,10 +111,10 @@ act2000_find_eaz(act2000_card *card, char eaz)
while (p) {
if (p->eaz == eaz)
return(p->msn);
return (p->msn);
p = p->next;
}
return("\0");
return ("\0");
}
/*
@@ -230,17 +230,17 @@ act2000_receive(struct work_struct *work)
static void
act2000_poll(unsigned long data)
{
act2000_card * card = (act2000_card *)data;
act2000_card *card = (act2000_card *)data;
unsigned long flags;
act2000_receive(&card->poll_tq);
spin_lock_irqsave(&card->lock, flags);
mod_timer(&card->ptimer, jiffies+3);
mod_timer(&card->ptimer, jiffies + 3);
spin_unlock_irqrestore(&card->lock, flags);
}
static int
act2000_command(act2000_card * card, isdn_ctrl * c)
act2000_command(act2000_card *card, isdn_ctrl *c)
{
ulong a;
act2000_chan *chan;
@@ -280,7 +280,7 @@ act2000_command(act2000_card * card, isdn_ctrl * c)
}
return ret;
case ACT2000_IOCTL_SETPROTO:
card->ptype = a?ISDN_PTYPE_EURO:ISDN_PTYPE_1TR6;
card->ptype = a ? ISDN_PTYPE_EURO : ISDN_PTYPE_1TR6;
if (!(card->flags & ACT2000_FLAGS_RUNNING))
return 0;
actcapi_manufacturer_req_net(card);
@@ -292,7 +292,7 @@ act2000_command(act2000_card * card, isdn_ctrl * c)
if ((ret = act2000_set_msn(card, tmp)))
return ret;
if (card->flags & ACT2000_FLAGS_RUNNING)
return(actcapi_manufacturer_req_msn(card));
return (actcapi_manufacturer_req_msn(card));
return 0;
case ACT2000_IOCTL_ADDCARD:
if (copy_from_user(&cdef, arg,
@@ -471,7 +471,7 @@ act2000_sendbuf(act2000_card *card, int channel, int ack, struct sk_buff *skb)
/* Read the Status-replies from the Interface */
static int
act2000_readstatus(u_char __user * buf, int len, act2000_card * card)
act2000_readstatus(u_char __user *buf, int len, act2000_card *card)
{
int count;
u_char __user *p;
@@ -506,7 +506,7 @@ act2000_findcard(int driverid)
* Wrapper functions for interface to linklevel
*/
static int
if_command(isdn_ctrl * c)
if_command(isdn_ctrl *c)
{
act2000_card *card = act2000_findcard(c->driver);
@@ -534,7 +534,7 @@ if_writecmd(const u_char __user *buf, int len, int id, int channel)
}
static int
if_readstatus(u_char __user * buf, int len, int id, int channel)
if_readstatus(u_char __user *buf, int len, int id, int channel)
{
act2000_card *card = act2000_findcard(id);
@@ -602,7 +602,7 @@ act2000_alloccard(int bus, int port, int irq, char *id)
card->interface.hl_hdrlen = 20;
card->ptype = ISDN_PTYPE_EURO;
strlcpy(card->interface.id, id, sizeof(card->interface.id));
for (i=0; i<ACT2000_BCH; i++) {
for (i = 0; i < ACT2000_BCH; i++) {
card->bch[i].plci = 0x8000;
card->bch[i].ncci = 0x8000;
card->bch[i].l2prot = ISDN_PROTO_L2_X75I;
@@ -620,7 +620,7 @@ act2000_alloccard(int bus, int port, int irq, char *id)
* register card at linklevel
*/
static int
act2000_registercard(act2000_card * card)
act2000_registercard(act2000_card *card)
{
switch (card->bus) {
case ACT2000_BUS_ISA:
@@ -645,7 +645,7 @@ act2000_registercard(act2000_card * card)
}
static void
unregister_card(act2000_card * card)
unregister_card(act2000_card *card)
{
isdn_ctrl cmd;

View File

@@ -391,7 +391,7 @@ gen_data_b3_resp_for(struct capiminor *mp, struct sk_buff *skb)
struct sk_buff *nskb;
nskb = alloc_skb(CAPI_DATA_B3_RESP_LEN, GFP_KERNEL);
if (nskb) {
u16 datahandle = CAPIMSG_U16(skb->data,CAPIMSG_BASELEN+4+4+2);
u16 datahandle = CAPIMSG_U16(skb->data, CAPIMSG_BASELEN + 4 + 4 + 2);
unsigned char *s = skb_put(nskb, CAPI_DATA_B3_RESP_LEN);
capimsg_setu16(s, 0, CAPI_DATA_B3_RESP_LEN);
capimsg_setu16(s, 2, mp->ap->applid);
@@ -618,7 +618,7 @@ static void capi_recv_message(struct capi20_appl *ap, struct sk_buff *skb)
goto unlock_out;
}
if (CAPIMSG_SUBCOMMAND(skb->data) == CAPI_IND) {
datahandle = CAPIMSG_U16(skb->data, CAPIMSG_BASELEN+4+4+2);
datahandle = CAPIMSG_U16(skb->data, CAPIMSG_BASELEN + 4 + 4 + 2);
pr_debug("capi_signal: DATA_B3_IND %u len=%d\n",
datahandle, skb->len-CAPIMSG_LEN(skb->data));
skb_queue_tail(&mp->inqueue, skb);
@@ -627,10 +627,10 @@ static void capi_recv_message(struct capi20_appl *ap, struct sk_buff *skb)
} else if (CAPIMSG_SUBCOMMAND(skb->data) == CAPI_CONF) {
datahandle = CAPIMSG_U16(skb->data, CAPIMSG_BASELEN+4);
datahandle = CAPIMSG_U16(skb->data, CAPIMSG_BASELEN + 4);
pr_debug("capi_signal: DATA_B3_CONF %u 0x%x\n",
datahandle,
CAPIMSG_U16(skb->data, CAPIMSG_BASELEN+4+2));
CAPIMSG_U16(skb->data, CAPIMSG_BASELEN + 4 + 2));
kfree_skb(skb);
capiminor_del_ack(mp, datahandle);
tty = tty_port_tty_get(&mp->port);
@@ -736,7 +736,7 @@ capi_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos
}
static unsigned int
capi_poll(struct file *file, poll_table * wait)
capi_poll(struct file *file, poll_table *wait)
{
struct capidev *cdev = file->private_data;
unsigned int mask = 0;
@@ -804,7 +804,7 @@ register_out:
if (copy_from_user(&data.contr, argp,
sizeof(data.contr)))
return -EFAULT;
cdev->errcode = capi20_get_serial (data.contr, data.serial);
cdev->errcode = capi20_get_serial(data.contr, data.serial);
if (cdev->errcode)
return -EIO;
if (copy_to_user(argp, data.serial,
@@ -1070,7 +1070,7 @@ static int capinc_tty_write(struct tty_struct *tty,
mp->outbytes += skb->len;
}
skb = alloc_skb(CAPI_DATA_B3_REQ_LEN+count, GFP_ATOMIC);
skb = alloc_skb(CAPI_DATA_B3_REQ_LEN + count, GFP_ATOMIC);
if (!skb) {
printk(KERN_ERR "capinc_tty_write: alloc_skb failed\n");
spin_unlock_bh(&mp->outlock);
@@ -1111,7 +1111,7 @@ static int capinc_tty_put_char(struct tty_struct *tty, unsigned char ch)
invoke_send = true;
}
skb = alloc_skb(CAPI_DATA_B3_REQ_LEN+CAPI_MAX_BLKSIZE, GFP_ATOMIC);
skb = alloc_skb(CAPI_DATA_B3_REQ_LEN + CAPI_MAX_BLKSIZE, GFP_ATOMIC);
if (skb) {
skb_reserve(skb, CAPI_DATA_B3_REQ_LEN);
*(skb_put(skb, 1)) = ch;
@@ -1180,7 +1180,7 @@ static int capinc_tty_ioctl(struct tty_struct *tty,
return -ENOIOCTLCMD;
}
static void capinc_tty_set_termios(struct tty_struct *tty, struct ktermios * old)
static void capinc_tty_set_termios(struct tty_struct *tty, struct ktermios *old)
{
pr_debug("capinc_tty_set_termios\n");
}

View File

@@ -40,7 +40,7 @@ static int debugmode = 0;
MODULE_DESCRIPTION("CAPI4Linux: Interface to ISDN4Linux");
MODULE_AUTHOR("Carsten Paeth");
MODULE_LICENSE("GPL");
module_param(debugmode, uint, S_IRUGO|S_IWUSR);
module_param(debugmode, uint, S_IRUGO | S_IWUSR);
/* -------- type definitions ----------------------------------------- */
@@ -329,7 +329,7 @@ static capidrv_contr *findcontrbynumber(u32 contr)
/* -------- plci management ------------------------------------------ */
static capidrv_plci *new_plci(capidrv_contr * card, int chan)
static capidrv_plci *new_plci(capidrv_contr *card, int chan)
{
capidrv_plci *plcip;
@@ -349,7 +349,7 @@ static capidrv_plci *new_plci(capidrv_contr * card, int chan)
return plcip;
}
static capidrv_plci *find_plci_by_plci(capidrv_contr * card, u32 plci)
static capidrv_plci *find_plci_by_plci(capidrv_contr *card, u32 plci)
{
capidrv_plci *p;
for (p = card->plci_list; p; p = p->next)
@@ -358,7 +358,7 @@ static capidrv_plci *find_plci_by_plci(capidrv_contr * card, u32 plci)
return NULL;
}
static capidrv_plci *find_plci_by_msgid(capidrv_contr * card, u16 msgid)
static capidrv_plci *find_plci_by_msgid(capidrv_contr *card, u16 msgid)
{
capidrv_plci *p;
for (p = card->plci_list; p; p = p->next)
@@ -367,7 +367,7 @@ static capidrv_plci *find_plci_by_msgid(capidrv_contr * card, u16 msgid)
return NULL;
}
static capidrv_plci *find_plci_by_ncci(capidrv_contr * card, u32 ncci)
static capidrv_plci *find_plci_by_ncci(capidrv_contr *card, u32 ncci)
{
capidrv_plci *p;
for (p = card->plci_list; p; p = p->next)
@@ -376,7 +376,7 @@ static capidrv_plci *find_plci_by_ncci(capidrv_contr * card, u32 ncci)
return NULL;
}
static void free_plci(capidrv_contr * card, capidrv_plci * plcip)
static void free_plci(capidrv_contr *card, capidrv_plci *plcip)
{
capidrv_plci **pp;
@@ -396,8 +396,8 @@ static void free_plci(capidrv_contr * card, capidrv_plci * plcip)
/* -------- ncci management ------------------------------------------ */
static inline capidrv_ncci *new_ncci(capidrv_contr * card,
capidrv_plci * plcip,
static inline capidrv_ncci *new_ncci(capidrv_contr *card,
capidrv_plci *plcip,
u32 ncci)
{
capidrv_ncci *nccip;
@@ -421,7 +421,7 @@ static inline capidrv_ncci *new_ncci(capidrv_contr * card,
return nccip;
}
static inline capidrv_ncci *find_ncci(capidrv_contr * card, u32 ncci)
static inline capidrv_ncci *find_ncci(capidrv_contr *card, u32 ncci)
{
capidrv_plci *plcip;
capidrv_ncci *p;
@@ -435,7 +435,7 @@ static inline capidrv_ncci *find_ncci(capidrv_contr * card, u32 ncci)
return NULL;
}
static inline capidrv_ncci *find_ncci_by_msgid(capidrv_contr * card,
static inline capidrv_ncci *find_ncci_by_msgid(capidrv_contr *card,
u32 ncci, u16 msgid)
{
capidrv_plci *plcip;
@@ -450,7 +450,7 @@ static inline capidrv_ncci *find_ncci_by_msgid(capidrv_contr * card,
return NULL;
}
static void free_ncci(capidrv_contr * card, struct capidrv_ncci *nccip)
static void free_ncci(capidrv_contr *card, struct capidrv_ncci *nccip)
{
struct capidrv_ncci **pp;
@@ -478,7 +478,7 @@ static int capidrv_add_ack(struct capidrv_ncci *nccip,
n->next = NULL;
n->datahandle = datahandle;
n->len = len;
for (pp = &nccip->ackqueue; *pp; pp = &(*pp)->next) ;
for (pp = &nccip->ackqueue; *pp; pp = &(*pp)->next);
*pp = n;
return 0;
}
@@ -502,7 +502,7 @@ static int capidrv_del_ack(struct capidrv_ncci *nccip, u16 datahandle)
/* -------- convert and send capi message ---------------------------- */
static void send_message(capidrv_contr * card, _cmsg * cmsg)
static void send_message(capidrv_contr *card, _cmsg *cmsg)
{
struct sk_buff *skb;
size_t len;
@@ -540,7 +540,7 @@ static struct listenstatechange listentable[] =
{},
};
static void listen_change_state(capidrv_contr * card, int event)
static void listen_change_state(capidrv_contr *card, int event)
{
struct listenstatechange *p = listentable;
while (p->event) {
@@ -560,7 +560,7 @@ static void listen_change_state(capidrv_contr * card, int event)
/* ------------------------------------------------------------------ */
static void p0(capidrv_contr * card, capidrv_plci * plci)
static void p0(capidrv_contr *card, capidrv_plci *plci)
{
isdn_ctrl cmd;
@@ -578,7 +578,7 @@ struct plcistatechange {
int actstate;
int nextstate;
int event;
void (*changefunc) (capidrv_contr * card, capidrv_plci * plci);
void (*changefunc)(capidrv_contr *card, capidrv_plci *plci);
};
static struct plcistatechange plcitable[] =
@@ -635,7 +635,7 @@ static struct plcistatechange plcitable[] =
{},
};
static void plci_change_state(capidrv_contr * card, capidrv_plci * plci, int event)
static void plci_change_state(capidrv_contr *card, capidrv_plci *plci, int event)
{
struct plcistatechange *p = plcitable;
while (p->event) {
@@ -658,7 +658,7 @@ static void plci_change_state(capidrv_contr * card, capidrv_plci * plci, int eve
static _cmsg cmsg;
static void n0(capidrv_contr * card, capidrv_ncci * ncci)
static void n0(capidrv_contr *card, capidrv_ncci *ncci)
{
isdn_ctrl cmd;
@@ -687,7 +687,7 @@ struct nccistatechange {
int actstate;
int nextstate;
int event;
void (*changefunc) (capidrv_contr * card, capidrv_ncci * ncci);
void (*changefunc)(capidrv_contr *card, capidrv_ncci *ncci);
};
static struct nccistatechange nccitable[] =
@@ -718,13 +718,13 @@ static struct nccistatechange nccitable[] =
{ST_NCCI_RESETING, ST_NCCI_DISCONNECTING, EV_NCCI_DISCONNECT_B3_REQ, NULL},
/* N-4 */
{ST_NCCI_DISCONNECTING, ST_NCCI_DISCONNECTED, EV_NCCI_DISCONNECT_B3_IND, NULL},
{ST_NCCI_DISCONNECTING, ST_NCCI_PREVIOUS, EV_NCCI_DISCONNECT_B3_CONF_ERROR,NULL},
{ST_NCCI_DISCONNECTING, ST_NCCI_PREVIOUS, EV_NCCI_DISCONNECT_B3_CONF_ERROR, NULL},
/* N-5 */
{ST_NCCI_DISCONNECTED, ST_NCCI_NONE, EV_NCCI_DISCONNECT_B3_RESP, n0},
{},
};
static void ncci_change_state(capidrv_contr * card, capidrv_ncci * ncci, int event)
static void ncci_change_state(capidrv_contr *card, capidrv_ncci *ncci, int event)
{
struct nccistatechange *p = nccitable;
while (p->event) {
@@ -751,7 +751,7 @@ static void ncci_change_state(capidrv_contr * card, capidrv_ncci * ncci, int eve
/* ------------------------------------------------------------------- */
static inline int new_bchan(capidrv_contr * card)
static inline int new_bchan(capidrv_contr *card)
{
int i;
for (i = 0; i < card->nbchan; i++) {
@@ -765,7 +765,7 @@ static inline int new_bchan(capidrv_contr * card)
/* ------------------------------------------------------------------- */
static void handle_controller(_cmsg * cmsg)
static void handle_controller(_cmsg *cmsg)
{
capidrv_contr *card = findcontrbynumber(cmsg->adr.adrController & 0x7f);
@@ -791,10 +791,10 @@ static void handle_controller(_cmsg * cmsg)
break;
case CAPI_MANUFACTURER_IND: /* Controller */
if ( cmsg->ManuID == 0x214D5641
if (cmsg->ManuID == 0x214D5641
&& cmsg->Class == 0
&& cmsg->Function == 1) {
u8 *data = cmsg->ManuData+3;
u8 *data = cmsg->ManuData + 3;
u16 len = cmsg->ManuData[0];
u16 layer;
int direction;
@@ -803,7 +803,7 @@ static void handle_controller(_cmsg * cmsg)
data += 2;
}
len -= 2;
layer = ((*(data-1)) << 8) | *(data-2);
layer = ((*(data - 1)) << 8) | *(data - 2);
if (layer & 0x300)
direction = (layer & 0x200) ? 0 : 1;
else direction = (layer & 0x800) ? 0 : 1;
@@ -858,14 +858,14 @@ static void handle_controller(_cmsg * cmsg)
}
return;
ignored:
ignored:
printk(KERN_INFO "capidrv-%d: %s from controller 0x%x ignored\n",
card->contrnr,
capi_cmd2str(cmsg->Command, cmsg->Subcommand),
cmsg->adr.adrController);
}
static void handle_incoming_call(capidrv_contr * card, _cmsg * cmsg)
static void handle_incoming_call(capidrv_contr *card, _cmsg *cmsg)
{
capidrv_plci *plcip;
capidrv_bchan *bchan;
@@ -990,7 +990,7 @@ static void handle_incoming_call(capidrv_contr * card, _cmsg * cmsg)
return;
}
static void handle_plci(_cmsg * cmsg)
static void handle_plci(_cmsg *cmsg)
{
capidrv_contr *card = findcontrbynumber(cmsg->adr.adrController & 0x7f);
capidrv_plci *plcip;
@@ -1159,13 +1159,13 @@ static void handle_plci(_cmsg * cmsg)
cmsg->adr.adrPLCI);
}
return;
ignored:
ignored:
printk(KERN_INFO "capidrv-%d: %s for plci 0x%x ignored\n",
card->contrnr,
capi_cmd2str(cmsg->Command, cmsg->Subcommand),
cmsg->adr.adrPLCI);
return;
notfound:
notfound:
printk(KERN_ERR "capidrv-%d: %s: plci 0x%x not found\n",
card->contrnr,
capi_cmd2str(cmsg->Command, cmsg->Subcommand),
@@ -1173,7 +1173,7 @@ static void handle_plci(_cmsg * cmsg)
return;
}
static void handle_ncci(_cmsg * cmsg)
static void handle_ncci(_cmsg *cmsg)
{
capidrv_contr *card = findcontrbynumber(cmsg->adr.adrController & 0x7f);
capidrv_plci *plcip;
@@ -1340,13 +1340,13 @@ static void handle_ncci(_cmsg * cmsg)
cmsg->adr.adrNCCI);
}
return;
ignored:
ignored:
printk(KERN_INFO "capidrv-%d: %s for ncci 0x%x ignored\n",
card->contrnr,
capi_cmd2str(cmsg->Command, cmsg->Subcommand),
cmsg->adr.adrNCCI);
return;
notfound:
notfound:
printk(KERN_ERR "capidrv-%d: %s: ncci 0x%x not found\n",
card->contrnr,
capi_cmd2str(cmsg->Command, cmsg->Subcommand),
@@ -1354,7 +1354,7 @@ static void handle_ncci(_cmsg * cmsg)
}
static void handle_data(_cmsg * cmsg, struct sk_buff *skb)
static void handle_data(_cmsg *cmsg, struct sk_buff *skb)
{
capidrv_contr *card = findcontrbynumber(cmsg->adr.adrController & 0x7f);
capidrv_ncci *nccip;
@@ -1449,7 +1449,7 @@ static void handle_dtrace_data(capidrv_contr *card,
PUTBYTE_TO_STATUS(card, ':');
}
for (p = data, end = data+len; p < end; p++) {
for (p = data, end = data + len; p < end; p++) {
PUTBYTE_TO_STATUS(card, ' ');
PUTBYTE_TO_STATUS(card, hex_asc_hi(*p));
PUTBYTE_TO_STATUS(card, hex_asc_lo(*p));
@@ -1458,7 +1458,7 @@ static void handle_dtrace_data(capidrv_contr *card,
cmd.command = ISDN_STAT_STAVAIL;
cmd.driver = card->myid;
cmd.arg = len*3+5;
cmd.arg = len * 3 + 5;
card->interface.statcallb(&cmd);
}
@@ -1466,7 +1466,7 @@ static void handle_dtrace_data(capidrv_contr *card,
static _cmsg cmdcmsg;
static int capidrv_ioctl(isdn_ctrl * c, capidrv_contr * card)
static int capidrv_ioctl(isdn_ctrl *c, capidrv_contr *card)
{
switch (c->arg) {
case 1:
@@ -1540,10 +1540,10 @@ static int decodeFVteln(char *teln, unsigned long *bmaskp, int *activep)
if (digit2 <= 0 || digit2 > 30) return -4;
if (*s == 0 || *s == ',' || *s == ' ') {
if (digit1 > digit2)
for (i = digit2; i <= digit1 ; i++)
for (i = digit2; i <= digit1; i++)
bmask |= (1 << i);
else
for (i = digit1; i <= digit2 ; i++)
for (i = digit1; i <= digit2; i++)
bmask |= (1 << i);
digit1 = digit2 = 0;
if (*s) s++;
@@ -1556,7 +1556,7 @@ static int decodeFVteln(char *teln, unsigned long *bmaskp, int *activep)
return 0;
}
static int FVteln2capi20(char *teln, u8 AdditionalInfo[1+2+2+31])
static int FVteln2capi20(char *teln, u8 AdditionalInfo[1 + 2 + 2 + 31])
{
unsigned long bmask;
int active;
@@ -1565,7 +1565,7 @@ static int FVteln2capi20(char *teln, u8 AdditionalInfo[1+2+2+31])
rc = decodeFVteln(teln, &bmask, &active);
if (rc) return rc;
/* Length */
AdditionalInfo[0] = 2+2+31;
AdditionalInfo[0] = 2 + 2 + 31;
/* Channel: 3 => use channel allocation */
AdditionalInfo[1] = 3; AdditionalInfo[2] = 0;
/* Operation: 0 => DTE mode, 1 => DCE mode */
@@ -1576,17 +1576,17 @@ static int FVteln2capi20(char *teln, u8 AdditionalInfo[1+2+2+31])
}
/* Channel mask array */
AdditionalInfo[5] = 0; /* no D-Channel */
for (i=1; i <= 30; i++)
AdditionalInfo[5+i] = (bmask & (1 << i)) ? 0xff : 0;
for (i = 1; i <= 30; i++)
AdditionalInfo[5 + i] = (bmask & (1 << i)) ? 0xff : 0;
return 0;
}
static int capidrv_command(isdn_ctrl * c, capidrv_contr * card)
static int capidrv_command(isdn_ctrl *c, capidrv_contr *card)
{
isdn_ctrl cmd;
struct capidrv_bchan *bchan;
struct capidrv_plci *plcip;
u8 AdditionalInfo[1+2+2+31];
u8 AdditionalInfo[1 + 2 + 2 + 31];
int rc, isleasedline = 0;
if (c->command == ISDN_CMD_IOCTL)
@@ -1826,7 +1826,7 @@ static int capidrv_command(isdn_ctrl * c, capidrv_contr * card)
return 0;
}
static int if_command(isdn_ctrl * c)
static int if_command(isdn_ctrl *c)
{
capidrv_contr *card = findcontrbydriverid(c->driver);
@@ -1949,7 +1949,7 @@ static int if_readstat(u8 __user *buf, int len, int id, int channel)
return -ENODEV;
}
for (p=buf, count=0; count < len; p++, count++) {
for (p = buf, count = 0; count < len; p++, count++) {
if (put_user(*card->q931_read++, p))
return -EFAULT;
if (card->q931_read > card->q931_end)
@@ -2031,7 +2031,7 @@ static void listentimerfunc(unsigned long x)
if (card->state != ST_LISTEN_NONE && card->state != ST_LISTEN_ACTIVE)
printk(KERN_ERR "%s: controller dead ??\n", card->name);
send_listen(card);
mod_timer(&card->listentimer, jiffies + 60*HZ);
mod_timer(&card->listentimer, jiffies + 60 * HZ);
}
@@ -2079,11 +2079,11 @@ static int capidrv_addcontr(u16 contr, struct capi_profile *profp)
ISDN_FEATURE_L2_X75I |
ISDN_FEATURE_L2_X75UI |
ISDN_FEATURE_L2_X75BUI;
if (profp->support1 & (1<<2))
if (profp->support1 & (1 << 2))
card->interface.features |= ISDN_FEATURE_L2_V11096 |
ISDN_FEATURE_L2_V11019 |
ISDN_FEATURE_L2_V11038;
if (profp->support1 & (1<<8))
if (profp->support1 & (1 << 8))
card->interface.features |= ISDN_FEATURE_L2_MODEM;
card->interface.hl_hdrlen = 22; /* len of DATA_B3_REQ */
strncpy(card->interface.id, id, sizeof(card->interface.id) - 1);
@@ -2122,7 +2122,7 @@ static int capidrv_addcontr(u16 contr, struct capi_profile *profp)
card->listentimer.data = (unsigned long)card;
card->listentimer.function = listentimerfunc;
send_listen(card);
mod_timer(&card->listentimer, jiffies + 60*HZ);
mod_timer(&card->listentimer, jiffies + 60 * HZ);
printk(KERN_INFO "%s: now up (%d B channels)\n",
card->name, card->nbchan);
@@ -2168,17 +2168,17 @@ static int capidrv_delcontr(u16 contr)
cmd.command = ISDN_STAT_DISCH;
cmd.driver = card->myid;
cmd.arg = card->nbchan-1;
cmd.arg = card->nbchan - 1;
cmd.parm.num[0] = 0;
if (debugmode)
printk(KERN_DEBUG "capidrv-%d: id=%d disable chan=%ld\n",
card->contrnr, card->myid, cmd.arg);
card->interface.statcallb(&cmd);
if (card->bchans[card->nbchan-1].nccip)
free_ncci(card, card->bchans[card->nbchan-1].nccip);
if (card->bchans[card->nbchan-1].plcip)
free_plci(card, card->bchans[card->nbchan-1].plcip);
if (card->bchans[card->nbchan - 1].nccip)
free_ncci(card, card->bchans[card->nbchan - 1].nccip);
if (card->bchans[card->nbchan - 1].plcip)
free_plci(card, card->bchans[card->nbchan - 1].plcip);
if (card->plci_list)
printk(KERN_ERR "capidrv: bug in free_plci()\n");
card->nbchan--;

View File

@@ -5,8 +5,8 @@
#include <linux/isdn/capilli.h>
#define DBG(format, arg...) do { \
printk(KERN_DEBUG "%s: " format "\n" , __func__ , ## arg); \
} while (0)
printk(KERN_DEBUG "%s: " format "\n" , __func__ , ## arg); \
} while (0)
struct capilib_msgidqueue {
struct capilib_msgidqueue *next;
@@ -28,7 +28,7 @@ struct capilib_ncci {
// ---------------------------------------------------------------------------
// NCCI Handling
static inline void mq_init(struct capilib_ncci * np)
static inline void mq_init(struct capilib_ncci *np)
{
u_int i;
np->msgidqueue = NULL;
@@ -42,7 +42,7 @@ static inline void mq_init(struct capilib_ncci * np)
}
}
static inline int mq_enqueue(struct capilib_ncci * np, u16 msgid)
static inline int mq_enqueue(struct capilib_ncci *np, u16 msgid)
{
struct capilib_msgidqueue *mq;
if ((mq = np->msgidfree) == NULL)
@@ -59,7 +59,7 @@ static inline int mq_enqueue(struct capilib_ncci * np, u16 msgid)
return 1;
}
static inline int mq_dequeue(struct capilib_ncci * np, u16 msgid)
static inline int mq_dequeue(struct capilib_ncci *np, u16 msgid)
{
struct capilib_msgidqueue **pp;
for (pp = &np->msgidqueue; *pp; pp = &(*pp)->next) {

View File

@@ -387,17 +387,17 @@ static unsigned char *cpars[] =
/*-------------------------------------------------------*/
#define byteTLcpy(x,y) *(u8 *)(x)=*(u8 *)(y);
#define wordTLcpy(x,y) *(u16 *)(x)=*(u16 *)(y);
#define dwordTLcpy(x,y) memcpy(x,y,4);
#define structTLcpy(x,y,l) memcpy (x,y,l)
#define structTLcpyovl(x,y,l) memmove (x,y,l)
#define byteTLcpy(x, y) *(u8 *)(x) = *(u8 *)(y);
#define wordTLcpy(x, y) *(u16 *)(x) = *(u16 *)(y);
#define dwordTLcpy(x, y) memcpy(x, y, 4);
#define structTLcpy(x, y, l) memcpy(x, y, l)
#define structTLcpyovl(x, y, l) memmove(x, y, l)
#define byteTRcpy(x,y) *(u8 *)(y)=*(u8 *)(x);
#define wordTRcpy(x,y) *(u16 *)(y)=*(u16 *)(x);
#define dwordTRcpy(x,y) memcpy(y,x,4);
#define structTRcpy(x,y,l) memcpy (y,x,l)
#define structTRcpyovl(x,y,l) memmove (y,x,l)
#define byteTRcpy(x, y) *(u8 *)(y) = *(u8 *)(x);
#define wordTRcpy(x, y) *(u16 *)(y) = *(u16 *)(x);
#define dwordTRcpy(x, y) memcpy(y, x, 4);
#define structTRcpy(x, y, l) memcpy(y, x, l)
#define structTRcpyovl(x, y, l) memmove(y, x, l)
/*-------------------------------------------------------*/
static unsigned command_2_index(unsigned c, unsigned sc)
@@ -414,9 +414,9 @@ static unsigned command_2_index(unsigned c, unsigned sc)
/*-------------------------------------------------------*/
#define TYP (cdef[cmsg->par[cmsg->p]].typ)
#define OFF (((u8 *)cmsg)+cdef[cmsg->par[cmsg->p]].off)
#define OFF (((u8 *)cmsg) + cdef[cmsg->par[cmsg->p]].off)
static void jumpcstruct(_cmsg * cmsg)
static void jumpcstruct(_cmsg *cmsg)
{
unsigned layer;
for (cmsg->p++, layer = 1; layer;) {
@@ -433,7 +433,7 @@ static void jumpcstruct(_cmsg * cmsg)
}
}
/*-------------------------------------------------------*/
static void pars_2_message(_cmsg * cmsg)
static void pars_2_message(_cmsg *cmsg)
{
for (; TYP != _CEND; cmsg->p++) {
@@ -499,7 +499,7 @@ static void pars_2_message(_cmsg * cmsg)
* Return value: 0 for success
*/
unsigned capi_cmsg2message(_cmsg * cmsg, u8 * msg)
unsigned capi_cmsg2message(_cmsg *cmsg, u8 *msg)
{
cmsg->m = msg;
cmsg->l = 8;
@@ -518,7 +518,7 @@ unsigned capi_cmsg2message(_cmsg * cmsg, u8 * msg)
}
/*-------------------------------------------------------*/
static void message_2_pars(_cmsg * cmsg)
static void message_2_pars(_cmsg *cmsg)
{
for (; TYP != _CEND; cmsg->p++) {
@@ -569,7 +569,7 @@ static void message_2_pars(_cmsg * cmsg)
* Return value: 0 for success
*/
unsigned capi_message2cmsg(_cmsg * cmsg, u8 * msg)
unsigned capi_message2cmsg(_cmsg *cmsg, u8 *msg)
{
memset(cmsg, 0, sizeof(_cmsg));
cmsg->m = msg;
@@ -600,7 +600,7 @@ unsigned capi_message2cmsg(_cmsg * cmsg, u8 * msg)
* Return value: 0 for success
*/
unsigned capi_cmsg_header(_cmsg * cmsg, u16 _ApplId,
unsigned capi_cmsg_header(_cmsg *cmsg, u16 _ApplId,
u8 _Command, u8 _Subcommand,
u16 _Messagenumber, u32 _Controller)
{
@@ -744,10 +744,10 @@ static char *pnames[] =
#include <stdarg.h>
/*-------------------------------------------------------*/
static _cdebbuf *bufprint(_cdebbuf *cdb, char *fmt,...)
static _cdebbuf *bufprint(_cdebbuf *cdb, char *fmt, ...)
{
va_list f;
size_t n,r;
size_t n, r;
if (!cdb)
return NULL;
@@ -783,7 +783,7 @@ static _cdebbuf *bufprint(_cdebbuf *cdb, char *fmt,...)
return cdb;
}
static _cdebbuf *printstructlen(_cdebbuf *cdb, u8 * m, unsigned len)
static _cdebbuf *printstructlen(_cdebbuf *cdb, u8 *m, unsigned len)
{
unsigned hex = 0;
@@ -807,7 +807,7 @@ static _cdebbuf *printstructlen(_cdebbuf *cdb, u8 * m, unsigned len)
return cdb;
}
static _cdebbuf *printstruct(_cdebbuf *cdb, u8 * m)
static _cdebbuf *printstruct(_cdebbuf *cdb, u8 *m)
{
unsigned len;
@@ -940,7 +940,7 @@ void cdebbuf_free(_cdebbuf *cdb)
* The returned buffer should be freed by a call to cdebbuf_free() after use.
*/
_cdebbuf *capi_message2str(u8 * msg)
_cdebbuf *capi_message2str(u8 *msg)
{
_cdebbuf *cdb;
_cmsg *cmsg;
@@ -986,7 +986,7 @@ _cdebbuf *capi_message2str(u8 * msg)
* The returned buffer should be freed by a call to cdebbuf_free() after use.
*/
_cdebbuf *capi_cmsg2str(_cmsg * cmsg)
_cdebbuf *capi_cmsg2str(_cmsg *cmsg)
{
_cdebbuf *cdb;
@@ -1008,7 +1008,7 @@ _cdebbuf *capi_cmsg2str(_cmsg * cmsg)
int __init cdebug_init(void)
{
g_cmsg= kmalloc(sizeof(_cmsg), GFP_KERNEL);
g_cmsg = kmalloc(sizeof(_cmsg), GFP_KERNEL);
if (!g_cmsg)
return -ENOMEM;
g_debbuf = kmalloc(sizeof(_cdebbuf), GFP_KERNEL);
@@ -1041,12 +1041,12 @@ void __exit cdebug_exit(void)
static _cdebbuf g_debbuf = {"CONFIG_CAPI_TRACE not enabled", NULL, 0, 0};
_cdebbuf *capi_message2str(u8 * msg)
_cdebbuf *capi_message2str(u8 *msg)
{
return &g_debbuf;
}
_cdebbuf *capi_cmsg2str(_cmsg * cmsg)
_cdebbuf *capi_cmsg2str(_cmsg *cmsg)
{
return &g_debbuf;
}

View File

@@ -55,7 +55,7 @@ struct capictr_event {
/* ------------------------------------------------------------- */
static struct capi_version driver_version = {2, 0, 1, 1<<4};
static struct capi_version driver_version = {2, 0, 1, 1 << 4};
static char driver_serial[CAPI_SERIAL_LEN] = "0004711";
static char capi_manufakturer[64] = "AVM Berlin";
@@ -796,7 +796,7 @@ u16 capi20_put_message(struct capi20_appl *ap, struct sk_buff *skb)
cmd = CAPIMSG_COMMAND(skb->data);
subcmd = CAPIMSG_SUBCOMMAND(skb->data);
if (cmd == CAPI_DATA_B3 && subcmd== CAPI_REQ) {
if (cmd == CAPI_DATA_B3 && subcmd == CAPI_REQ) {
ctr->nsentdatapkt++;
ap->nsentdatapkt++;
if (ctr->traceflag > 2)
@@ -1136,7 +1136,7 @@ static int old_capi_manufacturer(unsigned int cmd, void __user *data)
retval = wait_on_ctr_state(ctr, CAPI_CTR_RUNNING);
load_unlock_out:
load_unlock_out:
mutex_unlock(&capi_controller_lock);
return retval;
@@ -1167,7 +1167,7 @@ load_unlock_out:
retval = wait_on_ctr_state(ctr, CAPI_CTR_DETECTED);
reset_unlock_out:
reset_unlock_out:
mutex_unlock(&capi_controller_lock);
return retval;
}
@@ -1235,7 +1235,7 @@ int capi20_manufacturer(unsigned int cmd, void __user *data)
cparams.membase = cdef.membase;
cparams.cardnr = cdef.cardnr;
cparams.cardtype = 0;
cdef.driver[sizeof(cdef.driver)-1] = 0;
cdef.driver[sizeof(cdef.driver) - 1] = 0;
mutex_lock(&capi_drivers_lock);

View File

@@ -17,8 +17,8 @@
#ifdef KCAPI_DEBUG
#define DBG(format, arg...) do { \
printk(KERN_DEBUG "%s: " format "\n" , __func__ , ## arg); \
} while (0)
printk(KERN_DEBUG "%s: " format "\n" , __func__ , ## arg); \
} while (0)
#else
#define DBG(format, arg...) /* */
#endif
@@ -49,4 +49,3 @@ static inline void kcapi_proc_init(void) { };
static inline void kcapi_proc_exit(void) { };
#endif

View File

@@ -23,13 +23,13 @@ MODULE_LICENSE("GPL");
/* structure containing interface to hl */
/****************************************/
isdn_divert_if divert_if =
{ DIVERT_IF_MAGIC, /* magic value */
{ DIVERT_IF_MAGIC, /* magic value */
DIVERT_CMD_REG, /* register cmd */
ll_callback, /* callback routine from ll */
NULL, /* command still not specified */
NULL, /* drv_to_name */
NULL, /* name_to_drv */
};
};
/*************************/
/* Module interface code */
@@ -40,15 +40,15 @@ static int __init divert_init(void)
if (divert_dev_init())
{ printk(KERN_WARNING "dss1_divert: cannot install device, not loaded\n");
return(-EIO);
return (-EIO);
}
if ((i = DIVERT_REG_NAME(&divert_if)) != DIVERT_NO_ERR)
{ divert_dev_deinit();
printk(KERN_WARNING "dss1_divert: error %d registering module, not loaded\n",i);
return(-EIO);
printk(KERN_WARNING "dss1_divert: error %d registering module, not loaded\n", i);
return (-EIO);
}
printk(KERN_INFO "dss1_divert module successfully installed\n");
return(0);
return (0);
}
/**********************/
@@ -62,7 +62,7 @@ static void __exit divert_exit(void)
spin_lock_irqsave(&divert_lock, flags);
divert_if.cmd = DIVERT_CMD_REL; /* release */
if ((i = DIVERT_REG_NAME(&divert_if)) != DIVERT_NO_ERR)
{ printk(KERN_WARNING "dss1_divert: error %d releasing module\n",i);
{ printk(KERN_WARNING "dss1_divert: error %d releasing module\n", i);
spin_unlock_irqrestore(&divert_lock, flags);
return;
}
@@ -79,4 +79,3 @@ static void __exit divert_exit(void)
module_init(divert_init);
module_exit(divert_exit);

View File

@@ -53,7 +53,7 @@ put_info_buffer(char *cp)
return; /* no memory */
strcpy(ib->info_start, cp); /* set output string */
ib->next = NULL;
spin_lock_irqsave( &divert_info_lock, flags );
spin_lock_irqsave(&divert_info_lock, flags);
ib->usage_cnt = if_used;
if (!divert_info_head)
divert_info_head = ib; /* new head */
@@ -71,7 +71,7 @@ put_info_buffer(char *cp)
} else
break;
} /* divert_info_head->next */
spin_unlock_irqrestore( &divert_info_lock, flags );
spin_unlock_irqrestore(&divert_info_lock, flags);
wake_up_interruptible(&(rd_queue));
} /* put_info_buffer */
@@ -81,7 +81,7 @@ put_info_buffer(char *cp)
/* deflection device read routine */
/**********************************/
static ssize_t
isdn_divert_read(struct file *file, char __user *buf, size_t count, loff_t * off)
isdn_divert_read(struct file *file, char __user *buf, size_t count, loff_t *off)
{
struct divert_info *inf;
int len;
@@ -109,7 +109,7 @@ isdn_divert_read(struct file *file, char __user *buf, size_t count, loff_t * off
/* deflection device write routine */
/**********************************/
static ssize_t
isdn_divert_write(struct file *file, const char __user *buf, size_t count, loff_t * off)
isdn_divert_write(struct file *file, const char __user *buf, size_t count, loff_t *off)
{
return (-ENODEV);
} /* isdn_divert_write */
@@ -119,7 +119,7 @@ isdn_divert_write(struct file *file, const char __user *buf, size_t count, loff_
/* select routines for various kernels */
/***************************************/
static unsigned int
isdn_divert_poll(struct file *file, poll_table * wait)
isdn_divert_poll(struct file *file, poll_table *wait)
{
unsigned int mask = 0;
@@ -139,13 +139,13 @@ isdn_divert_open(struct inode *ino, struct file *filep)
{
unsigned long flags;
spin_lock_irqsave( &divert_info_lock, flags );
spin_lock_irqsave(&divert_info_lock, flags);
if_used++;
if (divert_info_head)
filep->private_data = &(divert_info_tail->next);
else
filep->private_data = &divert_info_head;
spin_unlock_irqrestore( &divert_info_lock, flags );
spin_unlock_irqrestore(&divert_info_lock, flags);
/* start_divert(); */
return nonseekable_open(ino, filep);
} /* isdn_divert_open */
@@ -159,7 +159,7 @@ isdn_divert_close(struct inode *ino, struct file *filep)
struct divert_info *inf;
unsigned long flags;
spin_lock_irqsave( &divert_info_lock, flags );
spin_lock_irqsave(&divert_info_lock, flags);
if_used--;
inf = *((struct divert_info **) filep->private_data);
while (inf) {
@@ -172,7 +172,7 @@ isdn_divert_close(struct inode *ino, struct file *filep)
divert_info_head = divert_info_head->next;
kfree(inf);
}
spin_unlock_irqrestore( &divert_info_lock, flags );
spin_unlock_irqrestore(&divert_info_lock, flags);
return (0);
} /* isdn_divert_close */

View File

@@ -20,7 +20,7 @@
/* structure keeping calling info */
/**********************************/
struct call_struc
{ isdn_ctrl ics; /* delivered setup + driver parameters */
{ isdn_ctrl ics; /* delivered setup + driver parameters */
ulong divert_id; /* Id delivered to user */
unsigned char akt_state; /* actual state */
char deflect_dest[35]; /* deflection destination */
@@ -28,16 +28,16 @@ struct call_struc
char info[90]; /* device info output */
struct call_struc *next; /* pointer to next entry */
struct call_struc *prev;
};
};
/********************************************/
/* structure keeping deflection table entry */
/********************************************/
struct deflect_struc
{ struct deflect_struc *next,*prev;
{ struct deflect_struc *next, *prev;
divert_rule rule; /* used rule */
};
};
/*****************************************/
@@ -64,7 +64,7 @@ static void deflect_timer_expire(ulong arg)
del_timer(&cs->timer); /* delete active timer */
spin_unlock_irqrestore(&divert_lock, flags);
switch(cs->akt_state)
switch (cs->akt_state)
{ case DEFLECT_PROCEED:
cs->ics.command = ISDN_CMD_HANGUP; /* cancel action */
divert_if.ll_cmd(&cs->ics);
@@ -78,7 +78,7 @@ static void deflect_timer_expire(ulong arg)
case DEFLECT_ALERT:
cs->ics.command = ISDN_CMD_REDIR; /* protocol */
strlcpy(cs->ics.parm.setup.phone, cs->deflect_dest, sizeof(cs->ics.parm.setup.phone));
strcpy(cs->ics.parm.setup.eazmsn,"Testtext delayed");
strcpy(cs->ics.parm.setup.eazmsn, "Testtext delayed");
divert_if.ll_cmd(&cs->ics);
spin_lock_irqsave(&divert_lock, flags);
cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
@@ -112,13 +112,13 @@ int cf_command(int drvid, int mode,
u_char proc, char *msn,
u_char service, char *fwd_nr, ulong *procid)
{ unsigned long flags;
int retval,msnlen;
int retval, msnlen;
int fwd_len;
char *p,*ielenp,tmp[60];
char *p, *ielenp, tmp[60];
struct call_struc *cs;
if (strchr(msn,'.')) return(-EINVAL); /* subaddress not allowed in msn */
if ((proc & 0x7F) > 2) return(-EINVAL);
if (strchr(msn, '.')) return (-EINVAL); /* subaddress not allowed in msn */
if ((proc & 0x7F) > 2) return (-EINVAL);
proc &= 3;
p = tmp;
*p++ = 0x30; /* enumeration */
@@ -131,14 +131,14 @@ int cf_command(int drvid, int mode,
*p++ = service; /* service to handle */
if (mode == 1)
{ if (!*fwd_nr) return(-EINVAL); /* destination missing */
if (strchr(fwd_nr,'.')) return(-EINVAL); /* subaddress not allowed */
{ if (!*fwd_nr) return (-EINVAL); /* destination missing */
if (strchr(fwd_nr, '.')) return (-EINVAL); /* subaddress not allowed */
fwd_len = strlen(fwd_nr);
*p++ = 0x30; /* number enumeration */
*p++ = fwd_len + 2; /* complete forward to len */
*p++ = 0x80; /* fwd to nr */
*p++ = fwd_len; /* length of number */
strcpy(p,fwd_nr); /* copy number */
strcpy(p, fwd_nr); /* copy number */
p += fwd_len; /* pointer beyond fwd */
} /* activate */
@@ -146,7 +146,7 @@ int cf_command(int drvid, int mode,
*p++ = 0x80; /* msn number */
if (msnlen > 1)
{ *p++ = msnlen; /* length */
strcpy(p,msn);
strcpy(p, msn);
p += msnlen;
}
else *p++ = 0;
@@ -155,7 +155,7 @@ int cf_command(int drvid, int mode,
/* allocate mem for information struct */
if (!(cs = kmalloc(sizeof(struct call_struc), GFP_ATOMIC)))
return(-ENOMEM); /* no memory */
return (-ENOMEM); /* no memory */
init_timer(&cs->timer);
cs->info[0] = '\0';
cs->timer.function = deflect_timer_expire;
@@ -163,7 +163,7 @@ int cf_command(int drvid, int mode,
cs->ics.driver = drvid;
cs->ics.command = ISDN_CMD_PROT_IO; /* protocol specific io */
cs->ics.arg = DSS1_CMD_INVOKE; /* invoke supplementary service */
cs->ics.parm.dss1_io.proc = (mode == 1) ? 7: (mode == 2) ? 11:8; /* operation */
cs->ics.parm.dss1_io.proc = (mode == 1) ? 7 : (mode == 2) ? 11 : 8; /* operation */
cs->ics.parm.dss1_io.timeout = 4000; /* from ETS 300 207-1 */
cs->ics.parm.dss1_io.datalen = p - tmp; /* total len */
cs->ics.parm.dss1_io.data = tmp; /* start of buffer */
@@ -173,8 +173,8 @@ int cf_command(int drvid, int mode,
spin_unlock_irqrestore(&divert_lock, flags);
*procid = cs->ics.parm.dss1_io.ll_id;
sprintf(cs->info,"%d 0x%lx %s%s 0 %s %02x %d%s%s\n",
(!mode ) ? DIVERT_DEACTIVATE : (mode == 1) ? DIVERT_ACTIVATE : DIVERT_REPORT,
sprintf(cs->info, "%d 0x%lx %s%s 0 %s %02x %d%s%s\n",
(!mode) ? DIVERT_DEACTIVATE : (mode == 1) ? DIVERT_ACTIVATE : DIVERT_REPORT,
cs->ics.parm.dss1_io.ll_id,
(mode != 2) ? "" : "0 ",
divert_if.drv_to_name(cs->ics.driver),
@@ -195,7 +195,7 @@ int cf_command(int drvid, int mode,
}
else
kfree(cs);
return(retval);
return (retval);
} /* cf_command */
@@ -208,18 +208,18 @@ int deflect_extern_action(u_char cmd, ulong callid, char *to_nr)
unsigned long flags;
int i;
if ((cmd & 0x7F) > 2) return(-EINVAL); /* invalid command */
if ((cmd & 0x7F) > 2) return (-EINVAL); /* invalid command */
cs = divert_head; /* start of parameter list */
while (cs)
{ if (cs->divert_id == callid) break; /* found */
cs = cs->next;
} /* search entry */
if (!cs) return(-EINVAL); /* invalid callid */
if (!cs) return (-EINVAL); /* invalid callid */
ic.driver = cs->ics.driver;
ic.arg = cs->ics.arg;
i = -EINVAL;
if (cs->akt_state == DEFLECT_AUTODEL) return(i); /* no valid call */
if (cs->akt_state == DEFLECT_AUTODEL) return (i); /* no valid call */
switch (cmd & 0x7F)
{ case 0: /* hangup */
del_timer(&cs->timer);
@@ -233,7 +233,7 @@ int deflect_extern_action(u_char cmd, ulong callid, char *to_nr)
break;
case 1: /* alert */
if (cs->akt_state == DEFLECT_ALERT) return(0);
if (cs->akt_state == DEFLECT_ALERT) return (0);
cmd &= 0x7F; /* never wait */
del_timer(&cs->timer);
ic.command = ISDN_CMD_ALERT;
@@ -267,19 +267,19 @@ int deflect_extern_action(u_char cmd, ulong callid, char *to_nr)
break;
} /* switch */
return(i);
return (i);
} /* deflect_extern_action */
/********************************/
/* insert a new rule before idx */
/********************************/
int insertrule(int idx, divert_rule *newrule)
{ struct deflect_struc *ds,*ds1=NULL;
{ struct deflect_struc *ds, *ds1 = NULL;
unsigned long flags;
if (!(ds = kmalloc(sizeof(struct deflect_struc),
GFP_KERNEL)))
return(-ENOMEM); /* no memory */
return (-ENOMEM); /* no memory */
ds->rule = *newrule; /* set rule */
@@ -312,14 +312,14 @@ int insertrule(int idx, divert_rule *newrule)
}
spin_unlock_irqrestore(&divert_lock, flags);
return(0);
return (0);
} /* insertrule */
/***********************************/
/* delete the rule at position idx */
/***********************************/
int deleterule(int idx)
{ struct deflect_struc *ds,*ds1;
{ struct deflect_struc *ds, *ds1;
unsigned long flags;
if (idx < 0)
@@ -333,7 +333,7 @@ int deleterule(int idx)
ds = ds->next;
kfree(ds1);
}
return(0);
return (0);
}
spin_lock_irqsave(&divert_lock, flags);
@@ -347,7 +347,7 @@ int deleterule(int idx)
if (!ds)
{
spin_unlock_irqrestore(&divert_lock, flags);
return(-EINVAL);
return (-EINVAL);
}
if (ds->next)
@@ -362,7 +362,7 @@ int deleterule(int idx)
spin_unlock_irqrestore(&divert_lock, flags);
kfree(ds);
return(0);
return (0);
} /* deleterule */
/*******************************************/
@@ -371,15 +371,15 @@ int deleterule(int idx)
divert_rule *getruleptr(int idx)
{ struct deflect_struc *ds = table_head;
if (idx < 0) return(NULL);
if (idx < 0) return (NULL);
while ((ds) && (idx >= 0))
{ if (!(idx--))
{ return(&ds->rule);
{ return (&ds->rule);
break;
}
ds = ds->next;
}
return(NULL);
return (NULL);
} /* getruleptr */
/*************************************************/
@@ -390,11 +390,11 @@ static int isdn_divert_icall(isdn_ctrl *ic)
unsigned long flags;
struct call_struc *cs = NULL;
struct deflect_struc *dv;
char *p,*p1;
char *p, *p1;
u_char accept;
/* first check the internal deflection table */
for (dv = table_head; dv ; dv = dv->next )
for (dv = table_head; dv; dv = dv->next)
{ /* scan table */
if (((dv->rule.callopt == 1) && (ic->command == ISDN_STAT_ICALLW)) ||
((dv->rule.callopt == 2) && (ic->command == ISDN_STAT_ICALL)))
@@ -422,7 +422,7 @@ static int isdn_divert_icall(isdn_ctrl *ic)
} /* complete compare */
if (!accept) continue; /* not accepted */
if ((strcmp(dv->rule.caller,"0")) || (ic->parm.setup.phone[0]))
if ((strcmp(dv->rule.caller, "0")) || (ic->parm.setup.phone[0]))
{ p = dv->rule.caller;
p1 = ic->parm.setup.phone;
accept = 0;
@@ -442,7 +442,7 @@ static int isdn_divert_icall(isdn_ctrl *ic)
switch (dv->rule.action)
{ case DEFLECT_IGNORE:
return(0);
return (0);
break;
case DEFLECT_ALERT:
@@ -451,17 +451,17 @@ static int isdn_divert_icall(isdn_ctrl *ic)
case DEFLECT_REJECT:
if (dv->rule.action == DEFLECT_PROCEED)
if ((!if_used) || ((!extern_wait_max) && (!dv->rule.waittime)))
return(0); /* no external deflection needed */
return (0); /* no external deflection needed */
if (!(cs = kmalloc(sizeof(struct call_struc), GFP_ATOMIC)))
return(0); /* no memory */
return (0); /* no memory */
init_timer(&cs->timer);
cs->info[0] = '\0';
cs->timer.function = deflect_timer_expire;
cs->timer.data = (ulong) cs; /* pointer to own structure */
cs->ics = *ic; /* copy incoming data */
if (!cs->ics.parm.setup.phone[0]) strcpy(cs->ics.parm.setup.phone,"0");
if (!cs->ics.parm.setup.eazmsn[0]) strcpy(cs->ics.parm.setup.eazmsn,"0");
if (!cs->ics.parm.setup.phone[0]) strcpy(cs->ics.parm.setup.phone, "0");
if (!cs->ics.parm.setup.eazmsn[0]) strcpy(cs->ics.parm.setup.eazmsn, "0");
cs->ics.parm.setup.screen = dv->rule.screen;
if (dv->rule.waittime)
cs->timer.expires = jiffies + (HZ * dv->rule.waittime);
@@ -476,9 +476,9 @@ static int isdn_divert_icall(isdn_ctrl *ic)
spin_unlock_irqrestore(&divert_lock, flags);
cs->prev = NULL;
if (cs->akt_state == DEFLECT_ALERT)
{ strcpy(cs->deflect_dest,dv->rule.to_nr);
{ strcpy(cs->deflect_dest, dv->rule.to_nr);
if (!cs->timer.expires)
{ strcpy(ic->parm.setup.eazmsn,"Testtext direct");
{ strcpy(ic->parm.setup.eazmsn, "Testtext direct");
ic->parm.setup.screen = dv->rule.screen;
strlcpy(ic->parm.setup.phone, dv->rule.to_nr, sizeof(ic->parm.setup.phone));
cs->akt_state = DEFLECT_AUTODEL; /* delete after timeout */
@@ -492,11 +492,11 @@ static int isdn_divert_icall(isdn_ctrl *ic)
{ cs->deflect_dest[0] = '\0';
retval = 4; /* only proceed */
}
sprintf(cs->info,"%d 0x%lx %s %s %s %s 0x%x 0x%x %d %d %s\n",
sprintf(cs->info, "%d 0x%lx %s %s %s %s 0x%x 0x%x %d %d %s\n",
cs->akt_state,
cs->divert_id,
divert_if.drv_to_name(cs->ics.driver),
(ic->command == ISDN_STAT_ICALLW) ? "1":"0",
(ic->command == ISDN_STAT_ICALLW) ? "1" : "0",
cs->ics.parm.setup.phone,
cs->ics.parm.setup.eazmsn,
cs->ics.parm.setup.si1,
@@ -508,12 +508,12 @@ static int isdn_divert_icall(isdn_ctrl *ic)
(dv->rule.action == DEFLECT_REJECT))
{ put_info_buffer(cs->info);
kfree(cs); /* remove */
return((dv->rule.action == DEFLECT_REPORT) ? 0:2); /* nothing to do */
return ((dv->rule.action == DEFLECT_REPORT) ? 0 : 2); /* nothing to do */
}
break;
default:
return(0); /* ignore call */
return (0); /* ignore call */
break;
} /* switch action */
break;
@@ -528,10 +528,10 @@ static int isdn_divert_icall(isdn_ctrl *ic)
spin_unlock_irqrestore(&divert_lock, flags);
put_info_buffer(cs->info);
return(retval);
return (retval);
}
else
return(0);
return (0);
} /* isdn_divert_icall */
@@ -558,32 +558,32 @@ static int put_address(char *st, u_char *p, int len)
{ u_char retval = 0;
u_char adr_typ = 0; /* network standard */
if (len < 2) return(retval);
if (len < 2) return (retval);
if (*p == 0xA1)
{ retval = *(++p) + 2; /* total length */
if (retval > len) return(0); /* too short */
if (retval > len) return (0); /* too short */
len = retval - 2; /* remaining length */
if (len < 3) return(0);
if ((*(++p) != 0x0A) || (*(++p) != 1)) return(0);
if (len < 3) return (0);
if ((*(++p) != 0x0A) || (*(++p) != 1)) return (0);
adr_typ = *(++p);
len -= 3;
p++;
if (len < 2) return(0);
if (*p++ != 0x12) return(0);
if (*p > len) return(0); /* check number length */
if (len < 2) return (0);
if (*p++ != 0x12) return (0);
if (*p > len) return (0); /* check number length */
len = *p++;
}
else
if (*p == 0x80)
{ retval = *(++p) + 2; /* total length */
if (retval > len) return(0);
if (retval > len) return (0);
len = retval - 2;
p++;
}
else
return(0); /* invalid address information */
return (0); /* invalid address information */
sprintf(st,"%d ",adr_typ);
sprintf(st, "%d ", adr_typ);
st += strlen(st);
if (!len)
*st++ = '-';
@@ -591,7 +591,7 @@ static int put_address(char *st, u_char *p, int len)
while (len--)
*st++ = *p++;
*st = '\0';
return(retval);
return (retval);
} /* put_address */
/*************************************/
@@ -601,91 +601,91 @@ static int interrogate_success(isdn_ctrl *ic, struct call_struc *cs)
{ char *src = ic->parm.dss1_io.data;
int restlen = ic->parm.dss1_io.datalen;
int cnt = 1;
u_char n,n1;
u_char n, n1;
char st[90], *p, *stp;
if (restlen < 2) return(-100); /* frame too short */
if (*src++ != 0x30) return(-101);
if ((n = *src++) > 0x81) return(-102); /* invalid length field */
if (restlen < 2) return (-100); /* frame too short */
if (*src++ != 0x30) return (-101);
if ((n = *src++) > 0x81) return (-102); /* invalid length field */
restlen -= 2; /* remaining bytes */
if (n == 0x80)
{ if (restlen < 2) return(-103);
if ((*(src+restlen-1)) || (*(src+restlen-2))) return(-104);
{ if (restlen < 2) return (-103);
if ((*(src + restlen - 1)) || (*(src + restlen - 2))) return (-104);
restlen -= 2;
}
else
if ( n == 0x81)
if (n == 0x81)
{ n = *src++;
restlen--;
if (n > restlen) return(-105);
if (n > restlen) return (-105);
restlen = n;
}
else
if (n > restlen) return(-106);
if (n > restlen) return (-106);
else
restlen = n; /* standard format */
if (restlen < 3) return(-107); /* no procedure */
if ((*src++ != 2) || (*src++ != 1) || (*src++ != 0x0B)) return(-108);
if (restlen < 3) return (-107); /* no procedure */
if ((*src++ != 2) || (*src++ != 1) || (*src++ != 0x0B)) return (-108);
restlen -= 3;
if (restlen < 2) return(-109); /* list missing */
if (restlen < 2) return (-109); /* list missing */
if (*src == 0x31)
{ src++;
if ((n = *src++) > 0x81) return(-110); /* invalid length field */
if ((n = *src++) > 0x81) return (-110); /* invalid length field */
restlen -= 2; /* remaining bytes */
if (n == 0x80)
{ if (restlen < 2) return(-111);
if ((*(src+restlen-1)) || (*(src+restlen-2))) return(-112);
{ if (restlen < 2) return (-111);
if ((*(src + restlen - 1)) || (*(src + restlen - 2))) return (-112);
restlen -= 2;
}
else
if ( n == 0x81)
if (n == 0x81)
{ n = *src++;
restlen--;
if (n > restlen) return(-113);
if (n > restlen) return (-113);
restlen = n;
}
else
if (n > restlen) return(-114);
if (n > restlen) return (-114);
else
restlen = n; /* standard format */
} /* result list header */
while (restlen >= 2)
{ stp = st;
sprintf(stp,"%d 0x%lx %d %s ",DIVERT_REPORT, ic->parm.dss1_io.ll_id,
cnt++,divert_if.drv_to_name(ic->driver));
sprintf(stp, "%d 0x%lx %d %s ", DIVERT_REPORT, ic->parm.dss1_io.ll_id,
cnt++, divert_if.drv_to_name(ic->driver));
stp += strlen(stp);
if (*src++ != 0x30) return(-115); /* invalid enum */
if (*src++ != 0x30) return (-115); /* invalid enum */
n = *src++;
restlen -= 2;
if (n > restlen) return(-116); /* enum length wrong */
if (n > restlen) return (-116); /* enum length wrong */
restlen -= n;
p = src; /* one entry */
src += n;
if (!(n1 = put_address(stp,p,n & 0xFF))) continue;
if (!(n1 = put_address(stp, p, n & 0xFF))) continue;
stp += strlen(stp);
p += n1;
n -= n1;
if (n < 6) continue; /* no service and proc */
if ((*p++ != 0x0A) || (*p++ != 1)) continue;
sprintf(stp," 0x%02x ",(*p++) & 0xFF);
sprintf(stp, " 0x%02x ", (*p++) & 0xFF);
stp += strlen(stp);
if ((*p++ != 0x0A) || (*p++ != 1)) continue;
sprintf(stp,"%d ",(*p++) & 0xFF);
sprintf(stp, "%d ", (*p++) & 0xFF);
stp += strlen(stp);
n -= 6;
if (n > 2)
{ if (*p++ != 0x30) continue;
if (*p > (n-2)) continue;
if (*p > (n - 2)) continue;
n = *p++;
if (!(n1 = put_address(stp,p,n & 0xFF))) continue;
if (!(n1 = put_address(stp, p, n & 0xFF))) continue;
stp += strlen(stp);
}
sprintf(stp,"\n");
sprintf(stp, "\n");
put_info_buffer(st);
} /* while restlen */
if (restlen) return(-117);
return(0);
if (restlen) return (-117);
return (0);
} /* interrogate_success */
/*********************************************/
@@ -706,7 +706,7 @@ static int prot_stat_callback(isdn_ctrl *ic)
(cs->ics.parm.dss1_io.hl_id == ic->parm.dss1_io.hl_id))
{ switch (ic->arg)
{ case DSS1_STAT_INVOKE_ERR:
sprintf(cs->info,"128 0x%lx 0x%x\n",
sprintf(cs->info, "128 0x%lx 0x%x\n",
ic->parm.dss1_io.ll_id,
ic->parm.dss1_io.timeout);
put_info_buffer(cs->info);
@@ -720,15 +720,15 @@ static int prot_stat_callback(isdn_ctrl *ic)
break;
case 11:
i = interrogate_success(ic,cs);
i = interrogate_success(ic, cs);
if (i)
sprintf(cs->info,"%d 0x%lx %d\n",DIVERT_REPORT,
ic->parm.dss1_io.ll_id,i);
sprintf(cs->info, "%d 0x%lx %d\n", DIVERT_REPORT,
ic->parm.dss1_io.ll_id, i);
put_info_buffer(cs->info);
break;
default:
printk(KERN_WARNING "dss1_divert: unknown proc %d\n",cs->ics.parm.dss1_io.proc);
printk(KERN_WARNING "dss1_divert: unknown proc %d\n", cs->ics.parm.dss1_io.proc);
break;
}
@@ -736,7 +736,7 @@ static int prot_stat_callback(isdn_ctrl *ic)
break;
default:
printk(KERN_WARNING "dss1_divert unknown invoke answer %lx\n",ic->arg);
printk(KERN_WARNING "dss1_divert unknown invoke answer %lx\n", ic->arg);
break;
}
cs1 = cs; /* remember structure */
@@ -750,7 +750,7 @@ static int prot_stat_callback(isdn_ctrl *ic)
break;
default:
printk(KERN_WARNING "dss1_divert unknown cmd 0x%lx\n",cs->ics.arg);
printk(KERN_WARNING "dss1_divert unknown cmd 0x%lx\n", cs->ics.arg);
break;
} /* switch ics.arg */
cs = cs->next;
@@ -759,7 +759,7 @@ static int prot_stat_callback(isdn_ctrl *ic)
if (!cs1)
{ printk(KERN_WARNING "dss1_divert unhandled process\n");
return(0);
return (0);
}
if (cs1->ics.driver == -1)
@@ -776,7 +776,7 @@ static int prot_stat_callback(isdn_ctrl *ic)
kfree(cs1);
}
return(0);
return (0);
} /* prot_stat_callback */
@@ -794,23 +794,23 @@ static int isdn_divert_stat_callback(isdn_ctrl *ic)
{ if ((ic->driver == cs->ics.driver) && (ic->arg == cs->ics.arg))
{ switch (ic->command)
{ case ISDN_STAT_DHUP:
sprintf(cs->info,"129 0x%lx\n",cs->divert_id);
sprintf(cs->info, "129 0x%lx\n", cs->divert_id);
del_timer(&cs->timer);
cs->ics.driver = -1;
break;
case ISDN_STAT_CAUSE:
sprintf(cs->info,"130 0x%lx %s\n",cs->divert_id,ic->parm.num);
sprintf(cs->info, "130 0x%lx %s\n", cs->divert_id, ic->parm.num);
break;
case ISDN_STAT_REDIR:
sprintf(cs->info,"131 0x%lx\n",cs->divert_id);
sprintf(cs->info, "131 0x%lx\n", cs->divert_id);
del_timer(&cs->timer);
cs->ics.driver = -1;
break;
default:
sprintf(cs->info,"999 0x%lx 0x%x\n",cs->divert_id,(int)(ic->command));
sprintf(cs->info, "999 0x%lx 0x%x\n", cs->divert_id, (int)(ic->command));
break;
}
put_info_buffer(cs->info);
@@ -831,7 +831,7 @@ static int isdn_divert_stat_callback(isdn_ctrl *ic)
kfree(cs1);
}
}
return(retval); /* not found */
return (retval); /* not found */
} /* isdn_divert_stat_callback */
@@ -843,21 +843,20 @@ int ll_callback(isdn_ctrl *ic)
switch (ic->command)
{ case ISDN_STAT_ICALL:
case ISDN_STAT_ICALLW:
return(isdn_divert_icall(ic));
return (isdn_divert_icall(ic));
break;
case ISDN_STAT_PROT:
if ((ic->arg & 0xFF) == ISDN_PTYPE_EURO)
{ if (ic->arg != DSS1_STAT_INVOKE_BRD)
return(prot_stat_callback(ic));
return (prot_stat_callback(ic));
else
return(0); /* DSS1 invoke broadcast */
return (0); /* DSS1 invoke broadcast */
}
else
return(-1); /* protocol not euro */
return (-1); /* protocol not euro */
default:
return(isdn_divert_stat_callback(ic));
return (isdn_divert_stat_callback(ic));
}
} /* ll_callback */

View File

@@ -25,8 +25,8 @@
#define IIOCDELRULE _IO('I', 7) /* delete a rule */
#define IIOCDODFACT _IO('I', 8) /* hangup/reject/alert/immediately deflect a call */
#define IIOCDOCFACT _IO('I', 9) /* activate control forwarding in PBX */
#define IIOCDOCFDIS _IO('I',10) /* deactivate control forwarding in PBX */
#define IIOCDOCFINT _IO('I',11) /* interrogate control forwarding in PBX */
#define IIOCDOCFDIS _IO('I', 10) /* deactivate control forwarding in PBX */
#define IIOCDOCFINT _IO('I', 11) /* interrogate control forwarding in PBX */
/*************************************/
/* states reported through interface */
@@ -44,11 +44,11 @@
#define DEFLECT_ALL_IDS 0xFFFFFFFF /* all drivers selected */
typedef struct
{ ulong drvid; /* driver ids, bit mapped */
{ ulong drvid; /* driver ids, bit mapped */
char my_msn[35]; /* desired msn, subaddr allowed */
char caller[35]; /* caller id, partial string with * + subaddr allowed */
char to_nr[35]; /* deflected to number incl. subaddress */
u_char si1,si2; /* service indicators, si1=bitmask, si1+2 0 = all */
u_char si1, si2; /* service indicators, si1=bitmask, si1+2 0 = all */
u_char screen; /* screening: 0 = no info, 1 = info, 2 = nfo with nr */
u_char callopt; /* option for call handling:
0 = all calls
@@ -63,10 +63,10 @@ typedef struct
actions 1-2 only take place if interface is opened
*/
u_char waittime; /* maximum wait time for proceeding */
} divert_rule;
} divert_rule;
typedef union
{ int drv_version; /* return of driver version */
{ int drv_version; /* return of driver version */
struct
{ int drvid; /* id of driver */
char drvnam[30]; /* name of driver */
@@ -92,7 +92,7 @@ typedef union
char msn[25]; /* desired msn, empty = all */
char fwd_nr[35];/* forwarded to number + subaddress */
} cf_ctrl;
} divert_ioctl;
} divert_ioctl;
#ifdef __KERNEL__
@@ -105,10 +105,10 @@ typedef union
/* structure keeping ascii info for device output */
/**************************************************/
struct divert_info
{ struct divert_info *next;
{ struct divert_info *next;
ulong usage_cnt; /* number of files still to work */
char info_start[2]; /* info string start */
};
};
/**************/

View File

@@ -543,7 +543,7 @@ static struct sk_buff *iraw_encode(struct sk_buff *skb)
/* size of new buffer (worst case = every byte must be stuffed):
* 2 * original size + room for link layer header
*/
iraw_skb = dev_alloc_skb(2*skb->len + skb->mac_len);
iraw_skb = dev_alloc_skb(2 * skb->len + skb->mac_len);
if (!iraw_skb) {
dev_kfree_skb_any(skb);
return NULL;

View File

@@ -1017,17 +1017,17 @@ static int starturbs(struct bc_state *bcs)
}
/* keep one URB free, submit the others */
for (k = 0; k < BAS_OUTURBS-1; ++k) {
for (k = 0; k < BAS_OUTURBS - 1; ++k) {
dump_urb(DEBUG_ISO, "Initial isoc write", urb);
rc = usb_submit_urb(ubc->isoouturbs[k].urb, GFP_ATOMIC);
if (rc != 0)
goto error;
}
dump_urb(DEBUG_ISO, "Initial isoc write (free)", urb);
ubc->isooutfree = &ubc->isoouturbs[BAS_OUTURBS-1];
ubc->isooutfree = &ubc->isoouturbs[BAS_OUTURBS - 1];
ubc->isooutdone = ubc->isooutovfl = NULL;
return 0;
error:
error:
stopurbs(ubc);
return rc;
}
@@ -2454,12 +2454,12 @@ static int gigaset_suspend(struct usb_interface *intf, pm_message_t message)
/* wait a bit for blocking conditions to go away */
rc = wait_event_timeout(ucs->waitqueue,
!(ucs->basstate &
(BS_B1OPEN|BS_B2OPEN|BS_ATRDPEND|BS_ATWRPEND)),
BAS_TIMEOUT*HZ/10);
(BS_B1OPEN | BS_B2OPEN | BS_ATRDPEND | BS_ATWRPEND)),
BAS_TIMEOUT * HZ / 10);
gig_dbg(DEBUG_SUSPEND, "wait_event_timeout() -> %d", rc);
/* check for conditions preventing suspend */
if (ucs->basstate & (BS_B1OPEN|BS_B2OPEN|BS_ATRDPEND|BS_ATWRPEND)) {
if (ucs->basstate & (BS_B1OPEN | BS_B2OPEN | BS_ATRDPEND | BS_ATWRPEND)) {
dev_warn(cs->dev, "cannot suspend:\n");
if (ucs->basstate & BS_B1OPEN)
dev_warn(cs->dev, " B channel 1 open\n");
@@ -2482,7 +2482,7 @@ static int gigaset_suspend(struct usb_interface *intf, pm_message_t message)
return rc;
}
wait_event_timeout(ucs->waitqueue, !ucs->pending,
BAS_TIMEOUT*HZ/10);
BAS_TIMEOUT * HZ / 10);
/* in case of timeout, proceed anyway */
}

View File

@@ -26,17 +26,17 @@
#define CapiFacilitySpecificFunctionNotSupported 0x3011
/* missing from capicmd.h */
#define CAPI_CONNECT_IND_BASELEN (CAPI_MSG_BASELEN+4+2+8*1)
#define CAPI_CONNECT_ACTIVE_IND_BASELEN (CAPI_MSG_BASELEN+4+3*1)
#define CAPI_CONNECT_B3_IND_BASELEN (CAPI_MSG_BASELEN+4+1)
#define CAPI_CONNECT_B3_ACTIVE_IND_BASELEN (CAPI_MSG_BASELEN+4+1)
#define CAPI_DATA_B3_REQ_LEN64 (CAPI_MSG_BASELEN+4+4+2+2+2+8)
#define CAPI_DATA_B3_CONF_LEN (CAPI_MSG_BASELEN+4+2+2)
#define CAPI_DISCONNECT_IND_LEN (CAPI_MSG_BASELEN+4+2)
#define CAPI_DISCONNECT_B3_IND_BASELEN (CAPI_MSG_BASELEN+4+2+1)
#define CAPI_FACILITY_CONF_BASELEN (CAPI_MSG_BASELEN+4+2+2+1)
#define CAPI_CONNECT_IND_BASELEN (CAPI_MSG_BASELEN + 4 + 2 + 8 * 1)
#define CAPI_CONNECT_ACTIVE_IND_BASELEN (CAPI_MSG_BASELEN + 4 + 3 * 1)
#define CAPI_CONNECT_B3_IND_BASELEN (CAPI_MSG_BASELEN + 4 + 1)
#define CAPI_CONNECT_B3_ACTIVE_IND_BASELEN (CAPI_MSG_BASELEN + 4 + 1)
#define CAPI_DATA_B3_REQ_LEN64 (CAPI_MSG_BASELEN + 4 + 4 + 2 + 2 + 2 + 8)
#define CAPI_DATA_B3_CONF_LEN (CAPI_MSG_BASELEN + 4 + 2 + 2)
#define CAPI_DISCONNECT_IND_LEN (CAPI_MSG_BASELEN + 4 + 2)
#define CAPI_DISCONNECT_B3_IND_BASELEN (CAPI_MSG_BASELEN + 4 + 2 + 1)
#define CAPI_FACILITY_CONF_BASELEN (CAPI_MSG_BASELEN + 4 + 2 + 2 + 1)
/* most _CONF messages contain only Controller/PLCI/NCCI and Info parameters */
#define CAPI_STDCONF_LEN (CAPI_MSG_BASELEN+4+2)
#define CAPI_STDCONF_LEN (CAPI_MSG_BASELEN + 4 + 2)
#define CAPI_FACILITY_HANDSET 0x0000
#define CAPI_FACILITY_DTMF 0x0001
@@ -97,10 +97,10 @@ struct gigaset_capi_ctr {
/* two _cmsg structures possibly used concurrently: */
_cmsg hcmsg; /* for message composition triggered from hardware */
_cmsg acmsg; /* for dissection of messages sent from application */
u8 bc_buf[MAX_BC_OCTETS+1];
u8 hlc_buf[MAX_HLC_OCTETS+1];
u8 cgpty_buf[MAX_NUMBER_DIGITS+3];
u8 cdpty_buf[MAX_NUMBER_DIGITS+2];
u8 bc_buf[MAX_BC_OCTETS + 1];
u8 hlc_buf[MAX_HLC_OCTETS + 1];
u8 cgpty_buf[MAX_NUMBER_DIGITS + 3];
u8 cdpty_buf[MAX_NUMBER_DIGITS + 2];
};
/* CIP Value table (from CAPI 2.0 standard, ch. 6.1) */
@@ -259,15 +259,15 @@ static inline void dump_rawmsg(enum debuglevel level, const char *tag,
CAPIMSG_APPID(data), CAPIMSG_MSGID(data), l,
CAPIMSG_CONTROL(data));
l -= 12;
dbgline = kmalloc(3*l, GFP_ATOMIC);
dbgline = kmalloc(3 * l, GFP_ATOMIC);
if (!dbgline)
return;
for (i = 0; i < l; i++) {
dbgline[3*i] = hex_asc_hi(data[12+i]);
dbgline[3*i+1] = hex_asc_lo(data[12+i]);
dbgline[3*i+2] = ' ';
dbgline[3 * i] = hex_asc_hi(data[12 + i]);
dbgline[3 * i + 1] = hex_asc_lo(data[12 + i]);
dbgline[3 * i + 2] = ' ';
}
dbgline[3*l-1] = '\0';
dbgline[3 * l - 1] = '\0';
gig_dbg(level, " %s", dbgline);
kfree(dbgline);
if (CAPIMSG_COMMAND(data) == CAPI_DATA_B3 &&
@@ -279,16 +279,16 @@ static inline void dump_rawmsg(enum debuglevel level, const char *tag,
return;
if (l > 64)
l = 64; /* arbitrary limit */
dbgline = kmalloc(3*l, GFP_ATOMIC);
dbgline = kmalloc(3 * l, GFP_ATOMIC);
if (!dbgline)
return;
data += CAPIMSG_LEN(data);
for (i = 0; i < l; i++) {
dbgline[3*i] = hex_asc_hi(data[i]);
dbgline[3*i+1] = hex_asc_lo(data[i]);
dbgline[3*i+2] = ' ';
dbgline[3 * i] = hex_asc_hi(data[i]);
dbgline[3 * i + 1] = hex_asc_lo(data[i]);
dbgline[3 * i + 2] = ' ';
}
dbgline[3*l-1] = '\0';
dbgline[3 * l - 1] = '\0';
gig_dbg(level, " %s", dbgline);
kfree(dbgline);
}
@@ -301,7 +301,7 @@ static inline void dump_rawmsg(enum debuglevel level, const char *tag,
static const char *format_ie(const char *ie)
{
static char result[3*MAX_FMT_IE_LEN];
static char result[3 * MAX_FMT_IE_LEN];
int len, count;
char *pout = result;
@@ -310,7 +310,7 @@ static const char *format_ie(const char *ie)
count = len = ie[0];
if (count > MAX_FMT_IE_LEN)
count = MAX_FMT_IE_LEN-1;
count = MAX_FMT_IE_LEN - 1;
while (count--) {
*pout++ = hex_asc_hi(*++ie);
*pout++ = hex_asc_lo(*ie);
@@ -589,7 +589,7 @@ int gigaset_isdn_icall(struct at_state_t *at_state)
}
iif->cdpty_buf[0] = i + 1;
iif->cdpty_buf[1] = 0x80; /* type / numbering plan unknown */
memcpy(iif->cdpty_buf+2, at_state->str_var[STR_ZCPN], i);
memcpy(iif->cdpty_buf + 2, at_state->str_var[STR_ZCPN], i);
iif->hcmsg.CalledPartyNumber = iif->cdpty_buf;
msgsize += iif->hcmsg.CalledPartyNumber[0];
}
@@ -605,7 +605,7 @@ int gigaset_isdn_icall(struct at_state_t *at_state)
iif->cgpty_buf[0] = i + 2;
iif->cgpty_buf[1] = 0x00; /* type / numbering plan unknown */
iif->cgpty_buf[2] = 0x80; /* pres. allowed, not screened */
memcpy(iif->cgpty_buf+3, at_state->str_var[STR_NMBR], i);
memcpy(iif->cgpty_buf + 3, at_state->str_var[STR_NMBR], i);
iif->hcmsg.CallingPartyNumber = iif->cgpty_buf;
msgsize += iif->hcmsg.CallingPartyNumber[0];
}
@@ -1318,7 +1318,7 @@ static void do_connect_req(struct gigaset_capi_ctr *iif,
cmsg->adr.adrPLCI |= (bcs->channel + 1) << 8;
/* build command table */
commands = kzalloc(AT_NUM*(sizeof *commands), GFP_KERNEL);
commands = kzalloc(AT_NUM * (sizeof *commands), GFP_KERNEL);
if (!commands)
goto oom;
@@ -1353,10 +1353,10 @@ static void do_connect_req(struct gigaset_capi_ctr *iif,
commands[AT_TYPE] = kstrdup(s, GFP_KERNEL);
if (!commands[AT_TYPE])
goto oom;
commands[AT_DIAL] = kmalloc(l+3, GFP_KERNEL);
commands[AT_DIAL] = kmalloc(l + 3, GFP_KERNEL);
if (!commands[AT_DIAL])
goto oom;
snprintf(commands[AT_DIAL], l+3, "D%.*s\r", l, pp);
snprintf(commands[AT_DIAL], l + 3, "D%.*s\r", l, pp);
/* encode parameter: Calling party number */
pp = cmsg->CallingPartyNumber;
@@ -1406,10 +1406,10 @@ static void do_connect_req(struct gigaset_capi_ctr *iif,
if (l) {
/* number */
commands[AT_MSN] = kmalloc(l+8, GFP_KERNEL);
commands[AT_MSN] = kmalloc(l + 8, GFP_KERNEL);
if (!commands[AT_MSN])
goto oom;
snprintf(commands[AT_MSN], l+8, "^SMSN=%*s\r", l, pp);
snprintf(commands[AT_MSN], l + 8, "^SMSN=%*s\r", l, pp);
}
}
@@ -1430,13 +1430,13 @@ static void do_connect_req(struct gigaset_capi_ctr *iif,
/* determine lengths */
if (cmsg->BC && cmsg->BC[0]) /* BC specified explicitly */
lbc = 2*cmsg->BC[0];
lbc = 2 * cmsg->BC[0];
else if (cip2bchlc[cmsg->CIPValue].bc) /* BC derived from CIP */
lbc = strlen(cip2bchlc[cmsg->CIPValue].bc);
else /* no BC */
lbc = 0;
if (cmsg->HLC && cmsg->HLC[0]) /* HLC specified explicitly */
lhlc = 2*cmsg->HLC[0];
lhlc = 2 * cmsg->HLC[0];
else if (cip2bchlc[cmsg->CIPValue].hlc) /* HLC derived from CIP */
lhlc = strlen(cip2bchlc[cmsg->CIPValue].hlc);
else /* no HLC */
@@ -1669,7 +1669,7 @@ static void do_connect_resp(struct gigaset_capi_ctr *iif,
}
/* Accept call */
if (!gigaset_add_event(cs, &cs->bcs[channel-1].at_state,
if (!gigaset_add_event(cs, &cs->bcs[channel - 1].at_state,
EV_ACCEPT, NULL, 0, NULL))
return;
gigaset_schedule_event(cs);
@@ -1723,7 +1723,7 @@ static void do_connect_resp(struct gigaset_capi_ctr *iif,
/* reject call - will trigger DISCONNECT_IND for this app */
dev_info(cs->dev, "%s: Reject=%x\n",
"CONNECT_RESP", cmsg->Reject);
if (!gigaset_add_event(cs, &cs->bcs[channel-1].at_state,
if (!gigaset_add_event(cs, &cs->bcs[channel - 1].at_state,
EV_HUP, NULL, 0, NULL))
return;
gigaset_schedule_event(cs);
@@ -1756,7 +1756,7 @@ static void do_connect_b3_req(struct gigaset_capi_ctr *iif,
send_conf(iif, ap, skb, CapiIllContrPlciNcci);
return;
}
bcs = &cs->bcs[channel-1];
bcs = &cs->bcs[channel - 1];
/* mark logical connection active */
bcs->apconnstate = APCONN_ACTIVE;
@@ -1801,7 +1801,7 @@ static void do_connect_b3_resp(struct gigaset_capi_ctr *iif,
dev_kfree_skb_any(skb);
return;
}
bcs = &cs->bcs[channel-1];
bcs = &cs->bcs[channel - 1];
if (cmsg->Reject) {
/* Reject: clear B3 connect received flag */
@@ -1947,7 +1947,7 @@ static void do_disconnect_b3_req(struct gigaset_capi_ctr *iif,
send_conf(iif, ap, skb, CapiIllContrPlciNcci);
return;
}
bcs = &cs->bcs[channel-1];
bcs = &cs->bcs[channel - 1];
/* reject if logical connection not active */
if (bcs->apconnstate < APCONN_ACTIVE) {
@@ -1997,7 +1997,7 @@ static void do_data_b3_req(struct gigaset_capi_ctr *iif,
send_conf(iif, ap, skb, CapiIllContrPlciNcci);
return;
}
bcs = &cs->bcs[channel-1];
bcs = &cs->bcs[channel - 1];
if (msglen != CAPI_DATA_B3_REQ_LEN && msglen != CAPI_DATA_B3_REQ_LEN64)
dev_notice(cs->dev, "%s: unexpected length %d\n",
"DATA_B3_REQ", msglen);

View File

@@ -30,7 +30,7 @@
/* Module parameters */
int gigaset_debuglevel;
EXPORT_SYMBOL_GPL(gigaset_debuglevel);
module_param_named(debug, gigaset_debuglevel, int, S_IRUGO|S_IWUSR);
module_param_named(debug, gigaset_debuglevel, int, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(debug, "debug level");
/* driver state flags */
@@ -123,7 +123,7 @@ int gigaset_enterconfigmode(struct cardstate *cs)
if (r < 0)
goto error;
}
r = setflags(cs, TIOCM_RTS|TIOCM_DTR, 800);
r = setflags(cs, TIOCM_RTS | TIOCM_DTR, 800);
if (r < 0)
goto error;
@@ -131,8 +131,8 @@ int gigaset_enterconfigmode(struct cardstate *cs)
error:
dev_err(cs->dev, "error %d on setuartbits\n", -r);
cs->control_state = TIOCM_RTS|TIOCM_DTR;
cs->ops->set_modem_ctrl(cs, 0, TIOCM_RTS|TIOCM_DTR);
cs->control_state = TIOCM_RTS | TIOCM_DTR;
cs->ops->set_modem_ctrl(cs, 0, TIOCM_RTS | TIOCM_DTR);
return -1;
}
@@ -591,7 +591,7 @@ int gigaset_fill_inbuf(struct inbuf_t *inbuf, const unsigned char *src,
if (head > tail)
n = head - 1 - tail;
else if (head == 0)
n = (RBUFSIZE-1) - tail;
n = (RBUFSIZE - 1) - tail;
else
n = RBUFSIZE - tail;
if (!n) {
@@ -911,10 +911,10 @@ int gigaset_start(struct cardstate *cs)
spin_unlock_irqrestore(&cs->lock, flags);
if (cs->mstate != MS_LOCKED) {
cs->ops->set_modem_ctrl(cs, 0, TIOCM_DTR|TIOCM_RTS);
cs->ops->set_modem_ctrl(cs, 0, TIOCM_DTR | TIOCM_RTS);
cs->ops->baud_rate(cs, B115200);
cs->ops->set_line_ctrl(cs, CS8);
cs->control_state = TIOCM_DTR|TIOCM_RTS;
cs->control_state = TIOCM_DTR | TIOCM_RTS;
}
cs->waiting = 1;

View File

@@ -153,104 +153,104 @@ struct reply_t gigaset_tab_nocid[] =
* action, command */
/* initialize device, set cid mode if possible */
{RSP_INIT, -1, -1, SEQ_INIT, 100, 1, {ACT_TIMEOUT} },
{RSP_INIT, -1, -1, SEQ_INIT, 100, 1, {ACT_TIMEOUT} },
{EV_TIMEOUT, 100, 100, -1, 101, 3, {0}, "Z\r"},
{RSP_OK, 101, 103, -1, 120, 5, {ACT_GETSTRING},
{EV_TIMEOUT, 100, 100, -1, 101, 3, {0}, "Z\r"},
{RSP_OK, 101, 103, -1, 120, 5, {ACT_GETSTRING},
"+GMR\r"},
{EV_TIMEOUT, 101, 101, -1, 102, 5, {0}, "Z\r"},
{RSP_ERROR, 101, 101, -1, 102, 5, {0}, "Z\r"},
{EV_TIMEOUT, 101, 101, -1, 102, 5, {0}, "Z\r"},
{RSP_ERROR, 101, 101, -1, 102, 5, {0}, "Z\r"},
{EV_TIMEOUT, 102, 102, -1, 108, 5, {ACT_SETDLE1},
{EV_TIMEOUT, 102, 102, -1, 108, 5, {ACT_SETDLE1},
"^SDLE=0\r"},
{RSP_OK, 108, 108, -1, 104, -1},
{RSP_ZDLE, 104, 104, 0, 103, 5, {0}, "Z\r"},
{EV_TIMEOUT, 104, 104, -1, 0, 0, {ACT_FAILINIT} },
{RSP_ERROR, 108, 108, -1, 0, 0, {ACT_FAILINIT} },
{RSP_OK, 108, 108, -1, 104, -1},
{RSP_ZDLE, 104, 104, 0, 103, 5, {0}, "Z\r"},
{EV_TIMEOUT, 104, 104, -1, 0, 0, {ACT_FAILINIT} },
{RSP_ERROR, 108, 108, -1, 0, 0, {ACT_FAILINIT} },
{EV_TIMEOUT, 108, 108, -1, 105, 2, {ACT_SETDLE0,
{EV_TIMEOUT, 108, 108, -1, 105, 2, {ACT_SETDLE0,
ACT_HUPMODEM,
ACT_TIMEOUT} },
{EV_TIMEOUT, 105, 105, -1, 103, 5, {0}, "Z\r"},
{EV_TIMEOUT, 105, 105, -1, 103, 5, {0}, "Z\r"},
{RSP_ERROR, 102, 102, -1, 107, 5, {0}, "^GETPRE\r"},
{RSP_OK, 107, 107, -1, 0, 0, {ACT_CONFIGMODE} },
{RSP_ERROR, 107, 107, -1, 0, 0, {ACT_FAILINIT} },
{EV_TIMEOUT, 107, 107, -1, 0, 0, {ACT_FAILINIT} },
{RSP_ERROR, 102, 102, -1, 107, 5, {0}, "^GETPRE\r"},
{RSP_OK, 107, 107, -1, 0, 0, {ACT_CONFIGMODE} },
{RSP_ERROR, 107, 107, -1, 0, 0, {ACT_FAILINIT} },
{EV_TIMEOUT, 107, 107, -1, 0, 0, {ACT_FAILINIT} },
{RSP_ERROR, 103, 103, -1, 0, 0, {ACT_FAILINIT} },
{EV_TIMEOUT, 103, 103, -1, 0, 0, {ACT_FAILINIT} },
{RSP_ERROR, 103, 103, -1, 0, 0, {ACT_FAILINIT} },
{EV_TIMEOUT, 103, 103, -1, 0, 0, {ACT_FAILINIT} },
{RSP_STRING, 120, 120, -1, 121, -1, {ACT_SETVER} },
{RSP_STRING, 120, 120, -1, 121, -1, {ACT_SETVER} },
{EV_TIMEOUT, 120, 121, -1, 0, 0, {ACT_FAILVER,
{EV_TIMEOUT, 120, 121, -1, 0, 0, {ACT_FAILVER,
ACT_INIT} },
{RSP_ERROR, 120, 121, -1, 0, 0, {ACT_FAILVER,
{RSP_ERROR, 120, 121, -1, 0, 0, {ACT_FAILVER,
ACT_INIT} },
{RSP_OK, 121, 121, -1, 0, 0, {ACT_GOTVER,
{RSP_OK, 121, 121, -1, 0, 0, {ACT_GOTVER,
ACT_INIT} },
/* leave dle mode */
{RSP_INIT, 0, 0, SEQ_DLE0, 201, 5, {0}, "^SDLE=0\r"},
{RSP_OK, 201, 201, -1, 202, -1},
{RSP_ZDLE, 202, 202, 0, 0, 0, {ACT_DLE0} },
{RSP_NODEV, 200, 249, -1, 0, 0, {ACT_FAKEDLE0} },
{RSP_ERROR, 200, 249, -1, 0, 0, {ACT_FAILDLE0} },
{EV_TIMEOUT, 200, 249, -1, 0, 0, {ACT_FAILDLE0} },
{RSP_INIT, 0, 0, SEQ_DLE0, 201, 5, {0}, "^SDLE=0\r"},
{RSP_OK, 201, 201, -1, 202, -1},
{RSP_ZDLE, 202, 202, 0, 0, 0, {ACT_DLE0} },
{RSP_NODEV, 200, 249, -1, 0, 0, {ACT_FAKEDLE0} },
{RSP_ERROR, 200, 249, -1, 0, 0, {ACT_FAILDLE0} },
{EV_TIMEOUT, 200, 249, -1, 0, 0, {ACT_FAILDLE0} },
/* enter dle mode */
{RSP_INIT, 0, 0, SEQ_DLE1, 251, 5, {0}, "^SDLE=1\r"},
{RSP_OK, 251, 251, -1, 252, -1},
{RSP_ZDLE, 252, 252, 1, 0, 0, {ACT_DLE1} },
{RSP_ERROR, 250, 299, -1, 0, 0, {ACT_FAILDLE1} },
{EV_TIMEOUT, 250, 299, -1, 0, 0, {ACT_FAILDLE1} },
{RSP_INIT, 0, 0, SEQ_DLE1, 251, 5, {0}, "^SDLE=1\r"},
{RSP_OK, 251, 251, -1, 252, -1},
{RSP_ZDLE, 252, 252, 1, 0, 0, {ACT_DLE1} },
{RSP_ERROR, 250, 299, -1, 0, 0, {ACT_FAILDLE1} },
{EV_TIMEOUT, 250, 299, -1, 0, 0, {ACT_FAILDLE1} },
/* incoming call */
{RSP_RING, -1, -1, -1, -1, -1, {ACT_RING} },
{RSP_RING, -1, -1, -1, -1, -1, {ACT_RING} },
/* get cid */
{RSP_INIT, 0, 0, SEQ_CID, 301, 5, {0}, "^SGCI?\r"},
{RSP_OK, 301, 301, -1, 302, -1},
{RSP_ZGCI, 302, 302, -1, 0, 0, {ACT_CID} },
{RSP_ERROR, 301, 349, -1, 0, 0, {ACT_FAILCID} },
{EV_TIMEOUT, 301, 349, -1, 0, 0, {ACT_FAILCID} },
{RSP_INIT, 0, 0, SEQ_CID, 301, 5, {0}, "^SGCI?\r"},
{RSP_OK, 301, 301, -1, 302, -1},
{RSP_ZGCI, 302, 302, -1, 0, 0, {ACT_CID} },
{RSP_ERROR, 301, 349, -1, 0, 0, {ACT_FAILCID} },
{EV_TIMEOUT, 301, 349, -1, 0, 0, {ACT_FAILCID} },
/* enter cid mode */
{RSP_INIT, 0, 0, SEQ_CIDMODE, 150, 5, {0}, "^SGCI=1\r"},
{RSP_OK, 150, 150, -1, 0, 0, {ACT_CMODESET} },
{RSP_ERROR, 150, 150, -1, 0, 0, {ACT_FAILCMODE} },
{EV_TIMEOUT, 150, 150, -1, 0, 0, {ACT_FAILCMODE} },
{RSP_INIT, 0, 0, SEQ_CIDMODE, 150, 5, {0}, "^SGCI=1\r"},
{RSP_OK, 150, 150, -1, 0, 0, {ACT_CMODESET} },
{RSP_ERROR, 150, 150, -1, 0, 0, {ACT_FAILCMODE} },
{EV_TIMEOUT, 150, 150, -1, 0, 0, {ACT_FAILCMODE} },
/* leave cid mode */
{RSP_INIT, 0, 0, SEQ_UMMODE, 160, 5, {0}, "Z\r"},
{RSP_OK, 160, 160, -1, 0, 0, {ACT_UMODESET} },
{RSP_ERROR, 160, 160, -1, 0, 0, {ACT_FAILUMODE} },
{EV_TIMEOUT, 160, 160, -1, 0, 0, {ACT_FAILUMODE} },
{RSP_INIT, 0, 0, SEQ_UMMODE, 160, 5, {0}, "Z\r"},
{RSP_OK, 160, 160, -1, 0, 0, {ACT_UMODESET} },
{RSP_ERROR, 160, 160, -1, 0, 0, {ACT_FAILUMODE} },
{EV_TIMEOUT, 160, 160, -1, 0, 0, {ACT_FAILUMODE} },
/* abort getting cid */
{RSP_INIT, 0, 0, SEQ_NOCID, 0, 0, {ACT_ABORTCID} },
{RSP_INIT, 0, 0, SEQ_NOCID, 0, 0, {ACT_ABORTCID} },
/* reset */
{RSP_INIT, 0, 0, SEQ_SHUTDOWN, 504, 5, {0}, "Z\r"},
{RSP_OK, 504, 504, -1, 0, 0, {ACT_SDOWN} },
{RSP_ERROR, 501, 599, -1, 0, 0, {ACT_FAILSDOWN} },
{EV_TIMEOUT, 501, 599, -1, 0, 0, {ACT_FAILSDOWN} },
{RSP_NODEV, 501, 599, -1, 0, 0, {ACT_FAKESDOWN} },
{RSP_INIT, 0, 0, SEQ_SHUTDOWN, 504, 5, {0}, "Z\r"},
{RSP_OK, 504, 504, -1, 0, 0, {ACT_SDOWN} },
{RSP_ERROR, 501, 599, -1, 0, 0, {ACT_FAILSDOWN} },
{EV_TIMEOUT, 501, 599, -1, 0, 0, {ACT_FAILSDOWN} },
{RSP_NODEV, 501, 599, -1, 0, 0, {ACT_FAKESDOWN} },
{EV_PROC_CIDMODE, -1, -1, -1, -1, -1, {ACT_PROC_CIDMODE} },
{EV_IF_LOCK, -1, -1, -1, -1, -1, {ACT_IF_LOCK} },
{EV_IF_VER, -1, -1, -1, -1, -1, {ACT_IF_VER} },
{EV_START, -1, -1, -1, -1, -1, {ACT_START} },
{EV_STOP, -1, -1, -1, -1, -1, {ACT_STOP} },
{EV_SHUTDOWN, -1, -1, -1, -1, -1, {ACT_SHUTDOWN} },
{EV_PROC_CIDMODE, -1, -1, -1, -1, -1, {ACT_PROC_CIDMODE} },
{EV_IF_LOCK, -1, -1, -1, -1, -1, {ACT_IF_LOCK} },
{EV_IF_VER, -1, -1, -1, -1, -1, {ACT_IF_VER} },
{EV_START, -1, -1, -1, -1, -1, {ACT_START} },
{EV_STOP, -1, -1, -1, -1, -1, {ACT_STOP} },
{EV_SHUTDOWN, -1, -1, -1, -1, -1, {ACT_SHUTDOWN} },
/* misc. */
{RSP_ERROR, -1, -1, -1, -1, -1, {ACT_ERROR} },
{RSP_ZCAU, -1, -1, -1, -1, -1, {ACT_ZCAU} },
{RSP_NONE, -1, -1, -1, -1, -1, {ACT_DEBUG} },
{RSP_ANY, -1, -1, -1, -1, -1, {ACT_WARN} },
{RSP_LAST}
{RSP_ERROR, -1, -1, -1, -1, -1, {ACT_ERROR} },
{RSP_ZCAU, -1, -1, -1, -1, -1, {ACT_ZCAU} },
{RSP_NONE, -1, -1, -1, -1, -1, {ACT_DEBUG} },
{RSP_ANY, -1, -1, -1, -1, -1, {ACT_WARN} },
{RSP_LAST}
};
/* 600: start dialing, 650: dial in progress, 800: connection is up, 700: ring,
@@ -261,91 +261,91 @@ struct reply_t gigaset_tab_cid[] =
* action, command */
/* dial */
{EV_DIAL, -1, -1, -1, -1, -1, {ACT_DIAL} },
{RSP_INIT, 0, 0, SEQ_DIAL, 601, 5, {ACT_CMD+AT_BC} },
{RSP_OK, 601, 601, -1, 603, 5, {ACT_CMD+AT_PROTO} },
{RSP_OK, 603, 603, -1, 604, 5, {ACT_CMD+AT_TYPE} },
{RSP_OK, 604, 604, -1, 605, 5, {ACT_CMD+AT_MSN} },
{RSP_NULL, 605, 605, -1, 606, 5, {ACT_CMD+AT_CLIP} },
{RSP_OK, 605, 605, -1, 606, 5, {ACT_CMD+AT_CLIP} },
{RSP_NULL, 606, 606, -1, 607, 5, {ACT_CMD+AT_ISO} },
{RSP_OK, 606, 606, -1, 607, 5, {ACT_CMD+AT_ISO} },
{RSP_OK, 607, 607, -1, 608, 5, {0}, "+VLS=17\r"},
{RSP_OK, 608, 608, -1, 609, -1},
{RSP_ZSAU, 609, 609, ZSAU_PROCEEDING, 610, 5, {ACT_CMD+AT_DIAL} },
{RSP_OK, 610, 610, -1, 650, 0, {ACT_DIALING} },
{EV_DIAL, -1, -1, -1, -1, -1, {ACT_DIAL} },
{RSP_INIT, 0, 0, SEQ_DIAL, 601, 5, {ACT_CMD + AT_BC} },
{RSP_OK, 601, 601, -1, 603, 5, {ACT_CMD + AT_PROTO} },
{RSP_OK, 603, 603, -1, 604, 5, {ACT_CMD + AT_TYPE} },
{RSP_OK, 604, 604, -1, 605, 5, {ACT_CMD + AT_MSN} },
{RSP_NULL, 605, 605, -1, 606, 5, {ACT_CMD + AT_CLIP} },
{RSP_OK, 605, 605, -1, 606, 5, {ACT_CMD + AT_CLIP} },
{RSP_NULL, 606, 606, -1, 607, 5, {ACT_CMD + AT_ISO} },
{RSP_OK, 606, 606, -1, 607, 5, {ACT_CMD + AT_ISO} },
{RSP_OK, 607, 607, -1, 608, 5, {0}, "+VLS=17\r"},
{RSP_OK, 608, 608, -1, 609, -1},
{RSP_ZSAU, 609, 609, ZSAU_PROCEEDING, 610, 5, {ACT_CMD + AT_DIAL} },
{RSP_OK, 610, 610, -1, 650, 0, {ACT_DIALING} },
{RSP_ERROR, 601, 610, -1, 0, 0, {ACT_ABORTDIAL} },
{EV_TIMEOUT, 601, 610, -1, 0, 0, {ACT_ABORTDIAL} },
{RSP_ERROR, 601, 610, -1, 0, 0, {ACT_ABORTDIAL} },
{EV_TIMEOUT, 601, 610, -1, 0, 0, {ACT_ABORTDIAL} },
/* optional dialing responses */
{EV_BC_OPEN, 650, 650, -1, 651, -1},
{RSP_ZVLS, 609, 651, 17, -1, -1, {ACT_DEBUG} },
{RSP_ZCTP, 610, 651, -1, -1, -1, {ACT_DEBUG} },
{RSP_ZCPN, 610, 651, -1, -1, -1, {ACT_DEBUG} },
{RSP_ZSAU, 650, 651, ZSAU_CALL_DELIVERED, -1, -1, {ACT_DEBUG} },
{EV_BC_OPEN, 650, 650, -1, 651, -1},
{RSP_ZVLS, 609, 651, 17, -1, -1, {ACT_DEBUG} },
{RSP_ZCTP, 610, 651, -1, -1, -1, {ACT_DEBUG} },
{RSP_ZCPN, 610, 651, -1, -1, -1, {ACT_DEBUG} },
{RSP_ZSAU, 650, 651, ZSAU_CALL_DELIVERED, -1, -1, {ACT_DEBUG} },
/* connect */
{RSP_ZSAU, 650, 650, ZSAU_ACTIVE, 800, -1, {ACT_CONNECT} },
{RSP_ZSAU, 651, 651, ZSAU_ACTIVE, 800, -1, {ACT_CONNECT,
{RSP_ZSAU, 650, 650, ZSAU_ACTIVE, 800, -1, {ACT_CONNECT} },
{RSP_ZSAU, 651, 651, ZSAU_ACTIVE, 800, -1, {ACT_CONNECT,
ACT_NOTIFY_BC_UP} },
{RSP_ZSAU, 750, 750, ZSAU_ACTIVE, 800, -1, {ACT_CONNECT} },
{RSP_ZSAU, 751, 751, ZSAU_ACTIVE, 800, -1, {ACT_CONNECT,
{RSP_ZSAU, 750, 750, ZSAU_ACTIVE, 800, -1, {ACT_CONNECT} },
{RSP_ZSAU, 751, 751, ZSAU_ACTIVE, 800, -1, {ACT_CONNECT,
ACT_NOTIFY_BC_UP} },
{EV_BC_OPEN, 800, 800, -1, 800, -1, {ACT_NOTIFY_BC_UP} },
{EV_BC_OPEN, 800, 800, -1, 800, -1, {ACT_NOTIFY_BC_UP} },
/* remote hangup */
{RSP_ZSAU, 650, 651, ZSAU_DISCONNECT_IND, 0, 0, {ACT_REMOTEREJECT} },
{RSP_ZSAU, 750, 751, ZSAU_DISCONNECT_IND, 0, 0, {ACT_REMOTEHUP} },
{RSP_ZSAU, 800, 800, ZSAU_DISCONNECT_IND, 0, 0, {ACT_REMOTEHUP} },
{RSP_ZSAU, 650, 651, ZSAU_DISCONNECT_IND, 0, 0, {ACT_REMOTEREJECT} },
{RSP_ZSAU, 750, 751, ZSAU_DISCONNECT_IND, 0, 0, {ACT_REMOTEHUP} },
{RSP_ZSAU, 800, 800, ZSAU_DISCONNECT_IND, 0, 0, {ACT_REMOTEHUP} },
/* hangup */
{EV_HUP, -1, -1, -1, -1, -1, {ACT_HUP} },
{RSP_INIT, -1, -1, SEQ_HUP, 401, 5, {0}, "+VLS=0\r"},
{RSP_OK, 401, 401, -1, 402, 5},
{RSP_ZVLS, 402, 402, 0, 403, 5},
{RSP_ZSAU, 403, 403, ZSAU_DISCONNECT_REQ, -1, -1, {ACT_DEBUG} },
{RSP_ZSAU, 403, 403, ZSAU_NULL, 0, 0, {ACT_DISCONNECT} },
{RSP_NODEV, 401, 403, -1, 0, 0, {ACT_FAKEHUP} },
{RSP_ERROR, 401, 401, -1, 0, 0, {ACT_ABORTHUP} },
{EV_TIMEOUT, 401, 403, -1, 0, 0, {ACT_ABORTHUP} },
{EV_HUP, -1, -1, -1, -1, -1, {ACT_HUP} },
{RSP_INIT, -1, -1, SEQ_HUP, 401, 5, {0}, "+VLS=0\r"},
{RSP_OK, 401, 401, -1, 402, 5},
{RSP_ZVLS, 402, 402, 0, 403, 5},
{RSP_ZSAU, 403, 403, ZSAU_DISCONNECT_REQ, -1, -1, {ACT_DEBUG} },
{RSP_ZSAU, 403, 403, ZSAU_NULL, 0, 0, {ACT_DISCONNECT} },
{RSP_NODEV, 401, 403, -1, 0, 0, {ACT_FAKEHUP} },
{RSP_ERROR, 401, 401, -1, 0, 0, {ACT_ABORTHUP} },
{EV_TIMEOUT, 401, 403, -1, 0, 0, {ACT_ABORTHUP} },
{EV_BC_CLOSED, 0, 0, -1, 0, -1, {ACT_NOTIFY_BC_DOWN} },
{EV_BC_CLOSED, 0, 0, -1, 0, -1, {ACT_NOTIFY_BC_DOWN} },
/* ring */
{RSP_ZBC, 700, 700, -1, -1, -1, {0} },
{RSP_ZHLC, 700, 700, -1, -1, -1, {0} },
{RSP_NMBR, 700, 700, -1, -1, -1, {0} },
{RSP_ZCPN, 700, 700, -1, -1, -1, {0} },
{RSP_ZCTP, 700, 700, -1, -1, -1, {0} },
{EV_TIMEOUT, 700, 700, -1, 720, 720, {ACT_ICALL} },
{EV_BC_CLOSED, 720, 720, -1, 0, -1, {ACT_NOTIFY_BC_DOWN} },
{RSP_ZBC, 700, 700, -1, -1, -1, {0} },
{RSP_ZHLC, 700, 700, -1, -1, -1, {0} },
{RSP_NMBR, 700, 700, -1, -1, -1, {0} },
{RSP_ZCPN, 700, 700, -1, -1, -1, {0} },
{RSP_ZCTP, 700, 700, -1, -1, -1, {0} },
{EV_TIMEOUT, 700, 700, -1, 720, 720, {ACT_ICALL} },
{EV_BC_CLOSED, 720, 720, -1, 0, -1, {ACT_NOTIFY_BC_DOWN} },
/*accept icall*/
{EV_ACCEPT, -1, -1, -1, -1, -1, {ACT_ACCEPT} },
{RSP_INIT, 720, 720, SEQ_ACCEPT, 721, 5, {ACT_CMD+AT_PROTO} },
{RSP_OK, 721, 721, -1, 722, 5, {ACT_CMD+AT_ISO} },
{RSP_OK, 722, 722, -1, 723, 5, {0}, "+VLS=17\r"},
{RSP_OK, 723, 723, -1, 724, 5, {0} },
{RSP_ZVLS, 724, 724, 17, 750, 50, {ACT_ACCEPTED} },
{RSP_ERROR, 721, 729, -1, 0, 0, {ACT_ABORTACCEPT} },
{EV_TIMEOUT, 721, 729, -1, 0, 0, {ACT_ABORTACCEPT} },
{RSP_ZSAU, 700, 729, ZSAU_NULL, 0, 0, {ACT_ABORTACCEPT} },
{RSP_ZSAU, 700, 729, ZSAU_ACTIVE, 0, 0, {ACT_ABORTACCEPT} },
{RSP_ZSAU, 700, 729, ZSAU_DISCONNECT_IND, 0, 0, {ACT_ABORTACCEPT} },
{EV_ACCEPT, -1, -1, -1, -1, -1, {ACT_ACCEPT} },
{RSP_INIT, 720, 720, SEQ_ACCEPT, 721, 5, {ACT_CMD + AT_PROTO} },
{RSP_OK, 721, 721, -1, 722, 5, {ACT_CMD + AT_ISO} },
{RSP_OK, 722, 722, -1, 723, 5, {0}, "+VLS=17\r"},
{RSP_OK, 723, 723, -1, 724, 5, {0} },
{RSP_ZVLS, 724, 724, 17, 750, 50, {ACT_ACCEPTED} },
{RSP_ERROR, 721, 729, -1, 0, 0, {ACT_ABORTACCEPT} },
{EV_TIMEOUT, 721, 729, -1, 0, 0, {ACT_ABORTACCEPT} },
{RSP_ZSAU, 700, 729, ZSAU_NULL, 0, 0, {ACT_ABORTACCEPT} },
{RSP_ZSAU, 700, 729, ZSAU_ACTIVE, 0, 0, {ACT_ABORTACCEPT} },
{RSP_ZSAU, 700, 729, ZSAU_DISCONNECT_IND, 0, 0, {ACT_ABORTACCEPT} },
{EV_BC_OPEN, 750, 750, -1, 751, -1},
{EV_TIMEOUT, 750, 751, -1, 0, 0, {ACT_CONNTIMEOUT} },
{EV_BC_OPEN, 750, 750, -1, 751, -1},
{EV_TIMEOUT, 750, 751, -1, 0, 0, {ACT_CONNTIMEOUT} },
/* B channel closed (general case) */
{EV_BC_CLOSED, -1, -1, -1, -1, -1, {ACT_NOTIFY_BC_DOWN} },
{EV_BC_CLOSED, -1, -1, -1, -1, -1, {ACT_NOTIFY_BC_DOWN} },
/* misc. */
{RSP_ZCON, -1, -1, -1, -1, -1, {ACT_DEBUG} },
{RSP_ZCAU, -1, -1, -1, -1, -1, {ACT_ZCAU} },
{RSP_NONE, -1, -1, -1, -1, -1, {ACT_DEBUG} },
{RSP_ANY, -1, -1, -1, -1, -1, {ACT_WARN} },
{RSP_LAST}
{RSP_ZCON, -1, -1, -1, -1, -1, {ACT_DEBUG} },
{RSP_ZCAU, -1, -1, -1, -1, -1, {ACT_ZCAU} },
{RSP_NONE, -1, -1, -1, -1, -1, {ACT_DEBUG} },
{RSP_ANY, -1, -1, -1, -1, -1, {ACT_WARN} },
{RSP_LAST}
};
@@ -461,7 +461,7 @@ void gigaset_handle_modem_response(struct cardstate *cs)
}
rawstring = 0;
cid = params > 1 ? cid_of_response(argv[params-1]) : 0;
cid = params > 1 ? cid_of_response(argv[params - 1]) : 0;
if (cid < 0) {
gigaset_add_event(cs, &cs->at_state, RSP_INVAL,
NULL, 0, NULL);

View File

@@ -164,7 +164,7 @@ void gigaset_dbg_buffer(enum debuglevel level, const unsigned char *msg,
#define BAS_CORRFRAMES 4 /* flow control multiplicator */
#define BAS_INBUFSIZE (BAS_MAXFRAME * BAS_NUMFRAMES)
/* size of isoc in buf per URB */
/* size of isoc in buf per URB */
#define BAS_OUTBUFSIZE 4096 /* size of common isoc out buffer */
#define BAS_OUTBUFPAD BAS_MAXFRAME /* size of pad area for isoc out buf */
@@ -491,7 +491,7 @@ struct cardstate {
spinlock_t ev_lock;
/* current modem response */
unsigned char respdata[MAX_RESP_SIZE+1];
unsigned char respdata[MAX_RESP_SIZE + 1];
unsigned cbytes;
/* private data of hardware drivers */

View File

@@ -243,7 +243,7 @@ static int command_from_LL(isdn_ctrl *cntrl)
dev_kfree_skb(bcs->rx_skb);
gigaset_new_rx_skb(bcs);
commands = kzalloc(AT_NUM*(sizeof *commands), GFP_ATOMIC);
commands = kzalloc(AT_NUM * (sizeof *commands), GFP_ATOMIC);
if (!commands) {
gigaset_free_channel(bcs);
dev_err(cs->dev, "ISDN_CMD_DIAL: out of memory\n");
@@ -261,7 +261,7 @@ static int command_from_LL(isdn_ctrl *cntrl)
if (!commands[AT_TYPE])
goto oom;
snprintf(commands[AT_DIAL], l,
"D%s\r", cntrl->parm.setup.phone+2);
"D%s\r", cntrl->parm.setup.phone + 2);
} else {
commands[AT_TYPE] = kstrdup("^SCTP=1\r", GFP_ATOMIC);
if (!commands[AT_TYPE])

View File

@@ -33,10 +33,10 @@ static int if_lock(struct cardstate *cs, int *arg)
}
if (!cmd && cs->mstate == MS_LOCKED && cs->connected) {
cs->ops->set_modem_ctrl(cs, 0, TIOCM_DTR|TIOCM_RTS);
cs->ops->set_modem_ctrl(cs, 0, TIOCM_DTR | TIOCM_RTS);
cs->ops->baud_rate(cs, B115200);
cs->ops->set_line_ctrl(cs, CS8);
cs->control_state = TIOCM_DTR|TIOCM_RTS;
cs->control_state = TIOCM_DTR | TIOCM_RTS;
}
cs->waiting = 1;
@@ -299,7 +299,7 @@ static int if_tiocmget(struct tty_struct *tty)
if (mutex_lock_interruptible(&cs->mutex))
return -ERESTARTSYS;
retval = cs->control_state & (TIOCM_RTS|TIOCM_DTR);
retval = cs->control_state & (TIOCM_RTS | TIOCM_DTR);
mutex_unlock(&cs->mutex);
@@ -329,7 +329,7 @@ static int if_tiocmset(struct tty_struct *tty,
gig_dbg(DEBUG_IF, "not connected");
retval = -ENODEV;
} else {
mc = (cs->control_state | set) & ~clear & (TIOCM_RTS|TIOCM_DTR);
mc = (cs->control_state | set) & ~clear & (TIOCM_RTS | TIOCM_DTR);
retval = cs->ops->set_modem_ctrl(cs, cs->control_state, mc);
cs->control_state = mc;
}

View File

@@ -56,7 +56,7 @@ static ssize_t set_cidmode(struct device *dev, struct device_attribute *attr,
return count;
}
static DEVICE_ATTR(cidmode, S_IRUGO|S_IWUSR, show_cidmode, set_cidmode);
static DEVICE_ATTR(cidmode, S_IRUGO | S_IWUSR, show_cidmode, set_cidmode);
/* free sysfs for device */
void gigaset_free_dev_sysfs(struct cardstate *cs)

View File

@@ -264,7 +264,7 @@ static inline void b1_put_byte(unsigned int base, unsigned char val)
static inline int b1_save_put_byte(unsigned int base, unsigned char val)
{
unsigned long stop = jiffies + 2 * HZ;
while (!b1_tx_empty(base) && time_before(jiffies,stop));
while (!b1_tx_empty(base) && time_before(jiffies, stop));
if (!b1_tx_empty(base)) return -1;
b1outp(base, B1_WRITE, val);
return 0;
@@ -418,20 +418,20 @@ static inline unsigned int t1_get_slice(unsigned int base,
if (t1_isfastlink(base)) {
int status;
while (i > 0) {
status = t1_fifostatus(base) & (T1F_IREADY|T1F_IHALF);
status = t1_fifostatus(base) & (T1F_IREADY | T1F_IHALF);
if (i >= FIFO_INPBSIZE) status |= T1F_IFULL;
switch (status) {
case T1F_IREADY|T1F_IHALF|T1F_IFULL:
insb(base+B1_READ, dp, FIFO_INPBSIZE);
case T1F_IREADY | T1F_IHALF | T1F_IFULL:
insb(base + B1_READ, dp, FIFO_INPBSIZE);
dp += FIFO_INPBSIZE;
i -= FIFO_INPBSIZE;
#ifdef FASTLINK_DEBUG
wcnt += FIFO_INPBSIZE;
#endif
break;
case T1F_IREADY|T1F_IHALF:
insb(base+B1_READ,dp, i);
case T1F_IREADY | T1F_IHALF:
insb(base + B1_READ, dp, i);
#ifdef FASTLINK_DEBUG
wcnt += i;
#endif
@@ -467,16 +467,16 @@ static inline void t1_put_slice(unsigned int base,
if (t1_isfastlink(base)) {
int status;
while (i > 0) {
status = t1_fifostatus(base) & (T1F_OREADY|T1F_OHALF);
status = t1_fifostatus(base) & (T1F_OREADY | T1F_OHALF);
if (i >= FIFO_OUTBSIZE) status |= T1F_OEMPTY;
switch (status) {
case T1F_OREADY|T1F_OHALF|T1F_OEMPTY:
outsb(base+B1_WRITE, dp, FIFO_OUTBSIZE);
case T1F_OREADY | T1F_OHALF | T1F_OEMPTY:
outsb(base + B1_WRITE, dp, FIFO_OUTBSIZE);
dp += FIFO_OUTBSIZE;
i -= FIFO_OUTBSIZE;
break;
case T1F_OREADY|T1F_OHALF:
outsb(base+B1_WRITE, dp, i);
case T1F_OREADY | T1F_OHALF:
outsb(base + B1_WRITE, dp, i);
dp += i;
i = 0;
break;
@@ -543,8 +543,8 @@ avmcard *b1_alloc_card(int nr_controllers);
void b1_free_card(avmcard *card);
int b1_detect(unsigned int base, enum avmcardtype cardtype);
void b1_getrevision(avmcard *card);
int b1_load_t4file(avmcard *card, capiloaddatapart * t4file);
int b1_load_config(avmcard *card, capiloaddatapart * config);
int b1_load_t4file(avmcard *card, capiloaddatapart *t4file);
int b1_load_config(avmcard *card, capiloaddatapart *config);
int b1_loaded(avmcard *card);
int b1_load_firmware(struct capi_ctr *ctrl, capiloaddata *data);

View File

@@ -126,7 +126,7 @@ int b1_detect(unsigned int base, enum avmcardtype cardtype)
|| (inb(base + B1_OUTSTAT) & 0xfe))
return 3;
for (onoff = !0, i= 0; i < 10 ; i++) {
for (onoff = !0, i = 0; i < 10; i++) {
b1_set_test_bit(base, cardtype, onoff);
if (b1_get_test_bit(base, cardtype) != onoff)
return 4;
@@ -149,7 +149,7 @@ void b1_getrevision(avmcard *card)
}
#define FWBUF_SIZE 256
int b1_load_t4file(avmcard *card, capiloaddatapart * t4file)
int b1_load_t4file(avmcard *card, capiloaddatapart *t4file)
{
unsigned char buf[FWBUF_SIZE];
unsigned char *dp;
@@ -191,7 +191,7 @@ int b1_load_t4file(avmcard *card, capiloaddatapart * t4file)
return 0;
}
int b1_load_config(avmcard *card, capiloaddatapart * config)
int b1_load_config(avmcard *card, capiloaddatapart *config)
{
unsigned char buf[FWBUF_SIZE];
unsigned char *dp;
@@ -215,7 +215,7 @@ int b1_load_config(avmcard *card, capiloaddatapart * config)
}
for (i = 0; i < FWBUF_SIZE; ) {
b1_put_byte(base, SEND_CONFIG);
for (j=0; j < 4; j++) {
for (j = 0; j < 4; j++) {
b1_put_byte(base, buf[i++]);
}
}
@@ -231,7 +231,7 @@ int b1_load_config(avmcard *card, capiloaddatapart * config)
}
for (i = 0; i < left; ) {
b1_put_byte(base, SEND_CONFIG);
for (j=0; j < 4; j++) {
for (j = 0; j < 4; j++) {
if (i < left)
b1_put_byte(base, buf[i++]);
else
@@ -312,7 +312,7 @@ int b1_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
b1_setinterrupt(port, card->irq, card->cardtype);
b1_put_byte(port, SEND_INIT);
b1_put_word(port, CAPI_MAXAPPL);
b1_put_word(port, AVM_NCCI_PER_CHANNEL*2);
b1_put_word(port, AVM_NCCI_PER_CHANNEL * 2);
b1_put_word(port, ctrl->cnr - 1);
spin_unlock_irqrestore(&card->lock, flags);
@@ -353,7 +353,7 @@ void b1_register_appl(struct capi_ctr *ctrl,
spin_lock_irqsave(&card->lock, flags);
b1_put_byte(port, SEND_REGISTER);
b1_put_word(port, appl);
b1_put_word(port, 1024 * (nconn+1));
b1_put_word(port, 1024 * (nconn + 1));
b1_put_word(port, nconn);
b1_put_word(port, rp->datablkcnt);
b1_put_word(port, rp->datablklen);
@@ -430,7 +430,7 @@ void b1_parse_version(avmctrl_info *cinfo)
cinfo->version[j] = &cinfo->versionbuf[i + 1];
strlcpy(ctrl->serial, cinfo->version[VER_SERIAL], sizeof(ctrl->serial));
memcpy(&ctrl->profile, cinfo->version[VER_PROFILE],sizeof(capi_profile));
memcpy(&ctrl->profile, cinfo->version[VER_PROFILE], sizeof(capi_profile));
strlcpy(ctrl->manu, "AVM GmbH", sizeof(ctrl->manu));
dversion = cinfo->version[VER_DRIVER];
ctrl->version.majorversion = 2;
@@ -449,11 +449,11 @@ void b1_parse_version(avmctrl_info *cinfo)
strcpy(cinfo->cardname, cinfo->version[VER_CARDTYPE]);
else strcpy(cinfo->cardname, "B1");
break;
case 3: strcpy(cinfo->cardname,"PCMCIA B"); break;
case 4: strcpy(cinfo->cardname,"PCMCIA M1"); break;
case 5: strcpy(cinfo->cardname,"PCMCIA M2"); break;
case 6: strcpy(cinfo->cardname,"B1 V3.0"); break;
case 7: strcpy(cinfo->cardname,"B1 PCI"); break;
case 3: strcpy(cinfo->cardname, "PCMCIA B"); break;
case 4: strcpy(cinfo->cardname, "PCMCIA M1"); break;
case 5: strcpy(cinfo->cardname, "PCMCIA M2"); break;
case 6: strcpy(cinfo->cardname, "B1 V3.0"); break;
case 7: strcpy(cinfo->cardname, "B1 PCI"); break;
default: sprintf(cinfo->cardname, "AVM?%u", (unsigned int)flag); break;
}
printk(KERN_NOTICE "%s: card %d \"%s\" ready.\n",
@@ -521,7 +521,7 @@ irqreturn_t b1_interrupt(int interrupt, void *devptr)
spin_unlock_irqrestore(&card->lock, flags);
if (MsgLen < 30) { /* not CAPI 64Bit */
memset(card->msgbuf+MsgLen, 0, 30-MsgLen);
memset(card->msgbuf + MsgLen, 0, 30-MsgLen);
MsgLen = 30;
CAPIMSG_SETLEN(card->msgbuf, 30);
}
@@ -600,10 +600,10 @@ irqreturn_t b1_interrupt(int interrupt, void *devptr)
MsgLen = b1_get_slice(card->port, card->msgbuf);
spin_unlock_irqrestore(&card->lock, flags);
card->msgbuf[MsgLen] = 0;
while ( MsgLen > 0
&& ( card->msgbuf[MsgLen-1] == '\n'
|| card->msgbuf[MsgLen-1] == '\r')) {
card->msgbuf[MsgLen-1] = 0;
while (MsgLen > 0
&& (card->msgbuf[MsgLen - 1] == '\n'
|| card->msgbuf[MsgLen - 1] == '\r')) {
card->msgbuf[MsgLen - 1] = 0;
MsgLen--;
}
printk(KERN_INFO "%s: task %d \"%s\" ready.\n",
@@ -614,10 +614,10 @@ irqreturn_t b1_interrupt(int interrupt, void *devptr)
MsgLen = b1_get_slice(card->port, card->msgbuf);
spin_unlock_irqrestore(&card->lock, flags);
card->msgbuf[MsgLen] = 0;
while ( MsgLen > 0
&& ( card->msgbuf[MsgLen-1] == '\n'
|| card->msgbuf[MsgLen-1] == '\r')) {
card->msgbuf[MsgLen-1] = 0;
while (MsgLen > 0
&& (card->msgbuf[MsgLen - 1] == '\n'
|| card->msgbuf[MsgLen - 1] == '\r')) {
card->msgbuf[MsgLen - 1] = 0;
MsgLen--;
}
printk(KERN_INFO "%s: DEBUG: %s\n", card->name, card->msgbuf);
@@ -750,12 +750,12 @@ avmcard_dma_alloc(char *name, struct pci_dev *pdev, long rsize, long ssize)
return p;
err_free_consistent:
err_free_consistent:
pci_free_consistent(p->pcidev, p->recvbuf.size,
p->recvbuf.dmabuf, p->recvbuf.dmaaddr);
err_kfree:
err_kfree:
kfree(p);
err:
err:
return NULL;
}
@@ -800,7 +800,7 @@ static int __init b1_init(void)
if ((p = strchr(revision, ':')) != NULL && p[1]) {
strlcpy(rev, p + 2, 32);
if ((p = strchr(rev, '$')) != NULL && p > rev)
*(p-1) = 0;
*(p - 1) = 0;
} else
strcpy(rev, "1.0");

View File

@@ -110,7 +110,7 @@ static int b1dma_tolink(avmcard *card, void *buf, unsigned int len)
unsigned long stop = jiffies + 1 * HZ; /* maximum wait time 1 sec */
unsigned char *s = (unsigned char *)buf;
while (len--) {
while ( !b1dma_tx_empty(card->port)
while (!b1dma_tx_empty(card->port)
&& time_before(jiffies, stop));
if (!b1dma_tx_empty(card->port))
return -1;
@@ -124,7 +124,7 @@ static int b1dma_fromlink(avmcard *card, void *buf, unsigned int len)
unsigned long stop = jiffies + 1 * HZ; /* maximum wait time 1 sec */
unsigned char *s = (unsigned char *)buf;
while (len--) {
while ( !b1dma_rx_full(card->port)
while (!b1dma_rx_full(card->port)
&& time_before(jiffies, stop));
if (!b1dma_rx_full(card->port))
return -1;
@@ -136,7 +136,7 @@ static int b1dma_fromlink(avmcard *card, void *buf, unsigned int len)
static int WriteReg(avmcard *card, u32 reg, u8 val)
{
u8 cmd = 0x00;
if ( b1dma_tolink(card, &cmd, 1) == 0
if (b1dma_tolink(card, &cmd, 1) == 0
&& b1dma_tolink(card, &reg, 4) == 0) {
u32 tmp = val;
return b1dma_tolink(card, &tmp, 4);
@@ -147,7 +147,7 @@ static int WriteReg(avmcard *card, u32 reg, u8 val)
static u8 ReadReg(avmcard *card, u32 reg)
{
u8 cmd = 0x01;
if ( b1dma_tolink(card, &cmd, 1) == 0
if (b1dma_tolink(card, &cmd, 1) == 0
&& b1dma_tolink(card, &reg, 4) == 0) {
u32 tmp;
if (b1dma_fromlink(card, &tmp, 4) == 0)
@@ -258,13 +258,13 @@ static int b1dma_detect(avmcard *card)
b1dma_writel(card, 0xffffffff, AMCC_RXPTR);
b1dma_writel(card, 0xffffffff, AMCC_TXPTR);
if ( b1dma_readl(card, AMCC_RXPTR) != 0xfffffffc
if (b1dma_readl(card, AMCC_RXPTR) != 0xfffffffc
|| b1dma_readl(card, AMCC_TXPTR) != 0xfffffffc)
return 2;
b1dma_writel(card, 0x0, AMCC_RXPTR);
b1dma_writel(card, 0x0, AMCC_TXPTR);
if ( b1dma_readl(card, AMCC_RXPTR) != 0x0
if (b1dma_readl(card, AMCC_RXPTR) != 0x0
|| b1dma_readl(card, AMCC_TXPTR) != 0x0)
return 3;
@@ -274,14 +274,14 @@ static int b1dma_detect(avmcard *card)
t1outp(card->port, 0x02, 0x02);
t1outp(card->port, 0x03, 0x02);
if ( (t1inp(card->port, 0x02) & 0xFE) != 0x02
if ((t1inp(card->port, 0x02) & 0xFE) != 0x02
|| t1inp(card->port, 0x3) != 0x03)
return 4;
t1outp(card->port, 0x02, 0x00);
t1outp(card->port, 0x03, 0x00);
if ( (t1inp(card->port, 0x02) & 0xFE) != 0x00
if ((t1inp(card->port, 0x02) & 0xFE) != 0x00
|| t1inp(card->port, 0x3) != 0x01)
return 5;
@@ -297,25 +297,25 @@ int t1pci_detect(avmcard *card)
/* Transputer test */
if ( WriteReg(card, 0x80001000, 0x11) != 0
if (WriteReg(card, 0x80001000, 0x11) != 0
|| WriteReg(card, 0x80101000, 0x22) != 0
|| WriteReg(card, 0x80201000, 0x33) != 0
|| WriteReg(card, 0x80301000, 0x44) != 0)
return 6;
if ( ReadReg(card, 0x80001000) != 0x11
if (ReadReg(card, 0x80001000) != 0x11
|| ReadReg(card, 0x80101000) != 0x22
|| ReadReg(card, 0x80201000) != 0x33
|| ReadReg(card, 0x80301000) != 0x44)
return 7;
if ( WriteReg(card, 0x80001000, 0x55) != 0
if (WriteReg(card, 0x80001000, 0x55) != 0
|| WriteReg(card, 0x80101000, 0x66) != 0
|| WriteReg(card, 0x80201000, 0x77) != 0
|| WriteReg(card, 0x80301000, 0x88) != 0)
return 8;
if ( ReadReg(card, 0x80001000) != 0x55
if (ReadReg(card, 0x80001000) != 0x55
|| ReadReg(card, 0x80101000) != 0x66
|| ReadReg(card, 0x80201000) != 0x77
|| ReadReg(card, 0x80301000) != 0x88)
@@ -331,13 +331,13 @@ int b1pciv4_detect(avmcard *card)
if ((ret = b1dma_detect(card)) != 0)
return ret;
for (i=0; i < 5 ; i++) {
for (i = 0; i < 5; i++) {
if (WriteReg(card, 0x80A00000, 0x21) != 0)
return 6;
if ((ReadReg(card, 0x80A00000) & 0x01) != 0x01)
return 7;
}
for (i=0; i < 5 ; i++) {
for (i = 0; i < 5; i++) {
if (WriteReg(card, 0x80A00000, 0x20) != 0)
return 8;
if ((ReadReg(card, 0x80A00000) & 0x01) != 0x00)
@@ -398,7 +398,7 @@ static void b1dma_dispatch_tx(avmcard *card)
printk(KERN_DEBUG "tx: put msg len=%d\n", txlen);
#endif
} else {
txlen = skb->len-2;
txlen = skb->len - 2;
#ifdef AVM_B1DMA_POLLDEBUG
if (skb->data[2] == SEND_POLLACK)
printk(KERN_INFO "%s: send ack\n", card->name);
@@ -450,7 +450,7 @@ static void b1dma_handle_rx(avmcard *card)
avmcard_dmainfo *dma = card->dma;
struct capi_ctr *ctrl = &cinfo->capi_ctrl;
struct sk_buff *skb;
void *p = dma->recvbuf.dmabuf+4;
void *p = dma->recvbuf.dmabuf + 4;
u32 ApplId, MsgLen, DataB3Len, NCCI, WindowSize;
u8 b1cmd = _get_byte(&p);
@@ -466,11 +466,11 @@ static void b1dma_handle_rx(avmcard *card)
DataB3Len = _get_slice(&p, card->databuf);
if (MsgLen < 30) { /* not CAPI 64Bit */
memset(card->msgbuf+MsgLen, 0, 30-MsgLen);
memset(card->msgbuf + MsgLen, 0, 30 - MsgLen);
MsgLen = 30;
CAPIMSG_SETLEN(card->msgbuf, 30);
}
if (!(skb = alloc_skb(DataB3Len+MsgLen, GFP_ATOMIC))) {
if (!(skb = alloc_skb(DataB3Len + MsgLen, GFP_ATOMIC))) {
printk(KERN_ERR "%s: incoming packet dropped\n",
card->name);
} else {
@@ -550,10 +550,10 @@ static void b1dma_handle_rx(avmcard *card)
ApplId = (unsigned) _get_word(&p);
MsgLen = _get_slice(&p, card->msgbuf);
card->msgbuf[MsgLen] = 0;
while ( MsgLen > 0
&& ( card->msgbuf[MsgLen-1] == '\n'
|| card->msgbuf[MsgLen-1] == '\r')) {
card->msgbuf[MsgLen-1] = 0;
while (MsgLen > 0
&& (card->msgbuf[MsgLen - 1] == '\n'
|| card->msgbuf[MsgLen - 1] == '\r')) {
card->msgbuf[MsgLen - 1] = 0;
MsgLen--;
}
printk(KERN_INFO "%s: task %d \"%s\" ready.\n",
@@ -563,10 +563,10 @@ static void b1dma_handle_rx(avmcard *card)
case RECEIVE_DEBUGMSG:
MsgLen = _get_slice(&p, card->msgbuf);
card->msgbuf[MsgLen] = 0;
while ( MsgLen > 0
&& ( card->msgbuf[MsgLen-1] == '\n'
|| card->msgbuf[MsgLen-1] == '\r')) {
card->msgbuf[MsgLen-1] = 0;
while (MsgLen > 0
&& (card->msgbuf[MsgLen - 1] == '\n'
|| card->msgbuf[MsgLen - 1] == '\r')) {
card->msgbuf[MsgLen - 1] = 0;
MsgLen--;
}
printk(KERN_INFO "%s: DEBUG: %s\n", card->name, card->msgbuf);
@@ -607,7 +607,7 @@ static void b1dma_handle_interrupt(avmcard *card)
if (rxlen == 0) {
dma->recvlen = *((u32 *)dma->recvbuf.dmabuf);
rxlen = (dma->recvlen + 3) & ~3;
b1dma_writel(card, dma->recvbuf.dmaaddr+4, AMCC_RXPTR);
b1dma_writel(card, dma->recvbuf.dmaaddr + 4, AMCC_RXPTR);
b1dma_writel(card, rxlen, AMCC_RXLEN);
#ifdef AVM_B1DMA_DEBUG
} else {
@@ -694,7 +694,7 @@ static void b1dma_send_init(avmcard *card)
_put_byte(&p, 0);
_put_byte(&p, SEND_INIT);
_put_word(&p, CAPI_MAXAPPL);
_put_word(&p, AVM_NCCI_PER_CHANNEL*30);
_put_word(&p, AVM_NCCI_PER_CHANNEL * 30);
_put_word(&p, card->cardnr - 1);
skb_put(skb, (u8 *)p - (u8 *)skb->data);
@@ -733,8 +733,8 @@ int b1dma_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
card->csr = AVM_FLAG;
b1dma_writel(card, card->csr, AMCC_INTCSR);
b1dma_writel(card, EN_A2P_TRANSFERS|EN_P2A_TRANSFERS|A2P_HI_PRIORITY|
P2A_HI_PRIORITY|RESET_A2P_FLAGS|RESET_P2A_FLAGS,
b1dma_writel(card, EN_A2P_TRANSFERS | EN_P2A_TRANSFERS | A2P_HI_PRIORITY |
P2A_HI_PRIORITY | RESET_A2P_FLAGS | RESET_P2A_FLAGS,
AMCC_MCSR);
t1outp(card->port, 0x07, 0x30);
t1outp(card->port, 0x10, 0xF0);
@@ -793,7 +793,7 @@ void b1dma_register_appl(struct capi_ctr *ctrl,
_put_byte(&p, 0);
_put_byte(&p, SEND_REGISTER);
_put_word(&p, appl);
_put_word(&p, 1024 * (nconn+1));
_put_word(&p, 1024 * (nconn + 1));
_put_word(&p, nconn);
_put_word(&p, rp->datablkcnt);
_put_word(&p, rp->datablklen);
@@ -977,7 +977,7 @@ static int __init b1dma_init(void)
if ((p = strchr(revision, ':')) != NULL && p[1]) {
strlcpy(rev, p + 2, sizeof(rev));
if ((p = strchr(rev, '$')) != NULL && p > rev)
*(p-1) = 0;
*(p - 1) = 0;
} else
strcpy(rev, "1.0");

View File

@@ -80,7 +80,7 @@ static int b1isa_probe(struct pci_dev *pdev)
card->cardtype = avm_b1isa;
sprintf(card->name, "b1isa-%x", card->port);
if ( card->port != 0x150 && card->port != 0x250
if (card->port != 0x150 && card->port != 0x250
&& card->port != 0x300 && card->port != 0x340) {
printk(KERN_WARNING "b1isa: invalid port 0x%x.\n", card->port);
retval = -EINVAL;
@@ -136,13 +136,13 @@ static int b1isa_probe(struct pci_dev *pdev)
pci_set_drvdata(pdev, cinfo);
return 0;
err_free_irq:
err_free_irq:
free_irq(card->irq, card);
err_release_region:
err_release_region:
release_region(card->port, AVMB1_PORTLEN);
err_free:
err_free:
b1_free_card(card);
err:
err:
return retval;
}
@@ -206,7 +206,7 @@ static int __init b1isa_init(void)
if ((p = strchr(revision, ':')) != NULL && p[1]) {
strlcpy(rev, p + 2, 32);
if ((p = strchr(rev, '$')) != NULL && p > rev)
*(p-1) = 0;
*(p - 1) = 0;
} else
strcpy(rev, "1.0");

View File

@@ -133,13 +133,13 @@ static int b1pci_probe(struct capicardparams *p, struct pci_dev *pdev)
pci_set_drvdata(pdev, card);
return 0;
err_free_irq:
err_free_irq:
free_irq(card->irq, card);
err_release_region:
err_release_region:
release_region(card->port, AVMB1_PORTLEN);
err_free:
err_free:
b1_free_card(card);
err:
err:
return retval;
}
@@ -193,7 +193,7 @@ static int b1pciv4_probe(struct capicardparams *p, struct pci_dev *pdev)
goto err;
}
card->dma = avmcard_dma_alloc("b1pci", pdev, 2048+128, 2048+128);
card->dma = avmcard_dma_alloc("b1pci", pdev, 2048 + 128, 2048 + 128);
if (!card->dma) {
printk(KERN_WARNING "b1pci: dma alloc.\n");
retval = -ENOMEM;
@@ -267,17 +267,17 @@ static int b1pciv4_probe(struct capicardparams *p, struct pci_dev *pdev)
pci_set_drvdata(pdev, card);
return 0;
err_free_irq:
err_free_irq:
free_irq(card->irq, card);
err_unmap:
err_unmap:
iounmap(card->mbase);
err_release_region:
err_release_region:
release_region(card->port, AVMB1_PORTLEN);
err_free_dma:
err_free_dma:
avmcard_dma_free(card->dma);
err_free:
err_free:
b1_free_card(card);
err:
err:
return retval;
}
@@ -385,7 +385,7 @@ static int __init b1pci_init(void)
if ((p = strchr(revision, ':')) != NULL && p[1]) {
strlcpy(rev, p + 2, 32);
if ((p = strchr(rev, '$')) != NULL && p > rev)
*(p-1) = 0;
*(p - 1) = 0;
} else
strcpy(rev, "1.0");

View File

@@ -119,7 +119,7 @@ static int b1pcmcia_add_card(unsigned int port, unsigned irq,
switch (cardtype) {
case avm_m1: cardname = "M1"; break;
case avm_m2: cardname = "M2"; break;
default : cardname = "B1 PCMCIA"; break;
default: cardname = "B1 PCMCIA"; break;
}
printk(KERN_INFO "b1pcmcia: AVM %s at i/o %#x, irq %d, revision %d\n",
@@ -128,11 +128,11 @@ static int b1pcmcia_add_card(unsigned int port, unsigned irq,
list_add(&card->list, &cards);
return cinfo->capi_ctrl.cnr;
err_free_irq:
err_free_irq:
free_irq(card->irq, card);
err_free:
err_free:
b1_free_card(card);
err:
err:
return retval;
}
@@ -204,7 +204,7 @@ static int __init b1pcmcia_init(void)
if ((p = strchr(revision, ':')) != NULL && p[1]) {
strlcpy(rev, p + 2, 32);
if ((p = strchr(rev, '$')) != NULL && p > rev)
*(p-1) = 0;
*(p - 1) = 0;
} else
strcpy(rev, "1.0");

View File

@@ -129,8 +129,8 @@ static void c4_dispatch_tx(avmcard *card);
/* ------------------------------------------------------------- */
#define RESET_TIMEOUT (15*HZ) /* 15 sec */
#define PEEK_POKE_TIMEOUT (HZ/10) /* 0.1 sec */
#define RESET_TIMEOUT (15 * HZ) /* 15 sec */
#define PEEK_POKE_TIMEOUT (HZ / 10) /* 0.1 sec */
/* ------------------------------------------------------------- */
@@ -148,7 +148,7 @@ static inline int wait_for_doorbell(avmcard *card, unsigned long t)
unsigned long stop;
stop = jiffies + t;
while (c4inmeml(card->mbase+DOORBELL) != 0xffffffff) {
while (c4inmeml(card->mbase + DOORBELL) != 0xffffffff) {
if (!time_before(jiffies, stop))
return -1;
mb();
@@ -159,40 +159,40 @@ static inline int wait_for_doorbell(avmcard *card, unsigned long t)
static int c4_poke(avmcard *card, unsigned long off, unsigned long value)
{
if (wait_for_doorbell(card, HZ/10) < 0)
if (wait_for_doorbell(card, HZ / 10) < 0)
return -1;
c4outmeml(card->mbase+MBOX_PEEK_POKE, off);
c4outmeml(card->mbase+DOORBELL, DBELL_ADDR);
c4outmeml(card->mbase + MBOX_PEEK_POKE, off);
c4outmeml(card->mbase + DOORBELL, DBELL_ADDR);
if (wait_for_doorbell(card, HZ/10) < 0)
if (wait_for_doorbell(card, HZ / 10) < 0)
return -1;
c4outmeml(card->mbase+MBOX_PEEK_POKE, value);
c4outmeml(card->mbase+DOORBELL, DBELL_DATA | DBELL_ADDR);
c4outmeml(card->mbase + MBOX_PEEK_POKE, value);
c4outmeml(card->mbase + DOORBELL, DBELL_DATA | DBELL_ADDR);
return 0;
}
static int c4_peek(avmcard *card, unsigned long off, unsigned long *valuep)
{
if (wait_for_doorbell(card, HZ/10) < 0)
if (wait_for_doorbell(card, HZ / 10) < 0)
return -1;
c4outmeml(card->mbase+MBOX_PEEK_POKE, off);
c4outmeml(card->mbase+DOORBELL, DBELL_RNWR | DBELL_ADDR);
c4outmeml(card->mbase + MBOX_PEEK_POKE, off);
c4outmeml(card->mbase + DOORBELL, DBELL_RNWR | DBELL_ADDR);
if (wait_for_doorbell(card, HZ/10) < 0)
if (wait_for_doorbell(card, HZ / 10) < 0)
return -1;
*valuep = c4inmeml(card->mbase+MBOX_PEEK_POKE);
*valuep = c4inmeml(card->mbase + MBOX_PEEK_POKE);
return 0;
}
/* ------------------------------------------------------------- */
static int c4_load_t4file(avmcard *card, capiloaddatapart * t4file)
static int c4_load_t4file(avmcard *card, capiloaddatapart *t4file)
{
u32 val;
unsigned char *dp;
@@ -297,13 +297,13 @@ static void c4_reset(avmcard *card)
{
unsigned long stop;
c4outmeml(card->mbase+DOORBELL, DBELL_RESET_ARM);
c4outmeml(card->mbase + DOORBELL, DBELL_RESET_ARM);
stop = jiffies + HZ*10;
while (c4inmeml(card->mbase+DOORBELL) != 0xffffffff) {
stop = jiffies + HZ * 10;
while (c4inmeml(card->mbase + DOORBELL) != 0xffffffff) {
if (!time_before(jiffies, stop))
return;
c4outmeml(card->mbase+DOORBELL, DBELL_ADDR);
c4outmeml(card->mbase + DOORBELL, DBELL_ADDR);
mb();
}
@@ -317,38 +317,38 @@ static int c4_detect(avmcard *card)
{
unsigned long stop, dummy;
c4outmeml(card->mbase+PCI_OUT_INT_MASK, 0x0c);
if (c4inmeml(card->mbase+PCI_OUT_INT_MASK) != 0x0c)
c4outmeml(card->mbase + PCI_OUT_INT_MASK, 0x0c);
if (c4inmeml(card->mbase + PCI_OUT_INT_MASK) != 0x0c)
return 1;
c4outmeml(card->mbase+DOORBELL, DBELL_RESET_ARM);
c4outmeml(card->mbase + DOORBELL, DBELL_RESET_ARM);
stop = jiffies + HZ*10;
while (c4inmeml(card->mbase+DOORBELL) != 0xffffffff) {
stop = jiffies + HZ * 10;
while (c4inmeml(card->mbase + DOORBELL) != 0xffffffff) {
if (!time_before(jiffies, stop))
return 2;
c4outmeml(card->mbase+DOORBELL, DBELL_ADDR);
c4outmeml(card->mbase + DOORBELL, DBELL_ADDR);
mb();
}
c4_poke(card, DC21285_ARMCSR_BASE + CHAN_1_CONTROL, 0);
c4_poke(card, DC21285_ARMCSR_BASE + CHAN_2_CONTROL, 0);
c4outmeml(card->mbase+MAILBOX_0, 0x55aa55aa);
if (c4inmeml(card->mbase+MAILBOX_0) != 0x55aa55aa) return 3;
c4outmeml(card->mbase + MAILBOX_0, 0x55aa55aa);
if (c4inmeml(card->mbase + MAILBOX_0) != 0x55aa55aa) return 3;
c4outmeml(card->mbase+MAILBOX_0, 0xaa55aa55);
if (c4inmeml(card->mbase+MAILBOX_0) != 0xaa55aa55) return 4;
c4outmeml(card->mbase + MAILBOX_0, 0xaa55aa55);
if (c4inmeml(card->mbase + MAILBOX_0) != 0xaa55aa55) return 4;
if (c4_poke(card, DC21285_ARMCSR_BASE+DBELL_SA_MASK, 0)) return 5;
if (c4_poke(card, DC21285_ARMCSR_BASE+DBELL_PCI_MASK, 0)) return 6;
if (c4_poke(card, DC21285_ARMCSR_BASE+SA_CONTROL, SA_CTL_ALLRIGHT))
if (c4_poke(card, DC21285_ARMCSR_BASE + DBELL_SA_MASK, 0)) return 5;
if (c4_poke(card, DC21285_ARMCSR_BASE + DBELL_PCI_MASK, 0)) return 6;
if (c4_poke(card, DC21285_ARMCSR_BASE + SA_CONTROL, SA_CTL_ALLRIGHT))
return 7;
if (c4_poke(card, DC21285_ARMCSR_BASE+XBUS_CYCLE, INIT_XBUS_CYCLE))
if (c4_poke(card, DC21285_ARMCSR_BASE + XBUS_CYCLE, INIT_XBUS_CYCLE))
return 8;
if (c4_poke(card, DC21285_ARMCSR_BASE+XBUS_STROBE, INIT_XBUS_STROBE))
if (c4_poke(card, DC21285_ARMCSR_BASE + XBUS_STROBE, INIT_XBUS_STROBE))
return 8;
if (c4_poke(card, DC21285_ARMCSR_BASE+DRAM_TIMING, 0)) return 9;
if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_TIMING, 0)) return 9;
mdelay(1);
@@ -357,46 +357,46 @@ static int c4_detect(avmcard *card)
if (c4_peek(card, DC21285_DRAM_A2MR, &dummy)) return 12;
if (c4_peek(card, DC21285_DRAM_A3MR, &dummy)) return 13;
if (c4_poke(card, DC21285_DRAM_A0MR+CAS_OFFSET, 0)) return 14;
if (c4_poke(card, DC21285_DRAM_A1MR+CAS_OFFSET, 0)) return 15;
if (c4_poke(card, DC21285_DRAM_A2MR+CAS_OFFSET, 0)) return 16;
if (c4_poke(card, DC21285_DRAM_A3MR+CAS_OFFSET, 0)) return 17;
if (c4_poke(card, DC21285_DRAM_A0MR + CAS_OFFSET, 0)) return 14;
if (c4_poke(card, DC21285_DRAM_A1MR + CAS_OFFSET, 0)) return 15;
if (c4_poke(card, DC21285_DRAM_A2MR + CAS_OFFSET, 0)) return 16;
if (c4_poke(card, DC21285_DRAM_A3MR + CAS_OFFSET, 0)) return 17;
mdelay(1);
if (c4_poke(card, DC21285_ARMCSR_BASE+DRAM_TIMING, DRAM_TIMING_DEF))
if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_TIMING, DRAM_TIMING_DEF))
return 18;
if (c4_poke(card, DC21285_ARMCSR_BASE+DRAM_ADDR_SIZE_0,DRAM_AD_SZ_DEF0))
if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_ADDR_SIZE_0, DRAM_AD_SZ_DEF0))
return 19;
if (c4_poke(card, DC21285_ARMCSR_BASE+DRAM_ADDR_SIZE_1,DRAM_AD_SZ_NULL))
if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_ADDR_SIZE_1, DRAM_AD_SZ_NULL))
return 20;
if (c4_poke(card, DC21285_ARMCSR_BASE+DRAM_ADDR_SIZE_2,DRAM_AD_SZ_NULL))
if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_ADDR_SIZE_2, DRAM_AD_SZ_NULL))
return 21;
if (c4_poke(card, DC21285_ARMCSR_BASE+DRAM_ADDR_SIZE_3,DRAM_AD_SZ_NULL))
if (c4_poke(card, DC21285_ARMCSR_BASE + DRAM_ADDR_SIZE_3, DRAM_AD_SZ_NULL))
return 22;
/* Transputer test */
if ( c4_poke(card, 0x000000, 0x11111111)
if (c4_poke(card, 0x000000, 0x11111111)
|| c4_poke(card, 0x400000, 0x22222222)
|| c4_poke(card, 0x800000, 0x33333333)
|| c4_poke(card, 0xC00000, 0x44444444))
return 23;
if ( c4_peek(card, 0x000000, &dummy) || dummy != 0x11111111
if (c4_peek(card, 0x000000, &dummy) || dummy != 0x11111111
|| c4_peek(card, 0x400000, &dummy) || dummy != 0x22222222
|| c4_peek(card, 0x800000, &dummy) || dummy != 0x33333333
|| c4_peek(card, 0xC00000, &dummy) || dummy != 0x44444444)
return 24;
if ( c4_poke(card, 0x000000, 0x55555555)
if (c4_poke(card, 0x000000, 0x55555555)
|| c4_poke(card, 0x400000, 0x66666666)
|| c4_poke(card, 0x800000, 0x77777777)
|| c4_poke(card, 0xC00000, 0x88888888))
return 25;
if ( c4_peek(card, 0x000000, &dummy) || dummy != 0x55555555
if (c4_peek(card, 0x000000, &dummy) || dummy != 0x55555555
|| c4_peek(card, 0x400000, &dummy) || dummy != 0x66666666
|| c4_peek(card, 0x800000, &dummy) || dummy != 0x77777777
|| c4_peek(card, 0xC00000, &dummy) || dummy != 0x88888888)
@@ -451,7 +451,7 @@ static void c4_dispatch_tx(avmcard *card)
printk(KERN_DEBUG "%s: tx put msg len=%d\n", card->name, txlen);
#endif
} else {
txlen = skb->len-2;
txlen = skb->len - 2;
#ifdef AVM_C4_POLLDEBUG
if (skb->data[2] == SEND_POLLACK)
printk(KERN_INFO "%s: ack to c4\n", card->name);
@@ -465,12 +465,12 @@ static void c4_dispatch_tx(avmcard *card)
}
txlen = (txlen + 3) & ~3;
c4outmeml(card->mbase+MBOX_DOWN_ADDR, dma->sendbuf.dmaaddr);
c4outmeml(card->mbase+MBOX_DOWN_LEN, txlen);
c4outmeml(card->mbase + MBOX_DOWN_ADDR, dma->sendbuf.dmaaddr);
c4outmeml(card->mbase + MBOX_DOWN_LEN, txlen);
card->csr |= DBELL_DOWN_ARM;
c4outmeml(card->mbase+DOORBELL, DBELL_DOWN_ARM);
c4outmeml(card->mbase + DOORBELL, DBELL_DOWN_ARM);
dev_kfree_skb_any(skb);
}
@@ -528,11 +528,11 @@ static void c4_handle_rx(avmcard *card)
ctrl = &card->ctrlinfo[cidx].capi_ctrl;
if (MsgLen < 30) { /* not CAPI 64Bit */
memset(card->msgbuf+MsgLen, 0, 30-MsgLen);
memset(card->msgbuf + MsgLen, 0, 30 - MsgLen);
MsgLen = 30;
CAPIMSG_SETLEN(card->msgbuf, 30);
}
if (!(skb = alloc_skb(DataB3Len+MsgLen, GFP_ATOMIC))) {
if (!(skb = alloc_skb(DataB3Len + MsgLen, GFP_ATOMIC))) {
printk(KERN_ERR "%s: incoming packet dropped\n",
card->name);
} else {
@@ -570,7 +570,7 @@ static void c4_handle_rx(avmcard *card)
ApplId = _get_word(&p);
NCCI = _get_word(&p);
WindowSize = _get_word(&p);
cidx = (NCCI&0x7f) - card->cardnr;
cidx = (NCCI & 0x7f) - card->cardnr;
if (cidx >= card->nlogcontr) cidx = 0;
capilib_new_ncci(&card->ctrlinfo[cidx].ncci_head, ApplId, NCCI, WindowSize);
@@ -583,7 +583,7 @@ static void c4_handle_rx(avmcard *card)
NCCI = _get_word(&p);
if (NCCI != 0xffffffff) {
cidx = (NCCI&0x7f) - card->cardnr;
cidx = (NCCI & 0x7f) - card->cardnr;
if (cidx >= card->nlogcontr) cidx = 0;
capilib_free_ncci(&card->ctrlinfo[cidx].ncci_head, ApplId, NCCI);
}
@@ -595,14 +595,14 @@ static void c4_handle_rx(avmcard *card)
#endif
if (!suppress_pollack)
queue_pollack(card);
for (cidx=0; cidx < card->nr_controllers; cidx++) {
for (cidx = 0; cidx < card->nr_controllers; cidx++) {
ctrl = &card->ctrlinfo[cidx].capi_ctrl;
capi_ctr_resume_output(ctrl);
}
break;
case RECEIVE_STOP:
for (cidx=0; cidx < card->nr_controllers; cidx++) {
for (cidx = 0; cidx < card->nr_controllers; cidx++) {
ctrl = &card->ctrlinfo[cidx].capi_ctrl;
capi_ctr_suspend_output(ctrl);
}
@@ -613,7 +613,7 @@ static void c4_handle_rx(avmcard *card)
cidx = card->nlogcontr;
if (cidx >= card->nr_controllers) {
printk(KERN_ERR "%s: card with %d controllers ??\n",
card->name, cidx+1);
card->name, cidx + 1);
break;
}
card->nlogcontr++;
@@ -632,10 +632,10 @@ static void c4_handle_rx(avmcard *card)
ApplId = (unsigned) _get_word(&p);
MsgLen = _get_slice(&p, card->msgbuf);
card->msgbuf[MsgLen] = 0;
while ( MsgLen > 0
&& ( card->msgbuf[MsgLen-1] == '\n'
|| card->msgbuf[MsgLen-1] == '\r')) {
card->msgbuf[MsgLen-1] = 0;
while (MsgLen > 0
&& (card->msgbuf[MsgLen - 1] == '\n'
|| card->msgbuf[MsgLen - 1] == '\r')) {
card->msgbuf[MsgLen - 1] = 0;
MsgLen--;
}
printk(KERN_INFO "%s: task %d \"%s\" ready.\n",
@@ -645,10 +645,10 @@ static void c4_handle_rx(avmcard *card)
case RECEIVE_DEBUGMSG:
MsgLen = _get_slice(&p, card->msgbuf);
card->msgbuf[MsgLen] = 0;
while ( MsgLen > 0
&& ( card->msgbuf[MsgLen-1] == '\n'
|| card->msgbuf[MsgLen-1] == '\r')) {
card->msgbuf[MsgLen-1] = 0;
while (MsgLen > 0
&& (card->msgbuf[MsgLen - 1] == '\n'
|| card->msgbuf[MsgLen - 1] == '\r')) {
card->msgbuf[MsgLen - 1] = 0;
MsgLen--;
}
printk(KERN_INFO "%s: DEBUG: %s\n", card->name, card->msgbuf);
@@ -669,16 +669,16 @@ static irqreturn_t c4_handle_interrupt(avmcard *card)
u32 status;
spin_lock_irqsave(&card->lock, flags);
status = c4inmeml(card->mbase+DOORBELL);
status = c4inmeml(card->mbase + DOORBELL);
if (status & DBELL_RESET_HOST) {
u_int i;
c4outmeml(card->mbase+PCI_OUT_INT_MASK, 0x0c);
c4outmeml(card->mbase + PCI_OUT_INT_MASK, 0x0c);
spin_unlock_irqrestore(&card->lock, flags);
if (card->nlogcontr == 0)
return IRQ_HANDLED;
printk(KERN_ERR "%s: unexpected reset\n", card->name);
for (i=0; i < card->nr_controllers; i++) {
for (i = 0; i < card->nr_controllers; i++) {
avmctrl_info *cinfo = &card->ctrlinfo[i];
memset(cinfo->version, 0, sizeof(cinfo->version));
spin_lock_irqsave(&card->lock, flags);
@@ -695,22 +695,22 @@ static irqreturn_t c4_handle_interrupt(avmcard *card)
spin_unlock_irqrestore(&card->lock, flags);
return IRQ_HANDLED;
}
c4outmeml(card->mbase+DOORBELL, status);
c4outmeml(card->mbase + DOORBELL, status);
if ((status & DBELL_UP_HOST) != 0) {
card->dma->recvlen = c4inmeml(card->mbase+MBOX_UP_LEN);
c4outmeml(card->mbase+MBOX_UP_LEN, 0);
card->dma->recvlen = c4inmeml(card->mbase + MBOX_UP_LEN);
c4outmeml(card->mbase + MBOX_UP_LEN, 0);
c4_handle_rx(card);
card->dma->recvlen = 0;
c4outmeml(card->mbase+MBOX_UP_LEN, card->dma->recvbuf.size);
c4outmeml(card->mbase+DOORBELL, DBELL_UP_ARM);
c4outmeml(card->mbase + MBOX_UP_LEN, card->dma->recvbuf.size);
c4outmeml(card->mbase + DOORBELL, DBELL_UP_ARM);
}
if ((status & DBELL_DOWN_HOST) != 0) {
card->csr &= ~DBELL_DOWN_ARM;
c4_dispatch_tx(card);
} else if (card->csr & DBELL_DOWN_HOST) {
if (c4inmeml(card->mbase+MBOX_DOWN_LEN) == 0) {
if (c4inmeml(card->mbase + MBOX_DOWN_LEN) == 0) {
card->csr &= ~DBELL_DOWN_ARM;
c4_dispatch_tx(card);
}
@@ -745,7 +745,7 @@ static void c4_send_init(avmcard *card)
_put_byte(&p, 0);
_put_byte(&p, SEND_INIT);
_put_word(&p, CAPI_MAXAPPL);
_put_word(&p, AVM_NCCI_PER_CHANNEL*30);
_put_word(&p, AVM_NCCI_PER_CHANNEL * 30);
_put_word(&p, card->cardnr - 1);
skb_put(skb, (u8 *)p - (u8 *)skb->data);
@@ -761,7 +761,7 @@ static int queue_sendconfigword(avmcard *card, u32 val)
unsigned long flags;
void *p;
skb = alloc_skb(3+4, GFP_ATOMIC);
skb = alloc_skb(3 + 4, GFP_ATOMIC);
if (!skb) {
printk(KERN_CRIT "%s: no memory, send config\n",
card->name);
@@ -787,7 +787,7 @@ static int queue_sendconfig(avmcard *card, char cval[4])
unsigned long flags;
void *p;
skb = alloc_skb(3+4, GFP_ATOMIC);
skb = alloc_skb(3 + 4, GFP_ATOMIC);
if (!skb) {
printk(KERN_CRIT "%s: no memory, send config\n",
card->name);
@@ -811,7 +811,7 @@ static int queue_sendconfig(avmcard *card, char cval[4])
return 0;
}
static int c4_send_config(avmcard *card, capiloaddatapart * config)
static int c4_send_config(avmcard *card, capiloaddatapart *config)
{
u8 val[4];
unsigned char *dp;
@@ -866,19 +866,19 @@ static int c4_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
}
card->csr = 0;
c4outmeml(card->mbase+MBOX_UP_LEN, 0);
c4outmeml(card->mbase+MBOX_DOWN_LEN, 0);
c4outmeml(card->mbase+DOORBELL, DBELL_INIT);
c4outmeml(card->mbase + MBOX_UP_LEN, 0);
c4outmeml(card->mbase + MBOX_DOWN_LEN, 0);
c4outmeml(card->mbase + DOORBELL, DBELL_INIT);
mdelay(1);
c4outmeml(card->mbase+DOORBELL,
c4outmeml(card->mbase + DOORBELL,
DBELL_UP_HOST | DBELL_DOWN_HOST | DBELL_RESET_HOST);
c4outmeml(card->mbase+PCI_OUT_INT_MASK, 0x08);
c4outmeml(card->mbase + PCI_OUT_INT_MASK, 0x08);
card->dma->recvlen = 0;
c4outmeml(card->mbase+MBOX_UP_ADDR, card->dma->recvbuf.dmaaddr);
c4outmeml(card->mbase+MBOX_UP_LEN, card->dma->recvbuf.size);
c4outmeml(card->mbase+DOORBELL, DBELL_UP_ARM);
c4outmeml(card->mbase + MBOX_UP_ADDR, card->dma->recvbuf.dmaaddr);
c4outmeml(card->mbase + MBOX_UP_LEN, card->dma->recvbuf.size);
c4outmeml(card->mbase + DOORBELL, DBELL_UP_ARM);
if (data->configuration.len > 0 && data->configuration.data) {
retval = c4_send_config(card, &data->configuration);
@@ -909,7 +909,7 @@ static void c4_reset_ctr(struct capi_ctr *ctrl)
spin_unlock_irqrestore(&card->lock, flags);
for (i=0; i < card->nr_controllers; i++) {
for (i = 0; i < card->nr_controllers; i++) {
cinfo = &card->ctrlinfo[i];
memset(cinfo->version, 0, sizeof(cinfo->version));
capi_ctr_down(&cinfo->capi_ctrl);
@@ -928,7 +928,7 @@ static void c4_remove(struct pci_dev *pdev)
c4_reset(card);
for (i=0; i < card->nr_controllers; i++) {
for (i = 0; i < card->nr_controllers; i++) {
cinfo = &card->ctrlinfo[i];
detach_capi_ctr(&cinfo->capi_ctrl);
}
@@ -973,7 +973,7 @@ static void c4_register_appl(struct capi_ctr *ctrl,
_put_byte(&p, 0);
_put_byte(&p, SEND_REGISTER);
_put_word(&p, appl);
_put_word(&p, 1024 * (nconn+1));
_put_word(&p, 1024 * (nconn + 1));
_put_word(&p, nconn);
_put_word(&p, rp->datablkcnt);
_put_word(&p, rp->datablklen);
@@ -1156,7 +1156,7 @@ static int c4_add_card(struct capicardparams *p, struct pci_dev *dev,
retval = -ENOMEM;
goto err;
}
card->dma = avmcard_dma_alloc("c4", dev, 2048+128, 2048+128);
card->dma = avmcard_dma_alloc("c4", dev, 2048 + 128, 2048 + 128);
if (!card->dma) {
printk(KERN_WARNING "c4: no memory.\n");
retval = -ENOMEM;
@@ -1195,12 +1195,12 @@ static int c4_add_card(struct capicardparams *p, struct pci_dev *dev,
retval = request_irq(card->irq, c4_interrupt, IRQF_SHARED, card->name, card);
if (retval) {
printk(KERN_ERR "c4: unable to get IRQ %d.\n",card->irq);
printk(KERN_ERR "c4: unable to get IRQ %d.\n", card->irq);
retval = -EBUSY;
goto err_unmap;
}
for (i=0; i < nr_controllers ; i++) {
for (i = 0; i < nr_controllers; i++) {
cinfo = &card->ctrlinfo[i];
cinfo->capi_ctrl.owner = THIS_MODULE;
cinfo->capi_ctrl.driver_name = "c4";
@@ -1233,17 +1233,17 @@ static int c4_add_card(struct capicardparams *p, struct pci_dev *dev,
pci_set_drvdata(dev, card);
return 0;
err_free_irq:
err_free_irq:
free_irq(card->irq, card);
err_unmap:
err_unmap:
iounmap(card->mbase);
err_release_region:
err_release_region:
release_region(card->port, AVMB1_PORTLEN);
err_free_dma:
err_free_dma:
avmcard_dma_free(card->dma);
err_free:
err_free:
b1_free_card(card);
err:
err:
return retval;
}
@@ -1305,7 +1305,7 @@ static int __init c4_init(void)
if ((p = strchr(revision, ':')) != NULL && p[1]) {
strlcpy(rev, p + 2, 32);
if ((p = strchr(rev, '$')) != NULL && p > rev)
*(p-1) = 0;
*(p - 1) = 0;
} else
strcpy(rev, "1.0");

View File

@@ -86,48 +86,48 @@ static int t1_detectandinit(unsigned int base, unsigned irq, int cardnr)
/* board reset */
t1outp(base, T1_RESETBOARD, 0xf);
mdelay(100);
dummy = t1inp(base, T1_FASTLINK+T1_OUTSTAT); /* first read */
dummy = t1inp(base, T1_FASTLINK + T1_OUTSTAT); /* first read */
/* write config */
dummy = (base >> 4) & 0xff;
for (i=1;i<=0xf;i++) t1outp(base, i, dummy);
for (i = 1; i <= 0xf; i++) t1outp(base, i, dummy);
t1outp(base, HEMA_PAL_ID & 0xf, dummy);
t1outp(base, HEMA_PAL_ID >> 4, cregs[0]);
for(i=1;i<7;i++) t1outp(base, 0, cregs[i]);
for (i = 1; i < 7; i++) t1outp(base, 0, cregs[i]);
t1outp(base, ((base >> 4)) & 0x3, cregs[7]);
/* restore_flags(flags); */
mdelay(100);
t1outp(base, T1_FASTLINK+T1_RESETLINK, 0);
t1outp(base, T1_SLOWLINK+T1_RESETLINK, 0);
t1outp(base, T1_FASTLINK + T1_RESETLINK, 0);
t1outp(base, T1_SLOWLINK + T1_RESETLINK, 0);
mdelay(10);
t1outp(base, T1_FASTLINK+T1_RESETLINK, 1);
t1outp(base, T1_SLOWLINK+T1_RESETLINK, 1);
t1outp(base, T1_FASTLINK + T1_RESETLINK, 1);
t1outp(base, T1_SLOWLINK + T1_RESETLINK, 1);
mdelay(100);
t1outp(base, T1_FASTLINK+T1_RESETLINK, 0);
t1outp(base, T1_SLOWLINK+T1_RESETLINK, 0);
t1outp(base, T1_FASTLINK + T1_RESETLINK, 0);
t1outp(base, T1_SLOWLINK + T1_RESETLINK, 0);
mdelay(10);
t1outp(base, T1_FASTLINK+T1_ANALYSE, 0);
t1outp(base, T1_FASTLINK + T1_ANALYSE, 0);
mdelay(5);
t1outp(base, T1_SLOWLINK+T1_ANALYSE, 0);
t1outp(base, T1_SLOWLINK + T1_ANALYSE, 0);
if (t1inp(base, T1_FASTLINK+T1_OUTSTAT) != 0x1) /* tx empty */
if (t1inp(base, T1_FASTLINK + T1_OUTSTAT) != 0x1) /* tx empty */
return 1;
if (t1inp(base, T1_FASTLINK+T1_INSTAT) != 0x0) /* rx empty */
if (t1inp(base, T1_FASTLINK + T1_INSTAT) != 0x0) /* rx empty */
return 2;
if (t1inp(base, T1_FASTLINK+T1_IRQENABLE) != 0x0)
if (t1inp(base, T1_FASTLINK + T1_IRQENABLE) != 0x0)
return 3;
if ((t1inp(base, T1_FASTLINK+T1_FIFOSTAT) & 0xf0) != 0x70)
if ((t1inp(base, T1_FASTLINK + T1_FIFOSTAT) & 0xf0) != 0x70)
return 4;
if ((t1inp(base, T1_FASTLINK+T1_IRQMASTER) & 0x0e) != 0)
if ((t1inp(base, T1_FASTLINK + T1_IRQMASTER) & 0x0e) != 0)
return 5;
if ((t1inp(base, T1_FASTLINK+T1_IDENT) & 0x7d) != 1)
if ((t1inp(base, T1_FASTLINK + T1_IDENT) & 0x7d) != 1)
return 6;
if (t1inp(base, T1_SLOWLINK+T1_OUTSTAT) != 0x1) /* tx empty */
if (t1inp(base, T1_SLOWLINK + T1_OUTSTAT) != 0x1) /* tx empty */
return 7;
if ((t1inp(base, T1_SLOWLINK+T1_IRQMASTER) & 0x0e) != 0)
if ((t1inp(base, T1_SLOWLINK + T1_IRQMASTER) & 0x0e) != 0)
return 8;
if ((t1inp(base, T1_SLOWLINK+T1_IDENT) & 0x7d) != 0)
if ((t1inp(base, T1_SLOWLINK + T1_IDENT) & 0x7d) != 0)
return 9;
return 0;
}
@@ -163,11 +163,11 @@ static irqreturn_t t1isa_interrupt(int interrupt, void *devptr)
spin_unlock_irqrestore(&card->lock, flags);
if (MsgLen < 30) { /* not CAPI 64Bit */
memset(card->msgbuf+MsgLen, 0, 30-MsgLen);
memset(card->msgbuf + MsgLen, 0, 30 - MsgLen);
MsgLen = 30;
CAPIMSG_SETLEN(card->msgbuf, 30);
}
if (!(skb = alloc_skb(DataB3Len+MsgLen, GFP_ATOMIC))) {
if (!(skb = alloc_skb(DataB3Len + MsgLen, GFP_ATOMIC))) {
printk(KERN_ERR "%s: incoming packet dropped\n",
card->name);
} else {
@@ -242,10 +242,10 @@ static irqreturn_t t1isa_interrupt(int interrupt, void *devptr)
MsgLen = t1_get_slice(card->port, card->msgbuf);
spin_unlock_irqrestore(&card->lock, flags);
card->msgbuf[MsgLen] = 0;
while ( MsgLen > 0
&& ( card->msgbuf[MsgLen-1] == '\n'
|| card->msgbuf[MsgLen-1] == '\r')) {
card->msgbuf[MsgLen-1] = 0;
while (MsgLen > 0
&& (card->msgbuf[MsgLen - 1] == '\n'
|| card->msgbuf[MsgLen - 1] == '\r')) {
card->msgbuf[MsgLen - 1] = 0;
MsgLen--;
}
printk(KERN_INFO "%s: task %d \"%s\" ready.\n",
@@ -256,10 +256,10 @@ static irqreturn_t t1isa_interrupt(int interrupt, void *devptr)
MsgLen = t1_get_slice(card->port, card->msgbuf);
spin_unlock_irqrestore(&card->lock, flags);
card->msgbuf[MsgLen] = 0;
while ( MsgLen > 0
&& ( card->msgbuf[MsgLen-1] == '\n'
|| card->msgbuf[MsgLen-1] == '\r')) {
card->msgbuf[MsgLen-1] = 0;
while (MsgLen > 0
&& (card->msgbuf[MsgLen - 1] == '\n'
|| card->msgbuf[MsgLen - 1] == '\r')) {
card->msgbuf[MsgLen - 1] = 0;
MsgLen--;
}
printk(KERN_INFO "%s: DEBUG: %s\n", card->name, card->msgbuf);
@@ -318,7 +318,7 @@ static int t1isa_load_firmware(struct capi_ctr *ctrl, capiloaddata *data)
b1_setinterrupt(port, card->irq, card->cardtype);
b1_put_byte(port, SEND_INIT);
b1_put_word(port, CAPI_MAXAPPL);
b1_put_word(port, AVM_NCCI_PER_CHANNEL*30);
b1_put_word(port, AVM_NCCI_PER_CHANNEL * 30);
b1_put_word(port, ctrl->cnr - 1);
spin_unlock_irqrestore(&card->lock, flags);
@@ -445,13 +445,13 @@ static int t1isa_probe(struct pci_dev *pdev, int cardnr)
pci_set_drvdata(pdev, cinfo);
return 0;
err_free_irq:
err_free_irq:
free_irq(card->irq, card);
err_release_region:
err_release_region:
release_region(card->port, AVMB1_PORTLEN);
err_free:
err_free:
b1_free_card(card);
err:
err:
return retval;
}
@@ -555,7 +555,7 @@ static int __init t1isa_init(void)
if ((p = strchr(revision, ':')) != NULL && p[1]) {
strlcpy(rev, p + 2, 32);
if ((p = strchr(rev, '$')) != NULL && p > rev)
*(p-1) = 0;
*(p - 1) = 0;
} else
strcpy(rev, "1.0");

View File

@@ -59,7 +59,7 @@ static int t1pci_add_card(struct capicardparams *p, struct pci_dev *pdev)
goto err;
}
card->dma = avmcard_dma_alloc("t1pci", pdev, 2048+128, 2048+128);
card->dma = avmcard_dma_alloc("t1pci", pdev, 2048 + 128, 2048 + 128);
if (!card->dma) {
printk(KERN_WARNING "t1pci: no memory.\n");
retval = -ENOMEM;
@@ -136,17 +136,17 @@ static int t1pci_add_card(struct capicardparams *p, struct pci_dev *pdev)
pci_set_drvdata(pdev, card);
return 0;
err_free_irq:
err_free_irq:
free_irq(card->irq, card);
err_unmap:
err_unmap:
iounmap(card->mbase);
err_release_region:
err_release_region:
release_region(card->port, AVMB1_PORTLEN);
err_free_dma:
err_free_dma:
avmcard_dma_free(card->dma);
err_free:
err_free:
b1_free_card(card);
err:
err:
return retval;
}
@@ -237,7 +237,7 @@ static int __init t1pci_init(void)
if ((p = strchr(revision, ':')) != NULL && p[1]) {
strlcpy(rev, p + 2, 32);
if ((p = strchr(rev, '$')) != NULL && p > rev)
*(p-1) = 0;
*(p - 1) = 0;
} else
strcpy(rev, "1.0");

View File

@@ -25,29 +25,29 @@
*/
#ifndef _INC_CAPI20
#define _INC_CAPI20
/* operations on message queues */
/* the common device type for CAPI20 drivers */
/* operations on message queues */
/* the common device type for CAPI20 drivers */
#define FILE_DEVICE_CAPI20 0x8001
/* DEVICE_CONTROL codes for user and kernel mode applications */
/* DEVICE_CONTROL codes for user and kernel mode applications */
#define CAPI20_CTL_REGISTER 0x0801
#define CAPI20_CTL_RELEASE 0x0802
#define CAPI20_CTL_GET_MANUFACTURER 0x0805
#define CAPI20_CTL_GET_VERSION 0x0806
#define CAPI20_CTL_GET_SERIAL 0x0807
#define CAPI20_CTL_GET_PROFILE 0x0808
/* INTERNAL_DEVICE_CONTROL codes for kernel mode applicatios only */
/* INTERNAL_DEVICE_CONTROL codes for kernel mode applicatios only */
#define CAPI20_CTL_PUT_MESSAGE 0x0803
#define CAPI20_CTL_GET_MESSAGE 0x0804
/* the wrapped codes as required by the system */
#define CAPI_CTL_CODE(f,m) CTL_CODE(FILE_DEVICE_CAPI20,f,m,FILE_ANY_ACCESS)
#define IOCTL_CAPI_REGISTER CAPI_CTL_CODE(CAPI20_CTL_REGISTER,METHOD_BUFFERED)
#define IOCTL_CAPI_RELEASE CAPI_CTL_CODE(CAPI20_CTL_RELEASE,METHOD_BUFFERED)
#define IOCTL_CAPI_GET_MANUFACTURER CAPI_CTL_CODE(CAPI20_CTL_GET_MANUFACTURER,METHOD_BUFFERED)
#define IOCTL_CAPI_GET_VERSION CAPI_CTL_CODE(CAPI20_CTL_GET_VERSION,METHOD_BUFFERED)
#define IOCTL_CAPI_GET_SERIAL CAPI_CTL_CODE(CAPI20_CTL_GET_SERIAL,METHOD_BUFFERED)
#define IOCTL_CAPI_GET_PROFILE CAPI_CTL_CODE(CAPI20_CTL_GET_PROFILE,METHOD_BUFFERED)
#define IOCTL_CAPI_PUT_MESSAGE CAPI_CTL_CODE(CAPI20_CTL_PUT_MESSAGE,METHOD_BUFFERED)
#define IOCTL_CAPI_GET_MESSAGE CAPI_CTL_CODE(CAPI20_CTL_GET_MESSAGE,METHOD_BUFFERED)
/* the wrapped codes as required by the system */
#define CAPI_CTL_CODE(f, m) CTL_CODE(FILE_DEVICE_CAPI20, f, m, FILE_ANY_ACCESS)
#define IOCTL_CAPI_REGISTER CAPI_CTL_CODE(CAPI20_CTL_REGISTER, METHOD_BUFFERED)
#define IOCTL_CAPI_RELEASE CAPI_CTL_CODE(CAPI20_CTL_RELEASE, METHOD_BUFFERED)
#define IOCTL_CAPI_GET_MANUFACTURER CAPI_CTL_CODE(CAPI20_CTL_GET_MANUFACTURER, METHOD_BUFFERED)
#define IOCTL_CAPI_GET_VERSION CAPI_CTL_CODE(CAPI20_CTL_GET_VERSION, METHOD_BUFFERED)
#define IOCTL_CAPI_GET_SERIAL CAPI_CTL_CODE(CAPI20_CTL_GET_SERIAL, METHOD_BUFFERED)
#define IOCTL_CAPI_GET_PROFILE CAPI_CTL_CODE(CAPI20_CTL_GET_PROFILE, METHOD_BUFFERED)
#define IOCTL_CAPI_PUT_MESSAGE CAPI_CTL_CODE(CAPI20_CTL_PUT_MESSAGE, METHOD_BUFFERED)
#define IOCTL_CAPI_GET_MESSAGE CAPI_CTL_CODE(CAPI20_CTL_GET_MESSAGE, METHOD_BUFFERED)
struct divas_capi_register_params {
word MessageBufferSize;
word maxLogicalConnection;
@@ -68,7 +68,7 @@ typedef struct api_profile_s {
dword B2_Protocols;
dword B3_Protocols;
} API_PROFILE;
/* ISDN Common API message types */
/* ISDN Common API message types */
#define _ALERT_R 0x8001
#define _CONNECT_R 0x8002
#define _CONNECT_I 0x8202
@@ -93,9 +93,9 @@ typedef struct api_profile_s {
#define _CONNECT_B3_T90_ACTIVE_I 0x8288
#define _MANUFACTURER_R 0x80ff
#define _MANUFACTURER_I 0x82ff
/* OR this to convert a REQUEST to a CONFIRM */
/* OR this to convert a REQUEST to a CONFIRM */
#define CONFIRM 0x0100
/* OR this to convert a INDICATION to a RESPONSE */
/* OR this to convert a INDICATION to a RESPONSE */
#define RESPONSE 0x0100
/*------------------------------------------------------------------*/
/* diehl isdn private MANUFACTURER codes */
@@ -115,15 +115,15 @@ typedef struct api_profile_s {
/*------------------------------------------------------------------*/
/* parameter structures */
/*------------------------------------------------------------------*/
/* ALERT-REQUEST */
/* ALERT-REQUEST */
typedef struct {
byte structs[0]; /* Additional Info */
} _ALT_REQP;
/* ALERT-CONFIRM */
/* ALERT-CONFIRM */
typedef struct {
word Info;
} _ALT_CONP;
/* CONNECT-REQUEST */
/* CONNECT-REQUEST */
typedef struct {
word CIP_Value;
byte structs[0]; /* Called party number,
@@ -136,11 +136,11 @@ typedef struct {
HLC,
Additional Info */
} _CON_REQP;
/* CONNECT-CONFIRM */
/* CONNECT-CONFIRM */
typedef struct {
word Info;
} _CON_CONP;
/* CONNECT-INDICATION */
/* CONNECT-INDICATION */
typedef struct {
word CIP_Value;
byte structs[0]; /* Called party number,
@@ -152,7 +152,7 @@ typedef struct {
HLC,
Additional Info */
} _CON_INDP;
/* CONNECT-RESPONSE */
/* CONNECT-RESPONSE */
typedef struct {
word Accept;
byte structs[0]; /* B_protocol,
@@ -160,75 +160,75 @@ typedef struct {
Connected party subaddress,
LLC */
} _CON_RESP;
/* CONNECT-ACTIVE-INDICATION */
/* CONNECT-ACTIVE-INDICATION */
typedef struct {
byte structs[0]; /* Connected party number,
Connected party subaddress,
LLC */
} _CON_A_INDP;
/* CONNECT-ACTIVE-RESPONSE */
/* CONNECT-ACTIVE-RESPONSE */
typedef struct {
byte structs[0]; /* empty */
} _CON_A_RESP;
/* DISCONNECT-REQUEST */
/* DISCONNECT-REQUEST */
typedef struct {
byte structs[0]; /* Additional Info */
} _DIS_REQP;
/* DISCONNECT-CONFIRM */
/* DISCONNECT-CONFIRM */
typedef struct {
word Info;
} _DIS_CONP;
/* DISCONNECT-INDICATION */
/* DISCONNECT-INDICATION */
typedef struct {
word Info;
} _DIS_INDP;
/* DISCONNECT-RESPONSE */
/* DISCONNECT-RESPONSE */
typedef struct {
byte structs[0]; /* empty */
} _DIS_RESP;
/* LISTEN-REQUEST */
/* LISTEN-REQUEST */
typedef struct {
dword Info_Mask;
dword CIP_Mask;
byte structs[0]; /* Calling party number,
Calling party subaddress */
} _LIS_REQP;
/* LISTEN-CONFIRM */
/* LISTEN-CONFIRM */
typedef struct {
word Info;
} _LIS_CONP;
/* INFO-REQUEST */
/* INFO-REQUEST */
typedef struct {
byte structs[0]; /* Called party number,
Additional Info */
} _INF_REQP;
/* INFO-CONFIRM */
/* INFO-CONFIRM */
typedef struct {
word Info;
} _INF_CONP;
/* INFO-INDICATION */
/* INFO-INDICATION */
typedef struct {
word Number;
byte structs[0]; /* Info element */
} _INF_INDP;
/* INFO-RESPONSE */
/* INFO-RESPONSE */
typedef struct {
byte structs[0]; /* empty */
} _INF_RESP;
/* SELECT-B-REQUEST */
/* SELECT-B-REQUEST */
typedef struct {
byte structs[0]; /* B-protocol */
} _SEL_B_REQP;
/* SELECT-B-CONFIRM */
/* SELECT-B-CONFIRM */
typedef struct {
word Info;
} _SEL_B_CONP;
/* FACILITY-REQUEST */
/* FACILITY-REQUEST */
typedef struct {
word Selector;
byte structs[0]; /* Facility parameters */
} _FAC_REQP;
/* FACILITY-CONFIRM STRUCT FOR SUPPLEMENT. SERVICES */
/* FACILITY-CONFIRM STRUCT FOR SUPPLEMENT. SERVICES */
typedef struct {
byte struct_length;
word function;
@@ -236,72 +236,72 @@ typedef struct {
word SupplementaryServiceInfo;
dword SupportedServices;
} _FAC_CON_STRUCTS;
/* FACILITY-CONFIRM */
/* FACILITY-CONFIRM */
typedef struct {
word Info;
word Selector;
byte structs[0]; /* Facility parameters */
} _FAC_CONP;
/* FACILITY-INDICATION */
/* FACILITY-INDICATION */
typedef struct {
word Selector;
byte structs[0]; /* Facility parameters */
} _FAC_INDP;
/* FACILITY-RESPONSE */
/* FACILITY-RESPONSE */
typedef struct {
word Selector;
byte structs[0]; /* Facility parameters */
} _FAC_RESP;
/* CONNECT-B3-REQUEST */
/* CONNECT-B3-REQUEST */
typedef struct {
byte structs[0]; /* NCPI */
} _CON_B3_REQP;
/* CONNECT-B3-CONFIRM */
/* CONNECT-B3-CONFIRM */
typedef struct {
word Info;
} _CON_B3_CONP;
/* CONNECT-B3-INDICATION */
/* CONNECT-B3-INDICATION */
typedef struct {
byte structs[0]; /* NCPI */
} _CON_B3_INDP;
/* CONNECT-B3-RESPONSE */
/* CONNECT-B3-RESPONSE */
typedef struct {
word Accept;
byte structs[0]; /* NCPI */
} _CON_B3_RESP;
/* CONNECT-B3-ACTIVE-INDICATION */
/* CONNECT-B3-ACTIVE-INDICATION */
typedef struct {
byte structs[0]; /* NCPI */
} _CON_B3_A_INDP;
/* CONNECT-B3-ACTIVE-RESPONSE */
/* CONNECT-B3-ACTIVE-RESPONSE */
typedef struct {
byte structs[0]; /* empty */
} _CON_B3_A_RESP;
/* DISCONNECT-B3-REQUEST */
/* DISCONNECT-B3-REQUEST */
typedef struct {
byte structs[0]; /* NCPI */
} _DIS_B3_REQP;
/* DISCONNECT-B3-CONFIRM */
/* DISCONNECT-B3-CONFIRM */
typedef struct {
word Info;
} _DIS_B3_CONP;
/* DISCONNECT-B3-INDICATION */
/* DISCONNECT-B3-INDICATION */
typedef struct {
word Info;
byte structs[0]; /* NCPI */
} _DIS_B3_INDP;
/* DISCONNECT-B3-RESPONSE */
/* DISCONNECT-B3-RESPONSE */
typedef struct {
byte structs[0]; /* empty */
} _DIS_B3_RESP;
/* DATA-B3-REQUEST */
/* DATA-B3-REQUEST */
typedef struct {
dword Data;
word Data_Length;
word Number;
word Flags;
} _DAT_B3_REQP;
/* DATA-B3-REQUEST 64 BIT Systems */
/* DATA-B3-REQUEST 64 BIT Systems */
typedef struct {
dword Data;
word Data_Length;
@@ -309,19 +309,19 @@ typedef struct {
word Flags;
void *pData;
} _DAT_B3_REQ64P;
/* DATA-B3-CONFIRM */
/* DATA-B3-CONFIRM */
typedef struct {
word Number;
word Info;
} _DAT_B3_CONP;
/* DATA-B3-INDICATION */
/* DATA-B3-INDICATION */
typedef struct {
dword Data;
word Data_Length;
word Number;
word Flags;
} _DAT_B3_INDP;
/* DATA-B3-INDICATION 64 BIT Systems */
/* DATA-B3-INDICATION 64 BIT Systems */
typedef struct {
dword Data;
word Data_Length;
@@ -329,31 +329,31 @@ typedef struct {
word Flags;
void *pData;
} _DAT_B3_IND64P;
/* DATA-B3-RESPONSE */
/* DATA-B3-RESPONSE */
typedef struct {
word Number;
} _DAT_B3_RESP;
/* RESET-B3-REQUEST */
/* RESET-B3-REQUEST */
typedef struct {
byte structs[0]; /* NCPI */
} _RES_B3_REQP;
/* RESET-B3-CONFIRM */
/* RESET-B3-CONFIRM */
typedef struct {
word Info;
} _RES_B3_CONP;
/* RESET-B3-INDICATION */
/* RESET-B3-INDICATION */
typedef struct {
byte structs[0]; /* NCPI */
} _RES_B3_INDP;
/* RESET-B3-RESPONSE */
/* RESET-B3-RESPONSE */
typedef struct {
byte structs[0]; /* empty */
} _RES_B3_RESP;
/* CONNECT-B3-T90-ACTIVE-INDICATION */
/* CONNECT-B3-T90-ACTIVE-INDICATION */
typedef struct {
byte structs[0]; /* NCPI */
} _CON_B3_T90_A_INDP;
/* CONNECT-B3-T90-ACTIVE-RESPONSE */
/* CONNECT-B3-T90-ACTIVE-RESPONSE */
typedef struct {
word Reject;
byte structs[0]; /* NCPI */

View File

@@ -182,7 +182,7 @@ static byte capidtmf_leading_zeroes_table[0x100] =
/*---------------------------------------------------------------------------*/
static void capidtmf_goertzel_loop (long *buffer, long *coeffs, short *sample, long count)
static void capidtmf_goertzel_loop(long *buffer, long *coeffs, short *sample, long count)
{
int i, j;
long c, d, q0, q1, q2;
@@ -246,7 +246,7 @@ static void capidtmf_goertzel_loop (long *buffer, long *coeffs, short *sample, l
}
static void capidtmf_goertzel_result (long *buffer, long *coeffs)
static void capidtmf_goertzel_result(long *buffer, long *coeffs)
{
int i;
long d, e, q1, q2, lo, mid, hi;
@@ -409,7 +409,7 @@ static word capidtmf_recv_guard_snr_high_table[CAPIDTMF_RECV_TOTAL_FREQUENCY_COU
/*---------------------------------------------------------------------------*/
static void capidtmf_recv_init (t_capidtmf_state *p_state)
static void capidtmf_recv_init(t_capidtmf_state *p_state)
{
p_state->recv.min_gap_duration = 1;
p_state->recv.min_digit_duration = 1;
@@ -427,7 +427,7 @@ static void capidtmf_recv_init (t_capidtmf_state *p_state)
}
void capidtmf_recv_enable (t_capidtmf_state *p_state, word min_digit_duration, word min_gap_duration)
void capidtmf_recv_enable(t_capidtmf_state *p_state, word min_digit_duration, word min_gap_duration)
{
p_state->recv.indication_state_ack &= CAPIDTMF_RECV_INDICATION_DIGIT;
p_state->recv.min_digit_duration = (word)(((((dword) min_digit_duration) * 8) +
@@ -446,11 +446,11 @@ void capidtmf_recv_enable (t_capidtmf_state *p_state, word min_digit_duration,
}
void capidtmf_recv_disable (t_capidtmf_state *p_state)
void capidtmf_recv_disable(t_capidtmf_state *p_state)
{
p_state->recv.state &= ~CAPIDTMF_RECV_STATE_DTMF_ACTIVE;
if (p_state->recv.state == CAPIDTMF_RECV_STATE_IDLE)
capidtmf_recv_init (p_state);
capidtmf_recv_init(p_state);
else
{
p_state->recv.cycle_counter = 0;
@@ -461,7 +461,7 @@ void capidtmf_recv_disable (t_capidtmf_state *p_state)
}
word capidtmf_recv_indication (t_capidtmf_state *p_state, byte *buffer)
word capidtmf_recv_indication(t_capidtmf_state *p_state, byte *buffer)
{
word i, j, k, flags;
@@ -487,7 +487,7 @@ word capidtmf_recv_indication (t_capidtmf_state *p_state, byte *buffer)
#define CAPIDTMF_RECV_WINDOWED_SAMPLES 32
void capidtmf_recv_block (t_capidtmf_state *p_state, byte *buffer, word length)
void capidtmf_recv_block(t_capidtmf_state *p_state, byte *buffer, word length)
{
byte result_digit;
word sample_number, cycle_counter, n, i;
@@ -539,14 +539,14 @@ void capidtmf_recv_block (t_capidtmf_state *p_state, byte *buffer, word leng
}
}
capidtmf_recv_goertzel_coef_table[CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT - 1] = CAPIDTMF_RECV_FUNDAMENTAL_OFFSET;
capidtmf_goertzel_loop (p_state->recv.goertzel_buffer[0],
capidtmf_goertzel_loop(p_state->recv.goertzel_buffer[0],
capidtmf_recv_goertzel_coef_table, windowed_sample_buffer, n);
cycle_counter += n;
sample_number += n;
}
else
{
capidtmf_goertzel_result (p_state->recv.goertzel_buffer[0],
capidtmf_goertzel_result(p_state->recv.goertzel_buffer[0],
capidtmf_recv_goertzel_coef_table);
for (i = 0; i < CAPIDTMF_RECV_TOTAL_FREQUENCY_COUNT; i++)
{
@@ -554,12 +554,12 @@ void capidtmf_recv_block (t_capidtmf_state *p_state, byte *buffer, word leng
hi = (dword)(p_state->recv.goertzel_buffer[1][i]);
if (hi != 0)
{
n = capidtmf_dword_leading_zeroes (hi);
n = capidtmf_dword_leading_zeroes(hi);
hi = (hi << n) | (lo >> (32 - n));
}
else
{
n = capidtmf_dword_leading_zeroes (lo);
n = capidtmf_dword_leading_zeroes(lo);
hi = lo << n;
n += 32;
}
@@ -651,7 +651,7 @@ void capidtmf_recv_block (t_capidtmf_state *p_state, byte *buffer, word leng
0 : p_state->recv.digit_write_pos + 1;
if (i == p_state->recv.digit_read_pos)
{
trace (dprintf ("%s,%d: Receive digit overrun",
trace(dprintf("%s,%d: Receive digit overrun",
(char *)(FILE_), __LINE__));
}
else
@@ -675,10 +675,10 @@ void capidtmf_recv_block (t_capidtmf_state *p_state, byte *buffer, word leng
}
void capidtmf_init (t_capidtmf_state *p_state, byte ulaw)
void capidtmf_init(t_capidtmf_state *p_state, byte ulaw)
{
p_state->ulaw = ulaw;
capidtmf_recv_init (p_state);
capidtmf_recv_init(p_state);
}

View File

@@ -67,13 +67,13 @@ typedef struct tag_capidtmf_state
byte ulaw;
t_capidtmf_recv_state recv;
} t_capidtmf_state;
word capidtmf_recv_indication (t_capidtmf_state *p_state, byte *buffer);
void capidtmf_recv_block (t_capidtmf_state *p_state, byte *buffer, word length);
void capidtmf_init (t_capidtmf_state *p_state, byte ulaw);
void capidtmf_recv_enable (t_capidtmf_state *p_state, word min_digit_duration, word min_gap_duration);
void capidtmf_recv_disable (t_capidtmf_state *p_state);
#define capidtmf_indication(p_state,buffer) (((p_state)->recv.indication_state != (p_state)->recv.indication_state_ack) ? capidtmf_recv_indication (p_state, buffer) : 0)
#define capidtmf_recv_process_block(p_state,buffer,length) { if ((p_state)->recv.state != CAPIDTMF_RECV_STATE_IDLE) capidtmf_recv_block (p_state, buffer, length); }
word capidtmf_recv_indication(t_capidtmf_state *p_state, byte *buffer);
void capidtmf_recv_block(t_capidtmf_state *p_state, byte *buffer, word length);
void capidtmf_init(t_capidtmf_state *p_state, byte ulaw);
void capidtmf_recv_enable(t_capidtmf_state *p_state, word min_digit_duration, word min_gap_duration);
void capidtmf_recv_disable(t_capidtmf_state *p_state);
#define capidtmf_indication(p_state, buffer) (((p_state)->recv.indication_state != (p_state)->recv.indication_state_ack) ? capidtmf_recv_indication(p_state, buffer) : 0)
#define capidtmf_recv_process_block(p_state, buffer, length) { if ((p_state)->recv.state != CAPIDTMF_RECV_STATE_IDLE) capidtmf_recv_block(p_state, buffer, length); }
/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
#endif

View File

@@ -43,7 +43,7 @@ static diva_os_spin_lock_t api_lock;
static LIST_HEAD(cards);
static dword notify_handle;
static void DIRequest(ENTITY * e);
static void DIRequest(ENTITY *e);
static DESCRIPTOR MAdapter;
static DESCRIPTOR DAdapter;
static byte ControllerMap[MAX_DESCRIPTORS + 1];
@@ -160,7 +160,7 @@ static int find_free_id(void)
break;
num++;
}
return(num + 1);
return (num + 1);
}
/*
@@ -176,7 +176,7 @@ static diva_card *find_card_by_ctrl(word controller)
if (ControllerMap[card->Id] == controller) {
if (card->remove_in_progress)
card = NULL;
return(card);
return (card);
}
}
return (diva_card *) 0;
@@ -185,14 +185,14 @@ static diva_card *find_card_by_ctrl(word controller)
/*
* Buffer RX/TX
*/
void *TransmitBufferSet(APPL * appl, dword ref)
void *TransmitBufferSet(APPL *appl, dword ref)
{
appl->xbuffer_used[ref] = true;
DBG_PRV1(("%d:xbuf_used(%d)", appl->Id, ref + 1))
return (void *)(long)ref;
}
void *TransmitBufferGet(APPL * appl, void *p)
void *TransmitBufferGet(APPL *appl, void *p)
{
if (appl->xbuffer_internal[(dword)(long)p])
return appl->xbuffer_internal[(dword)(long)p];
@@ -200,13 +200,13 @@ void *TransmitBufferGet(APPL * appl, void *p)
return appl->xbuffer_ptr[(dword)(long)p];
}
void TransmitBufferFree(APPL * appl, void *p)
void TransmitBufferFree(APPL *appl, void *p)
{
appl->xbuffer_used[(dword)(long)p] = false;
DBG_PRV1(("%d:xbuf_free(%d)", appl->Id, ((dword)(long)p) + 1))
}
}
void *ReceiveBufferGet(APPL * appl, int Num)
void *ReceiveBufferGet(APPL *appl, int Num)
{
return &appl->ReceiveBuffer[Num * appl->MaxDataLength];
}
@@ -217,12 +217,12 @@ void *ReceiveBufferGet(APPL * appl, int Num)
void api_remove_complete(void)
{
DBG_PRV1(("api_remove_complete"))
}
}
/*
* main function called by message.c
*/
void sendf(APPL * appl, word command, dword Id, word Number, byte * format, ...)
void sendf(APPL *appl, word command, dword Id, word Number, byte *format, ...)
{
word i, j;
word length = 12, dlength = 0;
@@ -247,7 +247,7 @@ void sendf(APPL * appl, word command, dword Id, word Number, byte * format, ...)
PUT_WORD(&msg.header.number, Number);
PUT_DWORD(&msg.header.controller, Id);
write = (byte *) & msg;
write = (byte *)&msg;
write += 12;
va_start(ap, format);
@@ -287,7 +287,7 @@ void sendf(APPL * appl, word command, dword Id, word Number, byte * format, ...)
if (command == _DATA_B3_I)
dlength = GET_WORD(
((byte *) & msg.info.data_b3_ind.Data_Length));
((byte *)&msg.info.data_b3_ind.Data_Length));
if (!(dmb = diva_os_alloc_message_buffer(length + dlength,
(void **) &write))) {
@@ -296,7 +296,7 @@ void sendf(APPL * appl, word command, dword Id, word Number, byte * format, ...)
}
/* copy msg header to sk_buff */
memcpy(write, (byte *) & msg, length);
memcpy(write, (byte *)&msg, length);
/* if DATA_B3_IND, copy data too */
if (command == _DATA_B3_I) {
@@ -388,7 +388,7 @@ static void clean_adapter(int id, struct list_head *free_mem_q)
* remove a card, but ensures consistent state of LI tables
* in the time adapter is removed
*/
static void divacapi_remove_card(DESCRIPTOR * d)
static void divacapi_remove_card(DESCRIPTOR *d)
{
diva_card *card = NULL;
diva_os_spin_lock_magic_t old_irql;
@@ -434,7 +434,7 @@ static void divacapi_remove_card(DESCRIPTOR * d)
diva_os_leave_spin_lock(&api_lock, &old_irql, "remove card");
/* After releasing the lock, we can free the memory */
diva_os_free (0, card);
diva_os_free(0, card);
}
/* free queued memory areas */
@@ -469,7 +469,7 @@ rescan:
/*
* sync_callback
*/
static void sync_callback(ENTITY * e)
static void sync_callback(ENTITY *e)
{
diva_os_spin_lock_magic_t old_irql;
@@ -483,7 +483,7 @@ static void sync_callback(ENTITY * e)
/*
* add a new card
*/
static int diva_add_card(DESCRIPTOR * d)
static int diva_add_card(DESCRIPTOR *d)
{
int k = 0, i = 0;
diva_os_spin_lock_magic_t old_irql;
@@ -492,7 +492,7 @@ static int diva_add_card(DESCRIPTOR * d)
DIVA_CAPI_ADAPTER *a = NULL;
IDI_SYNC_REQ sync_req;
char serial[16];
void* mem_to_free;
void *mem_to_free;
LI_CONFIG *new_li_config_table;
int j;
@@ -504,7 +504,7 @@ static int diva_add_card(DESCRIPTOR * d)
memcpy(&card->d, d, sizeof(DESCRIPTOR));
sync_req.GetName.Req = 0;
sync_req.GetName.Rc = IDI_SYNC_REQ_GET_NAME;
card->d.request((ENTITY *) & sync_req);
card->d.request((ENTITY *)&sync_req);
strlcpy(card->name, sync_req.GetName.name, sizeof(card->name));
ctrl = &card->capi_ctrl;
strcpy(ctrl->name, card->name);
@@ -533,7 +533,7 @@ static int diva_add_card(DESCRIPTOR * d)
sync_req.GetSerial.Req = 0;
sync_req.GetSerial.Rc = IDI_SYNC_REQ_GET_SERIAL;
sync_req.GetSerial.serial = 0;
card->d.request((ENTITY *) & sync_req);
card->d.request((ENTITY *)&sync_req);
if ((i = ((sync_req.GetSerial.serial & 0xff000000) >> 24))) {
sprintf(serial, "%ld-%d",
sync_req.GetSerial.serial & 0x00ffffff, i + 1);
@@ -554,7 +554,7 @@ static int diva_add_card(DESCRIPTOR * d)
sync_req.xdi_capi_prms.Rc = IDI_SYNC_REQ_XDI_GET_CAPI_PARAMS;
sync_req.xdi_capi_prms.info.structure_length =
sizeof(diva_xdi_get_capi_parameters_t);
card->d.request((ENTITY *) & sync_req);
card->d.request((ENTITY *)&sync_req);
a->flag_dynamic_l1_down =
sync_req.xdi_capi_prms.info.flag_dynamic_l1_down;
a->group_optimization_enabled =
@@ -689,7 +689,7 @@ static int diva_add_card(DESCRIPTOR * d)
diva_os_leave_spin_lock(&api_lock, &old_irql, "add card");
if (mem_to_free) {
diva_os_free (0, mem_to_free);
diva_os_free(0, mem_to_free);
}
i = 0;
@@ -722,7 +722,7 @@ static int diva_add_card(DESCRIPTOR * d)
* register appl
*/
static void diva_register_appl(struct capi_ctr *ctrl, __u16 appl,
capi_register_params * rp)
capi_register_params *rp)
{
APPL *this;
word bnum, xnum;
@@ -876,7 +876,7 @@ static void diva_release_appl(struct capi_ctr *ctrl, __u16 appl)
* send message
*/
static u16 diva_send_message(struct capi_ctr *ctrl,
diva_os_message_buffer_s * dmb)
diva_os_message_buffer_s *dmb)
{
int i = 0;
word ret = 0;
@@ -996,7 +996,7 @@ static u16 diva_send_message(struct capi_ctr *ctrl,
break;
}
write_end:
write_end:
diva_os_leave_spin_lock(&api_lock, &old_irql, "send message");
if (retval == CAPI_NOERROR)
diva_os_free_message_buffer(dmb);
@@ -1007,7 +1007,7 @@ static u16 diva_send_message(struct capi_ctr *ctrl,
/*
* cards request function
*/
static void DIRequest(ENTITY * e)
static void DIRequest(ENTITY *e)
{
DIVA_CAPI_ADAPTER *a = &(adapter[(byte) e->user[0]]);
diva_card *os_card = (diva_card *) a->os_card;
@@ -1022,7 +1022,7 @@ static void DIRequest(ENTITY * e)
/*
* callback function from didd
*/
static void didd_callback(void *context, DESCRIPTOR * adapter, int removal)
static void didd_callback(void *context, DESCRIPTOR *adapter, int removal)
{
if (adapter->type == IDI_DADAPTER) {
DBG_ERR(("Notification about IDI_DADAPTER change ! Oops."));
@@ -1074,7 +1074,7 @@ static int divacapi_connect_didd(void)
IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
req.didd_notify.info.callback = (void *)didd_callback;
req.didd_notify.info.context = NULL;
DAdapter.request((ENTITY *) & req);
DAdapter.request((ENTITY *)&req);
if (req.didd_notify.e.Rc != 0xff) {
stop_dbg();
return (0);
@@ -1105,7 +1105,7 @@ static void divacapi_disconnect_didd(void)
req.didd_notify.e.Req = 0;
req.didd_notify.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY;
req.didd_notify.info.handle = notify_handle;
DAdapter.request((ENTITY *) & req);
DAdapter.request((ENTITY *)&req);
}
/*
@@ -1176,7 +1176,7 @@ static void do_api_remove_start(void)
if (ret)
DBG_ERR(("could not remove signaling ID's"))
}
}
/*
* init

View File

@@ -69,7 +69,7 @@ diva_os_message_buffer_s *diva_os_alloc_message_buffer(unsigned long size,
/*
* free a message buffer
*/
void diva_os_free_message_buffer(diva_os_message_buffer_s * dmb)
void diva_os_free_message_buffer(diva_os_message_buffer_s *dmb)
{
kfree_skb(dmb);
}

View File

@@ -94,7 +94,7 @@
*/
#define CARD_UNKNOWN 0
#define CARD_NONE 0
/* DIVA cards */
/* DIVA cards */
#define CARDTYPE_DIVA_MCA 0
#define CARDTYPE_DIVA_ISA 1
#define CARDTYPE_DIVA_PCM 2
@@ -102,10 +102,10 @@
#define CARDTYPE_DIVAPRO_PCM 4
#define CARDTYPE_DIVAPICO_ISA 5
#define CARDTYPE_DIVAPICO_PCM 6
/* DIVA 2.0 cards */
/* DIVA 2.0 cards */
#define CARDTYPE_DIVAPRO20_PCI 7
#define CARDTYPE_DIVA20_PCI 8
/* S cards */
/* S cards */
#define CARDTYPE_QUADRO_ISA 9
#define CARDTYPE_S_ISA 10
#define CARDTYPE_S_MCA 11
@@ -117,57 +117,57 @@
#define CARDTYPE_SCOM_MCA 17
#define CARDTYPE_PR_ISA 18
#define CARDTYPE_PR_MCA 19
/* Diva Server cards (formerly called Maestra, later Amadeo) */
/* Diva Server cards (formerly called Maestra, later Amadeo) */
#define CARDTYPE_MAESTRA_ISA 20
#define CARDTYPE_MAESTRA_PCI 21
/* Diva Server cards to be developed (Quadro, Primary rate) */
/* Diva Server cards to be developed (Quadro, Primary rate) */
#define CARDTYPE_DIVASRV_Q_8M_PCI 22
#define CARDTYPE_DIVASRV_P_30M_PCI 23
#define CARDTYPE_DIVASRV_P_2M_PCI 24
#define CARDTYPE_DIVASRV_P_9M_PCI 25
/* DIVA 2.0 cards */
/* DIVA 2.0 cards */
#define CARDTYPE_DIVA20_ISA 26
#define CARDTYPE_DIVA20U_ISA 27
#define CARDTYPE_DIVA20U_PCI 28
#define CARDTYPE_DIVAPRO20_ISA 29
#define CARDTYPE_DIVAPRO20U_ISA 30
#define CARDTYPE_DIVAPRO20U_PCI 31
/* DIVA combi cards (piccola ISDN + rockwell V.34 modem) */
/* DIVA combi cards (piccola ISDN + rockwell V.34 modem) */
#define CARDTYPE_DIVAMOBILE_PCM 32
#define CARDTYPE_TDKGLOBALPRO_PCM 33
/* DIVA Pro PC OEM card for 'New Media Corporation' */
/* DIVA Pro PC OEM card for 'New Media Corporation' */
#define CARDTYPE_NMC_DIVAPRO_PCM 34
/* DIVA Pro 2.0 OEM cards for 'British Telecom' */
/* DIVA Pro 2.0 OEM cards for 'British Telecom' */
#define CARDTYPE_BT_EXLANE_PCI 35
#define CARDTYPE_BT_EXLANE_ISA 36
/* DIVA low cost cards, 1st name DIVA 3.0, 2nd DIVA 2.01, 3rd ??? */
/* DIVA low cost cards, 1st name DIVA 3.0, 2nd DIVA 2.01, 3rd ??? */
#define CARDTYPE_DIVALOW_ISA 37
#define CARDTYPE_DIVALOWU_ISA 38
#define CARDTYPE_DIVALOW_PCI 39
#define CARDTYPE_DIVALOWU_PCI 40
/* DIVA combi cards (piccola ISDN + rockwell V.90 modem) */
/* DIVA combi cards (piccola ISDN + rockwell V.90 modem) */
#define CARDTYPE_DIVAMOBILE_V90_PCM 41
#define CARDTYPE_TDKGLOBPRO_V90_PCM 42
#define CARDTYPE_DIVASRV_P_23M_PCI 43
#define CARDTYPE_DIVALOW_USB 44
/* DIVA Audio (CT) family */
/* DIVA Audio (CT) family */
#define CARDTYPE_DIVA_CT_ST 45
#define CARDTYPE_DIVA_CT_U 46
#define CARDTYPE_DIVA_CTLITE_ST 47
#define CARDTYPE_DIVA_CTLITE_U 48
/* DIVA ISDN plus V.90 series */
/* DIVA ISDN plus V.90 series */
#define CARDTYPE_DIVAISDN_V90_PCM 49
#define CARDTYPE_DIVAISDN_V90_PCI 50
#define CARDTYPE_DIVAISDN_TA 51
/* DIVA Server Voice cards */
/* DIVA Server Voice cards */
#define CARDTYPE_DIVASRV_VOICE_Q_8M_PCI 52
/* DIVA Server V2 cards */
/* DIVA Server V2 cards */
#define CARDTYPE_DIVASRV_Q_8M_V2_PCI 53
#define CARDTYPE_DIVASRV_P_30M_V2_PCI 54
/* DIVA Server Voice V2 cards */
/* DIVA Server Voice V2 cards */
#define CARDTYPE_DIVASRV_VOICE_Q_8M_V2_PCI 55
#define CARDTYPE_DIVASRV_VOICE_P_30M_V2_PCI 56
/* Diva LAN */
/* Diva LAN */
#define CARDTYPE_DIVAISDN_LAN 57
#define CARDTYPE_DIVA_202_PCI_ST 58
#define CARDTYPE_DIVA_202_PCI_U 59
@@ -182,7 +182,7 @@
#define CARDTYPE_DIVA_V2_PCM 67
/* Re-badged Diva Pro PC Card */
#define CARDTYPE_DIVA_PC_CARD 68
/* next free card type identifier */
/* next free card type identifier */
#define CARDTYPE_MAX 69
/*
* The card families
@@ -262,7 +262,7 @@ typedef struct CARD_PROPERTIES
unsigned short SizeMem; /* size of memory window per adapter */
} CARD_PROPERTIES;
typedef struct CARD_RESOURCE
{ unsigned char Int [10];
{ unsigned char Int[10];
unsigned short IoFirst;
unsigned short IoStep;
unsigned short IoCnt;
@@ -272,7 +272,7 @@ typedef struct CARD_RESOURCE
} CARD_RESOURCE;
/* test if the card of type 't' is a plug & play card */
#define IS_PNP(t) \
( \
( \
( \
CardProperties[t].Bus != BUS_ISA \
&& \
@@ -284,9 +284,9 @@ typedef struct CARD_RESOURCE
&& \
CardProperties[t].Card != CARD_DIVA \
) \
)
)
/* extract IDI Descriptor info for card type 't' (p == DescType/Features) */
#define IDI_PROP(t,p) (CardProperties[t].p)
#define IDI_PROP(t, p) (CardProperties[t].p)
#if CARDTYPE_H_WANT_DATA
#if CARDTYPE_H_WANT_IDI_DATA
/* include "di_defs.h" for IDI adapter type and feature flag definitions */
@@ -328,502 +328,502 @@ typedef struct CARD_RESOURCE
#define DI_SOFT_V110 0
#endif
/*--- CardProperties [Index=CARDTYPE_....] ---------------------------------*/
CARD_PROPERTIES CardProperties [ ] =
CARD_PROPERTIES CardProperties[] =
{
{ /* 0 */
{ /* 0 */
"Diva MCA", 0x6336, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3,
CARD_DIVA, CARD_I_NONE, BUS_MCA, CHIP_DSP,
1, 2, 0, 8, 0
},
{ /* 1 */
},
{ /* 1 */
"Diva ISA", 0x0000, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3,
CARD_DIVA, CARD_I_NONE, BUS_ISA, CHIP_DSP,
1, 2, 0, 8, 0
},
{ /* 2 */
},
{ /* 2 */
"Diva/PCM", 0x0000, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3,
CARD_DIVA, CARD_I_NONE, BUS_PCM, CHIP_DSP,
1, 2, 0, 8, 0
},
{ /* 3 */
},
{ /* 3 */
"Diva PRO ISA", 0x0031, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
CARD_PRO, CARD_I_NONE, BUS_ISA, CHIP_DSP,
1, 2, 0, 8, 0
},
{ /* 4 */
},
{ /* 4 */
"Diva PRO PC-Card", 0x0000, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_PRO, CARD_I_NONE, BUS_PCM, CHIP_DSP,
1, 2, 0, 8, 0
},
{ /* 5 */
},
{ /* 5 */
"Diva PICCOLA ISA", 0x0051, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_PICO, CARD_I_NONE, BUS_ISA, CHIP_HSCX,
1, 2, 0, 8, 0
},
{ /* 6 */
},
{ /* 6 */
"Diva PICCOLA PCM", 0x0000, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_PICO, CARD_I_NONE, BUS_PCM, CHIP_HSCX,
1, 2, 0, 8, 0
},
{ /* 7 */
},
{ /* 7 */
"Diva PRO 2.0 S/T PCI", 0xe001, 0x0200,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
CARD_PRO, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 2, 0, 8, 0
},
{ /* 8 */
},
{ /* 8 */
"Diva 2.0 S/T PCI", 0xe002, 0x0200,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
CARD_PICO, CARD_I_NONE, BUS_PCI, CHIP_HSCX,
1, 2, 0, 8, 0
},
{ /* 9 */
},
{ /* 9 */
"QUADRO ISA", 0x0000, 0x0100,
IDI_ADAPTER_S, FAMILY_S, DI_NULL,
CARD_QUAD, CARD_I_QUAD, BUS_ISA, CHIP_NONE,
4, 2, 16, 0, 0x800
},
{ /* 10 */
},
{ /* 10 */
"S ISA", 0x0000, 0x0100,
IDI_ADAPTER_S, FAMILY_S, DI_CODEC,
CARD_S, CARD_I_S, BUS_ISA, CHIP_NONE,
1, 1, 16, 0, 0x800
},
{ /* 11 */
},
{ /* 11 */
"S MCA", 0x6a93, 0x0100,
IDI_ADAPTER_S, FAMILY_S, DI_CODEC,
CARD_S, CARD_I_S, BUS_MCA, CHIP_NONE,
1, 1, 16, 16, 0x400
},
{ /* 12 */
},
{ /* 12 */
"SX ISA", 0x0000, 0x0100,
IDI_ADAPTER_S, FAMILY_S, DI_NULL,
CARD_SX, CARD_I_SX, BUS_ISA, CHIP_NONE,
1, 2, 16, 0, 0x800
},
{ /* 13 */
},
{ /* 13 */
"SX MCA", 0x6a93, 0x0100,
IDI_ADAPTER_S, FAMILY_S, DI_NULL,
CARD_SX, CARD_I_SX, BUS_MCA, CHIP_NONE,
1, 2, 16, 16, 0x400
},
{ /* 14 */
},
{ /* 14 */
"SXN ISA", 0x0000, 0x0100,
IDI_ADAPTER_S, FAMILY_S, DI_NULL,
CARD_SXN, CARD_I_SCOM, BUS_ISA, CHIP_NONE,
1, 2, 16, 0, 0x800
},
{ /* 15 */
},
{ /* 15 */
"SXN MCA", 0x6a93, 0x0100,
IDI_ADAPTER_S, FAMILY_S, DI_NULL,
CARD_SXN, CARD_I_SCOM, BUS_MCA, CHIP_NONE,
1, 2, 16, 16, 0x400
},
{ /* 16 */
},
{ /* 16 */
"SCOM ISA", 0x0000, 0x0100,
IDI_ADAPTER_S, FAMILY_S, DI_CODEC,
CARD_SCOM, CARD_I_SCOM, BUS_ISA, CHIP_NONE,
1, 2, 16, 0, 0x800
},
{ /* 17 */
},
{ /* 17 */
"SCOM MCA", 0x6a93, 0x0100,
IDI_ADAPTER_S, FAMILY_S, DI_CODEC,
CARD_SCOM, CARD_I_SCOM, BUS_MCA, CHIP_NONE,
1, 2, 16, 16, 0x400
},
{ /* 18 */
},
{ /* 18 */
"S2M ISA", 0x0000, 0x0100,
IDI_ADAPTER_PR, FAMILY_S, DI_NULL,
CARD_PR, CARD_I_PR, BUS_ISA, CHIP_NONE,
1, 30, 256, 0, 0x4000
},
{ /* 19 */
},
{ /* 19 */
"S2M MCA", 0x6abb, 0x0100,
IDI_ADAPTER_PR, FAMILY_S, DI_NULL,
CARD_PR, CARD_I_PR, BUS_MCA, CHIP_NONE,
1, 30, 256, 16, 0x4000
},
{ /* 20 */
},
{ /* 20 */
"Diva Server BRI-2M ISA", 0x0041, 0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_MAE, CARD_I_NONE, BUS_ISA, CHIP_DSP,
1, 2, 16, 8, 0
},
{ /* 21 */
},
{ /* 21 */
"Diva Server BRI-2M PCI", 0xE010, 0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_MAE, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 2, 16, 8, 0
},
{ /* 22 */
},
{ /* 22 */
"Diva Server 4BRI-8M PCI", 0xE012, 0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_MAEQ, CARD_I_NONE, BUS_PCI, CHIP_DSP,
4, 2, 16, 8, 0
},
{ /* 23 */
},
{ /* 23 */
"Diva Server PRI-30M PCI", 0xE014, 0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_MAEP, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 30, 256, 8, 0
},
{ /* 24 */
},
{ /* 24 */
"Diva Server PRI-2M PCI", 0xe014, 0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_MAEP, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 30, 256, 8, 0
},
{ /* 25 */
},
{ /* 25 */
"Diva Server PRI-9M PCI", 0x0000, 0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_MAEP, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 30, 256, 8, 0
},
{ /* 26 */
},
{ /* 26 */
"Diva 2.0 S/T ISA", 0x0071, 0x0200,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
CARD_PICO, CARD_I_NONE, BUS_ISA, CHIP_HSCX,
1, 2, 0, 8, 0
},
{ /* 27 */
},
{ /* 27 */
"Diva 2.0 U ISA", 0x0091, 0x0200,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
CARD_PICO, CARD_I_NONE, BUS_ISA, CHIP_HSCX,
1, 2, 0, 8, 0
},
{ /* 28 */
},
{ /* 28 */
"Diva 2.0 U PCI", 0xe004, 0x0200,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | DI_POTS | SOFT_DSP_ADD_FEATURES,
CARD_PICO, CARD_I_NONE, BUS_PCI, CHIP_HSCX,
1, 2, 0, 8, 0
},
{ /* 29 */
},
{ /* 29 */
"Diva PRO 2.0 S/T ISA", 0x0061, 0x0200,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
CARD_PRO, CARD_I_NONE, BUS_ISA, CHIP_DSP,
1, 2, 0, 8, 0
},
{ /* 30 */
},
{ /* 30 */
"Diva PRO 2.0 U ISA", 0x0081, 0x0200,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
CARD_PRO, CARD_I_NONE, BUS_ISA, CHIP_DSP,
1, 2, 0, 8, 0
},
{ /* 31 */
},
{ /* 31 */
"Diva PRO 2.0 U PCI", 0xe003, 0x0200,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
CARD_PRO, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 2, 0, 8, 0
},
{ /* 32 */
},
{ /* 32 */
"Diva MOBILE", 0x0000, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_PICO, CARD_I_NONE, BUS_PCM, CHIP_HSCX,
1, 2, 0, 8, 0
},
{ /* 33 */
},
{ /* 33 */
"TDK DFI3600", 0x0000, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_PICO, CARD_I_NONE, BUS_PCM, CHIP_HSCX,
1, 2, 0, 8, 0
},
{ /* 34 (OEM version of 4 - "Diva PRO PC-Card") */
},
{ /* 34 (OEM version of 4 - "Diva PRO PC-Card") */
"New Media ISDN", 0x0000, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_PRO, CARD_I_NONE, BUS_PCM, CHIP_DSP,
1, 2, 0, 8, 0
},
{ /* 35 (OEM version of 7 - "Diva PRO 2.0 S/T PCI") */
},
{ /* 35 (OEM version of 7 - "Diva PRO 2.0 S/T PCI") */
"BT ExLane PCI", 0xe101, 0x0200,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
CARD_PRO, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 2, 0, 8, 0
},
{ /* 36 (OEM version of 29 - "Diva PRO 2.0 S/T ISA") */
},
{ /* 36 (OEM version of 29 - "Diva PRO 2.0 S/T ISA") */
"BT ExLane ISA", 0x1061, 0x0200,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_POTS,
CARD_PRO, CARD_I_NONE, BUS_ISA, CHIP_DSP,
1, 2, 0, 8, 0
},
{ /* 37 */
},
{ /* 37 */
"Diva 2.01 S/T ISA", 0x00A1, 0x0300,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_DIVALOW, CARD_I_NONE, BUS_ISA, CHIP_IPAC,
1, 2, 0, 8, 0
},
{ /* 38 */
},
{ /* 38 */
"Diva 2.01 U ISA", 0x00B1, 0x0300,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_DIVALOW, CARD_I_NONE, BUS_ISA, CHIP_IPAC,
1, 2, 0, 8, 0
},
{ /* 39 */
},
{ /* 39 */
"Diva 2.01 S/T PCI", 0xe005, 0x0300,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_DIVALOW, CARD_I_NONE, BUS_PCI, CHIP_IPAC,
1, 2, 0, 8, 0
},
{ /* 40 no ID yet */
},
{ /* 40 no ID yet */
"Diva 2.01 U PCI", 0x0000, 0x0300,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_DIVALOW, CARD_I_NONE, BUS_PCI, CHIP_IPAC,
1, 2, 0, 8, 0
},
{ /* 41 */
},
{ /* 41 */
"Diva MOBILE V.90", 0x0000, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_PICO, CARD_I_NONE, BUS_PCM, CHIP_HSCX,
1, 2, 0, 8, 0
},
{ /* 42 */
},
{ /* 42 */
"TDK DFI3600 V.90", 0x0000, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_PICO, CARD_I_NONE, BUS_PCM, CHIP_HSCX,
1, 2, 0, 8, 0
},
{ /* 43 */
},
{ /* 43 */
"Diva Server PRI-23M PCI", 0xe014, 0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_MAEP, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 30, 256, 8, 0
},
{ /* 44 */
},
{ /* 44 */
"Diva 2.01 S/T USB", 0x1000, 0x0300,
IDI_ADAPTER_DIVA ,FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
IDI_ADAPTER_DIVA , FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_DIVALOW, CARD_I_NONE, BUS_USB, CHIP_IPAC,
1, 2, 0, 8, 0
},
{ /* 45 */
},
{ /* 45 */
"Diva CT S/T PCI", 0xe006, 0x0300,
IDI_ADAPTER_DIVA ,FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
IDI_ADAPTER_DIVA , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
CARD_CT, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 2, 0, 0, 0
},
{ /* 46 */
},
{ /* 46 */
"Diva CT U PCI", 0xe007, 0x0300,
IDI_ADAPTER_DIVA ,FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
IDI_ADAPTER_DIVA , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
CARD_CT, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 2, 0, 0, 0
},
{ /* 47 */
},
{ /* 47 */
"Diva CT Lite S/T PCI", 0xe008, 0x0300,
IDI_ADAPTER_DIVA ,FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
IDI_ADAPTER_DIVA , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
CARD_CT, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 2, 0, 0, 0
},
{ /* 48 */
},
{ /* 48 */
"Diva CT Lite U PCI", 0xe009, 0x0300,
IDI_ADAPTER_DIVA ,FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
IDI_ADAPTER_DIVA , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
CARD_CT, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 2, 0, 0, 0
},
{ /* 49 */
},
{ /* 49 */
"Diva ISDN+V.90 PC Card", 0x8D8C, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
CARD_DIVALOW, CARD_I_NONE, BUS_PCM, CHIP_IPAC,
1, 2, 0, 8, 0
},
{ /* 50 */
},
{ /* 50 */
"Diva ISDN+V.90 PCI", 0xe00A, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_DIVALOW, CARD_I_NONE, BUS_PCI, CHIP_IPAC,
1, 2, 0, 8, 0
},
{ /* 51 (DivaTA) no ID */
},
{ /* 51 (DivaTA) no ID */
"Diva TA", 0x0000, 0x0300,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V110 | DI_FAX3 | SOFT_DSP_ADD_FEATURES,
CARD_DIVATA, CARD_I_NONE, BUS_COM, CHIP_EXTERN,
1, 1, 0, 8, 0
},
{ /* 52 (Diva Server 4BRI-8M PCI adapter enabled for Voice) */
},
{ /* 52 (Diva Server 4BRI-8M PCI adapter enabled for Voice) */
"Diva Server Voice 4BRI-8M PCI", 0xE016, 0x0100,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
CARD_MAEQ, CARD_I_NONE, BUS_PCI, CHIP_DSP,
4, 2, 16, 8, 0
},
{ /* 53 (Diva Server 4BRI 2.0 adapter) */
},
{ /* 53 (Diva Server 4BRI 2.0 adapter) */
"Diva Server 4BRI-8M 2.0 PCI", 0xE013, 0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_MAEQ, CARD_I_NONE, BUS_PCI, CHIP_DSP,
4, 2, 16, 8, 0
},
{ /* 54 (Diva Server PRI 2.0 adapter) */
},
{ /* 54 (Diva Server PRI 2.0 adapter) */
"Diva Server PRI 2.0 PCI", 0xE015, 0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_MAEP, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 30, 256, 8, 0
},
{ /* 55 (Diva Server 4BRI-8M 2.0 PCI adapter enabled for Voice) */
},
{ /* 55 (Diva Server 4BRI-8M 2.0 PCI adapter enabled for Voice) */
"Diva Server Voice 4BRI-8M 2.0 PCI", 0xE017, 0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
CARD_MAEQ, CARD_I_NONE, BUS_PCI, CHIP_DSP,
4, 2, 16, 8, 0
},
{ /* 56 (Diva Server PRI 2.0 PCI adapter enabled for Voice) */
},
{ /* 56 (Diva Server PRI 2.0 PCI adapter enabled for Voice) */
"Diva Server Voice PRI 2.0 PCI", 0xE019, 0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
CARD_MAEP, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 30, 256, 8, 0
},
{
},
{
/* 57 (DivaLan ) no ID */
"Diva LAN", 0x0000, 0x0300,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V110 | DI_FAX3 | SOFT_DSP_ADD_FEATURES,
CARD_DIVALAN, CARD_I_NONE, BUS_LAN, CHIP_EXTERN,
1, 1, 0, 8, 0
},
{ /* 58 */
},
{ /* 58 */
"Diva 2.02 PCI S/T", 0xE00B, 0x0300,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES | DI_SOFT_V110,
CARD_DIVALOW, CARD_I_NONE, BUS_PCI, CHIP_IPACX,
1, 2, 0, 8, 0
},
{ /* 59 */
},
{ /* 59 */
"Diva 2.02 PCI U", 0xE00C, 0x0300,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_DIVALOW, CARD_I_NONE, BUS_PCI, CHIP_IPACX,
1, 2, 0, 8, 0
},
{ /* 60 */
},
{ /* 60 */
"Diva Server BRI-2M 2.0 PCI", 0xE018, 0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_MAE2, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 2, 16, 8, 0
},
{ /* 61 (the previous name was Diva Server BRI-2F 2.0 PCI) */
},
{ /* 61 (the previous name was Diva Server BRI-2F 2.0 PCI) */
"Diva Server 2FX", 0xE01A, 0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_SOFT_V110,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_SOFT_V110,
CARD_MAE2, CARD_I_NONE, BUS_PCI, CHIP_IPACX,
1, 2, 16, 8, 0
},
{ /* 62 */
},
{ /* 62 */
" Diva ISDN USB 2.0", 0x1003, 0x0300,
IDI_ADAPTER_DIVA ,FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
IDI_ADAPTER_DIVA , FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_DIVALOW, CARD_I_NONE, BUS_USB, CHIP_IPACX,
1, 2, 0, 8, 0
},
{ /* 63 (Diva Server BRI-2M 2.0 PCI adapter enabled for Voice) */
},
{ /* 63 (Diva Server BRI-2M 2.0 PCI adapter enabled for Voice) */
"Diva Server Voice BRI-2M 2.0 PCI", 0xE01B, 0x0200,
IDI_ADAPTER_MAESTRA,FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
IDI_ADAPTER_MAESTRA, FAMILY_MAESTRA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_VOICE_OVER_IP,
CARD_MAE2, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 2, 16, 8, 0
},
{ /* 64 */
},
{ /* 64 */
"Diva Pro 3.0 PCI", 0xe00d, 0x0300,
IDI_ADAPTER_DIVA ,FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
IDI_ADAPTER_DIVA , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM,
CARD_PRO, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 2, 0, 0, 0
},
{ /* 65 */
},
{ /* 65 */
"Diva ISDN + CT 2.0", 0xE00E, 0x0300,
IDI_ADAPTER_DIVA ,FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
IDI_ADAPTER_DIVA , FAMILY_DIVA, DI_V1x0 | DI_FAX3 | DI_MODEM | DI_CODEC,
CARD_CT, CARD_I_NONE, BUS_PCI, CHIP_DSP,
1, 2, 0, 0, 0
},
{ /* 66 */
},
{ /* 66 */
"Diva Mobile V.90 PC Card", 0x8331, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_PICO, CARD_I_NONE, BUS_PCM, CHIP_IPACX,
1, 2, 0, 8, 0
},
{ /* 67 */
},
{ /* 67 */
"Diva ISDN PC Card", 0x8311, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_PICO, CARD_I_NONE, BUS_PCM, CHIP_IPACX,
1, 2, 0, 8, 0
},
{ /* 68 */
},
{ /* 68 */
"Diva ISDN PC Card", 0x0000, 0x0100,
IDI_ADAPTER_DIVA, FAMILY_DIVA, DI_V120 | SOFT_DSP_ADD_FEATURES,
CARD_PRO, CARD_I_NONE, BUS_PCM, CHIP_DSP,
1, 2, 0, 8, 0
},
} ;
},
};
#if CARDTYPE_H_WANT_RESOURCE_DATA
/*--- CardResource [Index=CARDTYPE_....] ---------------------------(GEI)-*/
CARD_RESOURCE CardResource [ ] = {
CARD_RESOURCE CardResource[] = {
/* Interrupts IO-Address Mem-Address */
/* 0*/ { 3,4,9,0,0,0,0,0,0,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA MCA
/* 1*/ { 3,4,9,10,11,12,0,0,0,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA ISA
/* 2*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA PCMCIA
/* 3*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA PRO ISA
/* 4*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA PRO PCMCIA
/* 5*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA PICCOLA ISA
/* 6*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA PICCOLA PCMCIA
/* 7*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA PRO 2.0 PCI
/* 8*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 2.0 PCI
/* 9*/ { 3,4,5,7,9,10,11,12,0,0, 0x0,0x0,0, 0x80000,0x2000,64 }, // QUADRO ISA
/*10*/ { 3,4,9,10,11,12,0,0,0,0, 0x0,0x0,0, 0xc0000,0x2000,16 }, // S ISA
/*11*/ { 3,4,9,0,0,0,0,0,0,0, 0xc00,0x10,16, 0xc0000,0x2000,16 }, // S MCA
/*12*/ { 3,4,9,10,11,12,0,0,0,0, 0x0,0x0,0, 0xc0000,0x2000,16 }, // SX ISA
/*13*/ { 3,4,9,0,0,0,0,0,0,0, 0xc00,0x10,16, 0xc0000,0x2000,16 }, // SX MCA
/*14*/ { 3,4,5,7,9,10,11,12,0,0, 0x0,0x0,0, 0x80000,0x0800,256 }, // SXN ISA
/*15*/ { 3,4,9,0,0,0,0,0,0,0, 0xc00,0x10,16, 0xc0000,0x2000,16 }, // SXN MCA
/*16*/ { 3,4,5,7,9,10,11,12,0,0, 0x0,0x0,0, 0x80000,0x0800,256 }, // SCOM ISA
/*17*/ { 3,4,9,0,0,0,0,0,0,0, 0xc00,0x10,16, 0xc0000,0x2000,16 }, // SCOM MCA
/*18*/ { 3,4,5,7,9,10,11,12,0,0, 0x0,0x0,0, 0xc0000,0x4000,16 }, // S2M ISA
/*19*/ { 3,4,9,0,0,0,0,0,0,0, 0xc00,0x10,16, 0xc0000,0x4000,16 }, // S2M MCA
/*20*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // MAESTRA ISA
/*21*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // MAESTRA PCI
/*22*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // MAESTRA QUADRO ISA
/*23*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048, 0x0,0x0,0 }, // MAESTRA QUADRO PCI
/*24*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // MAESTRA PRIMARY ISA
/*25*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // MAESTRA PRIMARY PCI
/*26*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA 2.0 ISA
/*27*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA 2.0 /U ISA
/*28*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 2.0 /U PCI
/*29*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA PRO 2.0 ISA
/*30*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA PRO 2.0 /U ISA
/*31*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA PRO 2.0 /U PCI
/*32*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA MOBILE
/*33*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // TDK DFI3600 (same as DIVA MOBILE [32])
/*34*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // New Media ISDN (same as DIVA PRO PCMCIA [4])
/*35*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // BT ExLane PCI (same as DIVA PRO 2.0 PCI [7])
/*36*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // BT ExLane ISA (same as DIVA PRO 2.0 ISA [29])
/*37*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA 2.01 S/T ISA
/*38*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA 2.01 U ISA
/*39*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 2.01 S/T PCI
/*40*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 2.01 U PCI
/*41*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA MOBILE V.90
/*42*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // TDK DFI3600 V.90 (same as DIVA MOBILE V.90 [39])
/*43*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048, 0x0,0x0,0 }, // DIVA Server PRI-23M PCI
/*44*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA 2.01 S/T USB
/*45*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA CT S/T PCI
/*46*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA CT U PCI
/*47*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA CT Lite S/T PCI
/*48*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA CT Lite U PCI
/*49*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA ISDN+V.90 PC Card
/*50*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA ISDN+V.90 PCI
/*51*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA TA
/*52*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048, 0x0,0x0,0 }, // MAESTRA VOICE QUADRO PCI
/*53*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048, 0x0,0x0,0 }, // MAESTRA VOICE QUADRO PCI
/*54*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // MAESTRA VOICE PRIMARY PCI
/*55*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048, 0x0,0x0,0 }, // MAESTRA VOICE QUADRO PCI
/*56*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // MAESTRA VOICE PRIMARY PCI
/*57*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA LAN
/*58*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 2.02 S/T PCI
/*59*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 2.02 U PCI
/*60*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // Diva Server BRI-2M 2.0 PCI
/*61*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // Diva Server BRI-2F PCI
/*62*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA 2.01 S/T USB
/*63*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // Diva Server Voice BRI-2M 2.0 PCI
/*64*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 3.0 PCI
/*65*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA CT S/T PCI V2.0
/*66*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA Mobile V.90 PC Card
/*67*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA ISDN PC Card
/*68*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA ISDN PC Card
/* 0*/ { 3,4,9,0,0,0,0,0,0,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA MCA
/* 1*/ { 3,4,9,10,11,12,0,0,0,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA ISA
/* 2*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA PCMCIA
/* 3*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA PRO ISA
/* 4*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA PRO PCMCIA
/* 5*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA PICCOLA ISA
/* 6*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA PICCOLA PCMCIA
/* 7*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA PRO 2.0 PCI
/* 8*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 2.0 PCI
/* 9*/ { 3,4,5,7,9,10,11,12,0,0, 0x0,0x0,0, 0x80000,0x2000,64 }, // QUADRO ISA
/*10*/ { 3,4,9,10,11,12,0,0,0,0, 0x0,0x0,0, 0xc0000,0x2000,16 }, // S ISA
/*11*/ { 3,4,9,0,0,0,0,0,0,0, 0xc00,0x10,16, 0xc0000,0x2000,16 }, // S MCA
/*12*/ { 3,4,9,10,11,12,0,0,0,0, 0x0,0x0,0, 0xc0000,0x2000,16 }, // SX ISA
/*13*/ { 3,4,9,0,0,0,0,0,0,0, 0xc00,0x10,16, 0xc0000,0x2000,16 }, // SX MCA
/*14*/ { 3,4,5,7,9,10,11,12,0,0, 0x0,0x0,0, 0x80000,0x0800,256 }, // SXN ISA
/*15*/ { 3,4,9,0,0,0,0,0,0,0, 0xc00,0x10,16, 0xc0000,0x2000,16 }, // SXN MCA
/*16*/ { 3,4,5,7,9,10,11,12,0,0, 0x0,0x0,0, 0x80000,0x0800,256 }, // SCOM ISA
/*17*/ { 3,4,9,0,0,0,0,0,0,0, 0xc00,0x10,16, 0xc0000,0x2000,16 }, // SCOM MCA
/*18*/ { 3,4,5,7,9,10,11,12,0,0, 0x0,0x0,0, 0xc0000,0x4000,16 }, // S2M ISA
/*19*/ { 3,4,9,0,0,0,0,0,0,0, 0xc00,0x10,16, 0xc0000,0x4000,16 }, // S2M MCA
/*20*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // MAESTRA ISA
/*21*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // MAESTRA PCI
/*22*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // MAESTRA QUADRO ISA
/*23*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048, 0x0,0x0,0 }, // MAESTRA QUADRO PCI
/*24*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // MAESTRA PRIMARY ISA
/*25*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // MAESTRA PRIMARY PCI
/*26*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA 2.0 ISA
/*27*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA 2.0 /U ISA
/*28*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 2.0 /U PCI
/*29*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA PRO 2.0 ISA
/*30*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA PRO 2.0 /U ISA
/*31*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA PRO 2.0 /U PCI
/*32*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA MOBILE
/*33*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // TDK DFI3600 (same as DIVA MOBILE [32])
/*34*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // New Media ISDN (same as DIVA PRO PCMCIA [4])
/*35*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // BT ExLane PCI (same as DIVA PRO 2.0 PCI [7])
/*36*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // BT ExLane ISA (same as DIVA PRO 2.0 ISA [29])
/*37*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA 2.01 S/T ISA
/*38*/ { 3,5,7,9,10,11,12,14,15,0, 0x200,0x20,16, 0x0,0x0,0 }, // DIVA 2.01 U ISA
/*39*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 2.01 S/T PCI
/*40*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 2.01 U PCI
/*41*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA MOBILE V.90
/*42*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // TDK DFI3600 V.90 (same as DIVA MOBILE V.90 [39])
/*43*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048, 0x0,0x0,0 }, // DIVA Server PRI-23M PCI
/*44*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA 2.01 S/T USB
/*45*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA CT S/T PCI
/*46*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA CT U PCI
/*47*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA CT Lite S/T PCI
/*48*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA CT Lite U PCI
/*49*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA ISDN+V.90 PC Card
/*50*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA ISDN+V.90 PCI
/*51*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA TA
/*52*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048, 0x0,0x0,0 }, // MAESTRA VOICE QUADRO PCI
/*53*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048, 0x0,0x0,0 }, // MAESTRA VOICE QUADRO PCI
/*54*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // MAESTRA VOICE PRIMARY PCI
/*55*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x20,2048, 0x0,0x0,0 }, // MAESTRA VOICE QUADRO PCI
/*56*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // MAESTRA VOICE PRIMARY PCI
/*57*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA LAN
/*58*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 2.02 S/T PCI
/*59*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 2.02 U PCI
/*60*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // Diva Server BRI-2M 2.0 PCI
/*61*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // Diva Server BRI-2F PCI
/*62*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA 2.01 S/T USB
/*63*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // Diva Server Voice BRI-2M 2.0 PCI
/*64*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA 3.0 PCI
/*65*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA CT S/T PCI V2.0
/*66*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA Mobile V.90 PC Card
/*67*/ { 0,0,0,0,0,0,0,0,0,0, 0x0,0x0,0, 0x0,0x0,0 }, // DIVA ISDN PC Card
/*68*/ { 3,4,5,7,9,10,11,12,14,15, 0x0,0x8,8192, 0x0,0x0,0 }, // DIVA ISDN PC Card
};
#endif /*CARDTYPE_H_WANT_RESOURCE_DATA*/
#else /*!CARDTYPE_H_WANT_DATA*/
extern CARD_PROPERTIES CardProperties [] ;
extern CARD_RESOURCE CardResource [] ;
extern CARD_PROPERTIES CardProperties[];
extern CARD_RESOURCE CardResource[];
#endif /*CARDTYPE_H_WANT_DATA*/
/*
* all existing download files
@@ -902,21 +902,21 @@ extern CARD_RESOURCE CardResource [] ;
#define CARD_D_NEW_DSP_COMBIFILE 63
typedef struct CARD_FILES_DATA
{
char * Name;
char *Name;
unsigned char Type;
}
CARD_FILES_DATA;
CARD_FILES_DATA;
typedef struct CARD_FILES
{
unsigned char Boot;
unsigned char Dsp [CARD_DSP_CNT];
unsigned char Dsp[CARD_DSP_CNT];
unsigned char DspTelindus;
unsigned char Prot [CARD_PROT_CNT];
unsigned char Prot[CARD_PROT_CNT];
}
CARD_FILES;
CARD_FILES;
#if CARDTYPE_H_WANT_DATA
#if CARDTYPE_H_WANT_FILE_DATA
CARD_FILES_DATA CardFData [] = {
CARD_FILES_DATA CardFData[] = {
// Filename Filetype
0, CARD_FT_UNKNOWN,
"didnload.bin", CARD_FT_B,
@@ -983,7 +983,7 @@ CARD_FILES_DATA CardFData [] = {
"di_swed.sm", CARD_FT_M,
"didspdld.bin", CARD_FT_NEW_DSP_COMBIFILE
};
CARD_FILES CardFiles [] =
CARD_FILES CardFiles[] =
{
{ /* CARD_UNKNOWN */
CARD_FILE_NONE,
@@ -1092,7 +1092,7 @@ CARD_FILES CardFiles [] =
};
#endif /*CARDTYPE_H_WANT_FILE_DATA*/
#else /*!CARDTYPE_H_WANT_DATA*/
extern CARD_FILES_DATA CardFData [] ;
extern CARD_FILES CardFiles [] ;
extern CARD_FILES_DATA CardFData[];
extern CARD_FILES CardFiles[];
#endif /*CARDTYPE_H_WANT_DATA*/
#endif /* _CARDTYPE_H_ */

View File

@@ -1,4 +1,3 @@
/*
*
Copyright (c) Eicon Networks, 2002.
@@ -34,12 +33,12 @@
-------------------------------------------------------------------------- */
typedef struct _didd_adapter_change_notification {
didd_adapter_change_callback_t callback;
void IDI_CALL_ENTITY_T * context;
void IDI_CALL_ENTITY_T *context;
} didd_adapter_change_notification_t, \
* IDI_CALL_ENTITY_T pdidd_adapter_change_notification_t;
#define DIVA_DIDD_MAX_NOTIFICATIONS 256
static didd_adapter_change_notification_t\
NotificationTable[DIVA_DIDD_MAX_NOTIFICATIONS];
static didd_adapter_change_notification_t \
NotificationTable[DIVA_DIDD_MAX_NOTIFICATIONS];
/* --------------------------------------------------------------------------
Array to held adapter information
-------------------------------------------------------------------------- */
@@ -49,13 +48,13 @@ static dword Adapters = 0; /* Number of adapters */
Shadow IDI_DIMAINT
and 'shadow' debug stuff
-------------------------------------------------------------------------- */
static void no_printf (unsigned char * format, ...)
static void no_printf(unsigned char *format, ...)
{
#ifdef EBUG
va_list ap;
va_start (ap, format);
va_start(ap, format);
debug((format, ap));
va_end (ap);
va_end(ap);
#endif
}
@@ -73,7 +72,7 @@ static DESCRIPTOR MAdapter = {IDI_DIMAINT, /* Adapter Type */
get all descriptors will receive information about DAdapter
{ byte type, byte channels, word features, IDI_CALL request }
-------------------------------------------------------------------------- */
static void IDI_CALL_LINK_T diva_dadapter_request (ENTITY IDI_CALL_ENTITY_T *);
static void IDI_CALL_LINK_T diva_dadapter_request(ENTITY IDI_CALL_ENTITY_T *);
static DESCRIPTOR DAdapter = {IDI_DADAPTER, /* Adapter Type */
0x00, /* Channels */
0x0000, /* Features */
@@ -81,61 +80,61 @@ static DESCRIPTOR DAdapter = {IDI_DADAPTER, /* Adapter Type */
/* --------------------------------------------------------------------------
LOCALS
-------------------------------------------------------------------------- */
static dword diva_register_adapter_callback (\
static dword diva_register_adapter_callback(\
didd_adapter_change_callback_t callback,
void IDI_CALL_ENTITY_T* context);
static void diva_remove_adapter_callback (dword handle);
static void diva_notify_adapter_change (DESCRIPTOR* d, int removal);
void IDI_CALL_ENTITY_T *context);
static void diva_remove_adapter_callback(dword handle);
static void diva_notify_adapter_change(DESCRIPTOR *d, int removal);
static diva_os_spin_lock_t didd_spin;
/* --------------------------------------------------------------------------
Should be called as first step, after driver init
-------------------------------------------------------------------------- */
void diva_didd_load_time_init (void) {
memset (&HandleTable[0], 0x00, sizeof(HandleTable));
memset (&NotificationTable[0], 0x00, sizeof(NotificationTable));
diva_os_initialize_spin_lock (&didd_spin, "didd");
void diva_didd_load_time_init(void) {
memset(&HandleTable[0], 0x00, sizeof(HandleTable));
memset(&NotificationTable[0], 0x00, sizeof(NotificationTable));
diva_os_initialize_spin_lock(&didd_spin, "didd");
}
/* --------------------------------------------------------------------------
Should be called as last step, if driver does unload
-------------------------------------------------------------------------- */
void diva_didd_load_time_finit (void) {
diva_os_destroy_spin_lock (&didd_spin, "didd");
void diva_didd_load_time_finit(void) {
diva_os_destroy_spin_lock(&didd_spin, "didd");
}
/* --------------------------------------------------------------------------
Called in order to register new adapter in adapter array
return adapter handle (> 0) on success
return -1 adapter array overflow
-------------------------------------------------------------------------- */
static int diva_didd_add_descriptor (DESCRIPTOR* d) {
static int diva_didd_add_descriptor(DESCRIPTOR *d) {
diva_os_spin_lock_magic_t irql;
int i;
if (d->type == IDI_DIMAINT) {
if (d->request) {
MAdapter.request = d->request;
dprintf = (DIVA_DI_PRINTF)d->request;
diva_notify_adapter_change (&MAdapter, 0); /* Inserted */
DBG_TRC (("DIMAINT registered, dprintf=%08x", d->request))
diva_notify_adapter_change(&MAdapter, 0); /* Inserted */
DBG_TRC(("DIMAINT registered, dprintf=%08x", d->request))
} else {
DBG_TRC (("DIMAINT removed"))
diva_notify_adapter_change (&MAdapter, 1); /* About to remove */
DBG_TRC(("DIMAINT removed"))
diva_notify_adapter_change(&MAdapter, 1); /* About to remove */
MAdapter.request = (IDI_CALL)no_printf;
dprintf = no_printf;
}
return (NEW_MAX_DESCRIPTORS);
}
for (i = 0; i < NEW_MAX_DESCRIPTORS; i++) {
diva_os_enter_spin_lock (&didd_spin, &irql, "didd_add");
diva_os_enter_spin_lock(&didd_spin, &irql, "didd_add");
if (HandleTable[i].type == 0) {
memcpy (&HandleTable[i], d, sizeof(*d));
memcpy(&HandleTable[i], d, sizeof(*d));
Adapters++;
diva_os_leave_spin_lock (&didd_spin, &irql, "didd_add");
diva_notify_adapter_change (d, 0); /* we have new adapter */
DBG_TRC (("Add adapter[%d], request=%08x", (i+1), d->request))
return (i+1);
diva_os_leave_spin_lock(&didd_spin, &irql, "didd_add");
diva_notify_adapter_change(d, 0); /* we have new adapter */
DBG_TRC(("Add adapter[%d], request=%08x", (i + 1), d->request))
return (i + 1);
}
diva_os_leave_spin_lock (&didd_spin, &irql, "didd_add");
diva_os_leave_spin_lock(&didd_spin, &irql, "didd_add");
}
DBG_ERR (("Can't add adapter, out of resources"))
DBG_ERR(("Can't add adapter, out of resources"))
return (-1);
}
/* --------------------------------------------------------------------------
@@ -143,64 +142,64 @@ static int diva_didd_add_descriptor (DESCRIPTOR* d) {
return adapter handle (> 0) on success
return 0 on success
-------------------------------------------------------------------------- */
static int diva_didd_remove_descriptor (IDI_CALL request) {
static int diva_didd_remove_descriptor(IDI_CALL request) {
diva_os_spin_lock_magic_t irql;
int i;
if (request == MAdapter.request) {
DBG_TRC(("DIMAINT removed"))
dprintf = no_printf;
diva_notify_adapter_change (&MAdapter, 1); /* About to remove */
diva_notify_adapter_change(&MAdapter, 1); /* About to remove */
MAdapter.request = (IDI_CALL)no_printf;
return (0);
}
for (i = 0; (Adapters && (i < NEW_MAX_DESCRIPTORS)); i++) {
if (HandleTable[i].request == request) {
diva_notify_adapter_change (&HandleTable[i], 1); /* About to remove */
diva_os_enter_spin_lock (&didd_spin, &irql, "didd_rm");
memset (&HandleTable[i], 0x00, sizeof(HandleTable[0]));
diva_notify_adapter_change(&HandleTable[i], 1); /* About to remove */
diva_os_enter_spin_lock(&didd_spin, &irql, "didd_rm");
memset(&HandleTable[i], 0x00, sizeof(HandleTable[0]));
Adapters--;
diva_os_leave_spin_lock (&didd_spin, &irql, "didd_rm");
DBG_TRC (("Remove adapter[%d], request=%08x", (i+1), request))
diva_os_leave_spin_lock(&didd_spin, &irql, "didd_rm");
DBG_TRC(("Remove adapter[%d], request=%08x", (i + 1), request))
return (0);
}
}
DBG_ERR (("Invalid request=%08x, can't remove adapter", request))
DBG_ERR(("Invalid request=%08x, can't remove adapter", request))
return (-1);
}
/* --------------------------------------------------------------------------
Read adapter array
return 1 if not enough space to save all available adapters
-------------------------------------------------------------------------- */
static int diva_didd_read_adapter_array (DESCRIPTOR* buffer, int length) {
static int diva_didd_read_adapter_array(DESCRIPTOR *buffer, int length) {
diva_os_spin_lock_magic_t irql;
int src, dst;
memset (buffer, 0x00, length);
memset(buffer, 0x00, length);
length /= sizeof(DESCRIPTOR);
DBG_TRC (("DIDD_Read, space = %d, Adapters = %d", length, Adapters+2))
DBG_TRC(("DIDD_Read, space = %d, Adapters = %d", length, Adapters + 2))
diva_os_enter_spin_lock (&didd_spin, &irql, "didd_read");
diva_os_enter_spin_lock(&didd_spin, &irql, "didd_read");
for (src = 0, dst = 0;
(Adapters && (src < NEW_MAX_DESCRIPTORS) && (dst < length));
src++) {
if (HandleTable[src].type) {
memcpy (&buffer[dst], &HandleTable[src], sizeof(DESCRIPTOR));
memcpy(&buffer[dst], &HandleTable[src], sizeof(DESCRIPTOR));
dst++;
}
}
diva_os_leave_spin_lock (&didd_spin, &irql, "didd_read");
diva_os_leave_spin_lock(&didd_spin, &irql, "didd_read");
if (dst < length) {
memcpy (&buffer[dst], &MAdapter, sizeof(DESCRIPTOR));
memcpy(&buffer[dst], &MAdapter, sizeof(DESCRIPTOR));
dst++;
} else {
DBG_ERR (("Can't write DIMAINT. Array too small"))
DBG_ERR(("Can't write DIMAINT. Array too small"))
}
if (dst < length) {
memcpy (&buffer[dst], &DAdapter, sizeof(DESCRIPTOR));
memcpy(&buffer[dst], &DAdapter, sizeof(DESCRIPTOR));
dst++;
} else {
DBG_ERR (("Can't write DADAPTER. Array too small"))
DBG_ERR(("Can't write DADAPTER. Array too small"))
}
DBG_TRC (("Read %d adapters", dst))
DBG_TRC(("Read %d adapters", dst))
return (dst == length);
}
/* --------------------------------------------------------------------------
@@ -208,12 +207,12 @@ static int diva_didd_read_adapter_array (DESCRIPTOR* buffer, int length) {
This function does process only synchronous requests, and is used
for reception/registration of new interfaces
-------------------------------------------------------------------------- */
static void IDI_CALL_LINK_T diva_dadapter_request (\
static void IDI_CALL_LINK_T diva_dadapter_request( \
ENTITY IDI_CALL_ENTITY_T *e) {
IDI_SYNC_REQ *syncReq = (IDI_SYNC_REQ *)e ;
IDI_SYNC_REQ *syncReq = (IDI_SYNC_REQ *)e;
if (e->Req) { /* We do not process it, also return error */
e->Rc = OUT_OF_RESOURCES;
DBG_ERR (("Can't process async request, Req=%02x", e->Req))
DBG_ERR(("Can't process async request, Req=%02x", e->Req))
return;
}
/*
@@ -221,37 +220,37 @@ static void IDI_CALL_LINK_T diva_dadapter_request (\
*/
switch (e->Rc) {
case IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY: {
diva_didd_adapter_notify_t* pinfo = &syncReq->didd_notify.info;
pinfo->handle = diva_register_adapter_callback (\
diva_didd_adapter_notify_t *pinfo = &syncReq->didd_notify.info;
pinfo->handle = diva_register_adapter_callback( \
(didd_adapter_change_callback_t)pinfo->callback,
(void IDI_CALL_ENTITY_T *)pinfo->context);
e->Rc = 0xff;
} break;
case IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY: {
diva_didd_adapter_notify_t* pinfo = &syncReq->didd_notify.info;
diva_remove_adapter_callback (pinfo->handle);
diva_didd_adapter_notify_t *pinfo = &syncReq->didd_notify.info;
diva_remove_adapter_callback(pinfo->handle);
e->Rc = 0xff;
} break;
case IDI_SYNC_REQ_DIDD_ADD_ADAPTER: {
diva_didd_add_adapter_t* pinfo = &syncReq->didd_add_adapter.info;
if (diva_didd_add_descriptor ((DESCRIPTOR*)pinfo->descriptor) < 0) {
diva_didd_add_adapter_t *pinfo = &syncReq->didd_add_adapter.info;
if (diva_didd_add_descriptor((DESCRIPTOR *)pinfo->descriptor) < 0) {
e->Rc = OUT_OF_RESOURCES;
} else {
e->Rc = 0xff;
}
} break;
case IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER: {
diva_didd_remove_adapter_t* pinfo = &syncReq->didd_remove_adapter.info;
if (diva_didd_remove_descriptor ((IDI_CALL)pinfo->p_request) < 0) {
diva_didd_remove_adapter_t *pinfo = &syncReq->didd_remove_adapter.info;
if (diva_didd_remove_descriptor((IDI_CALL)pinfo->p_request) < 0) {
e->Rc = OUT_OF_RESOURCES;
} else {
e->Rc = 0xff;
}
} break;
case IDI_SYNC_REQ_DIDD_READ_ADAPTER_ARRAY: {
diva_didd_read_adapter_array_t* pinfo =\
diva_didd_read_adapter_array_t *pinfo =\
&syncReq->didd_read_adapter_array.info;
if (diva_didd_read_adapter_array ((DESCRIPTOR*)pinfo->buffer,
if (diva_didd_read_adapter_array((DESCRIPTOR *)pinfo->buffer,
(int)pinfo->length)) {
e->Rc = OUT_OF_RESOURCES;
} else {
@@ -259,66 +258,66 @@ static void IDI_CALL_LINK_T diva_dadapter_request (\
}
} break;
default:
DBG_ERR (("Can't process sync request, Req=%02x", e->Rc))
DBG_ERR(("Can't process sync request, Req=%02x", e->Rc))
e->Rc = OUT_OF_RESOURCES;
}
}
/* --------------------------------------------------------------------------
IDI client does register his notification function
-------------------------------------------------------------------------- */
static dword diva_register_adapter_callback (\
static dword diva_register_adapter_callback( \
didd_adapter_change_callback_t callback,
void IDI_CALL_ENTITY_T* context) {
void IDI_CALL_ENTITY_T *context) {
diva_os_spin_lock_magic_t irql;
dword i;
for (i = 0; i < DIVA_DIDD_MAX_NOTIFICATIONS; i++) {
diva_os_enter_spin_lock (&didd_spin, &irql, "didd_nfy_add");
diva_os_enter_spin_lock(&didd_spin, &irql, "didd_nfy_add");
if (!NotificationTable[i].callback) {
NotificationTable[i].callback = callback;
NotificationTable[i].context = context;
diva_os_leave_spin_lock (&didd_spin, &irql, "didd_nfy_add");
DBG_TRC(("Register adapter notification[%d]=%08x", i+1, callback))
return (i+1);
diva_os_leave_spin_lock(&didd_spin, &irql, "didd_nfy_add");
DBG_TRC(("Register adapter notification[%d]=%08x", i + 1, callback))
return (i + 1);
}
diva_os_leave_spin_lock (&didd_spin, &irql, "didd_nfy_add");
diva_os_leave_spin_lock(&didd_spin, &irql, "didd_nfy_add");
}
DBG_ERR (("Can't register adapter notification, overflow"))
DBG_ERR(("Can't register adapter notification, overflow"))
return (0);
}
/* --------------------------------------------------------------------------
IDI client does register his notification function
-------------------------------------------------------------------------- */
static void diva_remove_adapter_callback (dword handle) {
static void diva_remove_adapter_callback(dword handle) {
diva_os_spin_lock_magic_t irql;
if (handle && ((--handle) < DIVA_DIDD_MAX_NOTIFICATIONS)) {
diva_os_enter_spin_lock (&didd_spin, &irql, "didd_nfy_rm");
diva_os_enter_spin_lock(&didd_spin, &irql, "didd_nfy_rm");
NotificationTable[handle].callback = NULL;
NotificationTable[handle].context = NULL;
diva_os_leave_spin_lock (&didd_spin, &irql, "didd_nfy_rm");
DBG_TRC(("Remove adapter notification[%d]", (int)(handle+1)))
diva_os_leave_spin_lock(&didd_spin, &irql, "didd_nfy_rm");
DBG_TRC(("Remove adapter notification[%d]", (int)(handle + 1)))
return;
}
DBG_ERR(("Can't remove adapter notification, handle=%d", handle))
}
}
/* --------------------------------------------------------------------------
Notify all client about adapter array change
Does suppose following behavior in the client side:
Step 1: Redister Notification
Step 2: Read Adapter Array
-------------------------------------------------------------------------- */
static void diva_notify_adapter_change (DESCRIPTOR* d, int removal) {
static void diva_notify_adapter_change(DESCRIPTOR *d, int removal) {
int i, do_notify;
didd_adapter_change_notification_t nfy;
diva_os_spin_lock_magic_t irql;
for (i = 0; i < DIVA_DIDD_MAX_NOTIFICATIONS; i++) {
do_notify = 0;
diva_os_enter_spin_lock (&didd_spin, &irql, "didd_nfy");
diva_os_enter_spin_lock(&didd_spin, &irql, "didd_nfy");
if (NotificationTable[i].callback) {
memcpy (&nfy, &NotificationTable[i], sizeof(nfy));
memcpy(&nfy, &NotificationTable[i], sizeof(nfy));
do_notify = 1;
}
diva_os_leave_spin_lock (&didd_spin, &irql, "didd_nfy");
diva_os_leave_spin_lock(&didd_spin, &irql, "didd_nfy");
if (do_notify) {
(*(nfy.callback))(nfy.context, d, removal);
}
@@ -359,8 +358,7 @@ static void diva_notify_adapter_change (DESCRIPTOR* d, int removal) {
This approach does allow to load/unload debug interface on demand,
and save memory, it it is necessary.
-------------------------------------------------------------------------- */
void IDI_CALL_LINK_T DIVA_DIDD_Read (void IDI_CALL_ENTITY_T * buffer,
void IDI_CALL_LINK_T DIVA_DIDD_Read(void IDI_CALL_ENTITY_T *buffer,
int length) {
diva_didd_read_adapter_array (buffer, length);
diva_didd_read_adapter_array(buffer, length);
}

View File

@@ -26,8 +26,8 @@
#ifndef __DIVA_DIDD_DADAPTER_INC__
#define __DIVA_DIDD_DADAPTER_INC__
void diva_didd_load_time_init (void);
void diva_didd_load_time_finit (void);
void diva_didd_load_time_init(void);
void diva_didd_load_time_finit(void);
#define NEW_MAX_DESCRIPTORS 64

File diff suppressed because it is too large Load Diff

View File

@@ -41,25 +41,25 @@ typedef struct _diva_dbg_entry_head {
dword data_length;
} diva_dbg_entry_head_t;
int diva_maint_init (byte* base, unsigned long length, int do_init);
void* diva_maint_finit (void);
dword diva_dbg_q_length (void);
diva_dbg_entry_head_t* diva_maint_get_message (word* size,
diva_os_spin_lock_magic_t* old_irql);
void diva_maint_ack_message (int do_release,
diva_os_spin_lock_magic_t* old_irql);
void diva_maint_prtComp (char *format, ...);
void diva_maint_wakeup_read (void);
int diva_get_driver_info (dword id, byte* data, int data_length);
int diva_get_driver_dbg_mask (dword id, byte* data);
int diva_set_driver_dbg_mask (dword id, dword mask);
void diva_mnt_remove_xdi_adapter (const DESCRIPTOR* d);
void diva_mnt_add_xdi_adapter (const DESCRIPTOR* d);
int diva_mnt_shutdown_xdi_adapters (void);
int diva_maint_init(byte *base, unsigned long length, int do_init);
void *diva_maint_finit(void);
dword diva_dbg_q_length(void);
diva_dbg_entry_head_t *diva_maint_get_message(word *size,
diva_os_spin_lock_magic_t *old_irql);
void diva_maint_ack_message(int do_release,
diva_os_spin_lock_magic_t *old_irql);
void diva_maint_prtComp(char *format, ...);
void diva_maint_wakeup_read(void);
int diva_get_driver_info(dword id, byte *data, int data_length);
int diva_get_driver_dbg_mask(dword id, byte *data);
int diva_set_driver_dbg_mask(dword id, dword mask);
void diva_mnt_remove_xdi_adapter(const DESCRIPTOR *d);
void diva_mnt_add_xdi_adapter(const DESCRIPTOR *d);
int diva_mnt_shutdown_xdi_adapters(void);
#define DIVA_MAX_SELECTIVE_FILTER_LENGTH 127
int diva_set_trace_filter (int filter_length, const char* filter);
int diva_get_trace_filter (int max_length, char* filter);
int diva_set_trace_filter(int filter_length, const char *filter);
int diva_get_trace_filter(int max_length, char *filter);
#define DITRACE_CMD_GET_DRIVER_INFO 1
@@ -72,7 +72,7 @@ int diva_get_trace_filter (int max_length, char* filter);
/*
Trace lavels for debug via management interface
*/
*/
#define DIVA_MGT_DBG_TRACE 0x00000001 /* All trace messages from the card */
#define DIVA_MGT_DBG_DCHAN 0x00000002 /* All D-channel relater trace messages */
#define DIVA_MGT_DBG_MDM_PROGRESS 0x00000004 /* Modem progress events */
@@ -86,5 +86,3 @@ int diva_get_trace_filter (int max_length, char* filter);
#define DIVA_MGT_DBG_IFC_AUDIO 0x00000400 /* Audio Tap trace for all channels */
# endif /* DEBUG_IF___H */

View File

@@ -34,15 +34,15 @@ _DbgHandle_ myDriverDebugHandle = { 0 /*!Registered*/, DBG_HANDLE_VERSION };
DIVA_DI_PRINTF dprintf = no_printf;
/*****************************************************************************/
#define DBG_FUNC(name) \
void \
myDbgPrint_##name (char *format, ...) \
{ va_list ap ; \
if ( myDriverDebugHandle.dbg_prt ) \
{ va_start (ap, format) ; \
void \
myDbgPrint_##name(char *format, ...) \
{ va_list ap; \
if (myDriverDebugHandle.dbg_prt) \
{ va_start(ap, format); \
(myDriverDebugHandle.dbg_prt) \
(myDriverDebugHandle.id, DLI_##name, format, ap) ; \
va_end (ap) ; \
} }
(myDriverDebugHandle.id, DLI_##name, format, ap); \
va_end(ap); \
} }
DBG_FUNC(LOG)
DBG_FUNC(FTL)
DBG_FUNC(ERR)
@@ -50,14 +50,14 @@ DBG_FUNC(TRC)
DBG_FUNC(MXLOG)
DBG_FUNC(FTL_MXLOG)
void
myDbgPrint_EVL (long msgID, ...)
{ va_list ap ;
if ( myDriverDebugHandle.dbg_ev )
{ va_start (ap, msgID) ;
myDbgPrint_EVL(long msgID, ...)
{ va_list ap;
if (myDriverDebugHandle.dbg_ev)
{ va_start(ap, msgID);
(myDriverDebugHandle.dbg_ev)
(myDriverDebugHandle.id, (unsigned long)msgID, ap) ;
va_end (ap) ;
} }
(myDriverDebugHandle.id, (unsigned long)msgID, ap);
va_end(ap);
} }
DBG_FUNC(REG)
DBG_FUNC(MEM)
DBG_FUNC(SPL)
@@ -76,70 +76,70 @@ DBG_FUNC(PRV2)
DBG_FUNC(PRV3)
/*****************************************************************************/
int
DbgRegister (char *drvName, char *drvTag, unsigned long dbgMask)
DbgRegister(char *drvName, char *drvTag, unsigned long dbgMask)
{
int len;
/*
* deregister (if already registered) and zero out myDriverDebugHandle
*/
DbgDeregister () ;
DbgDeregister();
/*
* initialize the debug handle
*/
myDriverDebugHandle.Version = DBG_HANDLE_VERSION ;
myDriverDebugHandle.id = -1 ;
myDriverDebugHandle.dbgMask = dbgMask | (DL_EVL | DL_FTL | DL_LOG) ;
len = strlen (drvName) ;
memcpy (myDriverDebugHandle.drvName, drvName,
myDriverDebugHandle.Version = DBG_HANDLE_VERSION;
myDriverDebugHandle.id = -1;
myDriverDebugHandle.dbgMask = dbgMask | (DL_EVL | DL_FTL | DL_LOG);
len = strlen(drvName);
memcpy(myDriverDebugHandle.drvName, drvName,
(len < sizeof(myDriverDebugHandle.drvName)) ?
len : sizeof(myDriverDebugHandle.drvName) - 1) ;
len = strlen (drvTag) ;
memcpy (myDriverDebugHandle.drvTag, drvTag,
len : sizeof(myDriverDebugHandle.drvName) - 1);
len = strlen(drvTag);
memcpy(myDriverDebugHandle.drvTag, drvTag,
(len < sizeof(myDriverDebugHandle.drvTag)) ?
len : sizeof(myDriverDebugHandle.drvTag) - 1) ;
len : sizeof(myDriverDebugHandle.drvTag) - 1);
/*
* Try to register debugging via old (and only) interface
*/
dprintf("\000\377", &myDriverDebugHandle) ;
if ( myDriverDebugHandle.dbg_prt )
dprintf("\000\377", &myDriverDebugHandle);
if (myDriverDebugHandle.dbg_prt)
{
return (1) ;
return (1);
}
/*
* Check if we registered with an old maint driver (see debuglib.h)
*/
if ( myDriverDebugHandle.dbg_end != NULL
if (myDriverDebugHandle.dbg_end != NULL
/* location of 'dbg_prt' in _OldDbgHandle_ struct */
&& (myDriverDebugHandle.regTime.LowPart ||
myDriverDebugHandle.regTime.HighPart ) )
myDriverDebugHandle.regTime.HighPart))
/* same location as in _OldDbgHandle_ struct */
{
dprintf("%s: Cannot log to old maint driver !", drvName) ;
dprintf("%s: Cannot log to old maint driver !", drvName);
myDriverDebugHandle.dbg_end =
((_OldDbgHandle_ *)&myDriverDebugHandle)->dbg_end ;
DbgDeregister () ;
((_OldDbgHandle_ *)&myDriverDebugHandle)->dbg_end;
DbgDeregister();
}
return (0) ;
return (0);
}
/*****************************************************************************/
void
DbgSetLevel (unsigned long dbgMask)
DbgSetLevel(unsigned long dbgMask)
{
myDriverDebugHandle.dbgMask = dbgMask | (DL_EVL | DL_FTL | DL_LOG) ;
myDriverDebugHandle.dbgMask = dbgMask | (DL_EVL | DL_FTL | DL_LOG);
}
/*****************************************************************************/
void
DbgDeregister (void)
DbgDeregister(void)
{
if ( myDriverDebugHandle.dbg_end )
if (myDriverDebugHandle.dbg_end)
{
(myDriverDebugHandle.dbg_end)(&myDriverDebugHandle) ;
(myDriverDebugHandle.dbg_end)(&myDriverDebugHandle);
}
memset (&myDriverDebugHandle, 0, sizeof(myDriverDebugHandle)) ;
memset(&myDriverDebugHandle, 0, sizeof(myDriverDebugHandle));
}
void xdi_dbg_xlog (char* x, ...) {
void xdi_dbg_xlog(char *x, ...) {
va_list ap;
va_start (ap, x);
va_start(ap, x);
if (myDriverDebugHandle.dbg_end &&
(myDriverDebugHandle.dbg_irq || myDriverDebugHandle.dbg_old) &&
(myDriverDebugHandle.dbgMask & DL_STAT)) {

View File

@@ -103,43 +103,43 @@
#define DL_TO_KERNEL 0x40000000
#ifdef DIVA_NO_DEBUGLIB
#define myDbgPrint_LOG(x...) do { } while(0);
#define myDbgPrint_FTL(x...) do { } while(0);
#define myDbgPrint_ERR(x...) do { } while(0);
#define myDbgPrint_TRC(x...) do { } while(0);
#define myDbgPrint_MXLOG(x...) do { } while(0);
#define myDbgPrint_EVL(x...) do { } while(0);
#define myDbgPrint_REG(x...) do { } while(0);
#define myDbgPrint_MEM(x...) do { } while(0);
#define myDbgPrint_SPL(x...) do { } while(0);
#define myDbgPrint_IRP(x...) do { } while(0);
#define myDbgPrint_TIM(x...) do { } while(0);
#define myDbgPrint_BLK(x...) do { } while(0);
#define myDbgPrint_TAPI(x...) do { } while(0);
#define myDbgPrint_NDIS(x...) do { } while(0);
#define myDbgPrint_CONN(x...) do { } while(0);
#define myDbgPrint_STAT(x...) do { } while(0);
#define myDbgPrint_SEND(x...) do { } while(0);
#define myDbgPrint_RECV(x...) do { } while(0);
#define myDbgPrint_PRV0(x...) do { } while(0);
#define myDbgPrint_PRV1(x...) do { } while(0);
#define myDbgPrint_PRV2(x...) do { } while(0);
#define myDbgPrint_PRV3(x...) do { } while(0);
#define DBG_TEST(func,args) do { } while(0);
#define DBG_EVL_ID(args) do { } while(0);
#define myDbgPrint_LOG(x...) do { } while (0);
#define myDbgPrint_FTL(x...) do { } while (0);
#define myDbgPrint_ERR(x...) do { } while (0);
#define myDbgPrint_TRC(x...) do { } while (0);
#define myDbgPrint_MXLOG(x...) do { } while (0);
#define myDbgPrint_EVL(x...) do { } while (0);
#define myDbgPrint_REG(x...) do { } while (0);
#define myDbgPrint_MEM(x...) do { } while (0);
#define myDbgPrint_SPL(x...) do { } while (0);
#define myDbgPrint_IRP(x...) do { } while (0);
#define myDbgPrint_TIM(x...) do { } while (0);
#define myDbgPrint_BLK(x...) do { } while (0);
#define myDbgPrint_TAPI(x...) do { } while (0);
#define myDbgPrint_NDIS(x...) do { } while (0);
#define myDbgPrint_CONN(x...) do { } while (0);
#define myDbgPrint_STAT(x...) do { } while (0);
#define myDbgPrint_SEND(x...) do { } while (0);
#define myDbgPrint_RECV(x...) do { } while (0);
#define myDbgPrint_PRV0(x...) do { } while (0);
#define myDbgPrint_PRV1(x...) do { } while (0);
#define myDbgPrint_PRV2(x...) do { } while (0);
#define myDbgPrint_PRV3(x...) do { } while (0);
#define DBG_TEST(func, args) do { } while (0);
#define DBG_EVL_ID(args) do { } while (0);
#else /* DIVA_NO_DEBUGLIB */
/*
* define low level macros for formatted & raw debugging
*/
#define DBG_DECL(func) extern void myDbgPrint_##func (char *, ...) ;
#define DBG_DECL(func) extern void myDbgPrint_##func(char *, ...);
DBG_DECL(LOG)
DBG_DECL(FTL)
DBG_DECL(ERR)
DBG_DECL(TRC)
DBG_DECL(MXLOG)
DBG_DECL(FTL_MXLOG)
extern void myDbgPrint_EVL (long, ...) ;
extern void myDbgPrint_EVL(long, ...);
DBG_DECL(REG)
DBG_DECL(MEM)
DBG_DECL(SPL)
@@ -160,30 +160,30 @@ DBG_DECL(PRV3)
/*
* tracing to maint and kernel if selected in the trace mask.
*/
#define DBG_TEST(func,args) \
{ if ( (myDriverDebugHandle.dbgMask) & (unsigned long)DL_##func ) \
#define DBG_TEST(func, args) \
{ if ((myDriverDebugHandle.dbgMask) & (unsigned long)DL_##func) \
{ \
if ( (myDriverDebugHandle.dbgMask) & DL_TO_KERNEL ) \
{DbgPrint args; DbgPrint ("\r\n");} \
myDbgPrint_##func args ; \
} }
if ((myDriverDebugHandle.dbgMask) & DL_TO_KERNEL) \
{ DbgPrint args; DbgPrint("\r\n"); } \
myDbgPrint_##func args; \
} }
#else
/*
* Standard tracing to maint driver.
*/
#define DBG_TEST(func,args) \
{ if ( (myDriverDebugHandle.dbgMask) & (unsigned long)DL_##func ) \
{ myDbgPrint_##func args ; \
} }
#define DBG_TEST(func, args) \
{ if ((myDriverDebugHandle.dbgMask) & (unsigned long)DL_##func) \
{ myDbgPrint_##func args; \
} }
#endif
/*
* For event level debug use a separate define, the parameter are
* different and cause compiler errors on some systems.
*/
#define DBG_EVL_ID(args) \
{ if ( (myDriverDebugHandle.dbgMask) & (unsigned long)DL_EVL ) \
{ myDbgPrint_EVL args ; \
} }
{ if ((myDriverDebugHandle.dbgMask) & (unsigned long)DL_EVL) \
{ myDbgPrint_EVL args; \
} }
#endif /* DIVA_NO_DEBUGLIB */
@@ -214,61 +214,61 @@ DBG_DECL(PRV3)
* prototypes for debug register/deregister functions in "debuglib.c"
*/
#ifdef DIVA_NO_DEBUGLIB
#define DbgRegister(name,tag, mask) do { } while(0)
#define DbgDeregister() do { } while(0)
#define DbgSetLevel(mask) do { } while(0)
#define DbgRegister(name, tag, mask) do { } while (0)
#define DbgDeregister() do { } while (0)
#define DbgSetLevel(mask) do { } while (0)
#else
extern DIVA_DI_PRINTF dprintf;
extern int DbgRegister (char *drvName, char *drvTag, unsigned long dbgMask) ;
extern void DbgDeregister (void) ;
extern void DbgSetLevel (unsigned long dbgMask) ;
extern int DbgRegister(char *drvName, char *drvTag, unsigned long dbgMask);
extern void DbgDeregister(void);
extern void DbgSetLevel(unsigned long dbgMask);
#endif
/*
* driver internal structure for debug handling;
* in client drivers this structure is maintained in "debuglib.c",
* in the debug driver "debug.c" maintains a chain of such structs.
*/
typedef struct _DbgHandle_ *pDbgHandle ;
typedef void ( * DbgEnd) (pDbgHandle) ;
typedef void ( * DbgLog) (unsigned short, int, char *, va_list) ;
typedef void ( * DbgOld) (unsigned short, char *, va_list) ;
typedef void ( * DbgEv) (unsigned short, unsigned long, va_list) ;
typedef void ( * DbgIrq) (unsigned short, int, char *, va_list) ;
typedef struct _DbgHandle_ *pDbgHandle;
typedef void (*DbgEnd)(pDbgHandle);
typedef void (*DbgLog)(unsigned short, int, char *, va_list);
typedef void (*DbgOld)(unsigned short, char *, va_list);
typedef void (*DbgEv)(unsigned short, unsigned long, va_list);
typedef void (*DbgIrq)(unsigned short, int, char *, va_list);
typedef struct _DbgHandle_
{ char Registered ; /* driver successfully registered */
{ char Registered; /* driver successfully registered */
#define DBG_HANDLE_REG_NEW 0x01 /* this (new) structure */
#define DBG_HANDLE_REG_OLD 0x7f /* old structure (see below) */
char Version; /* version of this structure */
#define DBG_HANDLE_VERSION 1 /* contains dbg_old function now */
#define DBG_HANDLE_VER_EXT 2 /* pReserved points to extended info*/
short id ; /* internal id of registered driver */
struct _DbgHandle_ *next ; /* ptr to next registered driver */
short id; /* internal id of registered driver */
struct _DbgHandle_ *next; /* ptr to next registered driver */
struct /*LARGE_INTEGER*/ {
unsigned long LowPart;
long HighPart;
} regTime ; /* timestamp for registration */
void *pIrp ; /* ptr to pending i/o request */
unsigned long dbgMask ; /* current debug mask */
char drvName[128] ; /* ASCII name of registered driver */
char drvTag[64] ; /* revision string */
DbgEnd dbg_end ; /* function for debug closing */
DbgLog dbg_prt ; /* function for debug appending */
DbgOld dbg_old ; /* function for old debug appending */
DbgEv dbg_ev ; /* function for Windows NT Eventlog */
DbgIrq dbg_irq ; /* function for irql checked debug */
void *pReserved3 ;
} _DbgHandle_ ;
extern _DbgHandle_ myDriverDebugHandle ;
} regTime; /* timestamp for registration */
void *pIrp; /* ptr to pending i/o request */
unsigned long dbgMask; /* current debug mask */
char drvName[128]; /* ASCII name of registered driver */
char drvTag[64]; /* revision string */
DbgEnd dbg_end; /* function for debug closing */
DbgLog dbg_prt; /* function for debug appending */
DbgOld dbg_old; /* function for old debug appending */
DbgEv dbg_ev; /* function for Windows NT Eventlog */
DbgIrq dbg_irq; /* function for irql checked debug */
void *pReserved3;
} _DbgHandle_;
extern _DbgHandle_ myDriverDebugHandle;
typedef struct _OldDbgHandle_
{ struct _OldDbgHandle_ *next ;
void *pIrp ;
long regTime[2] ;
unsigned long dbgMask ;
short id ;
char drvName[78] ;
DbgEnd dbg_end ;
DbgLog dbg_prt ;
} _OldDbgHandle_ ;
{ struct _OldDbgHandle_ *next;
void *pIrp;
long regTime[2];
unsigned long dbgMask;
short id;
char drvName[78];
DbgEnd dbg_end;
DbgLog dbg_prt;
} _OldDbgHandle_;
/* the differences in DbgHandles
old: tmp: new:
0 long next char Registered char Registered
@@ -304,19 +304,19 @@ typedef struct
/* DBG_EXT_TYPE_CARD_TRACE */
struct
{
void ( * MaskChangedNotify) (void *pContext);
void (*MaskChangedNotify)(void *pContext);
unsigned long ModuleTxtMask;
unsigned long DebugLevel;
unsigned long B_ChannelMask;
unsigned long LogBufferSize;
} CardTrace;
}Data;
} Data;
} _DbgExtendedInfo_;
#ifndef DIVA_NO_DEBUGLIB
/* -------------------------------------------------------------
Function used for xlog-style debug
------------------------------------------------------------- */
#define XDI_USE_XLOG 1
void xdi_dbg_xlog (char* x, ...);
void xdi_dbg_xlog(char *x, ...);
#endif /* DIVA_NO_DEBUGLIB */
#endif /* __DEBUGLIB_H__ */

View File

@@ -29,14 +29,14 @@
rest of the world
should be divisible by 4
*/
#define DIVA_DFIFO_RAW_SZ (2512*8)
#define DIVA_DFIFO_RAW_SZ (2512 * 8)
#define DIVA_DFIFO_DATA_SZ 68
#define DIVA_DFIFO_HDR_SZ 4
#define DIVA_DFIFO_SEGMENT_SZ (DIVA_DFIFO_DATA_SZ+DIVA_DFIFO_HDR_SZ)
#define DIVA_DFIFO_SEGMENTS ((DIVA_DFIFO_RAW_SZ)/(DIVA_DFIFO_SEGMENT_SZ)+1)
#define DIVA_DFIFO_MEM_SZ (\
(DIVA_DFIFO_SEGMENT_SZ)*(DIVA_DFIFO_SEGMENTS)+\
(DIVA_DFIFO_CACHE_SZ)*2\
#define DIVA_DFIFO_SEGMENT_SZ (DIVA_DFIFO_DATA_SZ + DIVA_DFIFO_HDR_SZ)
#define DIVA_DFIFO_SEGMENTS ((DIVA_DFIFO_RAW_SZ) / (DIVA_DFIFO_SEGMENT_SZ) + 1)
#define DIVA_DFIFO_MEM_SZ ( \
(DIVA_DFIFO_SEGMENT_SZ) * (DIVA_DFIFO_SEGMENTS) + \
(DIVA_DFIFO_CACHE_SZ) * 2 \
)
#define DIVA_DFIFO_STEP DIVA_DFIFO_SEGMENT_SZ
/* -------------------------------------------------------------------------
@@ -50,5 +50,5 @@
#define DIVA_DFIFO_READY 0x40 /* This block is ready for processing */
#define DIVA_DFIFO_LAST 0x20 /* This block is last in message */
#define DIVA_DFIFO_AUTO 0x10 /* Don't look for 'ready', don't ack */
int diva_dfifo_create (void* start, int length);
int diva_dfifo_create(void *start, int length);
#endif

View File

@@ -29,9 +29,9 @@
#include "di_defs.h"
#include "di.h"
#if !defined USE_EXTENDED_DEBUGS
#include "dimaint.h"
#include "dimaint.h"
#else
#define dprintf
#define dprintf
#endif
#include "io.h"
#include "dfifo.h"
@@ -40,9 +40,9 @@
/*------------------------------------------------------------------*/
/* local function prototypes */
/*------------------------------------------------------------------*/
void pr_out(ADAPTER * a);
byte pr_dpc(ADAPTER * a);
static byte pr_ready(ADAPTER * a);
void pr_out(ADAPTER *a);
byte pr_dpc(ADAPTER *a);
static byte pr_ready(ADAPTER *a);
static byte isdn_rc(ADAPTER *, byte, byte, byte, word, dword, dword);
static byte isdn_ind(ADAPTER *, byte, byte, byte, PBUFFER *, byte, word);
/* -----------------------------------------------------------------
@@ -56,16 +56,16 @@ static byte isdn_ind(ADAPTER *, byte, byte, byte, PBUFFER *, byte, word);
----------------------------------------------------------------- */
#if defined(XDI_USE_XLOG)
#define XDI_A_NR(_x_) ((byte)(((ISDN_ADAPTER *)(_x_->io))->ANum))
static void xdi_xlog (byte *msg, word code, int length);
static void xdi_xlog(byte *msg, word code, int length);
static byte xdi_xlog_sec = 0;
#else
#define XDI_A_NR(_x_) ((byte)0)
#endif
static void xdi_xlog_rc_event (byte Adapter,
static void xdi_xlog_rc_event(byte Adapter,
byte Id, byte Ch, byte Rc, byte cb, byte type);
static void xdi_xlog_request (byte Adapter, byte Id,
static void xdi_xlog_request(byte Adapter, byte Id,
byte Ch, byte Req, byte type);
static void xdi_xlog_ind (byte Adapter,
static void xdi_xlog_ind(byte Adapter,
byte Id,
byte Ch,
byte Ind,
@@ -75,15 +75,15 @@ static void xdi_xlog_ind (byte Adapter,
/*------------------------------------------------------------------*/
/* output function */
/*------------------------------------------------------------------*/
void pr_out(ADAPTER * a)
void pr_out(ADAPTER *a)
{
byte e_no;
ENTITY * this = NULL;
ENTITY *this = NULL;
BUFFERS *X;
word length;
word i;
word clength;
REQ * ReqOut;
REQ *ReqOut;
byte more;
byte ReadyCount;
byte ReqCount;
@@ -91,35 +91,35 @@ void pr_out(ADAPTER * a)
dtrc(dprintf("pr_out"));
/* while a request is pending ... */
e_no = look_req(a);
if(!e_no)
if (!e_no)
{
dtrc(dprintf("no_req"));
return;
}
ReadyCount = pr_ready(a);
if(!ReadyCount)
if (!ReadyCount)
{
dtrc(dprintf("not_ready"));
return;
}
ReqCount = 0;
while(e_no && ReadyCount) {
while (e_no && ReadyCount) {
next_req(a);
this = entity_ptr(a, e_no);
#ifdef USE_EXTENDED_DEBUGS
if ( !this )
if (!this)
{
DBG_FTL(("XDI: [%02x] !A%d ==> NULL entity ptr - try to ignore",
xdi_xlog_sec++, (int)((ISDN_ADAPTER *)a->io)->ANum))
e_no = look_req(a) ;
ReadyCount-- ;
continue ;
e_no = look_req(a);
ReadyCount--;
continue;
}
{
DBG_TRC((">A%d Id=0x%x Req=0x%x", ((ISDN_ADAPTER *)a->io)->ANum, this->Id, this->Req))
}
#else
dbug(dprintf("out:Req=%x,Id=%x,Ch=%x",this->Req,this->Id,this->ReqCh));
dbug(dprintf("out:Req=%x,Id=%x,Ch=%x", this->Req, this->Id, this->ReqCh));
#endif
/* get address of next available request buffer */
ReqOut = (REQ *)&PR_RAM->B[a->ram_inw(a, &PR_RAM->NextReq)];
@@ -131,16 +131,16 @@ void pr_out(ADAPTER * a)
/* adapters request buffer */
length = 0;
i = this->XCurrent;
X = PTR_X(a,this);
while(i<this->XNum && length<270) {
clength = min((word)(270-length),(word)(X[i].PLength-this->XOffset));
X = PTR_X(a, this);
while (i < this->XNum && length < 270) {
clength = min((word)(270 - length), (word)(X[i].PLength-this->XOffset));
a->ram_out_buffer(a,
&ReqOut->XBuffer.P[length],
PTR_P(a,this,&X[i].P[this->XOffset]),
PTR_P(a, this, &X[i].P[this->XOffset]),
clength);
length +=clength;
this->XOffset +=clength;
if(this->XOffset==X[i].PLength) {
length += clength;
this->XOffset += clength;
if (this->XOffset == X[i].PLength) {
this->XCurrent = (byte)++i;
this->XOffset = 0;
}
@@ -148,13 +148,13 @@ void pr_out(ADAPTER * a)
#if defined(DIVA_ISTREAM)
} else { /* Use CMA extension in order to transfer data to the card */
i = this->XCurrent;
X = PTR_X(a,this);
X = PTR_X(a, this);
while (i < this->XNum) {
diva_istream_write (a,
diva_istream_write(a,
this->Id,
PTR_P(a,this,&X[i].P[0]),
PTR_P(a, this, &X[i].P[0]),
X[i].PLength,
((i+1) == this->XNum),
((i + 1) == this->XNum),
0, 0);
this->XCurrent = (byte)++i;
}
@@ -165,20 +165,20 @@ void pr_out(ADAPTER * a)
a->ram_out(a, &ReqOut->ReqId, this->Id);
a->ram_out(a, &ReqOut->ReqCh, this->ReqCh);
/* if it's a specific request (no ASSIGN) ... */
if(this->Id &0x1f) {
if (this->Id & 0x1f) {
/* if buffers are left in the list of data buffers do */
/* do chaining (LL_MDATA, N_MDATA) */
this->More++;
if(i<this->XNum && this->MInd) {
xdi_xlog_request (XDI_A_NR(a), this->Id, this->ReqCh, this->MInd,
if (i < this->XNum && this->MInd) {
xdi_xlog_request(XDI_A_NR(a), this->Id, this->ReqCh, this->MInd,
a->IdTypeTable[this->No]);
a->ram_out(a, &ReqOut->Req, this->MInd);
more = true;
}
else {
xdi_xlog_request (XDI_A_NR(a), this->Id, this->ReqCh, this->Req,
xdi_xlog_request(XDI_A_NR(a), this->Id, this->ReqCh, this->Req,
a->IdTypeTable[this->No]);
this->More |=XMOREF;
this->More |= XMOREF;
a->ram_out(a, &ReqOut->Req, this->Req);
more = false;
if (a->FlowControlIdTable[this->ReqCh] == this->Id)
@@ -192,23 +192,23 @@ void pr_out(ADAPTER * a)
}
/* if we did chaining, this entity is put back into the */
/* request queue */
if(more) {
req_queue(a,this->No);
if (more) {
req_queue(a, this->No);
}
}
/* else it's a ASSIGN */
else {
/* save the request code used for buffer chaining */
this->MInd = 0;
if (this->Id==BLLC_ID) this->MInd = LL_MDATA;
if (this->Id==NL_ID ||
this->Id==TASK_ID ||
this->Id==MAN_ID
if (this->Id == BLLC_ID) this->MInd = LL_MDATA;
if (this->Id == NL_ID ||
this->Id == TASK_ID ||
this->Id == MAN_ID
) this->MInd = N_MDATA;
/* send the ASSIGN */
a->IdTypeTable[this->No] = this->Id;
xdi_xlog_request (XDI_A_NR(a),this->Id,this->ReqCh,this->Req, this->Id);
this->More |=XMOREF;
xdi_xlog_request(XDI_A_NR(a), this->Id, this->ReqCh, this->Req, this->Id);
this->More |= XMOREF;
a->ram_out(a, &ReqOut->Req, this->Req);
/* save the reference of the ASSIGN */
assign_queue(a, this->No, a->ram_inw(a, &ReqOut->Reference));
@@ -223,7 +223,7 @@ void pr_out(ADAPTER * a)
(byte)(a->ram_in(a, &PR_RAM->ReqInput) + ReqCount));
/* if it is a 'unreturncoded' UREMOVE request, remove the */
/* Id from our table after sending the request */
if(this && (this->Req==UREMOVE) && this->Id) {
if (this && (this->Req == UREMOVE) && this->Id) {
Id = this->Id;
e_no = a->IdTable[Id];
free_entity(a, e_no);
@@ -236,13 +236,13 @@ void pr_out(ADAPTER * a)
this->Id = 0;
}
}
static byte pr_ready(ADAPTER * a)
static byte pr_ready(ADAPTER *a)
{
byte ReadyCount;
ReadyCount = (byte)(a->ram_in(a, &PR_RAM->ReqOutput) -
a->ram_in(a, &PR_RAM->ReqInput));
if(!ReadyCount) {
if(!a->ReadyInt) {
if (!ReadyCount) {
if (!a->ReadyInt) {
a->ram_inc(a, &PR_RAM->ReadyInt);
a->ReadyInt++;
}
@@ -252,30 +252,30 @@ static byte pr_ready(ADAPTER * a)
/*------------------------------------------------------------------*/
/* isdn interrupt handler */
/*------------------------------------------------------------------*/
byte pr_dpc(ADAPTER * a)
byte pr_dpc(ADAPTER *a)
{
byte Count;
RC * RcIn;
IND * IndIn;
RC *RcIn;
IND *IndIn;
byte c;
byte RNRId;
byte Rc;
byte Ind;
/* if return codes are available ... */
if((Count = a->ram_in(a, &PR_RAM->RcOutput)) != 0) {
dtrc(dprintf("#Rc=%x",Count));
if ((Count = a->ram_in(a, &PR_RAM->RcOutput)) != 0) {
dtrc(dprintf("#Rc=%x", Count));
/* get the buffer address of the first return code */
RcIn = (RC *)&PR_RAM->B[a->ram_inw(a, &PR_RAM->NextRc)];
/* for all return codes do ... */
while(Count--) {
if((Rc=a->ram_in(a, &RcIn->Rc)) != 0) {
while (Count--) {
if ((Rc = a->ram_in(a, &RcIn->Rc)) != 0) {
dword tmp[2];
/*
Get extended information, associated with return code
*/
a->ram_in_buffer(a,
&RcIn->Reserved2[0],
(byte*)&tmp[0],
(byte *)&tmp[0],
8);
/* call return code handler, if it is not our return code */
/* the handler returns 2 */
@@ -293,29 +293,29 @@ byte pr_dpc(ADAPTER * a)
RcIn = (RC *)&PR_RAM->B[a->ram_inw(a, &RcIn->next)];
}
/* clear all return codes (no chaining!) */
a->ram_out(a, &PR_RAM->RcOutput ,0);
a->ram_out(a, &PR_RAM->RcOutput, 0);
/* call output function */
pr_out(a);
}
/* clear RNR flag */
RNRId = 0;
/* if indications are available ... */
if((Count = a->ram_in(a, &PR_RAM->IndOutput)) != 0) {
dtrc(dprintf("#Ind=%x",Count));
if ((Count = a->ram_in(a, &PR_RAM->IndOutput)) != 0) {
dtrc(dprintf("#Ind=%x", Count));
/* get the buffer address of the first indication */
IndIn = (IND *)&PR_RAM->B[a->ram_inw(a, &PR_RAM->NextInd)];
/* for all indications do ... */
while(Count--) {
while (Count--) {
/* if the application marks an indication as RNR, all */
/* indications from the same Id delivered in this interrupt */
/* are marked RNR */
if(RNRId && RNRId==a->ram_in(a, &IndIn->IndId)) {
if (RNRId && RNRId == a->ram_in(a, &IndIn->IndId)) {
a->ram_out(a, &IndIn->Ind, 0);
a->ram_out(a, &IndIn->RNR, true);
}
else {
Ind = a->ram_in(a, &IndIn->Ind);
if(Ind) {
if (Ind) {
RNRId = 0;
/* call indication handler, a return value of 2 means chain */
/* a return value of 1 means RNR */
@@ -327,7 +327,7 @@ byte pr_dpc(ADAPTER * a)
&IndIn->RBuffer,
a->ram_in(a, &IndIn->MInd),
a->ram_inw(a, &IndIn->MLength));
if(c==1) {
if (c == 1) {
dtrc(dprintf("RNR"));
a->ram_out(a, &IndIn->Ind, 0);
RNRId = a->ram_in(a, &IndIn->IndId);
@@ -342,13 +342,13 @@ byte pr_dpc(ADAPTER * a)
}
return false;
}
byte scom_test_int(ADAPTER * a)
byte scom_test_int(ADAPTER *a)
{
return a->ram_in(a,(void *)0x3fe);
return a->ram_in(a, (void *)0x3fe);
}
void scom_clear_int(ADAPTER * a)
void scom_clear_int(ADAPTER *a)
{
a->ram_out(a,(void *)0x3fe,0);
a->ram_out(a, (void *)0x3fe, 0);
}
/*------------------------------------------------------------------*/
/* return code handler */
@@ -361,7 +361,7 @@ static byte isdn_rc(ADAPTER *a,
dword extended_info_type,
dword extended_info)
{
ENTITY * this;
ENTITY *this;
byte e_no;
word i;
int cancel_rc;
@@ -370,12 +370,12 @@ static byte isdn_rc(ADAPTER *a,
DBG_TRC(("<A%d Id=0x%x Rc=0x%x", ((ISDN_ADAPTER *)a->io)->ANum, Id, Rc))
}
#else
dbug(dprintf("isdn_rc(Rc=%x,Id=%x,Ch=%x)",Rc,Id,Ch));
dbug(dprintf("isdn_rc(Rc=%x,Id=%x,Ch=%x)", Rc, Id, Ch));
#endif
/* check for ready interrupt */
if(Rc==READY_INT) {
xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 0, 0);
if(a->ReadyInt) {
if (Rc == READY_INT) {
xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 0, 0);
if (a->ReadyInt) {
a->ReadyInt--;
return 0;
}
@@ -383,19 +383,19 @@ static byte isdn_rc(ADAPTER *a,
}
/* if we know this Id ... */
e_no = a->IdTable[Id];
if(e_no) {
this = entity_ptr(a,e_no);
xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 0, a->IdTypeTable[this->No]);
if (e_no) {
this = entity_ptr(a, e_no);
xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 0, a->IdTypeTable[this->No]);
this->RcCh = Ch;
/* if it is a return code to a REMOVE request, remove the */
/* Id from our table */
if ((a->misc_flags_table[e_no] & DIVA_MISC_FLAGS_REMOVE_PENDING) &&
(Rc==OK)) {
(Rc == OK)) {
if (a->IdTypeTable[e_no] == NL_ID) {
if (a->RcExtensionSupported &&
(extended_info_type != DIVA_RC_TYPE_REMOVE_COMPLETE)) {
dtrc(dprintf("XDI: N-REMOVE, A(%02x) Id:%02x, ignore RC=OK",
XDI_A_NR(a),Id));
XDI_A_NR(a), Id));
return (0);
}
if (extended_info_type == DIVA_RC_TYPE_REMOVE_COMPLETE)
@@ -423,16 +423,16 @@ static byte isdn_rc(ADAPTER *a,
this->More &= ~XMOREC;
this->More |= 1;
dtrc(dprintf("XDI: correct MORE on REMOVE A(%02x) Id:%02x",
XDI_A_NR(a),Id));
XDI_A_NR(a), Id));
}
}
if (Rc==OK_FC) {
if (Rc == OK_FC) {
a->FlowControlIdTable[Ch] = Id;
a->FlowControlSkipTable[Ch] = false;
this->Rc = Rc;
this->More &= ~(XBUSY | XMOREC);
this->complete=0xff;
xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
this->complete = 0xff;
xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
CALLBACK(a, this);
return 0;
}
@@ -449,8 +449,8 @@ static byte isdn_rc(ADAPTER *a,
if (extended_info_type == DIVA_RC_TYPE_OK_FC) {
a->misc_flags_table[e_no] |= DIVA_MISC_FLAGS_NO_RC_CANCELLING;
this->Rc = Rc;
this->complete=0xff;
xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
this->complete = 0xff;
xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
DBG_TRC(("XDI OK_FC A(%02x) Id:%02x Ch:%02x Rc:%02x",
XDI_A_NR(a), Id, Ch, Rc))
CALLBACK(a, this);
@@ -465,38 +465,38 @@ static byte isdn_rc(ADAPTER *a,
this->Rc = Rc;
if (Ch == this->ReqCh)
{
this->More &=~(XBUSY | XMOREC);
this->complete=0xff;
this->More &= ~(XBUSY | XMOREC);
this->complete = 0xff;
}
xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
CALLBACK(a, this);
}
return 0;
}
if (this->More &XMOREC)
if (this->More & XMOREC)
this->More--;
/* call the application callback function */
if (((!cancel_rc) || (this->More & XMOREF)) && !(this->More & XMOREC)) {
this->Rc = Rc;
this->More &=~XBUSY;
this->complete=0xff;
xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
this->More &= ~XBUSY;
this->complete = 0xff;
xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 1, a->IdTypeTable[this->No]);
CALLBACK(a, this);
}
return 0;
}
/* if it's an ASSIGN return code check if it's a return */
/* code to an ASSIGN request from us */
if((Rc &0xf0)==ASSIGN_RC) {
if ((Rc & 0xf0) == ASSIGN_RC) {
e_no = get_assign(a, Ref);
if(e_no) {
this = entity_ptr(a,e_no);
if (e_no) {
this = entity_ptr(a, e_no);
this->Id = Id;
xdi_xlog_rc_event (XDI_A_NR(a), Id, Ch, Rc, 2, a->IdTypeTable[this->No]);
xdi_xlog_rc_event(XDI_A_NR(a), Id, Ch, Rc, 2, a->IdTypeTable[this->No]);
/* call the application callback function */
this->Rc = Rc;
this->More &=~XBUSY;
this->complete=0xff;
this->More &= ~XBUSY;
this->complete = 0xff;
#if defined(DIVA_ISTREAM) /* { */
if ((Rc == ASSIGN_OK) && a->ram_offset &&
(a->IdTypeTable[this->No] == NL_ID) &&
@@ -507,9 +507,9 @@ static byte isdn_rc(ADAPTER *a,
dword tmp[2];
extended_info -= offset;
#ifdef PLATFORM_GT_32BIT
a->ram_in_dw(a, (void*)ULongToPtr(extended_info), (dword*)&tmp[0], 2);
a->ram_in_dw(a, (void *)ULongToPtr(extended_info), (dword *)&tmp[0], 2);
#else
a->ram_in_dw(a, (void*)extended_info, (dword*)&tmp[0], 2);
a->ram_in_dw(a, (void *)extended_info, (dword *)&tmp[0], 2);
#endif
a->tx_stream[Id] = tmp[0];
a->rx_stream[Id] = tmp[1];
@@ -533,7 +533,7 @@ static byte isdn_rc(ADAPTER *a,
}
#endif /* } */
CALLBACK(a, this);
if(Rc==ASSIGN_OK) {
if (Rc == ASSIGN_OK) {
a->IdTable[Id] = e_no;
}
else
@@ -563,28 +563,28 @@ static byte isdn_ind(ADAPTER *a,
byte MInd,
word MLength)
{
ENTITY * this;
ENTITY *this;
word clength;
word offset;
BUFFERS *R;
byte* cma = NULL;
byte *cma = NULL;
#ifdef USE_EXTENDED_DEBUGS
{
DBG_TRC(("<A%d Id=0x%x Ind=0x%x", ((ISDN_ADAPTER *)a->io)->ANum, Id, Ind))
}
#else
dbug(dprintf("isdn_ind(Ind=%x,Id=%x,Ch=%x)",Ind,Id,Ch));
dbug(dprintf("isdn_ind(Ind=%x,Id=%x,Ch=%x)", Ind, Id, Ch));
#endif
if(a->IdTable[Id]) {
this = entity_ptr(a,a->IdTable[Id]);
if (a->IdTable[Id]) {
this = entity_ptr(a, a->IdTable[Id]);
this->IndCh = Ch;
xdi_xlog_ind (XDI_A_NR(a), Id, Ch, Ind,
xdi_xlog_ind(XDI_A_NR(a), Id, Ch, Ind,
0/* rnr_valid */, 0 /* rnr */, a->IdTypeTable[this->No]);
/* if the Receive More flag is not yet set, this is the */
/* first buffer of the packet */
if(this->RCurrent==0xff) {
if (this->RCurrent == 0xff) {
/* check for receive buffer chaining */
if(Ind==this->MInd) {
if (Ind == this->MInd) {
this->complete = 0;
this->Ind = MInd;
}
@@ -600,23 +600,23 @@ static byte isdn_ind(ADAPTER *a,
(a->misc_flags_table[this->No] & DIVA_MISC_FLAGS_RX_DMA)) &&
((Ind == N_DATA) ||
(a->protocol_capabilities & PROTCAP_CMA_ALLPR))) {
PISDN_ADAPTER IoAdapter = (PISDN_ADAPTER)a->io ;
PISDN_ADAPTER IoAdapter = (PISDN_ADAPTER)a->io;
if (a->misc_flags_table[this->No] & DIVA_MISC_FLAGS_RX_DMA) {
#if defined(DIVA_IDI_RX_DMA)
dword d;
diva_get_dma_map_entry (\
(struct _diva_dma_map_entry*)IoAdapter->dma_map,
(int)a->rx_stream[this->Id], (void**)&cma, &d);
diva_get_dma_map_entry(\
(struct _diva_dma_map_entry *)IoAdapter->dma_map,
(int)a->rx_stream[this->Id], (void **)&cma, &d);
#else
cma = &a->stream_buffer[0];
cma[0] = cma[1] = cma[2] = cma[3] = 0;
#endif
this->RLength = MLength = (word)*(dword*)cma;
this->RLength = MLength = (word)*(dword *)cma;
cma += 4;
} else {
int final = 0;
cma = &a->stream_buffer[0];
this->RLength = MLength = (word)diva_istream_read (a,
this->RLength = MLength = (word)diva_istream_read(a,
Id,
cma,
sizeof(a->stream_buffer),
@@ -628,8 +628,8 @@ static byte isdn_ind(ADAPTER *a,
} else {
this->complete = 1;
}
memcpy (IoAdapter->RBuffer.P, cma, IoAdapter->RBuffer.length) ;
this->RBuffer = (DBUFFER *)&IoAdapter->RBuffer ;
memcpy(IoAdapter->RBuffer.P, cma, IoAdapter->RBuffer.length);
this->RBuffer = (DBUFFER *)&IoAdapter->RBuffer;
}
#endif
if (!cma) {
@@ -639,19 +639,19 @@ static byte isdn_ind(ADAPTER *a,
CALLBACK(a, this);
/* map entity ptr, selector could be re-mapped by call to */
/* IDI from within callback */
this = entity_ptr(a,a->IdTable[Id]);
xdi_xlog_ind (XDI_A_NR(a), Id, Ch, Ind,
this = entity_ptr(a, a->IdTable[Id]);
xdi_xlog_ind(XDI_A_NR(a), Id, Ch, Ind,
1/* rnr_valid */, this->RNR/* rnr */, a->IdTypeTable[this->No]);
/* check for RNR */
if(this->RNR==1) {
if (this->RNR == 1) {
this->RNR = 0;
return 1;
}
/* if no buffers are provided by the application, the */
/* application want to copy the data itself including */
/* N_MDATA/LL_MDATA chaining */
if(!this->RNR && !this->RNum) {
xdi_xlog_ind (XDI_A_NR(a), Id, Ch, Ind,
if (!this->RNR && !this->RNum) {
xdi_xlog_ind(XDI_A_NR(a), Id, Ch, Ind,
2/* rnr_valid */, 0/* rnr */, a->IdTypeTable[this->No]);
return 0;
}
@@ -659,8 +659,8 @@ static byte isdn_ind(ADAPTER *a,
this->RCurrent = 0;
this->ROffset = 0;
}
if(this->RNR==2) {
if(Ind!=this->MInd) {
if (this->RNR == 2) {
if (Ind != this->MInd) {
this->RCurrent = 0xff;
this->RNR = 0;
}
@@ -669,9 +669,9 @@ static byte isdn_ind(ADAPTER *a,
/* if we have received buffers from the application, copy */
/* the data into these buffers */
offset = 0;
R = PTR_R(a,this);
R = PTR_R(a, this);
do {
if(this->ROffset==R[this->RCurrent].PLength) {
if (this->ROffset == R[this->RCurrent].PLength) {
this->ROffset = 0;
this->RCurrent++;
}
@@ -681,38 +681,38 @@ static byte isdn_ind(ADAPTER *a,
clength = min(a->ram_inw(a, &RBuffer->length)-offset,
R[this->RCurrent].PLength-this->ROffset);
}
if(R[this->RCurrent].P) {
if (R[this->RCurrent].P) {
if (cma) {
memcpy (PTR_P(a,this,&R[this->RCurrent].P[this->ROffset]),
memcpy(PTR_P(a, this, &R[this->RCurrent].P[this->ROffset]),
&cma[offset],
clength);
} else {
a->ram_in_buffer(a,
&RBuffer->P[offset],
PTR_P(a,this,&R[this->RCurrent].P[this->ROffset]),
PTR_P(a, this, &R[this->RCurrent].P[this->ROffset]),
clength);
}
}
offset +=clength;
this->ROffset +=clength;
offset += clength;
this->ROffset += clength;
if (cma) {
if (offset >= MLength) {
break;
}
continue;
}
} while(offset<(a->ram_inw(a, &RBuffer->length)));
} while (offset < (a->ram_inw(a, &RBuffer->length)));
/* if it's the last buffer of the packet, call the */
/* application callback function for the receive complete */
/* call */
if(Ind!=this->MInd) {
if (Ind != this->MInd) {
R[this->RCurrent].PLength = this->ROffset;
if(this->ROffset) this->RCurrent++;
if (this->ROffset) this->RCurrent++;
this->RNum = this->RCurrent;
this->RCurrent = 0xff;
this->Ind = Ind;
this->complete = 2;
xdi_xlog_ind (XDI_A_NR(a), Id, Ch, Ind,
xdi_xlog_ind(XDI_A_NR(a), Id, Ch, Ind,
3/* rnr_valid */, 0/* rnr */, a->IdTypeTable[this->No]);
CALLBACK(a, this);
}
@@ -725,8 +725,8 @@ static byte isdn_ind(ADAPTER *a,
This function works in the same way as xlog on the
active board
----------------------------------------------------------- */
static void xdi_xlog (byte *msg, word code, int length) {
xdi_dbg_xlog ("\x00\x02", msg, code, length);
static void xdi_xlog(byte *msg, word code, int length) {
xdi_dbg_xlog("\x00\x02", msg, code, length);
}
#endif
/* -----------------------------------------------------------
@@ -754,7 +754,7 @@ static void xdi_xlog (byte *msg, word code, int length) {
An unknown Id will cause "?-" in the front of the request.
In this case the log.c is to be extended.
----------------------------------------------------------- */
static void xdi_xlog_rc_event (byte Adapter,
static void xdi_xlog_rc_event(byte Adapter,
byte Id, byte Ch, byte Rc, byte cb, byte type) {
#if defined(XDI_USE_XLOG)
word LogInfo[4];
@@ -762,7 +762,7 @@ static void xdi_xlog_rc_event (byte Adapter,
PUT_WORD(&LogInfo[1], ((word)Id | (word)(Ch << 8)));
PUT_WORD(&LogInfo[2], ((word)Rc | (word)(type << 8)));
PUT_WORD(&LogInfo[3], cb);
xdi_xlog ((byte*)&LogInfo[0], 221, sizeof(LogInfo));
xdi_xlog((byte *)&LogInfo[0], 221, sizeof(LogInfo));
#endif
}
/* ------------------------------------------------------------------------
@@ -778,14 +778,14 @@ static void xdi_xlog_rc_event (byte Adapter,
An unknown Id will cause "?-" in the front of the request.
In this case the log.c is to be extended.
------------------------------------------------------------------------ */
static void xdi_xlog_request (byte Adapter, byte Id,
static void xdi_xlog_request(byte Adapter, byte Id,
byte Ch, byte Req, byte type) {
#if defined(XDI_USE_XLOG)
word LogInfo[3];
PUT_WORD(&LogInfo[0], ((word)Adapter | (word)(xdi_xlog_sec++ << 8)));
PUT_WORD(&LogInfo[1], ((word)Id | (word)(Ch << 8)));
PUT_WORD(&LogInfo[2], ((word)Req | (word)(type << 8)));
xdi_xlog ((byte*)&LogInfo[0], 220, sizeof(LogInfo));
xdi_xlog((byte *)&LogInfo[0], 220, sizeof(LogInfo));
#endif
}
/* ------------------------------------------------------------------------
@@ -817,7 +817,7 @@ static void xdi_xlog_request (byte Adapter, byte Id,
cause "?-" in the front of the request. In this case the
log.c is to be extended.
------------------------------------------------------------------------ */
static void xdi_xlog_ind (byte Adapter,
static void xdi_xlog_ind(byte Adapter,
byte Id,
byte Ch,
byte Ind,
@@ -830,6 +830,6 @@ static void xdi_xlog_ind (byte Adapter,
PUT_WORD(&LogInfo[1], ((word)Id | (word)(Ch << 8)));
PUT_WORD(&LogInfo[2], ((word)Ind | (word)(type << 8)));
PUT_WORD(&LogInfo[3], ((word)rnr | (word)(rnr_valid << 8)));
xdi_xlog ((byte*)&LogInfo[0], 222, sizeof(LogInfo));
xdi_xlog((byte *)&LogInfo[0], 222, sizeof(LogInfo));
#endif
}

View File

@@ -35,11 +35,11 @@
#define DIVA_MISC_FLAGS_REMOVE_PENDING 0x01
#define DIVA_MISC_FLAGS_NO_RC_CANCELLING 0x02
#define DIVA_MISC_FLAGS_RX_DMA 0x04
/* structure for all information we have to keep on a per */
/* adapater basis */
/* structure for all information we have to keep on a per */
/* adapater basis */
typedef struct adapter_s ADAPTER;
struct adapter_s {
void * io;
void *io;
byte IdTable[256];
byte IdTypeTable[256];
byte FlowControlIdTable[256];
@@ -48,30 +48,30 @@ struct adapter_s {
byte RcExtensionSupported;
byte misc_flags_table[256];
dword protocol_capabilities;
byte ( * ram_in)(ADAPTER * a, void * adr);
word ( * ram_inw)(ADAPTER * a, void * adr);
void (* ram_in_buffer)(ADAPTER * a, void * adr, void * P, word length);
void (* ram_look_ahead)(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e);
void ( * ram_out)(ADAPTER * a, void * adr, byte data);
void ( * ram_outw)(ADAPTER * a, void * adr, word data);
void (* ram_out_buffer)(ADAPTER * a, void * adr, void * P, word length);
void ( * ram_inc)(ADAPTER * a, void * adr);
byte (*ram_in)(ADAPTER *a, void *adr);
word (*ram_inw)(ADAPTER *a, void *adr);
void (*ram_in_buffer)(ADAPTER *a, void *adr, void *P, word length);
void (*ram_look_ahead)(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e);
void (*ram_out)(ADAPTER *a, void *adr, byte data);
void (*ram_outw)(ADAPTER *a, void *adr, word data);
void (*ram_out_buffer)(ADAPTER *a, void *adr, void *P, word length);
void (*ram_inc)(ADAPTER *a, void *adr);
#if defined(DIVA_ISTREAM)
dword rx_stream[256];
dword tx_stream[256];
word tx_pos[256];
word rx_pos[256];
byte stream_buffer[2512];
dword ( * ram_offset)(ADAPTER * a);
void ( * ram_out_dw) (ADAPTER *a,
dword (*ram_offset)(ADAPTER *a);
void (*ram_out_dw)(ADAPTER *a,
void *addr,
const dword* data,
const dword *data,
int dwords);
void ( * ram_in_dw) (ADAPTER *a,
void (*ram_in_dw)(ADAPTER *a,
void *addr,
dword* data,
dword *data,
int dwords);
void ( * istream_wakeup)(ADAPTER* a);
void (*istream_wakeup)(ADAPTER *a);
#else
byte stream_buffer[4];
#endif
@@ -79,39 +79,39 @@ struct adapter_s {
/*------------------------------------------------------------------*/
/* public functions of IDI common code */
/*------------------------------------------------------------------*/
void pr_out(ADAPTER * a);
byte pr_dpc(ADAPTER * a);
byte scom_test_int(ADAPTER * a);
void scom_clear_int(ADAPTER * a);
void pr_out(ADAPTER *a);
byte pr_dpc(ADAPTER *a);
byte scom_test_int(ADAPTER *a);
void scom_clear_int(ADAPTER *a);
/*------------------------------------------------------------------*/
/* OS specific functions used by IDI common code */
/*------------------------------------------------------------------*/
void free_entity(ADAPTER * a, byte e_no);
void assign_queue(ADAPTER * a, byte e_no, word ref);
byte get_assign(ADAPTER * a, word ref);
void req_queue(ADAPTER * a, byte e_no);
byte look_req(ADAPTER * a);
void next_req(ADAPTER * a);
ENTITY * entity_ptr(ADAPTER * a, byte e_no);
void free_entity(ADAPTER *a, byte e_no);
void assign_queue(ADAPTER *a, byte e_no, word ref);
byte get_assign(ADAPTER *a, word ref);
void req_queue(ADAPTER *a, byte e_no);
byte look_req(ADAPTER *a);
void next_req(ADAPTER *a);
ENTITY *entity_ptr(ADAPTER *a, byte e_no);
#if defined(DIVA_ISTREAM)
struct _diva_xdi_stream_interface;
void diva_xdi_provide_istream_info (ADAPTER* a,
struct _diva_xdi_stream_interface* pI);
void pr_stream (ADAPTER * a);
int diva_istream_write (void* context,
void diva_xdi_provide_istream_info(ADAPTER *a,
struct _diva_xdi_stream_interface *pI);
void pr_stream(ADAPTER *a);
int diva_istream_write(void *context,
int Id,
void* data,
void *data,
int length,
int final,
byte usr1,
byte usr2);
int diva_istream_read (void* context,
int diva_istream_read(void *context,
int Id,
void* data,
void *data,
int max_length,
int* final,
byte* usr1,
byte* usr2);
int *final,
byte *usr1,
byte *usr2);
#if defined(DIVA_IDI_RX_DMA)
#include "diva_dma.h"
#endif

View File

@@ -25,10 +25,10 @@
*/
#ifndef __DIVA_DI_DBG_INC__
#define __DIVA_DI_DBG_INC__
#if !defined (dtrc)
#if !defined(dtrc)
#define dtrc(a)
#endif
#if !defined (dbug)
#if !defined(dbug)
#define dbug(a)
#endif
#if !defined USE_EXTENDED_DEBUGS

View File

@@ -25,7 +25,7 @@
*/
#ifndef _DI_DEFS_
#define _DI_DEFS_
/* typedefs for our data structures */
/* typedefs for our data structures */
typedef struct get_name_s GET_NAME;
/* The entity_s structure is used to pass all
parameters between application and IDI */
@@ -40,7 +40,7 @@ typedef struct get_para_s GET_PARA;
/* --------------------------------------------------------
IDI_CALL
-------------------------------------------------------- */
typedef void (IDI_CALL_LINK_T * IDI_CALL)(ENTITY IDI_CALL_ENTITY_T *);
typedef void (IDI_CALL_LINK_T *IDI_CALL)(ENTITY IDI_CALL_ENTITY_T *);
typedef struct {
word length; /* length of data/parameter field */
byte P[270]; /* data/parameter field */
@@ -52,7 +52,7 @@ struct get_name_s {
struct postcall_s {
word command; /* command = 0x0300 */
word dummy; /* not used */
void ( * callback)(void *); /* call back */
void (*callback)(void *); /* call back */
void *context; /* context pointer */
};
#define REQ_PARA 0x0600 /* request command line parameters */
@@ -66,7 +66,7 @@ struct get_para_s {
};
struct buffers_s {
word PLength;
byte * P;
byte *P;
};
struct entity_s {
byte Req; /* pending request */
@@ -79,10 +79,10 @@ struct entity_s {
byte GlobalId; /* reserved field */
byte XNum; /* number of X-buffers */
byte RNum; /* number of R-buffers */
BUFFERS * X; /* pointer to X-buffer list */
BUFFERS * R; /* pointer to R-buffer list */
BUFFERS *X; /* pointer to X-buffer list */
BUFFERS *R; /* pointer to R-buffer list */
word RLength; /* length of current R-data */
DBUFFER * RBuffer; /* buffer of current R-data */
DBUFFER *RBuffer; /* buffer of current R-data */
byte RNR; /* receive not ready flag */
byte complete; /* receive complete status */
IDI_CALL callback;
@@ -103,7 +103,7 @@ typedef struct {
word features;
IDI_CALL request;
} DESCRIPTOR;
/* descriptor type field coding */
/* descriptor type field coding */
#define IDI_ADAPTER_S 1
#define IDI_ADAPTER_PR 2
#define IDI_ADAPTER_DIVA 3
@@ -113,7 +113,7 @@ typedef struct {
#define IDI_DADAPTER 0xfd
#define IDI_DIDDPNP 0xfe
#define IDI_DIMAINT 0xff
/* Hardware IDs ISA PNP */
/* Hardware IDs ISA PNP */
#define HW_ID_DIVA_PRO 3 /* same as IDI_ADAPTER_DIVA */
#define HW_ID_MAESTRA 4 /* same as IDI_ADAPTER_MAESTRA */
#define HW_ID_PICCOLA 5
@@ -123,7 +123,7 @@ typedef struct {
#define HW_ID_DIVA20_U 9
#define HW_ID_DIVA30 10
#define HW_ID_DIVA30_U 11
/* Hardware IDs PCI */
/* Hardware IDs PCI */
#define HW_ID_EICON_PCI 0x1133
#define HW_ID_SIEMENS_PCI 0x8001 /* unused SubVendor ID for Siemens Cornet-N cards */
#define HW_ID_PROTTYPE_CORNETN 0x0014 /* SubDevice ID for Siemens Cornet-N cards */
@@ -153,7 +153,7 @@ typedef struct {
#define HW_ID_DSRV_VOICE_P30M_V2_PCI 0xe019
#define HW_ID_DSRV_B2F_PCI 0xe01a
#define HW_ID_DSRV_VOICE_B2M_V2_PCI 0xe01b
/* Hardware IDs USB */
/* Hardware IDs USB */
#define EICON_USB_VENDOR_ID 0x071D
#define HW_ID_DIVA_USB_REV1 0x1000
#define HW_ID_DIVA_USB_REV2 0x1003
@@ -162,7 +162,7 @@ typedef struct {
/* --------------------------------------------------------------------------
Adapter array change notification framework
-------------------------------------------------------------------------- */
typedef void (IDI_CALL_LINK_T* didd_adapter_change_callback_t)( void IDI_CALL_ENTITY_T * context, DESCRIPTOR* adapter, int removal);
typedef void (IDI_CALL_LINK_T *didd_adapter_change_callback_t)(void IDI_CALL_ENTITY_T *context, DESCRIPTOR *adapter, int removal);
/* -------------------------------------------------------------------------- */
#define DI_VOICE 0x0 /* obsolete define */
#define DI_FAX3 0x1
@@ -177,5 +177,5 @@ typedef void (IDI_CALL_LINK_T* didd_adapter_change_callback_t)( void IDI_CAL
#define DI_EXTD_FAX 0x0200 /* Extended FAX (ECM, 2D, T.6, Polling) */
#define DI_AT_PARSER 0x0400 /* Build-in AT Parser in the L2 */
#define DI_VOICE_OVER_IP 0x0800 /* Voice over IP support */
typedef void (IDI_CALL_LINK_T* _IDI_CALL)(void*, ENTITY*);
typedef void (IDI_CALL_LINK_T *_IDI_CALL)(void *, ENTITY *);
#endif

View File

@@ -28,7 +28,7 @@ static DESCRIPTOR _DAdapter;
/*
* didd callback function
*/
static void *didd_callback(void *context, DESCRIPTOR * adapter,
static void *didd_callback(void *context, DESCRIPTOR *adapter,
int removal)
{
if (adapter->type == IDI_DADAPTER) {
@@ -65,7 +65,7 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
req.didd_notify.info.callback = (void *)didd_callback;
req.didd_notify.info.context = NULL;
_DAdapter.request((ENTITY *) & req);
_DAdapter.request((ENTITY *)&req);
if (req.didd_notify.e.Rc != 0xff)
return (0);
notify_handle = req.didd_notify.info.handle;
@@ -86,7 +86,7 @@ static void DIVA_EXIT_FUNCTION disconnect_didd(void)
req.didd_notify.e.Req = 0;
req.didd_notify.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY;
req.didd_notify.info.handle = notify_handle;
_DAdapter.request((ENTITY *) & req);
_DAdapter.request((ENTITY *)&req);
}
/*

View File

@@ -28,12 +28,12 @@
PISDN_ADAPTER IoAdapters[MAX_ADAPTER];
extern IDI_CALL Requests[MAX_ADAPTER];
extern int create_adapter_proc(diva_os_xdi_adapter_t * a);
extern void remove_adapter_proc(diva_os_xdi_adapter_t * a);
extern int create_adapter_proc(diva_os_xdi_adapter_t *a);
extern void remove_adapter_proc(diva_os_xdi_adapter_t *a);
#define DivaIdiReqFunc(N) \
static void DivaIdiRequest##N(ENTITY *e) \
{ if ( IoAdapters[N] ) (* IoAdapters[N]->DIRequest)(IoAdapters[N], e) ; }
static void DivaIdiRequest##N(ENTITY *e) \
{ if (IoAdapters[N]) (*IoAdapters[N]->DIRequest)(IoAdapters[N], e); }
/*
** Create own 32 Adapters
@@ -150,14 +150,14 @@ static int diva_find_free_adapters(int base, int nr)
return (0);
}
static diva_os_xdi_adapter_t *diva_q_get_next(struct list_head * what)
static diva_os_xdi_adapter_t *diva_q_get_next(struct list_head *what)
{
diva_os_xdi_adapter_t *a = NULL;
if (what && (what->next != &adapter_queue))
a = list_entry(what->next, diva_os_xdi_adapter_t, link);
return(a);
return (a);
}
/* --------------------------------------------------------------------------
@@ -601,9 +601,9 @@ void diva_xdi_display_adapter_features(int card)
(features & DI_AT_PARSER) ? "Y" : "N"))
DBG_LOG((" DI_VOICE_OVER_IP : %s",
(features & DI_VOICE_OVER_IP) ? "Y" : "N"))
}
}
void diva_add_slave_adapter(diva_os_xdi_adapter_t * a)
void diva_add_slave_adapter(diva_os_xdi_adapter_t *a)
{
diva_os_spin_lock_magic_t old_irql;
@@ -612,7 +612,7 @@ void diva_add_slave_adapter(diva_os_xdi_adapter_t * a)
diva_os_leave_spin_lock(&adapter_lock, &old_irql, "add_slave");
}
int diva_card_read_xlog(diva_os_xdi_adapter_t * a)
int diva_card_read_xlog(diva_os_xdi_adapter_t *a)
{
diva_get_xlog_t *req;
byte *data;

View File

@@ -137,7 +137,7 @@ static int DIVA_INIT_FUNCTION divadidd_init(void)
goto out;
}
out:
out:
return (ret);
}

View File

@@ -28,44 +28,44 @@
/*
Every entry has length of PAGE_SIZE
and represents one single physical page
*/
*/
struct _diva_dma_map_entry {
int busy;
dword phys_bus_addr; /* 32bit address as seen by the card */
void* local_ram_addr; /* local address as seen by the host */
void* addr_handle; /* handle uset to free allocated memory */
void *local_ram_addr; /* local address as seen by the host */
void *addr_handle; /* handle uset to free allocated memory */
};
/*
Create local mapping structure and init it to default state
*/
struct _diva_dma_map_entry* diva_alloc_dma_map (void* os_context, int nentries) {
diva_dma_map_entry_t* pmap = diva_os_malloc(0, sizeof(*pmap)*(nentries+1));
*/
struct _diva_dma_map_entry *diva_alloc_dma_map(void *os_context, int nentries) {
diva_dma_map_entry_t *pmap = diva_os_malloc(0, sizeof(*pmap) * (nentries + 1));
if (pmap)
memset (pmap, 0, sizeof(*pmap)*(nentries+1));
memset(pmap, 0, sizeof(*pmap) * (nentries + 1));
return pmap;
}
/*
Free local map (context should be freed before) if any
*/
void diva_free_dma_mapping (struct _diva_dma_map_entry* pmap) {
*/
void diva_free_dma_mapping(struct _diva_dma_map_entry *pmap) {
if (pmap) {
diva_os_free (0, pmap);
diva_os_free(0, pmap);
}
}
/*
Set information saved on the map entry
*/
void diva_init_dma_map_entry (struct _diva_dma_map_entry* pmap,
int nr, void* virt, dword phys,
void* addr_handle) {
*/
void diva_init_dma_map_entry(struct _diva_dma_map_entry *pmap,
int nr, void *virt, dword phys,
void *addr_handle) {
pmap[nr].phys_bus_addr = phys;
pmap[nr].local_ram_addr = virt;
pmap[nr].addr_handle = addr_handle;
}
/*
Allocate one single entry in the map
*/
int diva_alloc_dma_map_entry (struct _diva_dma_map_entry* pmap) {
*/
int diva_alloc_dma_map_entry(struct _diva_dma_map_entry *pmap) {
int i;
for (i = 0; (pmap && pmap[i].local_ram_addr); i++) {
if (!pmap[i].busy) {
@@ -77,18 +77,18 @@ int diva_alloc_dma_map_entry (struct _diva_dma_map_entry* pmap) {
}
/*
Free one single entry in the map
*/
void diva_free_dma_map_entry (struct _diva_dma_map_entry* pmap, int nr) {
*/
void diva_free_dma_map_entry(struct _diva_dma_map_entry *pmap, int nr) {
pmap[nr].busy = 0;
}
/*
Get information saved on the map entry
*/
void diva_get_dma_map_entry (struct _diva_dma_map_entry* pmap, int nr,
void** pvirt, dword* pphys) {
*/
void diva_get_dma_map_entry(struct _diva_dma_map_entry *pmap, int nr,
void **pvirt, dword *pphys) {
*pphys = pmap[nr].phys_bus_addr;
*pvirt = pmap[nr].local_ram_addr;
}
void* diva_get_entry_handle (struct _diva_dma_map_entry* pmap, int nr) {
void *diva_get_entry_handle(struct _diva_dma_map_entry *pmap, int nr) {
return (pmap[nr].addr_handle);
}

View File

@@ -26,23 +26,23 @@
#ifndef __DIVA_DMA_MAPPING_IFC_H__
#define __DIVA_DMA_MAPPING_IFC_H__
typedef struct _diva_dma_map_entry diva_dma_map_entry_t;
struct _diva_dma_map_entry* diva_alloc_dma_map (void* os_context, int nentries);
void diva_init_dma_map_entry (struct _diva_dma_map_entry* pmap,
int nr, void* virt, dword phys,
void* addr_handle);
int diva_alloc_dma_map_entry (struct _diva_dma_map_entry* pmap);
void diva_free_dma_map_entry (struct _diva_dma_map_entry* pmap, int entry);
void diva_get_dma_map_entry (struct _diva_dma_map_entry* pmap, int nr,
void** pvirt, dword* pphys);
void diva_free_dma_mapping (struct _diva_dma_map_entry* pmap);
struct _diva_dma_map_entry *diva_alloc_dma_map(void *os_context, int nentries);
void diva_init_dma_map_entry(struct _diva_dma_map_entry *pmap,
int nr, void *virt, dword phys,
void *addr_handle);
int diva_alloc_dma_map_entry(struct _diva_dma_map_entry *pmap);
void diva_free_dma_map_entry(struct _diva_dma_map_entry *pmap, int entry);
void diva_get_dma_map_entry(struct _diva_dma_map_entry *pmap, int nr,
void **pvirt, dword *pphys);
void diva_free_dma_mapping(struct _diva_dma_map_entry *pmap);
/*
Functionality to be implemented by OS wrapper
and running in process context
*/
void diva_init_dma_map (void* hdev,
struct _diva_dma_map_entry** ppmap,
*/
void diva_init_dma_map(void *hdev,
struct _diva_dma_map_entry **ppmap,
int nentries);
void diva_free_dma_map (void* hdev,
struct _diva_dma_map_entry* pmap);
void* diva_get_entry_handle (struct _diva_dma_map_entry* pmap, int nr);
void diva_free_dma_map(void *hdev,
struct _diva_dma_map_entry *pmap);
void *diva_get_entry_handle(struct _diva_dma_map_entry *pmap, int nr);
#endif

View File

@@ -82,7 +82,7 @@
#define CODEC_PERMANENT 0x02
#define ADV_VOICE 0x03
#define MAX_CIP_TYPES 5 /* kind of CIP types for group optimization */
#define C_IND_MASK_DWORDS ((MAX_APPL+32) >> 5)
#define C_IND_MASK_DWORDS ((MAX_APPL + 32) >> 5)
#define FAX_CONNECT_INFO_BUFFER_SIZE 256
@@ -141,11 +141,11 @@ struct msn_ld_s {
struct api_parse_s {
word length;
byte * info;
byte *info;
};
struct api_save_s {
API_PARSE parms[MAX_MSG_PARMS+1];
API_PARSE parms[MAX_MSG_PARMS + 1];
byte info[MAX_MSG_SIZE];
};
@@ -154,7 +154,7 @@ struct _DATA_B3_DESC {
word Number;
word Flags;
word Length;
void * P;
void *P;
};
struct _DATA_ACK_DESC {
@@ -162,7 +162,7 @@ struct _DATA_ACK_DESC {
word Number;
};
typedef void (* t_std_internal_command)(dword Id, PLCI *plci, byte Rc);
typedef void (*t_std_internal_command)(dword Id, PLCI *plci, byte Rc);
/************************************************************************/
/* Don't forget to adapt dos.asm after changing the _APPL structure!!!! */
@@ -180,17 +180,17 @@ struct _APPL {
LIST_ENTRY s_function;
dword s_context;
word s_count;
APPL * s_next;
byte * xbuffer_used;
void ** xbuffer_internal;
void ** xbuffer_ptr;
APPL *s_next;
byte *xbuffer_used;
void **xbuffer_internal;
void **xbuffer_ptr;
byte * queue;
byte *queue;
word queue_size;
word queue_free;
word queue_read;
@@ -205,9 +205,9 @@ struct _APPL {
byte MaxNCCIData;
word MaxDataLength;
word NCCIDataFlowCtrlTimer;
byte * ReceiveBuffer;
word * DataNCCI;
word * DataFlags;
byte *ReceiveBuffer;
word *DataNCCI;
word *DataFlags;
};
@@ -245,7 +245,7 @@ struct _PLCI {
word msg_in_read_pos;
word msg_in_wrap_pos;
void * data_sent_ptr;
void *data_sent_ptr;
byte data_sent;
byte send_disc;
byte sig_global_req;
@@ -352,16 +352,16 @@ struct _DIVA_CAPI_ADAPTER {
byte max_listen;
byte listen_active;
PLCI *plci;
byte ch_ncci[MAX_NL_CHANNEL+1];
byte ncci_ch[MAX_NCCI+1];
byte ncci_plci[MAX_NCCI+1];
byte ncci_state[MAX_NCCI+1];
byte ncci_next[MAX_NCCI+1];
NCCI ncci[MAX_NCCI+1];
byte ch_ncci[MAX_NL_CHANNEL + 1];
byte ncci_ch[MAX_NCCI + 1];
byte ncci_plci[MAX_NCCI + 1];
byte ncci_state[MAX_NCCI + 1];
byte ncci_next[MAX_NCCI + 1];
NCCI ncci[MAX_NCCI + 1];
byte ch_flow_control[MAX_NL_CHANNEL+1]; /* Used by XON protocol */
byte ch_flow_control[MAX_NL_CHANNEL + 1]; /* Used by XON protocol */
byte ch_flow_control_pending;
byte ch_flow_plci[MAX_NL_CHANNEL+1];
byte ch_flow_plci[MAX_NL_CHANNEL + 1];
int last_flow_control_ch;
dword Info_Mask[MAX_APPL];
@@ -398,7 +398,7 @@ struct _DIVA_CAPI_ADAPTER {
byte flag_dynamic_l1_down; /* for hunt groups:down layer 1 if no appl present*/
byte FlowControlIdTable[256];
byte FlowControlSkipTable[256];
void* os_card; /* pointer to associated OS dependent adapter structure */
void *os_card; /* pointer to associated OS dependent adapter structure */
};
@@ -528,13 +528,13 @@ struct t30_info_s {
#define T30_OPERATING_MODE_CAPI_NEG 4
#define T30_OPERATING_MODE_COUNT 5
/* EDATA transmit messages */
/* EDATA transmit messages */
#define EDATA_T30_DIS 0x01
#define EDATA_T30_FTT 0x02
#define EDATA_T30_MCF 0x03
#define EDATA_T30_PARAMETERS 0x04
/* EDATA receive messages */
/* EDATA receive messages */
#define EDATA_T30_DCS 0x81
#define EDATA_T30_TRAIN_OK 0x82
#define EDATA_T30_EOP 0x83
@@ -639,10 +639,10 @@ struct t30_info_s {
typedef struct async_s ASYNC_FORMAT;
struct async_s {
unsigned pe: 1;
unsigned pe:1;
unsigned parity:2;
unsigned spare: 2;
unsigned stp: 1;
unsigned spare:2;
unsigned stp:1;
unsigned ch_len:2; /* 3th octett in CAI */
};
@@ -686,14 +686,14 @@ struct async_s {
/*------------------------------------------------------------------*/
/* Capi IE + Msg types */
/*------------------------------------------------------------------*/
#define ESC_CAUSE 0x800|CAU /* Escape cause element */
#define ESC_MSGTYPE 0x800|MSGTYPEIE /* Escape message type */
#define ESC_CHI 0x800|CHI /* Escape channel id */
#define ESC_LAW 0x800|BC /* Escape law info */
#define ESC_CR 0x800|CRIE /* Escape CallReference */
#define ESC_PROFILE 0x800|PROFILEIE /* Escape profile */
#define ESC_SSEXT 0x800|SSEXTIE /* Escape Supplem. Serv.*/
#define ESC_VSWITCH 0x800|VSWITCHIE /* Escape VSwitch */
#define ESC_CAUSE 0x800 | CAU /* Escape cause element */
#define ESC_MSGTYPE 0x800 | MSGTYPEIE /* Escape message type */
#define ESC_CHI 0x800 | CHI /* Escape channel id */
#define ESC_LAW 0x800 | BC /* Escape law info */
#define ESC_CR 0x800 | CRIE /* Escape CallReference */
#define ESC_PROFILE 0x800 | PROFILEIE /* Escape profile */
#define ESC_SSEXT 0x800 | SSEXTIE /* Escape Supplem. Serv.*/
#define ESC_VSWITCH 0x800 | VSWITCHIE /* Escape VSwitch */
#define CST 0x14 /* Call State i.e. */
#define PI 0x1E /* Progress Indicator */
#define NI 0x27 /* Notification Ind */
@@ -1114,29 +1114,29 @@ extern word li_total_channels;
/*
B2 configuration for PIAFS:
+---------------------+------+-----------------------------------------+
| PIAFS Protocol | byte | Bit 1 - Protocol Speed |
| Speed configuration | | 0 - 32K |
| | | 1 - 64K (default) |
| | | Bit 2 - Variable Protocol Speed |
| | | 0 - Speed is fix |
| | | 1 - Speed is variable (default) |
+---------------------+------+-----------------------------------------+
| Direction | word | Enable compression/decompression for |
| | | 0: All direction |
| | | 1: disable outgoing data |
| | | 2: disable incomming data |
| | | 3: disable both direction (default) |
+---------------------+------+-----------------------------------------+
| Number of code | word | Parameter P1 of V.42bis in accordance |
| words | | with V.42bis |
+---------------------+------+-----------------------------------------+
| Maximum String | word | Parameter P2 of V.42bis in accordance |
| Length | | with V.42bis |
+---------------------+------+-----------------------------------------+
| control (UDATA) | byte | enable PIAFS control communication |
| abilities | | |
+---------------------+------+-----------------------------------------+
+---------------------+------+-----------------------------------------+
| PIAFS Protocol | byte | Bit 1 - Protocol Speed |
| Speed configuration | | 0 - 32K |
| | | 1 - 64K (default) |
| | | Bit 2 - Variable Protocol Speed |
| | | 0 - Speed is fix |
| | | 1 - Speed is variable (default) |
+---------------------+------+-----------------------------------------+
| Direction | word | Enable compression/decompression for |
| | | 0: All direction |
| | | 1: disable outgoing data |
| | | 2: disable incomming data |
| | | 3: disable both direction (default) |
+---------------------+------+-----------------------------------------+
| Number of code | word | Parameter P1 of V.42bis in accordance |
| words | | with V.42bis |
+---------------------+------+-----------------------------------------+
| Maximum String | word | Parameter P2 of V.42bis in accordance |
| Length | | with V.42bis |
+---------------------+------+-----------------------------------------+
| control (UDATA) | byte | enable PIAFS control communication |
| abilities | | |
+---------------------+------+-----------------------------------------+
*/
#define PIAFS_UDATA_ABILITIES 0x80

View File

@@ -86,7 +86,7 @@ int diva_os_copy_from_user(void *os_handle, void *dst, const void __user *src,
/*
* get time
*/
void diva_os_get_time(dword * sec, dword * usec)
void diva_os_get_time(dword *sec, dword *usec)
{
struct timeval tv;
@@ -115,7 +115,7 @@ void diva_os_get_time(dword * sec, dword * usec)
/*
* device node operations
*/
static unsigned int maint_poll(struct file *file, poll_table * wait)
static unsigned int maint_poll(struct file *file, poll_table *wait)
{
unsigned int mask = 0;
@@ -158,13 +158,13 @@ static int maint_close(struct inode *ino, struct file *filep)
}
static ssize_t divas_maint_write(struct file *file, const char __user *buf,
size_t count, loff_t * ppos)
size_t count, loff_t *ppos)
{
return (maint_read_write((char __user *) buf, (int) count));
}
static ssize_t divas_maint_read(struct file *file, char __user *buf,
size_t count, loff_t * ppos)
size_t count, loff_t *ppos)
{
return (maint_read_write(buf, (int) count));
}
@@ -238,7 +238,7 @@ static int DIVA_INIT_FUNCTION maint_init(void)
DRIVERLNAME, buffer, (buffer_length / 1024),
(diva_dbg_mem == 0) ? "internal" : "external", major);
out:
out:
return (ret);
}
@@ -255,4 +255,3 @@ static void DIVA_EXIT_FUNCTION maint_exit(void)
module_init(maint_init);
module_exit(maint_exit);

View File

@@ -81,7 +81,7 @@ void diva_xdi_didd_register_adapter(int card)
req.didd_remove_adapter.e.Req = 0;
req.didd_add_adapter.e.Rc = IDI_SYNC_REQ_DIDD_ADD_ADAPTER;
req.didd_add_adapter.info.descriptor = (void *) &d;
DAdapter.request((ENTITY *) & req);
DAdapter.request((ENTITY *)&req);
if (req.didd_add_adapter.e.Rc != 0xff) {
DBG_ERR(("DIDD register A(%d) failed !", card))
}
@@ -103,7 +103,7 @@ void diva_xdi_didd_remove_adapter(int card)
req.didd_remove_adapter.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER;
req.didd_remove_adapter.info.p_request =
(IDI_CALL) Requests[card - 1];
DAdapter.request((ENTITY *) & req);
DAdapter.request((ENTITY *)&req);
memset(&(a->IdTable), 0x00, 256);
}
@@ -115,7 +115,7 @@ static void start_dbg(void)
DbgRegister("DIVAS", DRIVERRELEASE_DIVAS, (debugmask) ? debugmask : DBG_DEFAULT);
DBG_LOG(("DIVA ISDNXDI BUILD (%s[%s])",
DIVA_BUILD, diva_xdi_common_code_build))
}
}
/*
* stop debug
@@ -130,7 +130,7 @@ static void stop_dbg(void)
/*
* didd callback function
*/
static void *didd_callback(void *context, DESCRIPTOR * adapter,
static void *didd_callback(void *context, DESCRIPTOR *adapter,
int removal)
{
if (adapter->type == IDI_DADAPTER) {
@@ -171,7 +171,7 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
req.didd_notify.info.callback = (void *)didd_callback;
req.didd_notify.info.context = NULL;
DAdapter.request((ENTITY *) & req);
DAdapter.request((ENTITY *)&req);
if (req.didd_notify.e.Rc != 0xff) {
stop_dbg();
return (0);
@@ -203,7 +203,7 @@ static void disconnect_didd(void)
req.didd_notify.e.Req = 0;
req.didd_notify.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY;
req.didd_notify.info.handle = notify_handle;
DAdapter.request((ENTITY *) & req);
DAdapter.request((ENTITY *)&req);
}
/*

View File

@@ -71,10 +71,10 @@ static char *getrev(const char *revision)
* LOCALS
*/
static ssize_t um_idi_read(struct file *file, char __user *buf, size_t count,
loff_t * offset);
loff_t *offset);
static ssize_t um_idi_write(struct file *file, const char __user *buf,
size_t count, loff_t * offset);
static unsigned int um_idi_poll(struct file *file, poll_table * wait);
size_t count, loff_t *offset);
static unsigned int um_idi_poll(struct file *file, poll_table *wait);
static int um_idi_open(struct inode *inode, struct file *file);
static int um_idi_release(struct inode *inode, struct file *file);
static int remove_entity(void *entity);
@@ -194,7 +194,7 @@ static int DIVA_INIT_FUNCTION divasi_init(void)
}
printk(KERN_INFO "%s: started with major %d\n", DRIVERLNAME, major);
out:
out:
return (ret);
}
@@ -228,7 +228,7 @@ divas_um_idi_copy_to_user(void *os_handle, void *dst, const void *src,
}
static ssize_t
um_idi_read(struct file *file, char __user *buf, size_t count, loff_t * offset)
um_idi_read(struct file *file, char __user *buf, size_t count, loff_t *offset)
{
diva_um_idi_os_context_t *p_os;
int ret = -EINVAL;
@@ -310,7 +310,7 @@ static int um_idi_open_adapter(struct file *file, int adapter_nr)
static ssize_t
um_idi_write(struct file *file, const char __user *buf, size_t count,
loff_t * offset)
loff_t *offset)
{
diva_um_idi_os_context_t *p_os;
int ret = -EINVAL;
@@ -367,7 +367,7 @@ um_idi_write(struct file *file, const char __user *buf, size_t count,
return (ret);
}
static unsigned int um_idi_poll(struct file *file, poll_table * wait)
static unsigned int um_idi_poll(struct file *file, poll_table *wait)
{
diva_um_idi_os_context_t *p_os;
@@ -434,7 +434,7 @@ static int um_idi_release(struct inode *inode, struct file *file)
goto out;
}
out:
out:
return (ret);
}
@@ -466,7 +466,7 @@ void diva_um_timer_function(unsigned long data)
wake_up_interruptible(&p_os->read_wait);
wake_up_interruptible(&p_os->close_wait);
DBG_ERR(("entity removal watchdog"))
}
}
/*
** If application exits without entity removal this function will remove

View File

@@ -77,7 +77,7 @@ typedef struct _diva_os_thread_dpc {
class, Device class to match. The class_mask tells which bits
class_mask of the class are honored during the comparison.
driver_data Data private to the driver.
*/
*/
#if !defined(PCI_DEVICE_ID_EICON_MAESTRAP_2)
#define PCI_DEVICE_ID_EICON_MAESTRAP_2 0xE015
@@ -109,7 +109,7 @@ typedef struct _diva_os_thread_dpc {
/*
This table should be sorted by PCI device ID
*/
*/
static struct pci_device_id divas_pci_tbl[] = {
/* Diva Server BRI-2M PCI 0xE010 */
{ PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_MAESTRA),
@@ -332,10 +332,10 @@ void PCIread(byte bus, byte func, int offset, void *data, int length,
Init map with DMA pages. It is not problem if some allocations fail -
the channels that will not get one DMA page will use standard PIO
interface
*/
*/
static void *diva_pci_alloc_consistent(struct pci_dev *hwdev,
size_t size,
dma_addr_t * dma_handle,
dma_addr_t *dma_handle,
void **addr_handle)
{
void *addr = pci_alloc_consistent(hwdev, size, dma_handle);
@@ -381,7 +381,7 @@ void diva_init_dma_map(void *hdev,
/*
Free all contained in the map entries and memory used by the map
Should be always called after adapter removal from DIDD array
*/
*/
void diva_free_dma_map(void *hdev, struct _diva_dma_map_entry *pmap)
{
struct pci_dev *pdev = (struct pci_dev *) hdev;
@@ -501,7 +501,7 @@ static void diva_os_dpc_proc(unsigned long context)
(*(pisr->callback)) (pisr, pisr->callback_context);
}
int diva_os_initialize_soft_isr(diva_os_soft_isr_t * psoft_isr,
int diva_os_initialize_soft_isr(diva_os_soft_isr_t *psoft_isr,
diva_os_soft_isr_callback_t callback,
void *callback_context)
{
@@ -520,7 +520,7 @@ int diva_os_initialize_soft_isr(diva_os_soft_isr_t * psoft_isr,
return (0);
}
int diva_os_schedule_soft_isr(diva_os_soft_isr_t * psoft_isr)
int diva_os_schedule_soft_isr(diva_os_soft_isr_t *psoft_isr)
{
if (psoft_isr && psoft_isr->object) {
diva_os_thread_dpc_t *pdpc =
@@ -532,12 +532,12 @@ int diva_os_schedule_soft_isr(diva_os_soft_isr_t * psoft_isr)
return (1);
}
int diva_os_cancel_soft_isr(diva_os_soft_isr_t * psoft_isr)
int diva_os_cancel_soft_isr(diva_os_soft_isr_t *psoft_isr)
{
return (0);
}
void diva_os_remove_soft_isr(diva_os_soft_isr_t * psoft_isr)
void diva_os_remove_soft_isr(diva_os_soft_isr_t *psoft_isr)
{
if (psoft_isr && psoft_isr->object) {
diva_os_thread_dpc_t *pdpc =
@@ -589,7 +589,7 @@ static int divas_release(struct inode *inode, struct file *file)
}
static ssize_t divas_write(struct file *file, const char __user *buf,
size_t count, loff_t * ppos)
size_t count, loff_t *ppos)
{
int ret = -EINVAL;
@@ -620,7 +620,7 @@ static ssize_t divas_write(struct file *file, const char __user *buf,
}
static ssize_t divas_read(struct file *file, char __user *buf,
size_t count, loff_t * ppos)
size_t count, loff_t *ppos)
{
int ret = -EINVAL;
@@ -650,7 +650,7 @@ static ssize_t divas_read(struct file *file, char __user *buf,
return (ret);
}
static unsigned int divas_poll(struct file *file, poll_table * wait)
static unsigned int divas_poll(struct file *file, poll_table *wait)
{
if (!file->private_data) {
return (POLLERR);
@@ -824,7 +824,7 @@ static int DIVA_INIT_FUNCTION divas_init(void)
}
printk(KERN_INFO "%s: started with major %d\n", DRIVERLNAME, major);
out:
out:
return (ret);
}

View File

@@ -55,7 +55,7 @@ extern struct proc_dir_entry *proc_net_eicon;
static struct proc_dir_entry *divas_proc_entry = NULL;
static ssize_t
divas_read(struct file *file, char __user *buf, size_t count, loff_t * off)
divas_read(struct file *file, char __user *buf, size_t count, loff_t *off)
{
int len = 0;
int cadapter;
@@ -94,12 +94,12 @@ divas_read(struct file *file, char __user *buf, size_t count, loff_t * off)
}
static ssize_t
divas_write(struct file *file, const char __user *buf, size_t count, loff_t * off)
divas_write(struct file *file, const char __user *buf, size_t count, loff_t *off)
{
return (-ENODEV);
}
static unsigned int divas_poll(struct file *file, poll_table * wait)
static unsigned int divas_poll(struct file *file, poll_table *wait)
{
return (POLLERR);
}
@@ -354,7 +354,7 @@ static const struct file_operations info_proc_fops = {
/* --------------------------------------------------------------------------
Create adapter directory and files in proc file system
-------------------------------------------------------------------------- */
int create_adapter_proc(diva_os_xdi_adapter_t * a)
int create_adapter_proc(diva_os_xdi_adapter_t *a)
{
struct proc_dir_entry *de, *pe;
char tmp[16];
@@ -387,7 +387,7 @@ int create_adapter_proc(diva_os_xdi_adapter_t * a)
/* --------------------------------------------------------------------------
Remove adapter directory and files in proc file system
-------------------------------------------------------------------------- */
void remove_adapter_proc(diva_os_xdi_adapter_t * a)
void remove_adapter_proc(diva_os_xdi_adapter_t *a)
{
char tmp[16];

View File

@@ -78,7 +78,7 @@ typedef struct _diva_xdi_get_extended_xdi_features {
} diva_xdi_get_extended_xdi_features_t;
/*
features[0]
*/
*/
#define DIVA_XDI_EXTENDED_FEATURES_VALID 0x01
#define DIVA_XDI_EXTENDED_FEATURE_CMA 0x02
#define DIVA_XDI_EXTENDED_FEATURE_SDRAM_BAR 0x04
@@ -97,7 +97,7 @@ typedef struct _diva_xdi_get_adapter_sdram_bar {
#define IDI_SYNC_REQ_XDI_GET_CAPI_PARAMS 0x94
/*
CAPI Parameters will be written in the caller's buffer
*/
*/
typedef struct _diva_xdi_get_capi_parameters {
dword structure_length;
byte flag_dynamic_l1_down;
@@ -111,7 +111,7 @@ typedef struct _diva_xdi_get_capi_parameters {
in case of one adapter that supports multiple interfaces
'controller' is zero for Master adapter (and adapter that supports
only one interface)
*/
*/
typedef struct _diva_xdi_get_logical_adapter_number {
dword logical_adapter_number;
dword controller;
@@ -126,7 +126,7 @@ typedef struct _diva_xdi_get_logical_adapter_number {
typedef struct _diva_xdi_dma_descriptor_operation {
int operation;
int descriptor_number;
void* descriptor_address;
void *descriptor_address;
dword descriptor_magic;
} diva_xdi_dma_descriptor_operation_t;
/******************************************************************************/
@@ -138,21 +138,21 @@ typedef struct _diva_xdi_dma_descriptor_operation {
#define IDI_SYNC_REQ_DIDD_GET_CFG_LIB_IFC 0x10
typedef struct _diva_didd_adapter_notify {
dword handle; /* Notification handle */
void * callback;
void * context;
void *callback;
void *context;
} diva_didd_adapter_notify_t;
typedef struct _diva_didd_add_adapter {
void * descriptor;
void *descriptor;
} diva_didd_add_adapter_t;
typedef struct _diva_didd_remove_adapter {
IDI_CALL p_request;
} diva_didd_remove_adapter_t;
typedef struct _diva_didd_read_adapter_array {
void * buffer;
void *buffer;
dword length;
} diva_didd_read_adapter_array_t;
typedef struct _diva_didd_get_cfg_lib_ifc {
void* ifc;
void *ifc;
} diva_didd_get_cfg_lib_ifc_t;
/******************************************************************************/
#define IDI_SYNC_REQ_XDI_GET_STREAM 0x91
@@ -166,28 +166,28 @@ typedef struct _diva_xdi_stream_interface {
unsigned char Id; /* filled by XDI client */
unsigned char provided_service; /* filled by XDI */
unsigned char requested_service; /* filled by XDI Client */
void* xdi_context; /* filled by XDI */
void* client_context; /* filled by XDI client */
int (*write)(void* context,
void *xdi_context; /* filled by XDI */
void *client_context; /* filled by XDI client */
int (*write)(void *context,
int Id,
void* data,
void *data,
int length,
int final,
byte usr1,
byte usr2);
int (*read)(void* context,
int (*read)(void *context,
int Id,
void* data,
void *data,
int max_length,
int* final,
byte* usr1,
byte* usr2);
int (*complete)(void* client_context,
int *final,
byte *usr1,
byte *usr2);
int (*complete)(void *client_context,
int Id,
int what,
void* data,
void *data,
int length,
int* final);
int *final);
} diva_xdi_stream_interface_t;
/******************************************************************************/
/*
@@ -201,9 +201,9 @@ typedef struct
unsigned char HookState; /* current logical hook state */
#define SERIAL_ON_HOOK 0x02 /* set in DIVA CTRL_R register */
} SERIAL_STATE;
typedef int ( * SERIAL_INT_CB) (void *Context) ;
typedef int ( * SERIAL_DPC_CB) (void *Context) ;
typedef unsigned char ( * SERIAL_I_SYNC) (void *Context) ;
typedef int (*SERIAL_INT_CB)(void *Context);
typedef int (*SERIAL_DPC_CB)(void *Context);
typedef unsigned char (*SERIAL_I_SYNC)(void *Context);
typedef struct
{ /* 'Req' and 'Rc' must be at the same place as in the ENTITY struct */
unsigned char Req; /* request (must be always 0) */
@@ -243,13 +243,13 @@ typedef struct
#define DRIVER_STATUS_TRAPPED 0xAE
unsigned char wmpStatus; /* exported by WMP */
unsigned char idiStatus; /* exported by IDI */
unsigned long wizProto ; /* from WMP registry to IDI */
unsigned long wizProto; /* from WMP registry to IDI */
/* the cardtype value is defined by cardtype.h */
unsigned long cardType ; /* from IDI registry to WMP */
unsigned long nt2 ; /* from IDI registry to WMP */
unsigned long permanent ; /* from IDI registry to WMP */
unsigned long stableL2 ; /* from IDI registry to WMP */
unsigned long tei ; /* from IDI registry to WMP */
unsigned long cardType; /* from IDI registry to WMP */
unsigned long nt2; /* from IDI registry to WMP */
unsigned long permanent; /* from IDI registry to WMP */
unsigned long stableL2; /* from IDI registry to WMP */
unsigned long tei; /* from IDI registry to WMP */
#define CRC4_MASK 0x00000003
#define L1_TRISTATE_MASK 0x00000004
#define WATCHDOG_MASK 0x00000008
@@ -271,17 +271,17 @@ typedef struct
#define SET_STABLEL2 0x20000000
#define SET_TEI 0x40000000
#define SET_NUMBERLEN 0x80000000
unsigned long Flag ; /* |31-Type-16|15-Mask-0| */
unsigned long NumberLen ; /* reconfiguration: union is empty */
unsigned long Flag; /* |31-Type-16|15-Mask-0| */
unsigned long NumberLen; /* reconfiguration: union is empty */
union {
struct { /* possible reconfiguration, but ... ; SET_BOARD */
unsigned long SerialNumber ;
char *pCardname ; /* di_defs.h: BOARD_NAME_LENGTH */
} board ;
unsigned long SerialNumber;
char *pCardname; /* di_defs.h: BOARD_NAME_LENGTH */
} board;
struct { /* reset: need resources */
void * pRawResources ;
void * pXlatResources ;
} res ;
void *pRawResources;
void *pXlatResources;
} res;
struct { /* reconfiguration: wizProto == PROTTYPE_RBSCAS */
#define GLARE_RESOLVE_MASK 0x00000001
#define DID_MASK 0x00000002
@@ -289,17 +289,17 @@ typedef struct
#define SET_GLARE_RESOLVE 0x00010000
#define SET_DID 0x00020000
#define SET_BEARER_CAP 0x000c0000
unsigned long Flag ; /* |31-Type-16|15-VALUE-0| */
unsigned short DigitTimeout ;
unsigned short AnswerDelay ;
} rbs ;
unsigned long Flag; /* |31-Type-16|15-VALUE-0| */
unsigned short DigitTimeout;
unsigned short AnswerDelay;
} rbs;
struct { /* reconfiguration: wizProto == PROTTYPE_QSIG */
#define CALL_REF_LENGTH1_MASK 0x00000001
#define BRI_CHANNEL_ID_MASK 0x00000002
#define SET_CALL_REF_LENGTH 0x00010000
#define SET_BRI_CHANNEL_ID 0x00020000
unsigned long Flag ; /* |31-Type-16|15-VALUE-0| */
} qsig ;
unsigned long Flag; /* |31-Type-16|15-VALUE-0| */
} qsig;
struct { /* reconfiguration: NumberLen != 0 */
#define SET_SPID1 0x00010000
#define SET_NUMBER1 0x00020000
@@ -308,17 +308,17 @@ typedef struct
#define SET_NUMBER2 0x00200000
#define SET_SUBADDRESS2 0x00400000
#define MASK_SET 0xffff0000
unsigned long Flag ; /* |31-Type-16|15-Channel-0| */
unsigned char *pBuffer ; /* number value */
} isdnNo ;
unsigned long Flag; /* |31-Type-16|15-Channel-0| */
unsigned char *pBuffer; /* number value */
} isdnNo;
}
parms
;
} isdnProps ;
parms
;
} isdnProps;
/*
* IDI_SYNC_REQ_PORTDRV_HOOK - signal plug/unplug (Award Cardware only)
*/
typedef void ( * PORTDRV_HOOK_CB) (void *Context, int Plug) ;
typedef void (*PORTDRV_HOOK_CB)(void *Context, int Plug);
typedef struct
{ /* 'Req' and 'Rc' must be at the same place as in the ENTITY struct */
unsigned char Req; /* request (must be always 0) */
@@ -328,11 +328,11 @@ typedef struct
PORTDRV_HOOK_CB Callback; /* to be called on plug/unplug */
void *Context; /* context for callback */
unsigned long Info; /* more info if needed */
} PORTDRV_HOOK ;
} PORTDRV_HOOK;
/* Codes for the 'Rc' element in structure below. */
#define SLI_INSTALL (0xA1)
#define SLI_UNINSTALL (0xA2)
typedef int ( * SLIENTRYPOINT)(void* p3SignalAPI, void* pContext);
typedef int (*SLIENTRYPOINT)(void *p3SignalAPI, void *pContext);
typedef struct
{ /* 'Req' and 'Rc' must be at the same place as in the ENTITY struct */
unsigned char Req; /* request (must be always 0) */
@@ -342,16 +342,16 @@ typedef struct
SLIENTRYPOINT Callback; /* to be called on plug/unplug */
void *Context; /* context for callback */
unsigned long Info; /* more info if needed */
} SLIENTRYPOINT_REQ ;
} SLIENTRYPOINT_REQ;
/******************************************************************************/
/*
* Definitions for DIVA USB
*/
typedef int ( * USB_SEND_REQ) (unsigned char PipeIndex, unsigned char Type,void *Data, int sizeData);
typedef int ( * USB_START_DEV) (void *Adapter, void *Ipac) ;
typedef int (*USB_SEND_REQ)(unsigned char PipeIndex, unsigned char Type, void *Data, int sizeData);
typedef int (*USB_START_DEV)(void *Adapter, void *Ipac);
/* called from WDM */
typedef void ( * USB_RECV_NOTIFY) (void *Ipac, void *msg) ;
typedef void ( * USB_XMIT_NOTIFY) (void *Ipac, unsigned char PipeIndex) ;
typedef void (*USB_RECV_NOTIFY)(void *Ipac, void *msg);
typedef void (*USB_XMIT_NOTIFY)(void *Ipac, unsigned char PipeIndex);
/******************************************************************************/
/*
* Parameter description for synchronous requests.
@@ -409,7 +409,7 @@ typedef union
unsigned char Rc;
USB_SEND_REQ UsbSendRequest; /* function in Diva Usb WDM driver in usb_os.c, */
/* called from usb_drv.c to send a message to our device */
/* eg UsbSendRequest (USB_PIPE_SIGNAL, USB_IPAC_START, 0, 0) ; */
/* eg UsbSendRequest (USB_PIPE_SIGNAL, USB_IPAC_START, 0, 0); */
USB_RECV_NOTIFY usb_recv; /* called from usb_os.c to pass a received message and ptr to IPAC */
/* on to usb_drv.c by a call to usb_recv(). */
USB_XMIT_NOTIFY usb_xmit; /* called from usb_os.c in DivaUSB.sys WDM to indicate a completed transmit */
@@ -417,7 +417,7 @@ typedef union
USB_START_DEV UsbStartDevice; /* Start the USB Device, in usb_os.c */
IDI_CALL callback; /* routine to call back */
ENTITY *contxt; /* ptr to entity to use */
void ** ipac_ptr; /* pointer to struct IPAC in VxD */
void **ipac_ptr; /* pointer to struct IPAC in VxD */
} Usb_Msg_old;
/* message used by WDM and VXD to pass pointers of function and IPAC* */
struct
@@ -425,7 +425,7 @@ typedef union
unsigned char Rc;
USB_SEND_REQ pUsbSendRequest;/* function in Diva Usb WDM driver in usb_os.c, */
/* called from usb_drv.c to send a message to our device */
/* eg UsbSendRequest (USB_PIPE_SIGNAL, USB_IPAC_START, 0, 0) ; */
/* eg UsbSendRequest (USB_PIPE_SIGNAL, USB_IPAC_START, 0, 0); */
USB_RECV_NOTIFY p_usb_recv; /* called from usb_os.c to pass a received message and ptr to IPAC */
/* on to usb_drv.c by a call to usb_recv(). */
USB_XMIT_NOTIFY p_usb_xmit; /* called from usb_os.c in DivaUSB.sys WDM to indicate a completed transmit */

View File

@@ -14,7 +14,7 @@
#include "dqueue.h"
int
diva_data_q_init(diva_um_idi_data_queue_t * q,
diva_data_q_init(diva_um_idi_data_queue_t *q,
int max_length, int max_segments)
{
int i;
@@ -38,7 +38,7 @@ diva_data_q_init(diva_um_idi_data_queue_t * q,
return (0);
}
int diva_data_q_finit(diva_um_idi_data_queue_t * q)
int diva_data_q_finit(diva_um_idi_data_queue_t *q)
{
int i;
@@ -54,12 +54,12 @@ int diva_data_q_finit(diva_um_idi_data_queue_t * q)
return (0);
}
int diva_data_q_get_max_length(const diva_um_idi_data_queue_t * q)
int diva_data_q_get_max_length(const diva_um_idi_data_queue_t *q)
{
return (q->max_length);
}
void *diva_data_q_get_segment4write(diva_um_idi_data_queue_t * q)
void *diva_data_q_get_segment4write(diva_um_idi_data_queue_t *q)
{
if ((!q->segment_pending) && (q->count < q->segments)) {
q->segment_pending = 1;
@@ -70,7 +70,7 @@ void *diva_data_q_get_segment4write(diva_um_idi_data_queue_t * q)
}
void
diva_data_q_ack_segment4write(diva_um_idi_data_queue_t * q, int length)
diva_data_q_ack_segment4write(diva_um_idi_data_queue_t *q, int length)
{
if (q->segment_pending) {
q->length[q->write] = length;
@@ -92,12 +92,12 @@ const void *diva_data_q_get_segment4read(const diva_um_idi_data_queue_t *
return NULL;
}
int diva_data_q_get_segment_length(const diva_um_idi_data_queue_t * q)
int diva_data_q_get_segment_length(const diva_um_idi_data_queue_t *q)
{
return (q->length[q->read]);
}
void diva_data_q_ack_segment4read(diva_um_idi_data_queue_t * q)
void diva_data_q_ack_segment4read(diva_um_idi_data_queue_t *q)
{
if (q->count) {
q->length[q->read] = 0;

View File

@@ -16,16 +16,16 @@ typedef struct _diva_um_idi_data_queue {
int length[DIVA_UM_IDI_MAX_MSGS];
} diva_um_idi_data_queue_t;
int diva_data_q_init(diva_um_idi_data_queue_t * q,
int diva_data_q_init(diva_um_idi_data_queue_t *q,
int max_length, int max_segments);
int diva_data_q_finit(diva_um_idi_data_queue_t * q);
int diva_data_q_get_max_length(const diva_um_idi_data_queue_t * q);
void *diva_data_q_get_segment4write(diva_um_idi_data_queue_t * q);
void diva_data_q_ack_segment4write(diva_um_idi_data_queue_t * q,
int diva_data_q_finit(diva_um_idi_data_queue_t *q);
int diva_data_q_get_max_length(const diva_um_idi_data_queue_t *q);
void *diva_data_q_get_segment4write(diva_um_idi_data_queue_t *q);
void diva_data_q_ack_segment4write(diva_um_idi_data_queue_t *q,
int length);
const void *diva_data_q_get_segment4read(const diva_um_idi_data_queue_t *
q);
int diva_data_q_get_segment_length(const diva_um_idi_data_queue_t * q);
void diva_data_q_ack_segment4read(diva_um_idi_data_queue_t * q);
int diva_data_q_get_segment_length(const diva_um_idi_data_queue_t *q);
void diva_data_q_ack_segment4read(diva_um_idi_data_queue_t *q);
#endif

View File

@@ -27,7 +27,7 @@
#define DSP_DEFS_H_
#include "dspdids.h"
/*---------------------------------------------------------------------------*/
#define dsp_download_reserve_space(fp,length)
#define dsp_download_reserve_space(fp, length)
/*****************************************************************************/
/*
* OS file access abstraction layer
@@ -35,25 +35,25 @@
* I/O functions returns -1 on error, 0 on EOF
*/
struct _OsFileHandle_;
typedef long ( * OsFileIo) (struct _OsFileHandle_ *handle,
typedef long (*OsFileIo)(struct _OsFileHandle_ *handle,
void *buffer,
long size) ;
typedef long ( * OsFileSeek)(struct _OsFileHandle_ *handle,
long size);
typedef long (*OsFileSeek)(struct _OsFileHandle_ *handle,
long position,
int mode) ;
typedef long ( * OsCardLoad)(struct _OsFileHandle_ *handle,
int mode);
typedef long (*OsCardLoad)(struct _OsFileHandle_ *handle,
long length,
void * *addr) ;
void **addr);
typedef struct _OsFileHandle_
{ void *sysFileDesc ;
unsigned long sysFileSize ;
OsFileIo sysFileRead ;
OsFileSeek sysFileSeek ;
void *sysLoadDesc ;
OsCardLoad sysCardLoad ;
} OsFileHandle ;
extern OsFileHandle *OsOpenFile (char *path_name) ;
extern void OsCloseFile (OsFileHandle *fp) ;
{ void *sysFileDesc;
unsigned long sysFileSize;
OsFileIo sysFileRead;
OsFileSeek sysFileSeek;
void *sysLoadDesc;
OsCardLoad sysCardLoad;
} OsFileHandle;
extern OsFileHandle *OsOpenFile(char *path_name);
extern void OsCloseFile(OsFileHandle *fp);
/*****************************************************************************/
#define DSP_TELINDUS_FILE "dspdload.bin"
/* special DSP file for BRI cards for Qsig and CornetN because of missing memory */
@@ -169,13 +169,13 @@ typedef struct tag_dsp_download_desc
word symbol_count;
word data_block_count_dm;
word data_block_count_pm;
byte * p_excess_header_data;
char * p_download_description;
byte *p_excess_header_data;
char *p_download_description;
t_dsp_memory_block_desc *p_memory_block_table;
t_dsp_segment_desc *p_segment_table;
t_dsp_symbol_desc *p_symbol_table;
word * p_data_blocks_dm;
word * p_data_blocks_pm;
word *p_data_blocks_dm;
word *p_data_blocks_pm;
} t_dsp_desc;
typedef struct tag_dsp_portable_download_desc /* be sure to keep native alignment for MAESTRA's */
{
@@ -204,7 +204,7 @@ typedef struct tag_dsp_portable_download_desc /* be sure to keep native alignmen
#define DSP_DOWNLOAD_MAX_SEGMENTS 16
#define DSP_UDATA_REQUEST_RECONFIGURE 0
/*
parameters:
parameters:
<word> reconfigure delay (in 8kHz samples)
<word> reconfigure code
<byte> reconfigure hdlc preamble flags
@@ -229,11 +229,11 @@ parameters:
#define DSP_RECONFIGURE_V17_12000 11
#define DSP_RECONFIGURE_V17_14400 12
/*
data indications if transparent framer
data indications if transparent framer
<byte> data 0
<byte> data 1
...
data indications if HDLC framer
data indications if HDLC framer
<byte> data 0
<byte> data 1
...
@@ -243,17 +243,17 @@ data indications if HDLC framer
*/
#define DSP_UDATA_INDICATION_SYNC 0
/*
returns:
returns:
<word> time of sync (sampled from counter at 8kHz)
*/
#define DSP_UDATA_INDICATION_DCD_OFF 1
/*
returns:
returns:
<word> time of DCD off (sampled from counter at 8kHz)
*/
#define DSP_UDATA_INDICATION_DCD_ON 2
/*
returns:
returns:
<word> time of DCD on (sampled from counter at 8kHz)
<byte> connected norm
<word> connected options
@@ -261,12 +261,12 @@ returns:
*/
#define DSP_UDATA_INDICATION_CTS_OFF 3
/*
returns:
returns:
<word> time of CTS off (sampled from counter at 8kHz)
*/
#define DSP_UDATA_INDICATION_CTS_ON 4
/*
returns:
returns:
<word> time of CTS on (sampled from counter at 8kHz)
<byte> connected norm
<word> connected options
@@ -292,10 +292,10 @@ returns:
#define DSP_CONNECTED_NORM_V17 17
#define DSP_CONNECTED_OPTION_TRELLIS 0x0001
/*---------------------------------------------------------------------------*/
extern char *dsp_read_file (OsFileHandle *fp,
extern char *dsp_read_file(OsFileHandle *fp,
word card_type_number,
word *p_dsp_download_count,
t_dsp_desc *p_dsp_download_table,
t_dsp_portable_desc *p_dsp_portable_download_table) ;
t_dsp_portable_desc *p_dsp_portable_download_table);
/*---------------------------------------------------------------------------*/
#endif /* DSP_DEFS_H_ */

View File

@@ -5,7 +5,7 @@
/*
DSP registers on maestra pri
*/
*/
#define DSP1_PORT (0x00)
#define DSP2_PORT (0x8)
#define DSP3_PORT (0x800)
@@ -42,6 +42,6 @@
Dsp related definitions
------------------------------------------------------------------ */
#define DSP_SIGNATURE_PROBE_WORD 0x5a5a
#define dsp_make_address_ex(pm,address) ((word)((pm) ? (address) : (address) + 0x4000))
#define dsp_make_address_ex(pm, address) ((word)((pm) ? (address) : (address) + 0x4000))
#endif

View File

@@ -35,6 +35,6 @@
#define PLX9054_SOFT_RESET 0x4000
#define PLX9054_RELOAD_EEPROM 0x2000
#define DIVA_4BRI_REVISION(__x__) (((__x__)->cardType == CARDTYPE_DIVASRV_Q_8M_V2_PCI) || ((__x__)->cardType == CARDTYPE_DIVASRV_VOICE_Q_8M_V2_PCI) || ((__x__)->cardType == CARDTYPE_DIVASRV_B_2M_V2_PCI) || ((__x__)->cardType == CARDTYPE_DIVASRV_B_2F_PCI) || ((__x__)->cardType == CARDTYPE_DIVASRV_VOICE_B_2M_V2_PCI))
void diva_os_set_qBri_functions (PISDN_ADAPTER IoAdapter);
void diva_os_set_qBri2_functions (PISDN_ADAPTER IoAdapter);
void diva_os_set_qBri_functions(PISDN_ADAPTER IoAdapter);
void diva_os_set_qBri2_functions(PISDN_ADAPTER IoAdapter);
#endif

View File

@@ -29,9 +29,9 @@
Functions exported from os dependent part of
BRI card configuration and used in
OS independed part
*/
*/
/*
Prepare OS dependent part of BRI functions
*/
void diva_os_prepare_maestra_functions (PISDN_ADAPTER IoAdapter);
*/
void diva_os_prepare_maestra_functions(PISDN_ADAPTER IoAdapter);
#endif

View File

@@ -29,10 +29,10 @@
Functions exported from os dependent part of
PRI card configuration and used in
OS independed part
*/
*/
/*
Prepare OS dependent part of PRI/PRI Rev.2 functions
*/
void diva_os_prepare_pri_functions (PISDN_ADAPTER IoAdapter);
void diva_os_prepare_pri2_functions (PISDN_ADAPTER IoAdapter);
*/
void diva_os_prepare_pri_functions(PISDN_ADAPTER IoAdapter);
void diva_os_prepare_pri2_functions(PISDN_ADAPTER IoAdapter);
#endif

View File

@@ -11,17 +11,17 @@
typedef struct _divas_um_idi_entity {
struct list_head link;
diva_um_idi_adapter_t* adapter; /* Back to adapter */
diva_um_idi_adapter_t *adapter; /* Back to adapter */
ENTITY e;
void* os_ref;
void *os_ref;
dword status;
void* os_context;
void *os_context;
int rc_count;
diva_um_idi_data_queue_t data; /* definad by user 1 ... MAX */
diva_um_idi_data_queue_t rc; /* two entries */
BUFFERS XData;
BUFFERS RData;
byte buffer[2048+512];
byte buffer[2048 + 512];
} divas_um_idi_entity_t;

View File

@@ -25,27 +25,27 @@
*/
#ifndef __DIVA_XDI_CARD_CONFIG_HELPERS_INC__
#define __DIVA_XDI_CARD_CONFIG_HELPERS_INC__
dword diva_get_protocol_file_features (byte* File,
dword diva_get_protocol_file_features(byte *File,
int offset,
char *IdStringBuffer,
dword IdBufferSize);
void diva_configure_protocol (PISDN_ADAPTER IoAdapter);
void diva_configure_protocol(PISDN_ADAPTER IoAdapter);
/*
Low level file access system abstraction
*/
*/
/* -------------------------------------------------------------------------
Access to single file
Return pointer to the image of the requested file,
write image length to 'FileLength'
------------------------------------------------------------------------- */
void *xdiLoadFile (char *FileName, dword *FileLength, unsigned long MaxLoadSize) ;
void *xdiLoadFile(char *FileName, dword *FileLength, unsigned long MaxLoadSize);
/* -------------------------------------------------------------------------
Dependent on the protocol settings does read return pointer
to the image of appropriate protocol file
------------------------------------------------------------------------- */
void *xdiLoadArchive (PISDN_ADAPTER IoAdapter, dword *FileLength, unsigned long MaxLoadSize) ;
void *xdiLoadArchive(PISDN_ADAPTER IoAdapter, dword *FileLength, unsigned long MaxLoadSize);
/* --------------------------------------------------------------------------
Free all system resources accessed by xdiLoadFile and xdiLoadArchive
-------------------------------------------------------------------------- */
void xdiFreeFile (void* handle);
void xdiFreeFile(void *handle);
#endif

View File

@@ -58,7 +58,7 @@ static diva_os_spin_lock_t ll_lock;
/*
* find card in list
*/
static udiva_card *find_card_in_list(DESCRIPTOR * d)
static udiva_card *find_card_in_list(DESCRIPTOR *d)
{
udiva_card *card;
struct list_head *tmp;
@@ -80,7 +80,7 @@ static udiva_card *find_card_in_list(DESCRIPTOR * d)
/*
* new card
*/
static void um_new_card(DESCRIPTOR * d)
static void um_new_card(DESCRIPTOR *d)
{
int adapter_nr = 0;
udiva_card *card = NULL;
@@ -95,7 +95,7 @@ static void um_new_card(DESCRIPTOR * d)
sync_req.xdi_logical_adapter_number.Req = 0;
sync_req.xdi_logical_adapter_number.Rc =
IDI_SYNC_REQ_XDI_GET_LOGICAL_ADAPTER_NUMBER;
card->d.request((ENTITY *) & sync_req);
card->d.request((ENTITY *)&sync_req);
adapter_nr =
sync_req.xdi_logical_adapter_number.info.logical_adapter_number;
card->Id = adapter_nr;
@@ -113,7 +113,7 @@ static void um_new_card(DESCRIPTOR * d)
/*
* remove card
*/
static void um_remove_card(DESCRIPTOR * d)
static void um_remove_card(DESCRIPTOR *d)
{
diva_os_spin_lock_magic_t old_irql;
udiva_card *card = NULL;
@@ -154,7 +154,7 @@ rescan:
/*
* DIDD notify callback
*/
static void *didd_callback(void *context, DESCRIPTOR * adapter,
static void *didd_callback(void *context, DESCRIPTOR *adapter,
int removal)
{
if (adapter->type == IDI_DADAPTER) {
@@ -199,7 +199,7 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
req.didd_notify.info.callback = (void *)didd_callback;
req.didd_notify.info.context = NULL;
DAdapter.request((ENTITY *) & req);
DAdapter.request((ENTITY *)&req);
if (req.didd_notify.e.Rc != 0xff) {
stop_dbg();
return (0);
@@ -234,7 +234,7 @@ static void DIVA_EXIT_FUNCTION disconnect_didd(void)
req.didd_notify.e.Req = 0;
req.didd_notify.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY;
req.didd_notify.info.handle = notify_handle;
DAdapter.request((ENTITY *) & req);
DAdapter.request((ENTITY *)&req);
}
/*

View File

@@ -33,16 +33,16 @@
#include "di.h"
#include "mi_pc.h"
#include "io.h"
extern ADAPTER * adapter[MAX_ADAPTER];
extern ADAPTER *adapter[MAX_ADAPTER];
extern PISDN_ADAPTER IoAdapters[MAX_ADAPTER];
void request (PISDN_ADAPTER, ENTITY *);
static void pcm_req (PISDN_ADAPTER, ENTITY *);
void request(PISDN_ADAPTER, ENTITY *);
static void pcm_req(PISDN_ADAPTER, ENTITY *);
/* --------------------------------------------------------------------------
local functions
-------------------------------------------------------------------------- */
#define ReqFunc(N) \
static void Request##N(ENTITY *e) \
{ if ( IoAdapters[N] ) (* IoAdapters[N]->DIRequest)(IoAdapters[N], e) ; }
static void Request##N(ENTITY *e) \
{ if (IoAdapters[N]) (*IoAdapters[N]->DIRequest)(IoAdapters[N], e); }
ReqFunc(0)
ReqFunc(1)
ReqFunc(2)
@@ -69,8 +69,8 @@ IDI_CALL Requests[MAX_ADAPTER] =
/*
This array should indicate all new services, that this version of XDI
is able to provide to his clients
*/
static byte extended_xdi_features[DIVA_XDI_EXTENDED_FEATURES_MAX_SZ+1] = {
*/
static byte extended_xdi_features[DIVA_XDI_EXTENDED_FEATURES_MAX_SZ + 1] = {
(DIVA_XDI_EXTENDED_FEATURES_VALID |
DIVA_XDI_EXTENDED_FEATURE_SDRAM_BAR |
DIVA_XDI_EXTENDED_FEATURE_CAPI_PRMS |
@@ -84,39 +84,39 @@ static byte extended_xdi_features[DIVA_XDI_EXTENDED_FEATURES_MAX_SZ+1] = {
};
/*****************************************************************************/
void
dump_xlog_buffer (PISDN_ADAPTER IoAdapter, Xdesc *xlogDesc)
dump_xlog_buffer(PISDN_ADAPTER IoAdapter, Xdesc *xlogDesc)
{
dword logLen ;
word *Xlog = xlogDesc->buf ;
word logCnt = xlogDesc->cnt ;
word logOut = xlogDesc->out / sizeof(*Xlog) ;
dword logLen;
word *Xlog = xlogDesc->buf;
word logCnt = xlogDesc->cnt;
word logOut = xlogDesc->out / sizeof(*Xlog);
DBG_FTL(("%s: ************* XLOG recovery (%d) *************",
&IoAdapter->Name[0], (int)logCnt))
DBG_FTL(("Microcode: %s", &IoAdapter->ProtocolIdString[0]))
for ( ; logCnt > 0 ; --logCnt )
for (; logCnt > 0; --logCnt)
{
if ( !GET_WORD(&Xlog[logOut]) )
if (!GET_WORD(&Xlog[logOut]))
{
if ( --logCnt == 0 )
break ;
logOut = 0 ;
if (--logCnt == 0)
break;
logOut = 0;
}
if ( GET_WORD(&Xlog[logOut]) <= (logOut * sizeof(*Xlog)) )
if (GET_WORD(&Xlog[logOut]) <= (logOut * sizeof(*Xlog)))
{
if ( logCnt > 2 )
if (logCnt > 2)
{
DBG_FTL(("Possibly corrupted XLOG: %d entries left",
(int)logCnt))
}
break ;
break;
}
logLen = (dword)(GET_WORD(&Xlog[logOut]) - (logOut * sizeof(*Xlog))) ;
DBG_FTL_MXLOG(( (char *)&Xlog[logOut + 1], (dword)(logLen - 2) ))
logOut = (GET_WORD(&Xlog[logOut]) + 1) / sizeof(*Xlog) ;
logLen = (dword)(GET_WORD(&Xlog[logOut]) - (logOut * sizeof(*Xlog)));
DBG_FTL_MXLOG(((char *)&Xlog[logOut + 1], (dword)(logLen - 2)))
logOut = (GET_WORD(&Xlog[logOut]) + 1) / sizeof(*Xlog);
}
DBG_FTL(("%s: ***************** end of XLOG *****************",
&IoAdapter->Name[0]))
}
}
/*****************************************************************************/
#if defined(XDI_USE_XLOG)
static char *(ExceptionCauseTable[]) =
@@ -153,14 +153,14 @@ static char *(ExceptionCauseTable[]) =
"Reserved 29",
"Reserved 30",
"VCED"
} ;
};
#endif
void
dump_trap_frame (PISDN_ADAPTER IoAdapter, byte __iomem *exceptionFrame)
dump_trap_frame(PISDN_ADAPTER IoAdapter, byte __iomem *exceptionFrame)
{
MP_XCPTC __iomem *xcept = (MP_XCPTC __iomem *)exceptionFrame ;
MP_XCPTC __iomem *xcept = (MP_XCPTC __iomem *)exceptionFrame;
dword __iomem *regs;
regs = &xcept->regs[0] ;
regs = &xcept->regs[0];
DBG_FTL(("%s: ***************** CPU TRAPPED *****************",
&IoAdapter->Name[0]))
DBG_FTL(("Microcode: %s", &IoAdapter->ProtocolIdString[0]))
@@ -170,13 +170,13 @@ dump_trap_frame (PISDN_ADAPTER IoAdapter, byte __iomem *exceptionFrame)
READ_DWORD(&xcept->sr), READ_DWORD(&xcept->cr),
READ_DWORD(&xcept->epc), READ_DWORD(&xcept->vaddr)))
DBG_FTL(("zero 0x%08x at 0x%08x v0 0x%08x v1 0x%08x",
READ_DWORD(&regs[ 0]), READ_DWORD(&regs[ 1]),
READ_DWORD(&regs[ 2]), READ_DWORD(&regs[ 3])))
READ_DWORD(&regs[0]), READ_DWORD(&regs[1]),
READ_DWORD(&regs[2]), READ_DWORD(&regs[3])))
DBG_FTL(("a0 0x%08x a1 0x%08x a2 0x%08x a3 0x%08x",
READ_DWORD(&regs[ 4]), READ_DWORD(&regs[ 5]),
READ_DWORD(&regs[ 6]), READ_DWORD(&regs[ 7])))
READ_DWORD(&regs[4]), READ_DWORD(&regs[5]),
READ_DWORD(&regs[6]), READ_DWORD(&regs[7])))
DBG_FTL(("t0 0x%08x t1 0x%08x t2 0x%08x t3 0x%08x",
READ_DWORD(&regs[ 8]), READ_DWORD(&regs[ 9]),
READ_DWORD(&regs[8]), READ_DWORD(&regs[9]),
READ_DWORD(&regs[10]), READ_DWORD(&regs[11])))
DBG_FTL(("t4 0x%08x t5 0x%08x t6 0x%08x t7 0x%08x",
READ_DWORD(&regs[12]), READ_DWORD(&regs[13]),
@@ -196,11 +196,11 @@ dump_trap_frame (PISDN_ADAPTER IoAdapter, byte __iomem *exceptionFrame)
DBG_FTL(("md 0x%08x|%08x resvd 0x%08x class 0x%08x",
READ_DWORD(&xcept->mdhi), READ_DWORD(&xcept->mdlo),
READ_DWORD(&xcept->reseverd), READ_DWORD(&xcept->xclass)))
}
}
/* --------------------------------------------------------------------------
Real XDI Request function
-------------------------------------------------------------------------- */
void request(PISDN_ADAPTER IoAdapter, ENTITY * e)
void request(PISDN_ADAPTER IoAdapter, ENTITY *e)
{
byte i;
diva_os_spin_lock_magic_t irql;
@@ -208,29 +208,29 @@ void request(PISDN_ADAPTER IoAdapter, ENTITY * e)
* if the Req field in the entity structure is 0,
* we treat this request as a special function call
*/
if ( !e->Req )
if (!e->Req)
{
IDI_SYNC_REQ *syncReq = (IDI_SYNC_REQ *)e ;
IDI_SYNC_REQ *syncReq = (IDI_SYNC_REQ *)e;
switch (e->Rc)
{
#if defined(DIVA_IDI_RX_DMA)
case IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION: {
diva_xdi_dma_descriptor_operation_t* pI = \
diva_xdi_dma_descriptor_operation_t *pI = \
&syncReq->xdi_dma_descriptor_operation.info;
if (!IoAdapter->dma_map) {
pI->operation = -1;
pI->descriptor_number = -1;
return;
}
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock, &irql, "dma_op");
diva_os_enter_spin_lock(&IoAdapter->data_spin_lock, &irql, "dma_op");
if (pI->operation == IDI_SYNC_REQ_DMA_DESCRIPTOR_ALLOC) {
pI->descriptor_number = diva_alloc_dma_map_entry (\
(struct _diva_dma_map_entry*)IoAdapter->dma_map);
pI->descriptor_number = diva_alloc_dma_map_entry(\
(struct _diva_dma_map_entry *)IoAdapter->dma_map);
if (pI->descriptor_number >= 0) {
dword dma_magic;
void* local_addr;
diva_get_dma_map_entry (\
(struct _diva_dma_map_entry*)IoAdapter->dma_map,
void *local_addr;
diva_get_dma_map_entry(\
(struct _diva_dma_map_entry *)IoAdapter->dma_map,
pI->descriptor_number,
&local_addr, &dma_magic);
pI->descriptor_address = local_addr;
@@ -241,7 +241,7 @@ void request(PISDN_ADAPTER IoAdapter, ENTITY * e)
}
} else if ((pI->operation == IDI_SYNC_REQ_DMA_DESCRIPTOR_FREE) &&
(pI->descriptor_number >= 0)) {
diva_free_dma_map_entry((struct _diva_dma_map_entry*)IoAdapter->dma_map,
diva_free_dma_map_entry((struct _diva_dma_map_entry *)IoAdapter->dma_map,
pI->descriptor_number);
pI->descriptor_number = -1;
pI->operation = 0;
@@ -249,7 +249,7 @@ void request(PISDN_ADAPTER IoAdapter, ENTITY * e)
pI->descriptor_number = -1;
pI->operation = -1;
}
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "dma_op");
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "dma_op");
} return;
#endif
case IDI_SYNC_REQ_XDI_GET_LOGICAL_ADAPTER_NUMBER: {
@@ -261,25 +261,25 @@ void request(PISDN_ADAPTER IoAdapter, ENTITY * e)
} return;
case IDI_SYNC_REQ_XDI_GET_CAPI_PARAMS: {
diva_xdi_get_capi_parameters_t prms, *pI = &syncReq->xdi_capi_prms.info;
memset (&prms, 0x00, sizeof(prms));
memset(&prms, 0x00, sizeof(prms));
prms.structure_length = min_t(size_t, sizeof(prms), pI->structure_length);
memset (pI, 0x00, pI->structure_length);
memset(pI, 0x00, pI->structure_length);
prms.flag_dynamic_l1_down = (IoAdapter->capi_cfg.cfg_1 & \
DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON) ? 1 : 0;
prms.group_optimization_enabled = (IoAdapter->capi_cfg.cfg_1 & \
DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON) ? 1 : 0;
memcpy (pI, &prms, prms.structure_length);
memcpy(pI, &prms, prms.structure_length);
} return;
case IDI_SYNC_REQ_XDI_GET_ADAPTER_SDRAM_BAR:
syncReq->xdi_sdram_bar.info.bar = IoAdapter->sdram_bar;
return;
case IDI_SYNC_REQ_XDI_GET_EXTENDED_FEATURES: {
dword i;
diva_xdi_get_extended_xdi_features_t* pI =\
diva_xdi_get_extended_xdi_features_t *pI =\
&syncReq->xdi_extended_features.info;
pI->buffer_length_in_bytes &= ~0x80000000;
if (pI->buffer_length_in_bytes && pI->features) {
memset (pI->features, 0x00, pI->buffer_length_in_bytes);
memset(pI->features, 0x00, pI->buffer_length_in_bytes);
}
for (i = 0; ((pI->features) && (i < pI->buffer_length_in_bytes) &&
(i < DIVA_XDI_EXTENDED_FEATURES_MAX_SZ)); i++) {
@@ -293,122 +293,122 @@ void request(PISDN_ADAPTER IoAdapter, ENTITY * e)
} return;
case IDI_SYNC_REQ_XDI_GET_STREAM:
if (IoAdapter) {
diva_xdi_provide_istream_info (&IoAdapter->a,
diva_xdi_provide_istream_info(&IoAdapter->a,
&syncReq->xdi_stream_info.info);
} else {
syncReq->xdi_stream_info.info.provided_service = 0;
}
return;
case IDI_SYNC_REQ_GET_NAME:
if ( IoAdapter )
if (IoAdapter)
{
strcpy (&syncReq->GetName.name[0], IoAdapter->Name) ;
strcpy(&syncReq->GetName.name[0], IoAdapter->Name);
DBG_TRC(("xdi: Adapter %d / Name '%s'",
IoAdapter->ANum, IoAdapter->Name))
return ;
return;
}
syncReq->GetName.name[0] = '\0' ;
break ;
syncReq->GetName.name[0] = '\0';
break;
case IDI_SYNC_REQ_GET_SERIAL:
if ( IoAdapter )
if (IoAdapter)
{
syncReq->GetSerial.serial = IoAdapter->serialNo ;
syncReq->GetSerial.serial = IoAdapter->serialNo;
DBG_TRC(("xdi: Adapter %d / SerialNo %ld",
IoAdapter->ANum, IoAdapter->serialNo))
return ;
return;
}
syncReq->GetSerial.serial = 0 ;
break ;
syncReq->GetSerial.serial = 0;
break;
case IDI_SYNC_REQ_GET_CARDTYPE:
if ( IoAdapter )
if (IoAdapter)
{
syncReq->GetCardType.cardtype = IoAdapter->cardType ;
syncReq->GetCardType.cardtype = IoAdapter->cardType;
DBG_TRC(("xdi: Adapter %d / CardType %ld",
IoAdapter->ANum, IoAdapter->cardType))
return ;
return;
}
syncReq->GetCardType.cardtype = 0 ;
break ;
syncReq->GetCardType.cardtype = 0;
break;
case IDI_SYNC_REQ_GET_XLOG:
if ( IoAdapter )
if (IoAdapter)
{
pcm_req (IoAdapter, e) ;
return ;
pcm_req(IoAdapter, e);
return;
}
e->Ind = 0 ;
break ;
e->Ind = 0;
break;
case IDI_SYNC_REQ_GET_DBG_XLOG:
if ( IoAdapter )
if (IoAdapter)
{
pcm_req (IoAdapter, e) ;
return ;
pcm_req(IoAdapter, e);
return;
}
e->Ind = 0 ;
break ;
e->Ind = 0;
break;
case IDI_SYNC_REQ_GET_FEATURES:
if ( IoAdapter )
if (IoAdapter)
{
syncReq->GetFeatures.features =
(unsigned short)IoAdapter->features ;
return ;
(unsigned short)IoAdapter->features;
return;
}
syncReq->GetFeatures.features = 0 ;
break ;
syncReq->GetFeatures.features = 0;
break;
case IDI_SYNC_REQ_PORTDRV_HOOK:
if ( IoAdapter )
if (IoAdapter)
{
DBG_TRC(("Xdi:IDI_SYNC_REQ_PORTDRV_HOOK - ignored"))
return ;
return;
}
break;
}
if ( IoAdapter )
if (IoAdapter)
{
return ;
return;
}
}
DBG_TRC(("xdi: Id 0x%x / Req 0x%x / Rc 0x%x", e->Id, e->Req, e->Rc))
if ( !IoAdapter )
if (!IoAdapter)
{
DBG_FTL(("xdi: uninitialized Adapter used - ignore request"))
return ;
return;
}
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req");
diva_os_enter_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req");
/*
* assign an entity
*/
if ( !(e->Id &0x1f) )
if (!(e->Id & 0x1f))
{
if ( IoAdapter->e_count >= IoAdapter->e_max )
if (IoAdapter->e_count >= IoAdapter->e_max)
{
DBG_FTL(("xdi: all Ids in use (max=%d) --> Req ignored",
IoAdapter->e_max))
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req");
return ;
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req");
return;
}
/*
* find a new free id
*/
for ( i = 1 ; IoAdapter->e_tbl[i].e ; ++i ) ;
IoAdapter->e_tbl[i].e = e ;
IoAdapter->e_count++ ;
e->No = (byte)i ;
e->More = 0 ;
e->RCurrent = 0xff ;
for (i = 1; IoAdapter->e_tbl[i].e; ++i);
IoAdapter->e_tbl[i].e = e;
IoAdapter->e_count++;
e->No = (byte)i;
e->More = 0;
e->RCurrent = 0xff;
}
else
{
i = e->No ;
i = e->No;
}
/*
* if the entity is still busy, ignore the request call
*/
if ( e->More & XBUSY )
if (e->More & XBUSY)
{
DBG_FTL(("xdi: Id 0x%x busy --> Req 0x%x ignored", e->Id, e->Req))
if ( !IoAdapter->trapped && IoAdapter->trapFnc )
if (!IoAdapter->trapped && IoAdapter->trapFnc)
{
IoAdapter->trapFnc (IoAdapter) ;
IoAdapter->trapFnc(IoAdapter);
/*
Firs trap, also notify user if supported
*/
@@ -416,79 +416,79 @@ void request(PISDN_ADAPTER IoAdapter, ENTITY * e)
(*(IoAdapter->os_trap_nfy_Fnc))(IoAdapter, IoAdapter->ANum);
}
}
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req");
return ;
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req");
return;
}
/*
* initialize transmit status variables
*/
e->More |= XBUSY ;
e->More &= ~XMOREF ;
e->XCurrent = 0 ;
e->XOffset = 0 ;
e->More |= XBUSY;
e->More &= ~XMOREF;
e->XCurrent = 0;
e->XOffset = 0;
/*
* queue this entity in the adapter request queue
*/
IoAdapter->e_tbl[i].next = 0 ;
if ( IoAdapter->head )
IoAdapter->e_tbl[i].next = 0;
if (IoAdapter->head)
{
IoAdapter->e_tbl[IoAdapter->tail].next = i ;
IoAdapter->tail = i ;
IoAdapter->e_tbl[IoAdapter->tail].next = i;
IoAdapter->tail = i;
}
else
{
IoAdapter->head = i ;
IoAdapter->tail = i ;
IoAdapter->head = i;
IoAdapter->tail = i;
}
/*
* queue the DPC to process the request
*/
diva_os_schedule_soft_isr (&IoAdapter->req_soft_isr);
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req");
diva_os_schedule_soft_isr(&IoAdapter->req_soft_isr);
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req");
}
/* ---------------------------------------------------------------------
Main DPC routine
--------------------------------------------------------------------- */
void DIDpcRoutine (struct _diva_os_soft_isr* psoft_isr, void* Context) {
PISDN_ADAPTER IoAdapter = (PISDN_ADAPTER)Context ;
ADAPTER* a = &IoAdapter->a ;
diva_os_atomic_t* pin_dpc = &IoAdapter->in_dpc;
if (diva_os_atomic_increment (pin_dpc) == 1) {
void DIDpcRoutine(struct _diva_os_soft_isr *psoft_isr, void *Context) {
PISDN_ADAPTER IoAdapter = (PISDN_ADAPTER)Context;
ADAPTER *a = &IoAdapter->a;
diva_os_atomic_t *pin_dpc = &IoAdapter->in_dpc;
if (diva_os_atomic_increment(pin_dpc) == 1) {
do {
if ( IoAdapter->tst_irq (a) )
if (IoAdapter->tst_irq(a))
{
if ( !IoAdapter->Unavailable )
IoAdapter->dpc (a) ;
IoAdapter->clr_irq (a) ;
if (!IoAdapter->Unavailable)
IoAdapter->dpc(a);
IoAdapter->clr_irq(a);
}
IoAdapter->out (a) ;
} while (diva_os_atomic_decrement (pin_dpc) > 0);
IoAdapter->out(a);
} while (diva_os_atomic_decrement(pin_dpc) > 0);
/* ----------------------------------------------------------------
Look for XLOG request (cards with indirect addressing)
---------------------------------------------------------------- */
if (IoAdapter->pcm_pending) {
struct pc_maint *pcm;
diva_os_spin_lock_magic_t OldIrql ;
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock,
diva_os_spin_lock_magic_t OldIrql;
diva_os_enter_spin_lock(&IoAdapter->data_spin_lock,
&OldIrql,
"data_dpc");
pcm = (struct pc_maint *)IoAdapter->pcm_data;
switch (IoAdapter->pcm_pending) {
case 1: /* ask card for XLOG */
a->ram_out (a, &IoAdapter->pcm->rc, 0) ;
a->ram_out (a, &IoAdapter->pcm->req, pcm->req) ;
a->ram_out(a, &IoAdapter->pcm->rc, 0);
a->ram_out(a, &IoAdapter->pcm->req, pcm->req);
IoAdapter->pcm_pending = 2;
break;
case 2: /* Try to get XLOG from the card */
if ((int)(a->ram_in (a, &IoAdapter->pcm->rc))) {
a->ram_in_buffer (a, IoAdapter->pcm, pcm, sizeof(*pcm)) ;
if ((int)(a->ram_in(a, &IoAdapter->pcm->rc))) {
a->ram_in_buffer(a, IoAdapter->pcm, pcm, sizeof(*pcm));
IoAdapter->pcm_pending = 3;
}
break;
case 3: /* let XDI recovery XLOG */
break;
}
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock,
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock,
&OldIrql,
"data_dpc");
}
@@ -499,80 +499,80 @@ void DIDpcRoutine (struct _diva_os_soft_isr* psoft_isr, void* Context) {
XLOG interface
-------------------------------------------------------------------------- */
static void
pcm_req (PISDN_ADAPTER IoAdapter, ENTITY *e)
pcm_req(PISDN_ADAPTER IoAdapter, ENTITY *e)
{
diva_os_spin_lock_magic_t OldIrql ;
int i, rc ;
ADAPTER *a = &IoAdapter->a ;
struct pc_maint *pcm = (struct pc_maint *)&e->Ind ;
diva_os_spin_lock_magic_t OldIrql;
int i, rc;
ADAPTER *a = &IoAdapter->a;
struct pc_maint *pcm = (struct pc_maint *)&e->Ind;
/*
* special handling of I/O based card interface
* the memory access isn't an atomic operation !
*/
if ( IoAdapter->Properties.Card == CARD_MAE )
if (IoAdapter->Properties.Card == CARD_MAE)
{
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock,
diva_os_enter_spin_lock(&IoAdapter->data_spin_lock,
&OldIrql,
"data_pcm_1");
IoAdapter->pcm_data = (void *)pcm;
IoAdapter->pcm_pending = 1;
diva_os_schedule_soft_isr (&IoAdapter->req_soft_isr);
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock,
diva_os_schedule_soft_isr(&IoAdapter->req_soft_isr);
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock,
&OldIrql,
"data_pcm_1");
for ( rc = 0, i = (IoAdapter->trapped ? 3000 : 250) ; !rc && (i > 0) ; --i )
for (rc = 0, i = (IoAdapter->trapped ? 3000 : 250); !rc && (i > 0); --i)
{
diva_os_sleep (1) ;
diva_os_sleep(1);
if (IoAdapter->pcm_pending == 3) {
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock,
diva_os_enter_spin_lock(&IoAdapter->data_spin_lock,
&OldIrql,
"data_pcm_3");
IoAdapter->pcm_pending = 0;
IoAdapter->pcm_data = NULL ;
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock,
IoAdapter->pcm_data = NULL;
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock,
&OldIrql,
"data_pcm_3");
return ;
return;
}
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock,
diva_os_enter_spin_lock(&IoAdapter->data_spin_lock,
&OldIrql,
"data_pcm_2");
diva_os_schedule_soft_isr (&IoAdapter->req_soft_isr);
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock,
diva_os_schedule_soft_isr(&IoAdapter->req_soft_isr);
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock,
&OldIrql,
"data_pcm_2");
}
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock,
diva_os_enter_spin_lock(&IoAdapter->data_spin_lock,
&OldIrql,
"data_pcm_4");
IoAdapter->pcm_pending = 0;
IoAdapter->pcm_data = NULL ;
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock,
IoAdapter->pcm_data = NULL;
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock,
&OldIrql,
"data_pcm_4");
goto Trapped ;
goto Trapped;
}
/*
* memory based shared ram is accessible from different
* processors without disturbing concurrent processes.
*/
a->ram_out (a, &IoAdapter->pcm->rc, 0) ;
a->ram_out (a, &IoAdapter->pcm->req, pcm->req) ;
for ( i = (IoAdapter->trapped ? 3000 : 250) ; --i > 0 ; )
a->ram_out(a, &IoAdapter->pcm->rc, 0);
a->ram_out(a, &IoAdapter->pcm->req, pcm->req);
for (i = (IoAdapter->trapped ? 3000 : 250); --i > 0;)
{
diva_os_sleep (1) ;
rc = (int)(a->ram_in (a, &IoAdapter->pcm->rc)) ;
if ( rc )
diva_os_sleep(1);
rc = (int)(a->ram_in(a, &IoAdapter->pcm->rc));
if (rc)
{
a->ram_in_buffer (a, IoAdapter->pcm, pcm, sizeof(*pcm)) ;
return ;
a->ram_in_buffer(a, IoAdapter->pcm, pcm, sizeof(*pcm));
return;
}
}
Trapped:
if ( IoAdapter->trapFnc )
if (IoAdapter->trapFnc)
{
int trapped = IoAdapter->trapped;
IoAdapter->trapFnc (IoAdapter) ;
IoAdapter->trapFnc(IoAdapter);
/*
Firs trap, also notify user if supported
*/
@@ -584,7 +584,7 @@ Trapped:
/*------------------------------------------------------------------*/
/* ram access functions for memory mapped cards */
/*------------------------------------------------------------------*/
byte mem_in (ADAPTER *a, void *addr)
byte mem_in(ADAPTER *a, void *addr)
{
byte val;
volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
@@ -592,7 +592,7 @@ byte mem_in (ADAPTER *a, void *addr)
DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
return (val);
}
word mem_inw (ADAPTER *a, void *addr)
word mem_inw(ADAPTER *a, void *addr)
{
word val;
volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
@@ -600,58 +600,58 @@ word mem_inw (ADAPTER *a, void *addr)
DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
return (val);
}
void mem_in_dw (ADAPTER *a, void *addr, dword* data, int dwords)
void mem_in_dw(ADAPTER *a, void *addr, dword *data, int dwords)
{
volatile byte __iomem * Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
while (dwords--) {
*data++ = READ_DWORD((Base + (unsigned long)addr));
addr+=4;
addr += 4;
}
DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
}
void mem_in_buffer (ADAPTER *a, void *addr, void *buffer, word length)
void mem_in_buffer(ADAPTER *a, void *addr, void *buffer, word length)
{
volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
memcpy_fromio(buffer, (Base + (unsigned long)addr), length);
DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
}
void mem_look_ahead (ADAPTER *a, PBUFFER *RBuffer, ENTITY *e)
void mem_look_ahead(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e)
{
PISDN_ADAPTER IoAdapter = (PISDN_ADAPTER)a->io ;
IoAdapter->RBuffer.length = mem_inw (a, &RBuffer->length) ;
mem_in_buffer (a, RBuffer->P, IoAdapter->RBuffer.P,
IoAdapter->RBuffer.length) ;
e->RBuffer = (DBUFFER *)&IoAdapter->RBuffer ;
PISDN_ADAPTER IoAdapter = (PISDN_ADAPTER)a->io;
IoAdapter->RBuffer.length = mem_inw(a, &RBuffer->length);
mem_in_buffer(a, RBuffer->P, IoAdapter->RBuffer.P,
IoAdapter->RBuffer.length);
e->RBuffer = (DBUFFER *)&IoAdapter->RBuffer;
}
void mem_out (ADAPTER *a, void *addr, byte data)
void mem_out(ADAPTER *a, void *addr, byte data)
{
volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
WRITE_BYTE(Base + (unsigned long)addr, data);
DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
}
void mem_outw (ADAPTER *a, void *addr, word data)
void mem_outw(ADAPTER *a, void *addr, word data)
{
volatile byte __iomem * Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
WRITE_WORD((Base + (unsigned long)addr), data);
DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
}
void mem_out_dw (ADAPTER *a, void *addr, const dword* data, int dwords)
void mem_out_dw(ADAPTER *a, void *addr, const dword *data, int dwords)
{
volatile byte __iomem * Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
while (dwords--) {
WRITE_DWORD((Base + (unsigned long)addr), *data);
addr+=4;
addr += 4;
data++;
}
DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
}
void mem_out_buffer (ADAPTER *a, void *addr, void *buffer, word length)
void mem_out_buffer(ADAPTER *a, void *addr, void *buffer, word length)
{
volatile byte __iomem * Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
memcpy_toio((Base + (unsigned long)addr), buffer, length) ;
volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
memcpy_toio((Base + (unsigned long)addr), buffer, length);
DIVA_OS_MEM_DETACH_RAM((PISDN_ADAPTER)a->io, Base);
}
void mem_inc (ADAPTER *a, void *addr)
void mem_inc(ADAPTER *a, void *addr)
{
volatile byte __iomem *Base = DIVA_OS_MEM_ATTACH_RAM((PISDN_ADAPTER)a->io);
byte x = READ_BYTE(Base + (unsigned long)addr);
@@ -661,30 +661,30 @@ void mem_inc (ADAPTER *a, void *addr)
/*------------------------------------------------------------------*/
/* ram access functions for io-mapped cards */
/*------------------------------------------------------------------*/
byte io_in(ADAPTER * a, void * adr)
byte io_in(ADAPTER *a, void *adr)
{
byte val;
byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
outppw(Port + 4, (word)(unsigned long)adr);
val = inpp(Port);
DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
return(val);
return (val);
}
word io_inw(ADAPTER * a, void * adr)
word io_inw(ADAPTER *a, void *adr)
{
word val;
byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
outppw(Port + 4, (word)(unsigned long)adr);
val = inppw(Port);
DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
return(val);
return (val);
}
void io_in_buffer(ADAPTER * a, void * adr, void * buffer, word len)
void io_in_buffer(ADAPTER *a, void *adr, void *buffer, word len)
{
byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
byte* P = (byte*)buffer;
byte *P = (byte *)buffer;
if ((long)adr & 1) {
outppw(Port+4, (word)(unsigned long)adr);
outppw(Port + 4, (word)(unsigned long)adr);
*P = inpp(Port);
P++;
adr = ((byte *) adr) + 1;
@@ -694,39 +694,39 @@ void io_in_buffer(ADAPTER * a, void * adr, void * buffer, word len)
return;
}
}
outppw(Port+4, (word)(unsigned long)adr);
inppw_buffer (Port, P, len+1);
outppw(Port + 4, (word)(unsigned long)adr);
inppw_buffer(Port, P, len + 1);
DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
}
void io_look_ahead(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e)
void io_look_ahead(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e)
{
byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
outppw(Port+4, (word)(unsigned long)RBuffer);
outppw(Port + 4, (word)(unsigned long)RBuffer);
((PISDN_ADAPTER)a->io)->RBuffer.length = inppw(Port);
inppw_buffer (Port, ((PISDN_ADAPTER)a->io)->RBuffer.P, ((PISDN_ADAPTER)a->io)->RBuffer.length + 1);
inppw_buffer(Port, ((PISDN_ADAPTER)a->io)->RBuffer.P, ((PISDN_ADAPTER)a->io)->RBuffer.length + 1);
e->RBuffer = (DBUFFER *) &(((PISDN_ADAPTER)a->io)->RBuffer);
DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
}
void io_out(ADAPTER * a, void * adr, byte data)
void io_out(ADAPTER *a, void *adr, byte data)
{
byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
outppw(Port+4, (word)(unsigned long)adr);
outppw(Port + 4, (word)(unsigned long)adr);
outpp(Port, data);
DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
}
void io_outw(ADAPTER * a, void * adr, word data)
void io_outw(ADAPTER *a, void *adr, word data)
{
byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
outppw(Port+4, (word)(unsigned long)adr);
outppw(Port + 4, (word)(unsigned long)adr);
outppw(Port, data);
DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
}
void io_out_buffer(ADAPTER * a, void * adr, void * buffer, word len)
void io_out_buffer(ADAPTER *a, void *adr, void *buffer, word len)
{
byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
byte* P = (byte*)buffer;
byte *P = (byte *)buffer;
if ((long)adr & 1) {
outppw(Port+4, (word)(unsigned long)adr);
outppw(Port + 4, (word)(unsigned long)adr);
outpp(Port, *P);
P++;
adr = ((byte *) adr) + 1;
@@ -736,69 +736,69 @@ void io_out_buffer(ADAPTER * a, void * adr, void * buffer, word len)
return;
}
}
outppw(Port+4, (word)(unsigned long)adr);
outppw_buffer (Port, P, len+1);
outppw(Port + 4, (word)(unsigned long)adr);
outppw_buffer(Port, P, len + 1);
DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
}
void io_inc(ADAPTER * a, void * adr)
void io_inc(ADAPTER *a, void *adr)
{
byte x;
byte __iomem *Port = DIVA_OS_MEM_ATTACH_PORT((PISDN_ADAPTER)a->io);
outppw(Port+4, (word)(unsigned long)adr);
outppw(Port + 4, (word)(unsigned long)adr);
x = inpp(Port);
outppw(Port+4, (word)(unsigned long)adr);
outpp(Port, x+1);
outppw(Port + 4, (word)(unsigned long)adr);
outpp(Port, x + 1);
DIVA_OS_MEM_DETACH_PORT((PISDN_ADAPTER)a->io, Port);
}
/*------------------------------------------------------------------*/
/* OS specific functions related to queuing of entities */
/*------------------------------------------------------------------*/
void free_entity(ADAPTER * a, byte e_no)
void free_entity(ADAPTER *a, byte e_no)
{
PISDN_ADAPTER IoAdapter;
diva_os_spin_lock_magic_t irql;
IoAdapter = (PISDN_ADAPTER) a->io;
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_free");
diva_os_enter_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_free");
IoAdapter->e_tbl[e_no].e = NULL;
IoAdapter->e_count--;
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_free");
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_free");
}
void assign_queue(ADAPTER * a, byte e_no, word ref)
void assign_queue(ADAPTER *a, byte e_no, word ref)
{
PISDN_ADAPTER IoAdapter;
diva_os_spin_lock_magic_t irql;
IoAdapter = (PISDN_ADAPTER) a->io;
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_assign");
diva_os_enter_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_assign");
IoAdapter->e_tbl[e_no].assign_ref = ref;
IoAdapter->e_tbl[e_no].next = (byte)IoAdapter->assign;
IoAdapter->assign = e_no;
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_assign");
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_assign");
}
byte get_assign(ADAPTER * a, word ref)
byte get_assign(ADAPTER *a, word ref)
{
PISDN_ADAPTER IoAdapter;
diva_os_spin_lock_magic_t irql;
byte e_no;
IoAdapter = (PISDN_ADAPTER) a->io;
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock,
diva_os_enter_spin_lock(&IoAdapter->data_spin_lock,
&irql,
"data_assign_get");
for(e_no = (byte)IoAdapter->assign;
e_no && IoAdapter->e_tbl[e_no].assign_ref!=ref;
for (e_no = (byte)IoAdapter->assign;
e_no && IoAdapter->e_tbl[e_no].assign_ref != ref;
e_no = IoAdapter->e_tbl[e_no].next);
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock,
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock,
&irql,
"data_assign_get");
return e_no;
}
void req_queue(ADAPTER * a, byte e_no)
void req_queue(ADAPTER *a, byte e_no)
{
PISDN_ADAPTER IoAdapter;
diva_os_spin_lock_magic_t irql;
IoAdapter = (PISDN_ADAPTER) a->io;
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req_q");
diva_os_enter_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req_q");
IoAdapter->e_tbl[e_no].next = 0;
if(IoAdapter->head) {
if (IoAdapter->head) {
IoAdapter->e_tbl[IoAdapter->tail].next = e_no;
IoAdapter->tail = e_no;
}
@@ -806,47 +806,47 @@ void req_queue(ADAPTER * a, byte e_no)
IoAdapter->head = e_no;
IoAdapter->tail = e_no;
}
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req_q");
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req_q");
}
byte look_req(ADAPTER * a)
byte look_req(ADAPTER *a)
{
PISDN_ADAPTER IoAdapter;
IoAdapter = (PISDN_ADAPTER) a->io;
return ((byte)IoAdapter->head) ;
return ((byte)IoAdapter->head);
}
void next_req(ADAPTER * a)
void next_req(ADAPTER *a)
{
PISDN_ADAPTER IoAdapter;
diva_os_spin_lock_magic_t irql;
IoAdapter = (PISDN_ADAPTER) a->io;
diva_os_enter_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req_next");
diva_os_enter_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req_next");
IoAdapter->head = IoAdapter->e_tbl[IoAdapter->head].next;
if(!IoAdapter->head) IoAdapter->tail = 0;
diva_os_leave_spin_lock (&IoAdapter->data_spin_lock, &irql, "data_req_next");
if (!IoAdapter->head) IoAdapter->tail = 0;
diva_os_leave_spin_lock(&IoAdapter->data_spin_lock, &irql, "data_req_next");
}
/*------------------------------------------------------------------*/
/* memory map functions */
/*------------------------------------------------------------------*/
ENTITY * entity_ptr(ADAPTER * a, byte e_no)
ENTITY *entity_ptr(ADAPTER *a, byte e_no)
{
PISDN_ADAPTER IoAdapter;
IoAdapter = (PISDN_ADAPTER) a->io;
IoAdapter = (PISDN_ADAPTER)a->io;
return (IoAdapter->e_tbl[e_no].e);
}
void * PTR_X(ADAPTER * a, ENTITY * e)
void *PTR_X(ADAPTER *a, ENTITY *e)
{
return ((void *) e->X);
}
void * PTR_R(ADAPTER * a, ENTITY * e)
void *PTR_R(ADAPTER *a, ENTITY *e)
{
return ((void *) e->R);
}
void * PTR_P(ADAPTER * a, ENTITY * e, void * P)
void *PTR_P(ADAPTER *a, ENTITY *e, void *P)
{
return P;
}
void CALLBACK(ADAPTER * a, ENTITY * e)
void CALLBACK(ADAPTER *a, ENTITY *e)
{
if ( e && e->callback )
e->callback (e) ;
if (e && e->callback)
e->callback(e);
}

View File

@@ -27,7 +27,7 @@
#define __DIVA_XDI_COMMON_IO_H_INC__
/*
maximum = 16 adapters
*/
*/
#define DI_MAX_LINKS MAX_ADAPTER
#define ISDN_MAX_NUM_LEN 60
/* --------------------------------------------------------------------------
@@ -35,18 +35,18 @@
systems that do provide per card load event)
-------------------------------------------------------------------------- */
typedef struct {
dword Num ;
DEVICE_NAME DeviceName[4] ;
PISDN_ADAPTER QuadroAdapter[4] ;
} ADAPTER_LIST_ENTRY, *PADAPTER_LIST_ENTRY ;
dword Num;
DEVICE_NAME DeviceName[4];
PISDN_ADAPTER QuadroAdapter[4];
} ADAPTER_LIST_ENTRY, *PADAPTER_LIST_ENTRY;
/* --------------------------------------------------------------------------
Special OS memory support structures
-------------------------------------------------------------------------- */
#define MAX_MAPPED_ENTRIES 8
typedef struct {
void * Address;
void *Address;
dword Length;
} ADAPTER_MEMORY ;
} ADAPTER_MEMORY;
/* --------------------------------------------------------------------------
Configuration of XDI clients carried by XDI
-------------------------------------------------------------------------- */
@@ -59,105 +59,105 @@ typedef struct _diva_xdi_capi_cfg {
Main data structure kept per adapter
-------------------------------------------------------------------------- */
struct _ISDN_ADAPTER {
void (* DIRequest)(PISDN_ADAPTER, ENTITY *) ;
int State ; /* from NT4 1.srv, a good idea, but a poor achievement */
int Initialized ;
int RegisteredWithDidd ;
int Unavailable ; /* callback function possible? */
int ResourcesClaimed ;
int PnpBiosConfigUsed ;
dword Logging ;
dword features ;
char ProtocolIdString[80] ;
void (*DIRequest)(PISDN_ADAPTER, ENTITY *);
int State; /* from NT4 1.srv, a good idea, but a poor achievement */
int Initialized;
int RegisteredWithDidd;
int Unavailable; /* callback function possible? */
int ResourcesClaimed;
int PnpBiosConfigUsed;
dword Logging;
dword features;
char ProtocolIdString[80];
/*
remember mapped memory areas
*/
ADAPTER_MEMORY MappedMemory[MAX_MAPPED_ENTRIES] ;
CARD_PROPERTIES Properties ;
dword cardType ;
dword protocol_id ; /* configured protocol identifier */
char protocol_name[8] ; /* readable name of protocol */
dword BusType ;
dword BusNumber ;
dword slotNumber ;
dword slotId ;
dword ControllerNumber ; /* for QUADRO cards only */
PISDN_ADAPTER MultiMaster ; /* for 4-BRI card only - use MultiMaster or QuadroList */
PADAPTER_LIST_ENTRY QuadroList ; /* for QUADRO card only */
PDEVICE_OBJECT DeviceObject ;
dword DeviceId ;
ADAPTER_MEMORY MappedMemory[MAX_MAPPED_ENTRIES];
CARD_PROPERTIES Properties;
dword cardType;
dword protocol_id; /* configured protocol identifier */
char protocol_name[8]; /* readable name of protocol */
dword BusType;
dword BusNumber;
dword slotNumber;
dword slotId;
dword ControllerNumber; /* for QUADRO cards only */
PISDN_ADAPTER MultiMaster; /* for 4-BRI card only - use MultiMaster or QuadroList */
PADAPTER_LIST_ENTRY QuadroList; /* for QUADRO card only */
PDEVICE_OBJECT DeviceObject;
dword DeviceId;
diva_os_adapter_irq_info_t irq_info;
dword volatile IrqCount ;
int trapped ;
dword DspCodeBaseAddr ;
dword MaxDspCodeSize ;
dword downloadAddr ;
dword DspCodeBaseAddrTable[4] ; /* add. for MultiMaster */
dword MaxDspCodeSizeTable[4] ; /* add. for MultiMaster */
dword downloadAddrTable[4] ; /* add. for MultiMaster */
dword MemoryBase ;
dword MemorySize ;
byte __iomem *Address ;
byte __iomem *Config ;
byte __iomem *Control ;
byte __iomem *reset ;
byte __iomem *port ;
byte __iomem *ram ;
byte __iomem *cfg ;
byte __iomem *prom ;
byte __iomem *ctlReg ;
struct pc_maint *pcm ;
dword volatile IrqCount;
int trapped;
dword DspCodeBaseAddr;
dword MaxDspCodeSize;
dword downloadAddr;
dword DspCodeBaseAddrTable[4]; /* add. for MultiMaster */
dword MaxDspCodeSizeTable[4]; /* add. for MultiMaster */
dword downloadAddrTable[4]; /* add. for MultiMaster */
dword MemoryBase;
dword MemorySize;
byte __iomem *Address;
byte __iomem *Config;
byte __iomem *Control;
byte __iomem *reset;
byte __iomem *port;
byte __iomem *ram;
byte __iomem *cfg;
byte __iomem *prom;
byte __iomem *ctlReg;
struct pc_maint *pcm;
diva_os_dependent_devica_name_t os_name;
byte Name[32] ;
dword serialNo ;
dword ANum ;
dword ArchiveType ; /* ARCHIVE_TYPE_NONE ..._SINGLE ..._USGEN ..._MULTI */
char *ProtocolSuffix ; /* internal protocolfile table */
char Archive[32] ;
char Protocol[32] ;
char AddDownload[32] ; /* Dsp- or other additional download files */
char Oad1[ISDN_MAX_NUM_LEN] ;
char Osa1[ISDN_MAX_NUM_LEN] ;
char Oad2[ISDN_MAX_NUM_LEN] ;
char Osa2[ISDN_MAX_NUM_LEN] ;
char Spid1[ISDN_MAX_NUM_LEN] ;
char Spid2[ISDN_MAX_NUM_LEN] ;
byte nosig ;
byte BriLayer2LinkCount ; /* amount of TEI's that adapter will support in P2MP mode */
dword Channels ;
dword tei ;
dword nt2 ;
dword TerminalCount ;
dword WatchDog ;
dword Permanent ;
dword BChMask ; /* B channel mask for unchannelized modes */
dword StableL2 ;
dword DidLen ;
dword NoOrderCheck ;
byte Name[32];
dword serialNo;
dword ANum;
dword ArchiveType; /* ARCHIVE_TYPE_NONE ..._SINGLE ..._USGEN ..._MULTI */
char *ProtocolSuffix; /* internal protocolfile table */
char Archive[32];
char Protocol[32];
char AddDownload[32]; /* Dsp- or other additional download files */
char Oad1[ISDN_MAX_NUM_LEN];
char Osa1[ISDN_MAX_NUM_LEN];
char Oad2[ISDN_MAX_NUM_LEN];
char Osa2[ISDN_MAX_NUM_LEN];
char Spid1[ISDN_MAX_NUM_LEN];
char Spid2[ISDN_MAX_NUM_LEN];
byte nosig;
byte BriLayer2LinkCount; /* amount of TEI's that adapter will support in P2MP mode */
dword Channels;
dword tei;
dword nt2;
dword TerminalCount;
dword WatchDog;
dword Permanent;
dword BChMask; /* B channel mask for unchannelized modes */
dword StableL2;
dword DidLen;
dword NoOrderCheck;
dword ForceLaw; /* VoiceCoding - default:0, a-law: 1, my-law: 2 */
dword SigFlags ;
dword LowChannel ;
dword NoHscx30 ;
dword ProtVersion ;
dword crc4 ;
dword L1TristateOrQsig ; /* enable Layer 1 Tristate (bit 2)Or Qsig params (bit 0,1)*/
dword InitialDspInfo ;
dword ModemGuardTone ;
dword ModemMinSpeed ;
dword ModemMaxSpeed ;
dword ModemOptions ;
dword ModemOptions2 ;
dword ModemNegotiationMode ;
dword ModemModulationsMask ;
dword ModemTransmitLevel ;
dword FaxOptions ;
dword FaxMaxSpeed ;
dword Part68LevelLimiter ;
dword UsEktsNumCallApp ;
byte UsEktsFeatAddConf ;
byte UsEktsFeatRemoveConf ;
byte UsEktsFeatCallTransfer ;
byte UsEktsFeatMsgWaiting ;
dword SigFlags;
dword LowChannel;
dword NoHscx30;
dword ProtVersion;
dword crc4;
dword L1TristateOrQsig; /* enable Layer 1 Tristate (bit 2)Or Qsig params (bit 0,1)*/
dword InitialDspInfo;
dword ModemGuardTone;
dword ModemMinSpeed;
dword ModemMaxSpeed;
dword ModemOptions;
dword ModemOptions2;
dword ModemNegotiationMode;
dword ModemModulationsMask;
dword ModemTransmitLevel;
dword FaxOptions;
dword FaxMaxSpeed;
dword Part68LevelLimiter;
dword UsEktsNumCallApp;
byte UsEktsFeatAddConf;
byte UsEktsFeatRemoveConf;
byte UsEktsFeatCallTransfer;
byte UsEktsFeatMsgWaiting;
byte QsigDialect;
byte ForceVoiceMailAlert;
byte DisableAutoSpid;
@@ -168,7 +168,7 @@ struct _ISDN_ADAPTER {
byte AniDniLimiter[3];
byte TxAttenuation; /* PRI/E1 only: attenuate TX signal */
word QsigFeatures;
dword GenerateRingtone ;
dword GenerateRingtone;
dword SupplementaryServicesFeatures;
dword R2Dialect;
dword R2CasOptions;
@@ -181,9 +181,9 @@ struct _ISDN_ADAPTER {
byte R2CtryLength;
byte CCBSRelTimer;
byte *PcCfgBufferFile;/* flexible parameter via file */
byte *PcCfgBuffer ; /* flexible parameter via multistring */
byte *PcCfgBuffer; /* flexible parameter via multistring */
diva_os_dump_file_t dump_file; /* dump memory to file at lowest irq level */
diva_os_board_trace_t board_trace ; /* traces from the board */
diva_os_board_trace_t board_trace; /* traces from the board */
diva_os_spin_lock_t isr_spin_lock;
diva_os_spin_lock_t data_spin_lock;
diva_os_soft_isr_t req_soft_isr;
@@ -196,40 +196,40 @@ struct _ISDN_ADAPTER {
word assign; /* list of pending ASSIGNs */
word head; /* head of request queue */
word tail; /* tail of request queue */
ADAPTER a ; /* not a separate structure */
void (* out)(ADAPTER * a) ;
byte (* dpc)(ADAPTER * a) ;
byte (* tst_irq)(ADAPTER * a) ;
void (* clr_irq)(ADAPTER * a) ;
int (* load)(PISDN_ADAPTER) ;
int (* mapmem)(PISDN_ADAPTER) ;
int (* chkIrq)(PISDN_ADAPTER) ;
void (* disIrq)(PISDN_ADAPTER) ;
void (* start)(PISDN_ADAPTER) ;
void (* stop)(PISDN_ADAPTER) ;
void (* rstFnc)(PISDN_ADAPTER) ;
void (* trapFnc)(PISDN_ADAPTER) ;
dword (* DetectDsps)(PISDN_ADAPTER) ;
void (* os_trap_nfy_Fnc)(PISDN_ADAPTER, dword) ;
ADAPTER a; /* not a separate structure */
void (*out)(ADAPTER *a);
byte (*dpc)(ADAPTER *a);
byte (*tst_irq)(ADAPTER *a);
void (*clr_irq)(ADAPTER *a);
int (*load)(PISDN_ADAPTER);
int (*mapmem)(PISDN_ADAPTER);
int (*chkIrq)(PISDN_ADAPTER);
void (*disIrq)(PISDN_ADAPTER);
void (*start)(PISDN_ADAPTER);
void (*stop)(PISDN_ADAPTER);
void (*rstFnc)(PISDN_ADAPTER);
void (*trapFnc)(PISDN_ADAPTER);
dword (*DetectDsps)(PISDN_ADAPTER);
void (*os_trap_nfy_Fnc)(PISDN_ADAPTER, dword);
diva_os_isr_callback_t diva_isr_handler;
dword sdram_bar; /* must be 32 bit */
dword fpga_features;
volatile int pcm_pending;
volatile void * pcm_data;
volatile void *pcm_data;
diva_xdi_capi_cfg_t capi_cfg;
dword tasks;
void *dma_map;
int (*DivaAdapterTestProc)(PISDN_ADAPTER);
void *AdapterTestMemoryStart;
dword AdapterTestMemoryLength;
const byte* cfg_lib_memory_init;
const byte *cfg_lib_memory_init;
dword cfg_lib_memory_init_length;
};
/* ---------------------------------------------------------------------
Entity table
--------------------------------------------------------------------- */
struct e_info_s {
ENTITY * e;
ENTITY *e;
byte next; /* chaining index */
word assign_ref; /* assign reference */
};
@@ -254,55 +254,55 @@ struct s_load {
/* ---------------------------------------------------------------------
platform specific conversions
--------------------------------------------------------------------- */
extern void * PTR_P(ADAPTER * a, ENTITY * e, void * P);
extern void * PTR_X(ADAPTER * a, ENTITY * e);
extern void * PTR_R(ADAPTER * a, ENTITY * e);
extern void CALLBACK(ADAPTER * a, ENTITY * e);
extern void set_ram(void * * adr_ptr);
extern void *PTR_P(ADAPTER *a, ENTITY *e, void *P);
extern void *PTR_X(ADAPTER *a, ENTITY *e);
extern void *PTR_R(ADAPTER *a, ENTITY *e);
extern void CALLBACK(ADAPTER *a, ENTITY *e);
extern void set_ram(void **adr_ptr);
/* ---------------------------------------------------------------------
ram access functions for io mapped cards
--------------------------------------------------------------------- */
byte io_in(ADAPTER * a, void * adr);
word io_inw(ADAPTER * a, void * adr);
void io_in_buffer(ADAPTER * a, void * adr, void * P, word length);
void io_look_ahead(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e);
void io_out(ADAPTER * a, void * adr, byte data);
void io_outw(ADAPTER * a, void * adr, word data);
void io_out_buffer(ADAPTER * a, void * adr, void * P, word length);
void io_inc(ADAPTER * a, void * adr);
void bri_in_buffer (PISDN_ADAPTER IoAdapter, dword Pos,
byte io_in(ADAPTER *a, void *adr);
word io_inw(ADAPTER *a, void *adr);
void io_in_buffer(ADAPTER *a, void *adr, void *P, word length);
void io_look_ahead(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e);
void io_out(ADAPTER *a, void *adr, byte data);
void io_outw(ADAPTER *a, void *adr, word data);
void io_out_buffer(ADAPTER *a, void *adr, void *P, word length);
void io_inc(ADAPTER *a, void *adr);
void bri_in_buffer(PISDN_ADAPTER IoAdapter, dword Pos,
void *Buf, dword Len);
int bri_out_buffer (PISDN_ADAPTER IoAdapter, dword Pos,
int bri_out_buffer(PISDN_ADAPTER IoAdapter, dword Pos,
void *Buf, dword Len, int Verify);
/* ---------------------------------------------------------------------
ram access functions for memory mapped cards
--------------------------------------------------------------------- */
byte mem_in(ADAPTER * a, void * adr);
word mem_inw(ADAPTER * a, void * adr);
void mem_in_buffer(ADAPTER * a, void * adr, void * P, word length);
void mem_look_ahead(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e);
void mem_out(ADAPTER * a, void * adr, byte data);
void mem_outw(ADAPTER * a, void * adr, word data);
void mem_out_buffer(ADAPTER * a, void * adr, void * P, word length);
void mem_inc(ADAPTER * a, void * adr);
void mem_in_dw (ADAPTER *a, void *addr, dword* data, int dwords);
void mem_out_dw (ADAPTER *a, void *addr, const dword* data, int dwords);
byte mem_in(ADAPTER *a, void *adr);
word mem_inw(ADAPTER *a, void *adr);
void mem_in_buffer(ADAPTER *a, void *adr, void *P, word length);
void mem_look_ahead(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e);
void mem_out(ADAPTER *a, void *adr, byte data);
void mem_outw(ADAPTER *a, void *adr, word data);
void mem_out_buffer(ADAPTER *a, void *adr, void *P, word length);
void mem_inc(ADAPTER *a, void *adr);
void mem_in_dw(ADAPTER *a, void *addr, dword *data, int dwords);
void mem_out_dw(ADAPTER *a, void *addr, const dword *data, int dwords);
/* ---------------------------------------------------------------------
functions exported by io.c
--------------------------------------------------------------------- */
extern IDI_CALL Requests[MAX_ADAPTER] ;
extern void DIDpcRoutine (struct _diva_os_soft_isr* psoft_isr,
void* context);
extern void request (PISDN_ADAPTER, ENTITY *) ;
extern IDI_CALL Requests[MAX_ADAPTER];
extern void DIDpcRoutine(struct _diva_os_soft_isr *psoft_isr,
void *context);
extern void request(PISDN_ADAPTER, ENTITY *);
/* ---------------------------------------------------------------------
trapFn helpers, used to recover debug trace from dead card
--------------------------------------------------------------------- */
typedef struct {
word *buf ;
word cnt ;
word out ;
} Xdesc ;
extern void dump_trap_frame (PISDN_ADAPTER IoAdapter, byte __iomem *exception) ;
extern void dump_xlog_buffer (PISDN_ADAPTER IoAdapter, Xdesc *xlogDesc) ;
word *buf;
word cnt;
word out;
} Xdesc;
extern void dump_trap_frame(PISDN_ADAPTER IoAdapter, byte __iomem *exception);
extern void dump_xlog_buffer(PISDN_ADAPTER IoAdapter, Xdesc *xlogDesc);
/* --------------------------------------------------------------------- */
#endif /* } __DIVA_XDI_COMMON_IO_H_INC__ */

View File

@@ -31,30 +31,30 @@
#include "divasync.h"
#include "di.h"
#if !defined USE_EXTENDED_DEBUGS
#include "dimaint.h"
#include "dimaint.h"
#else
#define dprintf
#define dprintf
#endif
#include "dfifo.h"
int diva_istream_write (void* context,
int diva_istream_write(void *context,
int Id,
void* data,
void *data,
int length,
int final,
byte usr1,
byte usr2);
int diva_istream_read (void* context,
int diva_istream_read(void *context,
int Id,
void* data,
void *data,
int max_length,
int* final,
byte* usr1,
byte* usr2);
int *final,
byte *usr1,
byte *usr2);
/* -------------------------------------------------------------------
Does provide iStream interface to the client
------------------------------------------------------------------- */
void diva_xdi_provide_istream_info (ADAPTER* a,
diva_xdi_stream_interface_t* pi) {
void diva_xdi_provide_istream_info(ADAPTER *a,
diva_xdi_stream_interface_t *pi) {
pi->provided_service = 0;
}
/* ------------------------------------------------------------------
@@ -67,25 +67,25 @@ void diva_xdi_provide_istream_info (ADAPTER* a,
return 0 if zero lengh packet was written
return -1 if stream is full
------------------------------------------------------------------ */
int diva_istream_write (void* context,
int diva_istream_write(void *context,
int Id,
void* data,
void *data,
int length,
int final,
byte usr1,
byte usr2) {
ADAPTER* a = (ADAPTER*)context;
ADAPTER *a = (ADAPTER *)context;
int written = 0, to_write = -1;
char tmp[4];
byte* data_ptr = (byte*)data;
byte *data_ptr = (byte *)data;
for (;;) {
a->ram_in_dw (a,
a->ram_in_dw(a,
#ifdef PLATFORM_GT_32BIT
ULongToPtr(a->tx_stream[Id] + a->tx_pos[Id]),
#else
(void*)(a->tx_stream[Id] + a->tx_pos[Id]),
(void *)(a->tx_stream[Id] + a->tx_pos[Id]),
#endif
(dword*)&tmp[0],
(dword *)&tmp[0],
1);
if (tmp[0] & DIVA_DFIFO_READY) { /* No free blocks more */
if (to_write < 0)
@@ -94,11 +94,11 @@ int diva_istream_write (void* context,
}
to_write = min(length, DIVA_DFIFO_DATA_SZ);
if (to_write) {
a->ram_out_buffer (a,
a->ram_out_buffer(a,
#ifdef PLATFORM_GT_32BIT
ULongToPtr(a->tx_stream[Id] + a->tx_pos[Id]+4),
ULongToPtr(a->tx_stream[Id] + a->tx_pos[Id] + 4),
#else
(void*)(a->tx_stream[Id] + a->tx_pos[Id] + 4),
(void *)(a->tx_stream[Id] + a->tx_pos[Id] + 4),
#endif
data_ptr,
(word)to_write);
@@ -114,13 +114,13 @@ int diva_istream_write (void* context,
tmp[2] = usr1;
tmp[3] = usr2;
}
a->ram_out_dw (a,
a->ram_out_dw(a,
#ifdef PLATFORM_GT_32BIT
ULongToPtr(a->tx_stream[Id] + a->tx_pos[Id]),
#else
(void*)(a->tx_stream[Id] + a->tx_pos[Id]),
(void *)(a->tx_stream[Id] + a->tx_pos[Id]),
#endif
(dword*)&tmp[0],
(dword *)&tmp[0],
1);
if (tmp[0] & DIVA_DFIFO_WRAP) {
a->tx_pos[Id] = 0;
@@ -145,26 +145,26 @@ int diva_istream_write (void* context,
to accommodate entire segment
max_length should be at least 68 bytes
------------------------------------------------------------------- */
int diva_istream_read (void* context,
int diva_istream_read(void *context,
int Id,
void* data,
void *data,
int max_length,
int* final,
byte* usr1,
byte* usr2) {
ADAPTER* a = (ADAPTER*)context;
int *final,
byte *usr1,
byte *usr2) {
ADAPTER *a = (ADAPTER *)context;
int read = 0, to_read = -1;
char tmp[4];
byte* data_ptr = (byte*)data;
byte *data_ptr = (byte *)data;
*final = 0;
for (;;) {
a->ram_in_dw (a,
a->ram_in_dw(a,
#ifdef PLATFORM_GT_32BIT
ULongToPtr(a->rx_stream[Id] + a->rx_pos[Id]),
#else
(void*)(a->rx_stream[Id] + a->rx_pos[Id]),
(void *)(a->rx_stream[Id] + a->rx_pos[Id]),
#endif
(dword*)&tmp[0],
(dword *)&tmp[0],
1);
if (tmp[1] > max_length) {
if (to_read < 0)
@@ -182,7 +182,7 @@ int diva_istream_read (void* context,
#ifdef PLATFORM_GT_32BIT
ULongToPtr(a->rx_stream[Id] + a->rx_pos[Id] + 4),
#else
(void*)(a->rx_stream[Id] + a->rx_pos[Id] + 4),
(void *)(a->rx_stream[Id] + a->rx_pos[Id] + 4),
#endif
data_ptr,
(word)to_read);
@@ -198,9 +198,9 @@ int diva_istream_read (void* context,
#ifdef PLATFORM_GT_32BIT
ULongToPtr(a->rx_stream[Id] + a->rx_pos[Id]),
#else
(void*)(a->rx_stream[Id] + a->rx_pos[Id]),
(void *)(a->rx_stream[Id] + a->rx_pos[Id]),
#endif
(dword*)&tmp[0],
(dword *)&tmp[0],
1);
if (tmp[0] & DIVA_DFIFO_WRAP) {
a->rx_pos[Id] = 0;
@@ -221,6 +221,6 @@ int diva_istream_read (void* context,
Does check if one of streams had caused interrupt and does
wake up corresponding application
--------------------------------------------------------------------- */
void pr_stream (ADAPTER * a) {
void pr_stream(ADAPTER *a) {
}
#endif /* } */

View File

@@ -37,7 +37,7 @@ typedef struct _diva_trace_ie {
/*
Structure used to represent "State\\BX\\Modem" directory
to user.
*/
*/
typedef struct _diva_trace_modem_state {
dword ChannelNumber;
@@ -71,7 +71,7 @@ typedef struct _diva_trace_modem_state {
/*
Representation of "State\\BX\\FAX" directory
*/
*/
typedef struct _diva_trace_fax_state {
dword ChannelNumber;
dword Event;
@@ -92,7 +92,7 @@ typedef struct _diva_trace_fax_state {
/*
Structure used to represent Interface State in the abstract
and interface/D-channel protocol independent form.
*/
*/
typedef struct _diva_trace_interface_state {
char Layer1[DIVA_TRACE_LINE_TYPE_LEN];
char Layer2[DIVA_TRACE_LINE_TYPE_LEN];
@@ -175,7 +175,7 @@ typedef struct _diva_ifc_statistics {
/*
Structure used to represent "State\\BX" directory
to user.
*/
*/
typedef struct _diva_trace_line_state {
dword ChannelNumber;
@@ -207,9 +207,9 @@ typedef struct _diva_trace_line_state {
diva_trace_modem_state_t modem;
diva_trace_fax_state_t fax;
diva_trace_interface_state_t* pInterface;
diva_trace_interface_state_t *pInterface;
diva_ifc_statistics_t* pInterfaceStat;
diva_ifc_statistics_t *pInterfaceStat;
} diva_trace_line_state_t;
@@ -222,23 +222,23 @@ typedef struct _diva_trace_line_state {
#define DIVA_SUPER_TRACE_NOTIFY_FAX_STAT_CHANGE ('F')
struct _diva_strace_library_interface;
typedef void (*diva_trace_channel_state_change_proc_t)(void* user_context,
struct _diva_strace_library_interface* hLib,
typedef void (*diva_trace_channel_state_change_proc_t)(void *user_context,
struct _diva_strace_library_interface *hLib,
int Adapter,
diva_trace_line_state_t* channel, int notify_subject);
typedef void (*diva_trace_channel_trace_proc_t)(void* user_context,
struct _diva_strace_library_interface* hLib,
int Adapter, void* xlog_buffer, int length);
typedef void (*diva_trace_error_proc_t)(void* user_context,
struct _diva_strace_library_interface* hLib,
diva_trace_line_state_t *channel, int notify_subject);
typedef void (*diva_trace_channel_trace_proc_t)(void *user_context,
struct _diva_strace_library_interface *hLib,
int Adapter, void *xlog_buffer, int length);
typedef void (*diva_trace_error_proc_t)(void *user_context,
struct _diva_strace_library_interface *hLib,
int Adapter,
int error, const char* file, int line);
int error, const char *file, int line);
/*
This structure creates interface from user to library
*/
*/
typedef struct _diva_trace_library_user_interface {
void* user_context;
void *user_context;
diva_trace_channel_state_change_proc_t notify_proc;
diva_trace_channel_trace_proc_t trace_proc;
diva_trace_error_proc_t error_notify_proc;
@@ -246,23 +246,23 @@ typedef struct _diva_trace_library_user_interface {
/*
Interface from Library to User
*/
typedef int (*DivaSTraceLibraryStart_proc_t)(void* hLib);
typedef int (*DivaSTraceLibraryFinit_proc_t)(void* hLib);
typedef int (*DivaSTraceMessageInput_proc_t)(void* hLib);
typedef void* (*DivaSTraceGetHandle_proc_t)(void* hLib);
*/
typedef int (*DivaSTraceLibraryStart_proc_t)(void *hLib);
typedef int (*DivaSTraceLibraryFinit_proc_t)(void *hLib);
typedef int (*DivaSTraceMessageInput_proc_t)(void *hLib);
typedef void* (*DivaSTraceGetHandle_proc_t)(void *hLib);
/*
Turn Audio Tap trace on/off
Channel should be in the range 1 ... Number of Channels
*/
typedef int (*DivaSTraceSetAudioTap_proc_t)(void* hLib, int Channel, int on);
*/
typedef int (*DivaSTraceSetAudioTap_proc_t)(void *hLib, int Channel, int on);
/*
Turn B-channel trace on/off
Channel should be in the range 1 ... Number of Channels
*/
typedef int (*DivaSTraceSetBChannel_proc_t)(void* hLib, int Channel, int on);
*/
typedef int (*DivaSTraceSetBChannel_proc_t)(void *hLib, int Channel, int on);
/*
Turn D-channel (Layer1/Layer2/Layer3) trace on/off
@@ -271,28 +271,28 @@ typedef int (*DivaSTraceSetBChannel_proc_t)(void* hLib, int Channel, int on);
Layer2 - Events from LAPD protocol instance with SAPI of signalling protocol
Layer3 - All D-channel frames addressed to assigned to the card TEI and
SAPI of signalling protocol, and signalling protocol events.
*/
typedef int (*DivaSTraceSetDChannel_proc_t)(void* hLib, int on);
*/
typedef int (*DivaSTraceSetDChannel_proc_t)(void *hLib, int on);
/*
Get overall card statistics
*/
typedef int (*DivaSTraceGetOutgoingCallStatistics_proc_t)(void* hLib);
typedef int (*DivaSTraceGetIncomingCallStatistics_proc_t)(void* hLib);
typedef int (*DivaSTraceGetModemStatistics_proc_t)(void* hLib);
typedef int (*DivaSTraceGetFaxStatistics_proc_t)(void* hLib);
typedef int (*DivaSTraceGetBLayer1Statistics_proc_t)(void* hLib);
typedef int (*DivaSTraceGetBLayer2Statistics_proc_t)(void* hLib);
typedef int (*DivaSTraceGetDLayer1Statistics_proc_t)(void* hLib);
typedef int (*DivaSTraceGetDLayer2Statistics_proc_t)(void* hLib);
*/
typedef int (*DivaSTraceGetOutgoingCallStatistics_proc_t)(void *hLib);
typedef int (*DivaSTraceGetIncomingCallStatistics_proc_t)(void *hLib);
typedef int (*DivaSTraceGetModemStatistics_proc_t)(void *hLib);
typedef int (*DivaSTraceGetFaxStatistics_proc_t)(void *hLib);
typedef int (*DivaSTraceGetBLayer1Statistics_proc_t)(void *hLib);
typedef int (*DivaSTraceGetBLayer2Statistics_proc_t)(void *hLib);
typedef int (*DivaSTraceGetDLayer1Statistics_proc_t)(void *hLib);
typedef int (*DivaSTraceGetDLayer2Statistics_proc_t)(void *hLib);
/*
Call control
*/
typedef int (*DivaSTraceClearCall_proc_t)(void* hLib, int Channel);
*/
typedef int (*DivaSTraceClearCall_proc_t)(void *hLib, int Channel);
typedef struct _diva_strace_library_interface {
void* hLib;
void *hLib;
DivaSTraceLibraryStart_proc_t DivaSTraceLibraryStart;
DivaSTraceLibraryStart_proc_t DivaSTraceLibraryStop;
DivaSTraceLibraryFinit_proc_t DivaSTraceLibraryFinit;
@@ -323,14 +323,13 @@ typedef struct _diva_strace_library_interface {
/*
Create and return Library interface
*/
diva_strace_library_interface_t* DivaSTraceLibraryCreateInstance (int Adapter,
const diva_trace_library_user_interface_t* user_proc,
byte* pmem);
dword DivaSTraceGetMemotyRequirement (int channels);
*/
diva_strace_library_interface_t *DivaSTraceLibraryCreateInstance(int Adapter,
const diva_trace_library_user_interface_t *user_proc,
byte *pmem);
dword DivaSTraceGetMemotyRequirement(int channels);
#define DIVA_MAX_ADAPTERS 64
#define DIVA_MAX_LINES 32
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -25,28 +25,28 @@
#ifndef __DIVA_EICON_TRACE_IDI_IFC_H__
#define __DIVA_EICON_TRACE_IDI_IFC_H__
void* SuperTraceOpenAdapter (int AdapterNumber);
int SuperTraceCloseAdapter (void* AdapterHandle);
int SuperTraceWrite (void* AdapterHandle,
const void* data, int length);
int SuperTraceReadRequest (void* AdapterHandle,const char* name,byte* data);
int SuperTraceGetNumberOfChannels (void* AdapterHandle);
int SuperTraceASSIGN (void* AdapterHandle, byte* data);
int SuperTraceREMOVE (void* AdapterHandle);
int SuperTraceTraceOnRequest(void* hAdapter, const char* name, byte* data);
int SuperTraceWriteVar (void* AdapterHandle,
byte* data,
const char* name,
void* var,
void *SuperTraceOpenAdapter(int AdapterNumber);
int SuperTraceCloseAdapter(void *AdapterHandle);
int SuperTraceWrite(void *AdapterHandle,
const void *data, int length);
int SuperTraceReadRequest(void *AdapterHandle, const char *name, byte *data);
int SuperTraceGetNumberOfChannels(void *AdapterHandle);
int SuperTraceASSIGN(void *AdapterHandle, byte *data);
int SuperTraceREMOVE(void *AdapterHandle);
int SuperTraceTraceOnRequest(void *hAdapter, const char *name, byte *data);
int SuperTraceWriteVar(void *AdapterHandle,
byte *data,
const char *name,
void *var,
byte type,
byte var_length);
int SuperTraceExecuteRequest (void* AdapterHandle,
const char* name,
byte* data);
int SuperTraceExecuteRequest(void *AdapterHandle,
const char *name,
byte *data);
typedef struct _diva_strace_path2action {
char path[64]; /* Full path to variable */
void* variable; /* Variable that will receive value */
void *variable; /* Variable that will receive value */
} diva_strace_path2action_t;
#define DIVA_MAX_MANAGEMENT_TRANSFER_SIZE 4096
@@ -55,7 +55,7 @@ typedef struct _diva_strace_context {
diva_strace_library_interface_t instance;
int Adapter;
void* hAdapter;
void *hAdapter;
int Channels;
int req_busy;
@@ -112,7 +112,7 @@ typedef struct _diva_strace_context {
int parse_entries;
int cur_parse_entry;
diva_strace_path2action_t* parse_table;
diva_strace_path2action_t *parse_table;
diva_trace_library_user_interface_t user_proc_table;
@@ -169,4 +169,3 @@ typedef struct _diva_man_var_header {
} diva_man_var_header_t;
#endif

View File

@@ -30,9 +30,9 @@
#define DSP_UDATA_INDICATION_CTS_OFF 0x03
#define DSP_UDATA_INDICATION_CTS_ON 0x04
/* =====================================================================
DCD_OFF Message:
DCD_OFF Message:
<word> time of DCD off (sampled from counter at 8kHz)
DCD_ON Message:
DCD_ON Message:
<word> time of DCD on (sampled from counter at 8kHz)
<byte> connected norm
<word> connected options
@@ -129,14 +129,14 @@ DCD_ON Message:
#define DSP_CONNECTED_OPTION_MASK_COMPRESSION 0x0320
#define DSP_UDATA_INDICATION_DISCONNECT 5
/*
returns:
returns:
<byte> cause
*/
/* ==========================================================
DLC: B2 modem configuration
========================================================== */
/*
Fields in assign DLC information element for modem protocol V.42/MNP:
Fields in assign DLC information element for modem protocol V.42/MNP:
<byte> length of information element
<word> information field length
<byte> address A (not used, default 3)
@@ -175,7 +175,7 @@ Fields in assign DLC information element for modem protocol V.42/MNP:
CAI parameters used for the modem L1 configuration
========================================================== */
/*
Fields in assign CAI information element:
Fields in assign CAI information element:
<byte> length of information element
<byte> info field and B-channel hardware
<byte> rate adaptation bit rate

File diff suppressed because it is too large Load Diff

View File

@@ -89,7 +89,7 @@ struct mp_load {
dword volatile TrapId; /* has value 0x999999XX on a CPU trap */
dword volatile res2[0x03];
MP_XCPTC volatile xcpt; /* contains register dump */
dword volatile rest[((0x1020>>2)-6) - 0x1b - 1 - 0x03 - (sizeof(MP_XCPTC)>>2)];
dword volatile rest[((0x1020 >> 2) - 6) - 0x1b - 1 - 0x03 - (sizeof(MP_XCPTC) >> 2)];
dword volatile signature;
dword data[60000]; /* real interface description */
};
@@ -154,7 +154,7 @@ struct mp_load {
/*
* GT64010 internal registers
*/
/* DRAM device coding */
/* DRAM device coding */
#define LOW_RAS0_DREG 0x0400 /*Ras0 low decode address*/
#define HI_RAS0_DREG 0x0404 /*Ras0 high decode address*/
#define LOW_RAS1_DREG 0x0408 /*Ras1 low decode address*/
@@ -163,7 +163,7 @@ struct mp_load {
#define HI_RAS2_DREG 0x0414 /*Ras2 high decode address*/
#define LOW_RAS3_DREG 0x0418 /*Ras3 low decode address*/
#define HI_RAS3_DREG 0x041c /*Ras3 high decode address*/
/* I/O CS device coding */
/* I/O CS device coding */
#define LOW_CS0_DREG 0x0420 /* CS0* low decode register */
#define HI_CS0_DREG 0x0424 /* CS0* high decode register */
#define LOW_CS1_DREG 0x0428 /* CS1* low decode register */
@@ -172,20 +172,20 @@ struct mp_load {
#define HI_CS2_DREG 0x0434 /* CS2* high decode register */
#define LOW_CS3_DREG 0x0438 /* CS3* low decode register */
#define HI_CS3_DREG 0x043c /* CS3* high decode register */
/* Boot PROM device coding */
/* Boot PROM device coding */
#define LOW_BOOTCS_DREG 0x0440 /* Boot CS low decode register */
#define HI_BOOTCS_DREG 0x0444 /* Boot CS High decode register */
/* DRAM group coding (for CPU) */
/* DRAM group coding (for CPU) */
#define LO_RAS10_GREG 0x0008 /*Ras1..0 group low decode address*/
#define HI_RAS10_GREG 0x0010 /*Ras1..0 group high decode address*/
#define LO_RAS32_GREG 0x0018 /*Ras3..2 group low decode address */
#define HI_RAS32_GREG 0x0020 /*Ras3..2 group high decode address */
/* I/O CS group coding for (CPU) */
/* I/O CS group coding for (CPU) */
#define LO_CS20_GREG 0x0028 /* CS2..0 group low decode register */
#define HI_CS20_GREG 0x0030 /* CS2..0 group high decode register */
#define LO_CS3B_GREG 0x0038 /* CS3 & PROM group low decode register */
#define HI_CS3B_GREG 0x0040 /* CS3 & PROM group high decode register */
/* Galileo specific PCI config. */
/* Galileo specific PCI config. */
#define PCI_TIMEOUT_RET 0x0c04 /* Time Out and retry register */
#define RAS10_BANKSIZE 0x0c08 /* RAS 1..0 group PCI bank size */
#define RAS32_BANKSIZE 0x0c0c /* RAS 3..2 group PCI bank size */

View File

@@ -27,7 +27,7 @@ static dword notify_handle;
static DESCRIPTOR DAdapter;
static DESCRIPTOR MAdapter;
static DESCRIPTOR MaintDescriptor =
{ IDI_DIMAINT, 0, 0, (IDI_CALL) diva_maint_prtComp };
{ IDI_DIMAINT, 0, 0, (IDI_CALL) diva_maint_prtComp };
extern int diva_os_copy_to_user(void *os_handle, void __user *dst,
const void *src, int length);
@@ -44,7 +44,7 @@ static void no_printf(unsigned char *x, ...)
/*
* DIDD callback function
*/
static void *didd_callback(void *context, DESCRIPTOR * adapter,
static void *didd_callback(void *context, DESCRIPTOR *adapter,
int removal)
{
if (adapter->type == IDI_DADAPTER) {
@@ -90,7 +90,7 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY;
req.didd_notify.info.callback = (void *)didd_callback;
req.didd_notify.info.context = NULL;
DAdapter.request((ENTITY *) & req);
DAdapter.request((ENTITY *)&req);
if (req.didd_notify.e.Rc != 0xff)
return (0);
notify_handle = req.didd_notify.info.handle;
@@ -100,7 +100,7 @@ static int DIVA_INIT_FUNCTION connect_didd(void)
IDI_SYNC_REQ_DIDD_ADD_ADAPTER;
req.didd_add_adapter.info.descriptor =
(void *) &MaintDescriptor;
DAdapter.request((ENTITY *) & req);
DAdapter.request((ENTITY *)&req);
if (req.didd_add_adapter.e.Rc != 0xff)
return (0);
} else if ((DIDD_Table[x].type > 0)
@@ -121,13 +121,13 @@ static void DIVA_EXIT_FUNCTION disconnect_didd(void)
req.didd_notify.e.Req = 0;
req.didd_notify.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY;
req.didd_notify.info.handle = notify_handle;
DAdapter.request((ENTITY *) & req);
DAdapter.request((ENTITY *)&req);
req.didd_remove_adapter.e.Req = 0;
req.didd_remove_adapter.e.Rc = IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER;
req.didd_remove_adapter.info.p_request =
(IDI_CALL) MaintDescriptor.request;
DAdapter.request((ENTITY *) & req);
DAdapter.request((ENTITY *)&req);
}
/*
@@ -147,9 +147,9 @@ int maint_read_write(void __user *buf, int count)
return (-EFAULT);
}
cmd = *(dword *) & data[0]; /* command */
id = *(dword *) & data[4]; /* driver id */
mask = *(dword *) & data[8]; /* mask or size */
cmd = *(dword *)&data[0]; /* command */
id = *(dword *)&data[4]; /* driver id */
mask = *(dword *)&data[8]; /* mask or size */
switch (cmd) {
case DITRACE_CMD_GET_DRIVER_INFO:
@@ -185,12 +185,12 @@ int maint_read_write(void __user *buf, int count)
*/
case DITRACE_WRITE_SELECTIVE_TRACE_FILTER:
if (!mask) {
ret = diva_set_trace_filter (1, "*");
ret = diva_set_trace_filter(1, "*");
} else if (mask < sizeof(data)) {
if (diva_os_copy_from_user(NULL, data, (char __user *)buf+12, mask)) {
if (diva_os_copy_from_user(NULL, data, (char __user *)buf + 12, mask)) {
ret = -EFAULT;
} else {
ret = diva_set_trace_filter ((int)mask, data);
ret = diva_set_trace_filter((int)mask, data);
}
} else {
ret = -EINVAL;
@@ -198,8 +198,8 @@ int maint_read_write(void __user *buf, int count)
break;
case DITRACE_READ_SELECTIVE_TRACE_FILTER:
if ((ret = diva_get_trace_filter (sizeof(data), data)) > 0) {
if (diva_os_copy_to_user (NULL, buf, data, ret))
if ((ret = diva_get_trace_filter(sizeof(data), data)) > 0) {
if (diva_os_copy_to_user(NULL, buf, data, ret))
ret = -EFAULT;
} else {
ret = -ENODEV;
@@ -216,7 +216,7 @@ int maint_read_write(void __user *buf, int count)
return (-ENOMEM);
}
for(;;) {
for (;;) {
if (!(pmsg =
diva_maint_get_message(&size, &old_irql))) {
break;
@@ -230,7 +230,7 @@ int maint_read_write(void __user *buf, int count)
memcpy(pbuf, pmsg, size);
diva_maint_ack_message(1, &old_irql);
if ((count < size) ||
diva_os_copy_to_user (NULL, buf, (void *) pbuf, size))
diva_os_copy_to_user(NULL, buf, (void *) pbuf, size))
ret = -EFAULT;
break;
}
@@ -316,7 +316,7 @@ int DIVA_INIT_FUNCTION mntfunc_init(int *buffer_length, void **buffer,
} else {
while ((*buffer_length >= (64 * 1024))
&&
(!(*buffer = diva_os_malloc (0, *buffer_length)))) {
(!(*buffer = diva_os_malloc(0, *buffer_length)))) {
*buffer_length -= 1024;
}
@@ -328,7 +328,7 @@ int DIVA_INIT_FUNCTION mntfunc_init(int *buffer_length, void **buffer,
if (diva_maint_init(*buffer, *buffer_length, (diva_dbg_mem == 0))) {
if (!diva_dbg_mem) {
diva_os_free (0, *buffer);
diva_os_free(0, *buffer);
}
DBG_ERR(("init: maint init failed"));
return (0);
@@ -338,7 +338,7 @@ int DIVA_INIT_FUNCTION mntfunc_init(int *buffer_length, void **buffer,
DBG_ERR(("init: failed to connect to DIDD."));
diva_maint_finit();
if (!diva_dbg_mem) {
diva_os_free (0, *buffer);
diva_os_free(0, *buffer);
}
return (0);
}
@@ -362,7 +362,7 @@ void DIVA_EXIT_FUNCTION mntfunc_finit(void)
disconnect_didd();
if ((buffer = diva_maint_finit())) {
diva_os_free (0, buffer);
diva_os_free(0, buffer);
}
memset(&MAdapter, 0, sizeof(MAdapter));

View File

@@ -27,12 +27,12 @@ static dword diva_xdiLoadFileLength = 0;
extern void prepare_qBri_functions(PISDN_ADAPTER IoAdapter);
extern void prepare_qBri2_functions(PISDN_ADAPTER IoAdapter);
extern void diva_xdi_display_adapter_features(int card);
extern void diva_add_slave_adapter(diva_os_xdi_adapter_t * a);
extern void diva_add_slave_adapter(diva_os_xdi_adapter_t *a);
extern int qBri_FPGA_download(PISDN_ADAPTER IoAdapter);
extern void start_qBri_hardware(PISDN_ADAPTER IoAdapter);
extern int diva_card_read_xlog(diva_os_xdi_adapter_t * a);
extern int diva_card_read_xlog(diva_os_xdi_adapter_t *a);
/*
** LOCALS
@@ -57,23 +57,23 @@ static unsigned long _4bri_v2_bri_bar_length[4] = {
};
static int diva_4bri_cleanup_adapter(diva_os_xdi_adapter_t * a);
static int _4bri_get_serial_number(diva_os_xdi_adapter_t * a);
static int diva_4bri_cleanup_adapter(diva_os_xdi_adapter_t *a);
static int _4bri_get_serial_number(diva_os_xdi_adapter_t *a);
static int diva_4bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
diva_xdi_um_cfg_cmd_t * cmd,
diva_xdi_um_cfg_cmd_t *cmd,
int length);
static int diva_4bri_cleanup_slave_adapters(diva_os_xdi_adapter_t * a);
static int diva_4bri_write_fpga_image(diva_os_xdi_adapter_t * a,
byte * data, dword length);
static int diva_4bri_cleanup_slave_adapters(diva_os_xdi_adapter_t *a);
static int diva_4bri_write_fpga_image(diva_os_xdi_adapter_t *a,
byte *data, dword length);
static int diva_4bri_reset_adapter(PISDN_ADAPTER IoAdapter);
static int diva_4bri_write_sdram_block(PISDN_ADAPTER IoAdapter,
dword address,
const byte * data,
const byte *data,
dword length, dword limit);
static int diva_4bri_start_adapter(PISDN_ADAPTER IoAdapter,
dword start_address, dword features);
static int check_qBri_interrupt(PISDN_ADAPTER IoAdapter);
static int diva_4bri_stop_adapter(diva_os_xdi_adapter_t * a);
static int diva_4bri_stop_adapter(diva_os_xdi_adapter_t *a);
static int _4bri_is_rev_2_card(int card_ordinal)
{
@@ -141,7 +141,7 @@ static void diva_4bri_set_addresses(diva_os_xdi_adapter_t *a)
**
** Called by master adapter, that will initialize and add slave adapters
*/
int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
int diva_4bri_init_card(diva_os_xdi_adapter_t *a)
{
int bar, i;
byte __iomem *p;
@@ -370,7 +370,7 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
strcpy(diva_current->xdi_adapter.req_soft_isr. dpc_thread_name, "kdivas4brid");
if (diva_os_initialize_soft_isr (&diva_current->xdi_adapter.req_soft_isr, DIDpcRoutine,
if (diva_os_initialize_soft_isr(&diva_current->xdi_adapter.req_soft_isr, DIDpcRoutine,
&diva_current->xdi_adapter)) {
diva_4bri_cleanup_slave_adapters(a);
diva_4bri_cleanup_adapter(a);
@@ -466,7 +466,7 @@ int diva_4bri_init_card(diva_os_xdi_adapter_t * a)
** this is guaranteed by design: cleanup callback is set
** by master adapter only
*/
static int diva_4bri_cleanup_adapter(diva_os_xdi_adapter_t * a)
static int diva_4bri_cleanup_adapter(diva_os_xdi_adapter_t *a)
{
int bar;
@@ -526,7 +526,7 @@ static int diva_4bri_cleanup_adapter(diva_os_xdi_adapter_t * a)
return (0);
}
static int _4bri_get_serial_number(diva_os_xdi_adapter_t * a)
static int _4bri_get_serial_number(diva_os_xdi_adapter_t *a)
{
dword data[64];
dword serNo;
@@ -578,7 +578,7 @@ static int _4bri_get_serial_number(diva_os_xdi_adapter_t * a)
/*
** Release resources of slave adapters
*/
static int diva_4bri_cleanup_slave_adapters(diva_os_xdi_adapter_t * a)
static int diva_4bri_cleanup_slave_adapters(diva_os_xdi_adapter_t *a)
{
diva_os_xdi_adapter_t *adapter_list[4];
diva_os_xdi_adapter_t *diva_current;
@@ -625,7 +625,7 @@ static int diva_4bri_cleanup_slave_adapters(diva_os_xdi_adapter_t * a)
static int
diva_4bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
diva_xdi_um_cfg_cmd_t * cmd, int length)
diva_xdi_um_cfg_cmd_t *cmd, int length)
{
int ret = -1;
@@ -710,7 +710,7 @@ diva_4bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
if (!a->xdi_adapter.ControllerNumber) {
ret =
diva_4bri_write_fpga_image(a,
(byte *) & cmd[1],
(byte *)&cmd[1],
cmd->command_data.
write_fpga.
image_length);
@@ -838,7 +838,7 @@ void diva_os_set_qBri2_functions(PISDN_ADAPTER IoAdapter)
}
static int
diva_4bri_write_fpga_image(diva_os_xdi_adapter_t * a, byte * data,
diva_4bri_write_fpga_image(diva_os_xdi_adapter_t *a, byte *data,
dword length)
{
int ret;
@@ -908,7 +908,7 @@ static int diva_4bri_reset_adapter(PISDN_ADAPTER IoAdapter)
static int
diva_4bri_write_sdram_block(PISDN_ADAPTER IoAdapter,
dword address,
const byte * data, dword length, dword limit)
const byte *data, dword length, dword limit)
{
byte __iomem *p = DIVA_OS_MEM_ATTACH_ADDRESS(IoAdapter);
byte __iomem *mem = p;
@@ -1056,7 +1056,7 @@ static int check_qBri_interrupt(PISDN_ADAPTER IoAdapter)
#endif /* SUPPORT_INTERRUPT_TEST_ON_4BRI */
}
static void diva_4bri_clear_interrupts(diva_os_xdi_adapter_t * a)
static void diva_4bri_clear_interrupts(diva_os_xdi_adapter_t *a)
{
PISDN_ADAPTER IoAdapter = &a->xdi_adapter;
@@ -1076,7 +1076,7 @@ static void diva_4bri_clear_interrupts(diva_os_xdi_adapter_t * a)
diva_os_cancel_soft_isr(&IoAdapter->isr_soft_isr);
}
static int diva_4bri_stop_adapter(diva_os_xdi_adapter_t * a)
static int diva_4bri_stop_adapter(diva_os_xdi_adapter_t *a)
{
PISDN_ADAPTER IoAdapter = &a->xdi_adapter;
int i;

View File

@@ -3,6 +3,6 @@
#ifndef __DIVA_OS_4_BRI_H__
#define __DIVA_OS_4_BRI_H__
int diva_4bri_init_card(diva_os_xdi_adapter_t * a);
int diva_4bri_init_card(diva_os_xdi_adapter_t *a);
#endif

View File

@@ -23,7 +23,7 @@
*/
extern void prepare_maestra_functions(PISDN_ADAPTER IoAdapter);
extern void diva_xdi_display_adapter_features(int card);
extern int diva_card_read_xlog(diva_os_xdi_adapter_t * a);
extern int diva_card_read_xlog(diva_os_xdi_adapter_t *a);
/*
** LOCALS
@@ -33,20 +33,20 @@ static int bri_bar_length[3] = {
0x80,
0x20
};
static int diva_bri_cleanup_adapter(diva_os_xdi_adapter_t * a);
static dword diva_bri_get_serial_number(diva_os_xdi_adapter_t * a);
static int diva_bri_cleanup_adapter(diva_os_xdi_adapter_t *a);
static dword diva_bri_get_serial_number(diva_os_xdi_adapter_t *a);
static int diva_bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
diva_xdi_um_cfg_cmd_t * cmd, int length);
static int diva_bri_reregister_io(diva_os_xdi_adapter_t * a);
diva_xdi_um_cfg_cmd_t *cmd, int length);
static int diva_bri_reregister_io(diva_os_xdi_adapter_t *a);
static int diva_bri_reset_adapter(PISDN_ADAPTER IoAdapter);
static int diva_bri_write_sdram_block(PISDN_ADAPTER IoAdapter,
dword address,
const byte * data, dword length);
const byte *data, dword length);
static int diva_bri_start_adapter(PISDN_ADAPTER IoAdapter,
dword start_address, dword features);
static int diva_bri_stop_adapter(diva_os_xdi_adapter_t * a);
static int diva_bri_stop_adapter(diva_os_xdi_adapter_t *a);
static void diva_bri_set_addresses(diva_os_xdi_adapter_t * a)
static void diva_bri_set_addresses(diva_os_xdi_adapter_t *a)
{
a->resources.pci.mem_type_id[MEM_TYPE_RAM] = 0;
a->resources.pci.mem_type_id[MEM_TYPE_CFG] = 1;
@@ -72,7 +72,7 @@ static void diva_bri_set_addresses(diva_os_xdi_adapter_t * a)
** BAR1 - I/O Addr - 0x80
** BAR2 - I/O Addr - 0x20
*/
int diva_bri_init_card(diva_os_xdi_adapter_t * a)
int diva_bri_init_card(diva_os_xdi_adapter_t *a)
{
int bar;
dword bar2 = 0, bar2_length = 0xffffffff;
@@ -265,7 +265,7 @@ int diva_bri_init_card(diva_os_xdi_adapter_t * a)
}
static int diva_bri_cleanup_adapter(diva_os_xdi_adapter_t * a)
static int diva_bri_cleanup_adapter(diva_os_xdi_adapter_t *a)
{
int i;
@@ -329,7 +329,7 @@ void diva_os_prepare_maestra_functions(PISDN_ADAPTER IoAdapter)
/*
** Get serial number
*/
static dword diva_bri_get_serial_number(diva_os_xdi_adapter_t * a)
static dword diva_bri_get_serial_number(diva_os_xdi_adapter_t *a)
{
dword serNo = 0;
byte __iomem *confIO;
@@ -361,7 +361,7 @@ static dword diva_bri_get_serial_number(diva_os_xdi_adapter_t * a)
** Unregister I/O and register it with new name,
** based on Serial Number
*/
static int diva_bri_reregister_io(diva_os_xdi_adapter_t * a)
static int diva_bri_reregister_io(diva_os_xdi_adapter_t *a)
{
int i;
@@ -394,7 +394,7 @@ static int diva_bri_reregister_io(diva_os_xdi_adapter_t * a)
*/
static int
diva_bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
diva_xdi_um_cfg_cmd_t * cmd, int length)
diva_xdi_um_cfg_cmd_t *cmd, int length)
{
int ret = -1;
@@ -474,7 +474,7 @@ diva_bri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
ret = diva_bri_write_sdram_block(&a->xdi_adapter,
cmd->command_data.
write_sdram.offset,
(byte *) & cmd[1],
(byte *)&cmd[1],
cmd->command_data.
write_sdram.length);
break;
@@ -602,7 +602,7 @@ static int diva_bri_reset_adapter(PISDN_ADAPTER IoAdapter)
static int
diva_bri_write_sdram_block(PISDN_ADAPTER IoAdapter,
dword address, const byte * data, dword length)
dword address, const byte *data, dword length)
{
byte __iomem *addrHi, *addrLo, *ioaddr;
byte __iomem *Port;
@@ -745,7 +745,7 @@ diva_bri_start_adapter(PISDN_ADAPTER IoAdapter,
return (0);
}
static void diva_bri_clear_interrupts(diva_os_xdi_adapter_t * a)
static void diva_bri_clear_interrupts(diva_os_xdi_adapter_t *a)
{
PISDN_ADAPTER IoAdapter = &a->xdi_adapter;
@@ -768,7 +768,7 @@ static void diva_bri_clear_interrupts(diva_os_xdi_adapter_t * a)
/*
** Stop card
*/
static int diva_bri_stop_adapter(diva_os_xdi_adapter_t * a)
static int diva_bri_stop_adapter(diva_os_xdi_adapter_t *a)
{
PISDN_ADAPTER IoAdapter = &a->xdi_adapter;
int i = 100;

View File

@@ -3,6 +3,6 @@
#ifndef __DIVA_OS_BRI_REV_1_H__
#define __DIVA_OS_BRI_REV_1_H__
int diva_bri_init_card(diva_os_xdi_adapter_t * a);
int diva_bri_init_card(diva_os_xdi_adapter_t *a);
#endif

View File

@@ -24,11 +24,11 @@
OS Dependent part of XDI driver for DIVA PRI Adapter
DSP detection/validation by Anthony Booth (Eicon Networks, www.eicon.com)
-------------------------------------------------------------------------- */
-------------------------------------------------------------------------- */
#define DIVA_PRI_NO_PCI_BIOS_WORKAROUND 1
extern int diva_card_read_xlog(diva_os_xdi_adapter_t * a);
extern int diva_card_read_xlog(diva_os_xdi_adapter_t *a);
/*
** IMPORTS
@@ -37,12 +37,12 @@ extern void prepare_pri_functions(PISDN_ADAPTER IoAdapter);
extern void prepare_pri2_functions(PISDN_ADAPTER IoAdapter);
extern void diva_xdi_display_adapter_features(int card);
static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t * a);
static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t *a);
static int diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
diva_xdi_um_cfg_cmd_t * cmd, int length);
static int pri_get_serial_number(diva_os_xdi_adapter_t * a);
static int diva_pri_stop_adapter(diva_os_xdi_adapter_t * a);
static dword diva_pri_detect_dsps(diva_os_xdi_adapter_t * a);
diva_xdi_um_cfg_cmd_t *cmd, int length);
static int pri_get_serial_number(diva_os_xdi_adapter_t *a);
static int diva_pri_stop_adapter(diva_os_xdi_adapter_t *a);
static dword diva_pri_detect_dsps(diva_os_xdi_adapter_t *a);
/*
** Check card revision
@@ -57,7 +57,7 @@ static int pri_is_rev_2_card(int card_ordinal)
return (0);
}
static void diva_pri_set_addresses(diva_os_xdi_adapter_t * a)
static void diva_pri_set_addresses(diva_os_xdi_adapter_t *a)
{
a->resources.pci.mem_type_id[MEM_TYPE_ADDRESS] = 0;
a->resources.pci.mem_type_id[MEM_TYPE_CONTROL] = 2;
@@ -92,7 +92,7 @@ static void diva_pri_set_addresses(diva_os_xdi_adapter_t * a)
** BAR3 - FLASH (REG), 0x8000
** BAR4 - CONFIG (CFG), 0x1000
*/
int diva_pri_init_card(diva_os_xdi_adapter_t * a)
int diva_pri_init_card(diva_os_xdi_adapter_t *a)
{
int bar = 0;
int pri_rev_2;
@@ -257,7 +257,7 @@ int diva_pri_init_card(diva_os_xdi_adapter_t * a)
return (0);
}
static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t * a)
static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t *a)
{
int bar = 0;
@@ -407,7 +407,7 @@ static int diva_pri_reset_adapter(PISDN_ADAPTER IoAdapter)
static int
diva_pri_write_sdram_block(PISDN_ADAPTER IoAdapter,
dword address,
const byte * data, dword length, dword limit)
const byte *data, dword length, dword limit)
{
byte __iomem *p = DIVA_OS_MEM_ATTACH_ADDRESS(IoAdapter);
byte __iomem *mem = p;
@@ -494,7 +494,7 @@ diva_pri_start_adapter(PISDN_ADAPTER IoAdapter,
*/
IoAdapter->IrqCount = 0;
p = DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
WRITE_DWORD(p, (dword) ~ 0x03E00000);
WRITE_DWORD(p, (dword)~0x03E00000);
DIVA_OS_MEM_DETACH_CFG(IoAdapter, p);
a->ReadyInt = 1;
a->ram_out(a, &PR_RAM->ReadyInt, 1);
@@ -522,7 +522,7 @@ diva_pri_start_adapter(PISDN_ADAPTER IoAdapter,
return (0);
}
static void diva_pri_clear_interrupts(diva_os_xdi_adapter_t * a)
static void diva_pri_clear_interrupts(diva_os_xdi_adapter_t *a)
{
PISDN_ADAPTER IoAdapter = &a->xdi_adapter;
@@ -546,7 +546,7 @@ static void diva_pri_clear_interrupts(diva_os_xdi_adapter_t * a)
** Stop Adapter, but do not unmap/unregister - adapter
** will be restarted later
*/
static int diva_pri_stop_adapter(diva_os_xdi_adapter_t * a)
static int diva_pri_stop_adapter(diva_os_xdi_adapter_t *a)
{
PISDN_ADAPTER IoAdapter = &a->xdi_adapter;
int i = 100;
@@ -600,7 +600,7 @@ static int diva_pri_stop_adapter(diva_os_xdi_adapter_t * a)
*/
static int
diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
diva_xdi_um_cfg_cmd_t * cmd, int length)
diva_xdi_um_cfg_cmd_t *cmd, int length)
{
int ret = -1;
@@ -660,7 +660,7 @@ diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
ret = diva_pri_write_sdram_block(&a->xdi_adapter,
cmd->command_data.
write_sdram.offset,
(byte *) & cmd[1],
(byte *)&cmd[1],
cmd->command_data.
write_sdram.length,
pri_is_rev_2_card(a->
@@ -761,7 +761,7 @@ diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
/*
** Get Serial Number
*/
static int pri_get_serial_number(diva_os_xdi_adapter_t * a)
static int pri_get_serial_number(diva_os_xdi_adapter_t *a)
{
byte data[64];
int i;
@@ -909,7 +909,7 @@ void diva_os_prepare_pri_functions(PISDN_ADAPTER IoAdapter)
** Checks presence of DSP on board
*/
static int
dsp_check_presence(volatile byte __iomem * addr, volatile byte __iomem * data, int dsp)
dsp_check_presence(volatile byte __iomem *addr, volatile byte __iomem *data, int dsp)
{
word pattern;
@@ -931,9 +931,9 @@ dsp_check_presence(volatile byte __iomem * addr, volatile byte __iomem * data, i
WRITE_WORD(addr, 0x4000);
pattern = READ_WORD(data);
if (pattern != (word) ~ DSP_SIGNATURE_PROBE_WORD) {
if (pattern != (word)~DSP_SIGNATURE_PROBE_WORD) {
DBG_ERR(("A: DSP[%d] %04x(is) != %04x(should)",
dsp, pattern, (word) ~ DSP_SIGNATURE_PROBE_WORD))
dsp, pattern, (word)~DSP_SIGNATURE_PROBE_WORD))
return (-2);
}
@@ -952,7 +952,7 @@ dsp_check_presence(volatile byte __iomem * addr, volatile byte __iomem * data, i
** ...
** Bit 29 - DSP30
*/
static dword diva_pri_detect_dsps(diva_os_xdi_adapter_t * a)
static dword diva_pri_detect_dsps(diva_os_xdi_adapter_t *a)
{
byte __iomem *base;
byte __iomem *p;

View File

@@ -3,6 +3,6 @@
#ifndef __DIVA_OS_PRI_REV_1_H__
#define __DIVA_OS_PRI_REV_1_H__
int diva_pri_init_card(diva_os_xdi_adapter_t * a);
int diva_pri_init_card(diva_os_xdi_adapter_t *a);
#endif

View File

@@ -64,7 +64,7 @@ struct dual
/* SWReg Values (0 means no command) */
/*------------------------------------------------------------------*/
#define SWREG_DIE_WITH_LEDON 0x01
#define SWREG_HALT_CPU 0x02 /* Push CPU into a while(1) loop */
#define SWREG_HALT_CPU 0x02 /* Push CPU into a while (1) loop */
/*------------------------------------------------------------------*/
/* Id Fields Coding */
/*------------------------------------------------------------------*/
@@ -273,7 +273,7 @@ struct dual
#define MORE 0xa0 /* more data */
#define SDNCMPL 0xa1 /* sending complete */
#define CL 0xb0 /* congestion level */
/* codeset 0 */
/* codeset 0 */
#define SMSG 0x00 /* segmented message */
#define BC 0x04 /* Bearer Capability */
#define CAU 0x08 /* cause */
@@ -307,7 +307,7 @@ struct dual
#define NLC 0x21 /* network layer configuration */
#define REDIRECT_IE 0x22 /* redirection request/indication data */
#define REDIRECT_NET_IE 0x23 /* redirection network override data */
/* codeset 6 */
/* codeset 6 */
#define SIN 0x01 /* service indicator */
#define CIF 0x02 /* charging information */
#define DATE 0x03 /* date */
@@ -439,9 +439,9 @@ struct dual
#define PIAFS_UDATA_ABILITY_DCDON 0x01
#define PIAFS_UDATA_ABILITY_DDI 0x80
/*
DLC of PIAFS :
Byte | 8 7 6 5 4 3 2 1
-----+--------------------------------------------------------
DLC of PIAFS :
Byte | 8 7 6 5 4 3 2 1
-----+--------------------------------------------------------
0 | 0 0 1 0 0 0 0 0 Data Link Configuration
1 | X X X X X X X X Length of IE (at least 15 Bytes)
2 | 0 0 0 0 0 0 0 0 max. information field, LOW byte (not used, fix 73 Bytes)
@@ -476,57 +476,57 @@ Byte | 8 7 6 5 4 3 2 1
| D - signal DCD ON
| U - use extensive UDATA control communication
| for DDI test application
+ Note (1): ----------+------+-----------------------------------------+
| PIAFS Protocol | Bit | |
| Speed configuration | S | Bit 1 - Protocol Speed |
| | | 0 - 32K |
| | | 1 - 64K (default) |
| | V | Bit 2 - Variable Protocol Speed |
| | | 0 - Speed is fix |
| | | 1 - Speed is variable (default) |
| | | OVERWRITES 32k Bit 1 |
| | C | Bit 3 0 - Speed Settings according to |
| | | PIAFS specification |
| | | 1 - Speed setting for chinese |
| | | PIAFS implementation |
| | | Explanation for chinese speed settings: |
| | | if Bit 3 is set the following |
| | | rules apply: |
| | | Bit1=0 Bit2=0: 32k fix |
| | | Bit1=1 Bit2=0: 64k fix |
| | | Bit1=0 Bit2=1: PIAFS is trying |
| | | to negotiate 32k is that is |
| | | not possible it tries to |
| | | negotiate 64k |
| | | Bit1=1 Bit2=1: PIAFS is trying |
| | | to negotiate 64k is that is |
| | | not possible it tries to |
| | | negotiate 32k |
+ Note (2): ----------+------+-----------------------------------------+
| PIAFS | Bit | this byte defines the usage of UDATA |
| Implementation | | control communication |
| UDATA usage | D | Bit 1 - DCD-ON signalling |
| | | 0 - no DCD-ON is signalled |
| | | (default) |
| | | 1 - DCD-ON will be signalled |
| | U | Bit 8 - DDI test application UDATA |
| | | control communication |
| | | 0 - no UDATA control |
| | | communication (default) |
| | | sets as well the DCD-ON |
| | | signalling |
| | | 1 - UDATA control communication |
| | | ATTENTION: Do not use these |
| | | setting if you |
| | | are not really |
| | | that you need it |
| | | and you know |
| | | exactly what you |
| | | are doing. |
| | | You can easily |
| | | disable any |
| | | data transfer. |
+---------------------+------+-----------------------------------------+
+ Note (1): ----------+------+-----------------------------------------+
| PIAFS Protocol | Bit | |
| Speed configuration | S | Bit 1 - Protocol Speed |
| | | 0 - 32K |
| | | 1 - 64K (default) |
| | V | Bit 2 - Variable Protocol Speed |
| | | 0 - Speed is fix |
| | | 1 - Speed is variable (default) |
| | | OVERWRITES 32k Bit 1 |
| | C | Bit 3 0 - Speed Settings according to |
| | | PIAFS specification |
| | | 1 - Speed setting for chinese |
| | | PIAFS implementation |
| | | Explanation for chinese speed settings: |
| | | if Bit 3 is set the following |
| | | rules apply: |
| | | Bit1=0 Bit2=0: 32k fix |
| | | Bit1=1 Bit2=0: 64k fix |
| | | Bit1=0 Bit2=1: PIAFS is trying |
| | | to negotiate 32k is that is |
| | | not possible it tries to |
| | | negotiate 64k |
| | | Bit1=1 Bit2=1: PIAFS is trying |
| | | to negotiate 64k is that is |
| | | not possible it tries to |
| | | negotiate 32k |
+ Note (2): ----------+------+-----------------------------------------+
| PIAFS | Bit | this byte defines the usage of UDATA |
| Implementation | | control communication |
| UDATA usage | D | Bit 1 - DCD-ON signalling |
| | | 0 - no DCD-ON is signalled |
| | | (default) |
| | | 1 - DCD-ON will be signalled |
| | U | Bit 8 - DDI test application UDATA |
| | | control communication |
| | | 0 - no UDATA control |
| | | communication (default) |
| | | sets as well the DCD-ON |
| | | signalling |
| | | 1 - UDATA control communication |
| | | ATTENTION: Do not use these |
| | | setting if you |
| | | are not really |
| | | that you need it |
| | | and you know |
| | | exactly what you |
| | | are doing. |
| | | You can easily |
| | | disable any |
| | | data transfer. |
+---------------------+------+-----------------------------------------+
*/
/* ------------------------------------------------------
LISTENER DLC DEFINITIONS
@@ -712,11 +712,11 @@ Byte | 8 7 6 5 4 3 2 1
/*#define RESERVED85 0x85*/
#define ADVICE_OF_CHARGE 0x86
/*1111 0001
to
1111 1111
F1H - Reserved for network operator use
to
FFH*/
to
1111 1111
F1H - Reserved for network operator use
to
FFH*/
/* Parameter Types */
#define DATE_AND_TIME 1
#define CLI_PARAMETER_TYPE 2

View File

@@ -108,9 +108,9 @@ typedef union
struct L2Struc L2Stats;
struct OSStruc OSStats;
byte b[BUFFER_SZ];
word w[BUFFER_SZ>>1];
word l[BUFFER_SZ>>2]; /* word is wrong, do not use! Use 'd' instead. */
dword d[BUFFER_SZ>>2];
word w[BUFFER_SZ >> 1];
word l[BUFFER_SZ >> 2]; /* word is wrong, do not use! Use 'd' instead. */
dword d[BUFFER_SZ >> 2];
} BUFFER;
typedef union
{
@@ -119,9 +119,9 @@ typedef union
struct L2Struc L2Stats;
struct OSStruc OSStats;
byte b[MIPS_BUFFER_SZ];
word w[MIPS_BUFFER_SZ>>1];
word l[BUFFER_SZ>>2]; /* word is wrong, do not use! Use 'd' instead. */
dword d[MIPS_BUFFER_SZ>>2];
word w[MIPS_BUFFER_SZ >> 1];
word l[BUFFER_SZ >> 2]; /* word is wrong, do not use! Use 'd' instead. */
dword d[MIPS_BUFFER_SZ >> 2];
} MIPS_BUFFER;
#if !defined(MIPS_SCOM)
struct pc_maint

View File

@@ -34,11 +34,10 @@
With microsoft compile it is done by "pshpack1.h" and
after is restored by "poppack.h"
*/
*/
#include "pc_maint.h"
#endif

View File

@@ -112,40 +112,40 @@
#define DIVA_OS_MEM_ATTACH_CONFIG(a) ((a)->Config)
#define DIVA_OS_MEM_ATTACH_CONTROL(a) ((a)->Control)
#define DIVA_OS_MEM_DETACH_RAM(a, x) do { } while(0)
#define DIVA_OS_MEM_DETACH_PORT(a, x) do { } while(0)
#define DIVA_OS_MEM_DETACH_PROM(a, x) do { } while(0)
#define DIVA_OS_MEM_DETACH_CTLREG(a, x) do { } while(0)
#define DIVA_OS_MEM_DETACH_RESET(a, x) do { } while(0)
#define DIVA_OS_MEM_DETACH_CFG(a, x) do { } while(0)
#define DIVA_OS_MEM_DETACH_ADDRESS(a, x) do { } while(0)
#define DIVA_OS_MEM_DETACH_CONFIG(a, x) do { } while(0)
#define DIVA_OS_MEM_DETACH_CONTROL(a, x) do { } while(0)
#define DIVA_OS_MEM_DETACH_RAM(a, x) do { } while (0)
#define DIVA_OS_MEM_DETACH_PORT(a, x) do { } while (0)
#define DIVA_OS_MEM_DETACH_PROM(a, x) do { } while (0)
#define DIVA_OS_MEM_DETACH_CTLREG(a, x) do { } while (0)
#define DIVA_OS_MEM_DETACH_RESET(a, x) do { } while (0)
#define DIVA_OS_MEM_DETACH_CFG(a, x) do { } while (0)
#define DIVA_OS_MEM_DETACH_ADDRESS(a, x) do { } while (0)
#define DIVA_OS_MEM_DETACH_CONFIG(a, x) do { } while (0)
#define DIVA_OS_MEM_DETACH_CONTROL(a, x) do { } while (0)
#define DIVA_INVALID_FILE_HANDLE ((dword)(-1))
#define DIVAS_CONTAINING_RECORD(address, type, field) \
((type *)((char*)(address) - (char*)(&((type *)0)->field)))
((type *)((char *)(address) - (char *)(&((type *)0)->field)))
extern int sprintf(char *, const char*, ...);
extern int sprintf(char *, const char *, ...);
typedef void* LIST_ENTRY;
typedef void *LIST_ENTRY;
typedef char DEVICE_NAME[64];
typedef struct _ISDN_ADAPTER ISDN_ADAPTER;
typedef struct _ISDN_ADAPTER* PISDN_ADAPTER;
typedef struct _ISDN_ADAPTER *PISDN_ADAPTER;
typedef void (* DIVA_DI_PRINTF) (unsigned char *, ...);
typedef void (*DIVA_DI_PRINTF)(unsigned char *, ...);
#include "debuglib.h"
#define dtrc(p) DBG_PRV0(p)
#define dbug(a,p) DBG_PRV1(p)
#define dbug(a, p) DBG_PRV1(p)
typedef struct e_info_s E_INFO ;
typedef struct e_info_s E_INFO;
typedef char diva_os_dependent_devica_name_t[64];
typedef void* PDEVICE_OBJECT;
typedef void *PDEVICE_OBJECT;
struct _diva_os_soft_isr;
struct _diva_os_timer;
@@ -156,13 +156,13 @@ void diva_log_info(unsigned char *, ...);
/*
** XDI DIDD Interface
*/
void diva_xdi_didd_register_adapter (int card);
void diva_xdi_didd_remove_adapter (int card);
void diva_xdi_didd_register_adapter(int card);
void diva_xdi_didd_remove_adapter(int card);
/*
** memory allocation
*/
static __inline__ void* diva_os_malloc (unsigned long flags, unsigned long size)
static __inline__ void *diva_os_malloc(unsigned long flags, unsigned long size)
{
void *ret = NULL;
@@ -171,7 +171,7 @@ static __inline__ void* diva_os_malloc (unsigned long flags, unsigned long size)
}
return (ret);
}
static __inline__ void diva_os_free (unsigned long flags, void* ptr)
static __inline__ void diva_os_free(unsigned long flags, void *ptr)
{
vfree(ptr);
}
@@ -200,23 +200,23 @@ static __inline__ void diva_os_wait(dword mSec)
/*
** PCI Configuration space access
*/
void PCIwrite (byte bus, byte func, int offset, void* data, int length, void* pci_dev_handle);
void PCIread (byte bus, byte func, int offset, void* data, int length, void* pci_dev_handle);
void PCIwrite(byte bus, byte func, int offset, void *data, int length, void *pci_dev_handle);
void PCIread(byte bus, byte func, int offset, void *data, int length, void *pci_dev_handle);
/*
** I/O Port utilities
*/
int diva_os_register_io_port (void *adapter, int register, unsigned long port,
unsigned long length, const char* name, int id);
int diva_os_register_io_port(void *adapter, int register, unsigned long port,
unsigned long length, const char *name, int id);
/*
** I/O port access abstraction
*/
byte inpp (void __iomem *);
word inppw (void __iomem *);
void inppw_buffer (void __iomem *, void*, int);
void outppw (void __iomem *, word);
void outppw_buffer (void __iomem * , void*, int);
void outpp (void __iomem *, word);
byte inpp(void __iomem *);
word inppw(void __iomem *);
void inppw_buffer(void __iomem *, void *, int);
void outppw(void __iomem *, word);
void outppw_buffer(void __iomem * , void*, int);
void outpp(void __iomem *, word);
/*
** IRQ
@@ -226,8 +226,8 @@ typedef struct _diva_os_adapter_irq_info {
int registered;
char irq_name[24];
} diva_os_adapter_irq_info_t;
int diva_os_register_irq (void* context, byte irq, const char* name);
void diva_os_remove_irq (void* context, byte irq);
int diva_os_register_irq(void *context, byte irq, const char *name);
void diva_os_remove_irq(void *context, byte irq);
#define diva_os_in_irq() in_irq()
@@ -236,52 +236,52 @@ void diva_os_remove_irq (void* context, byte irq);
*/
typedef long diva_os_spin_lock_magic_t;
typedef spinlock_t diva_os_spin_lock_t;
static __inline__ int diva_os_initialize_spin_lock (spinlock_t *lock, void * unused) { \
spin_lock_init (lock); return(0); }
static __inline__ void diva_os_enter_spin_lock (diva_os_spin_lock_t* a, \
diva_os_spin_lock_magic_t* old_irql, \
void* dbg) { spin_lock_bh(a); }
static __inline__ void diva_os_leave_spin_lock (diva_os_spin_lock_t* a, \
diva_os_spin_lock_magic_t* old_irql, \
void* dbg) { spin_unlock_bh(a); }
static __inline__ int diva_os_initialize_spin_lock(spinlock_t *lock, void *unused) { \
spin_lock_init(lock); return (0); }
static __inline__ void diva_os_enter_spin_lock(diva_os_spin_lock_t *a, \
diva_os_spin_lock_magic_t *old_irql, \
void *dbg) { spin_lock_bh(a); }
static __inline__ void diva_os_leave_spin_lock(diva_os_spin_lock_t *a, \
diva_os_spin_lock_magic_t *old_irql, \
void *dbg) { spin_unlock_bh(a); }
#define diva_os_destroy_spin_lock(a,b) do { } while(0)
#define diva_os_destroy_spin_lock(a, b) do { } while (0)
/*
** Deffered processing framework
*/
typedef int (*diva_os_isr_callback_t)(struct _ISDN_ADAPTER*);
typedef void (*diva_os_soft_isr_callback_t)(struct _diva_os_soft_isr* psoft_isr, void* context);
typedef int (*diva_os_isr_callback_t)(struct _ISDN_ADAPTER *);
typedef void (*diva_os_soft_isr_callback_t)(struct _diva_os_soft_isr *psoft_isr, void *context);
typedef struct _diva_os_soft_isr {
void* object;
void *object;
diva_os_soft_isr_callback_t callback;
void* callback_context;
void *callback_context;
char dpc_thread_name[24];
} diva_os_soft_isr_t;
int diva_os_initialize_soft_isr (diva_os_soft_isr_t* psoft_isr, diva_os_soft_isr_callback_t callback, void* callback_context);
int diva_os_schedule_soft_isr (diva_os_soft_isr_t* psoft_isr);
int diva_os_cancel_soft_isr (diva_os_soft_isr_t* psoft_isr);
void diva_os_remove_soft_isr (diva_os_soft_isr_t* psoft_isr);
int diva_os_initialize_soft_isr(diva_os_soft_isr_t *psoft_isr, diva_os_soft_isr_callback_t callback, void *callback_context);
int diva_os_schedule_soft_isr(diva_os_soft_isr_t *psoft_isr);
int diva_os_cancel_soft_isr(diva_os_soft_isr_t *psoft_isr);
void diva_os_remove_soft_isr(diva_os_soft_isr_t *psoft_isr);
/*
Get time service
*/
void diva_os_get_time (dword* sec, dword* usec);
*/
void diva_os_get_time(dword *sec, dword *usec);
/*
** atomic operation, fake because we use threads
*/
typedef int diva_os_atomic_t;
static diva_os_atomic_t __inline__
diva_os_atomic_increment(diva_os_atomic_t* pv)
diva_os_atomic_increment(diva_os_atomic_t *pv)
{
*pv += 1;
return (*pv);
}
static diva_os_atomic_t __inline__
diva_os_atomic_decrement(diva_os_atomic_t* pv)
diva_os_atomic_decrement(diva_os_atomic_t *pv)
{
*pv -= 1;
return (*pv);
@@ -319,9 +319,9 @@ diva_os_atomic_decrement(diva_os_atomic_t* pv)
#define READ_WORD(addr) readw(addr)
#define READ_DWORD(addr) readl(addr)
#define WRITE_BYTE(addr,v) writeb(v,addr)
#define WRITE_WORD(addr,v) writew(v,addr)
#define WRITE_DWORD(addr,v) writel(v,addr)
#define WRITE_BYTE(addr, v) writeb(v, addr)
#define WRITE_WORD(addr, v) writew(v, addr)
#define WRITE_DWORD(addr, v) writel(v, addr)
static inline __u16 GET_WORD(void *addr)
{
@@ -344,10 +344,10 @@ static inline void PUT_DWORD(void *addr, __u32 v)
** 32/64 bit macors
*/
#ifdef BITS_PER_LONG
#if BITS_PER_LONG > 32
#define PLATFORM_GT_32BIT
#define ULongToPtr(x) (void *)(unsigned long)(x)
#endif
#if BITS_PER_LONG > 32
#define PLATFORM_GT_32BIT
#define ULongToPtr(x) (void *)(unsigned long)(x)
#endif
#endif
/*
@@ -362,7 +362,7 @@ static inline void PUT_DWORD(void *addr, __u32 v)
*/
#define diva_os_dump_file_t char
#define diva_os_board_trace_t char
#define diva_os_dump_file(__x__) do { } while(0)
#define diva_os_dump_file(__x__) do { } while (0)
/*
** size of internal arrays

View File

@@ -44,11 +44,11 @@
/* --------------------------------------------------------------------------
Recovery XLOG from QBRI Card
-------------------------------------------------------------------------- */
static void qBri_cpu_trapped (PISDN_ADAPTER IoAdapter) {
byte __iomem *base ;
word *Xlog ;
dword regs[4], TrapID, offset, size ;
Xdesc xlogDesc ;
static void qBri_cpu_trapped(PISDN_ADAPTER IoAdapter) {
byte __iomem *base;
word *Xlog;
dword regs[4], TrapID, offset, size;
Xdesc xlogDesc;
int factor = (IoAdapter->tasks == 1) ? 1 : 2;
/*
@@ -56,40 +56,40 @@ static void qBri_cpu_trapped (PISDN_ADAPTER IoAdapter) {
*/
base = DIVA_OS_MEM_ATTACH_CONTROL(IoAdapter);
offset = IoAdapter->ControllerNumber * (IoAdapter->MemorySize >> factor) ;
offset = IoAdapter->ControllerNumber * (IoAdapter->MemorySize >> factor);
TrapID = READ_DWORD(&base[0x80]) ;
TrapID = READ_DWORD(&base[0x80]);
if ( (TrapID == 0x99999999) || (TrapID == 0x99999901) )
if ((TrapID == 0x99999999) || (TrapID == 0x99999901))
{
dump_trap_frame (IoAdapter, &base[0x90]) ;
IoAdapter->trapped = 1 ;
dump_trap_frame(IoAdapter, &base[0x90]);
IoAdapter->trapped = 1;
}
regs[0] = READ_DWORD((base + offset) + 0x70);
regs[1] = READ_DWORD((base + offset) + 0x74);
regs[2] = READ_DWORD((base + offset) + 0x78);
regs[3] = READ_DWORD((base + offset) + 0x7c);
regs[0] &= IoAdapter->MemorySize - 1 ;
regs[0] &= IoAdapter->MemorySize - 1;
if ( (regs[0] >= offset)
&& (regs[0] < offset + (IoAdapter->MemorySize >> factor) - 1) )
if ((regs[0] >= offset)
&& (regs[0] < offset + (IoAdapter->MemorySize >> factor) - 1))
{
if ( !(Xlog = (word *)diva_os_malloc (0, MAX_XLOG_SIZE)) ) {
if (!(Xlog = (word *)diva_os_malloc(0, MAX_XLOG_SIZE))) {
DIVA_OS_MEM_DETACH_CONTROL(IoAdapter, base);
return ;
return;
}
size = offset + (IoAdapter->MemorySize >> factor) - regs[0] ;
if ( size > MAX_XLOG_SIZE )
size = MAX_XLOG_SIZE ;
memcpy_fromio (Xlog, &base[regs[0]], size) ;
xlogDesc.buf = Xlog ;
xlogDesc.cnt = READ_WORD(&base[regs[1] & (IoAdapter->MemorySize - 1)]) ;
xlogDesc.out = READ_WORD(&base[regs[2] & (IoAdapter->MemorySize - 1)]) ;
dump_xlog_buffer (IoAdapter, &xlogDesc) ;
diva_os_free (0, Xlog) ;
IoAdapter->trapped = 2 ;
size = offset + (IoAdapter->MemorySize >> factor) - regs[0];
if (size > MAX_XLOG_SIZE)
size = MAX_XLOG_SIZE;
memcpy_fromio(Xlog, &base[regs[0]], size);
xlogDesc.buf = Xlog;
xlogDesc.cnt = READ_WORD(&base[regs[1] & (IoAdapter->MemorySize - 1)]);
xlogDesc.out = READ_WORD(&base[regs[2] & (IoAdapter->MemorySize - 1)]);
dump_xlog_buffer(IoAdapter, &xlogDesc);
diva_os_free(0, Xlog);
IoAdapter->trapped = 2;
}
DIVA_OS_MEM_DETACH_CONTROL(IoAdapter, base);
}
@@ -97,72 +97,72 @@ static void qBri_cpu_trapped (PISDN_ADAPTER IoAdapter) {
/* --------------------------------------------------------------------------
Reset QBRI Hardware
-------------------------------------------------------------------------- */
static void reset_qBri_hardware (PISDN_ADAPTER IoAdapter) {
word volatile __iomem *qBriReset ;
byte volatile __iomem *qBriCntrl ;
byte volatile __iomem *p ;
static void reset_qBri_hardware(PISDN_ADAPTER IoAdapter) {
word volatile __iomem *qBriReset;
byte volatile __iomem *qBriCntrl;
byte volatile __iomem *p;
qBriReset = (word volatile __iomem *)DIVA_OS_MEM_ATTACH_PROM(IoAdapter);
WRITE_WORD(qBriReset, READ_WORD(qBriReset) | PLX9054_SOFT_RESET) ;
diva_os_wait (1) ;
WRITE_WORD(qBriReset, READ_WORD(qBriReset) & ~PLX9054_SOFT_RESET) ;
diva_os_wait (1);
WRITE_WORD(qBriReset, READ_WORD(qBriReset) | PLX9054_RELOAD_EEPROM) ;
diva_os_wait (1) ;
WRITE_WORD(qBriReset, READ_WORD(qBriReset) & ~PLX9054_RELOAD_EEPROM) ;
diva_os_wait (1);
WRITE_WORD(qBriReset, READ_WORD(qBriReset) | PLX9054_SOFT_RESET);
diva_os_wait(1);
WRITE_WORD(qBriReset, READ_WORD(qBriReset) & ~PLX9054_SOFT_RESET);
diva_os_wait(1);
WRITE_WORD(qBriReset, READ_WORD(qBriReset) | PLX9054_RELOAD_EEPROM);
diva_os_wait(1);
WRITE_WORD(qBriReset, READ_WORD(qBriReset) & ~PLX9054_RELOAD_EEPROM);
diva_os_wait(1);
DIVA_OS_MEM_DETACH_PROM(IoAdapter, qBriReset);
qBriCntrl = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
p = &qBriCntrl[DIVA_4BRI_REVISION(IoAdapter) ? (MQ2_BREG_RISC) : (MQ_BREG_RISC)];
WRITE_DWORD(p, 0) ;
WRITE_DWORD(p, 0);
DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, qBriCntrl);
DBG_TRC(("resetted board @ reset addr 0x%08lx", qBriReset))
DBG_TRC(("resetted board @ cntrl addr 0x%08lx", p))
}
}
/* --------------------------------------------------------------------------
Start Card CPU
-------------------------------------------------------------------------- */
void start_qBri_hardware (PISDN_ADAPTER IoAdapter) {
byte volatile __iomem *qBriReset ;
byte volatile __iomem *p ;
void start_qBri_hardware(PISDN_ADAPTER IoAdapter) {
byte volatile __iomem *qBriReset;
byte volatile __iomem *p;
p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
qBriReset = &p[(DIVA_4BRI_REVISION(IoAdapter)) ? (MQ2_BREG_RISC) : (MQ_BREG_RISC)];
WRITE_DWORD(qBriReset, MQ_RISC_COLD_RESET_MASK) ;
diva_os_wait (2) ;
WRITE_DWORD(qBriReset, MQ_RISC_WARM_RESET_MASK | MQ_RISC_COLD_RESET_MASK) ;
diva_os_wait (10) ;
WRITE_DWORD(qBriReset, MQ_RISC_COLD_RESET_MASK);
diva_os_wait(2);
WRITE_DWORD(qBriReset, MQ_RISC_WARM_RESET_MASK | MQ_RISC_COLD_RESET_MASK);
diva_os_wait(10);
DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
DBG_TRC(("started processor @ addr 0x%08lx", qBriReset))
}
}
/* --------------------------------------------------------------------------
Stop Card CPU
-------------------------------------------------------------------------- */
static void stop_qBri_hardware (PISDN_ADAPTER IoAdapter) {
byte volatile __iomem *p ;
dword volatile __iomem *qBriReset ;
dword volatile __iomem *qBriIrq ;
dword volatile __iomem *qBriIsacDspReset ;
static void stop_qBri_hardware(PISDN_ADAPTER IoAdapter) {
byte volatile __iomem *p;
dword volatile __iomem *qBriReset;
dword volatile __iomem *qBriIrq;
dword volatile __iomem *qBriIsacDspReset;
int rev2 = DIVA_4BRI_REVISION(IoAdapter);
int reset_offset = rev2 ? (MQ2_BREG_RISC) : (MQ_BREG_RISC);
int irq_offset = rev2 ? (MQ2_BREG_IRQ_TEST) : (MQ_BREG_IRQ_TEST);
int hw_offset = rev2 ? (MQ2_ISAC_DSP_RESET) : (MQ_ISAC_DSP_RESET);
if ( IoAdapter->ControllerNumber > 0 )
return ;
if (IoAdapter->ControllerNumber > 0)
return;
p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
qBriReset = (dword volatile __iomem *)&p[reset_offset];
qBriIsacDspReset = (dword volatile __iomem *)&p[hw_offset];
/*
* clear interrupt line (reset Local Interrupt Test Register)
*/
WRITE_DWORD(qBriReset, 0) ;
WRITE_DWORD(qBriIsacDspReset, 0) ;
WRITE_DWORD(qBriReset, 0);
WRITE_DWORD(qBriIsacDspReset, 0);
DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
@@ -171,96 +171,96 @@ static void stop_qBri_hardware (PISDN_ADAPTER IoAdapter) {
p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
qBriIrq = (dword volatile __iomem *)&p[irq_offset];
WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF) ;
WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF);
DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
DBG_TRC(("stopped processor @ addr 0x%08lx", qBriReset))
}
}
/* --------------------------------------------------------------------------
FPGA download
-------------------------------------------------------------------------- */
#define FPGA_NAME_OFFSET 0x10
static byte * qBri_check_FPGAsrc (PISDN_ADAPTER IoAdapter, char *FileName,
static byte *qBri_check_FPGAsrc(PISDN_ADAPTER IoAdapter, char *FileName,
dword *Length, dword *code) {
byte *File ;
char *fpgaFile, *fpgaType, *fpgaDate, *fpgaTime ;
dword fpgaFlen, fpgaTlen, fpgaDlen, cnt, year, i ;
byte *File;
char *fpgaFile, *fpgaType, *fpgaDate, *fpgaTime;
dword fpgaFlen, fpgaTlen, fpgaDlen, cnt, year, i;
if (!(File = (byte *)xdiLoadFile (FileName, Length, 0))) {
return (NULL) ;
if (!(File = (byte *)xdiLoadFile(FileName, Length, 0))) {
return (NULL);
}
/*
* scan file until FF and put id string into buffer
*/
for ( i = 0 ; File[i] != 0xff ; )
for (i = 0; File[i] != 0xff;)
{
if ( ++i >= *Length )
if (++i >= *Length)
{
DBG_FTL(("FPGA download: start of data header not found"))
xdiFreeFile (File) ;
return (NULL) ;
xdiFreeFile(File);
return (NULL);
}
}
*code = i++ ;
*code = i++;
if ( (File[i] & 0xF0) != 0x20 )
if ((File[i] & 0xF0) != 0x20)
{
DBG_FTL(("FPGA download: data header corrupted"))
xdiFreeFile (File) ;
return (NULL) ;
xdiFreeFile(File);
return (NULL);
}
fpgaFlen = (dword) File[FPGA_NAME_OFFSET - 1] ;
if ( fpgaFlen == 0 )
fpgaFlen = 12 ;
fpgaFile = (char *)&File[FPGA_NAME_OFFSET] ;
fpgaTlen = (dword) fpgaFile[fpgaFlen + 2] ;
if ( fpgaTlen == 0 )
fpgaTlen = 10 ;
fpgaType = (char *)&fpgaFile[fpgaFlen + 3] ;
fpgaDlen = (dword) fpgaType[fpgaTlen + 2] ;
if ( fpgaDlen == 0 )
fpgaDlen = 11 ;
fpgaDate = (char *)&fpgaType[fpgaTlen + 3] ;
fpgaTime = (char *)&fpgaDate[fpgaDlen + 3] ;
cnt = (dword)(((File[ i ] & 0x0F) << 20) + (File[i + 1] << 12)
+ (File[i + 2] << 4) + (File[i + 3] >> 4)) ;
fpgaFlen = (dword)File[FPGA_NAME_OFFSET - 1];
if (fpgaFlen == 0)
fpgaFlen = 12;
fpgaFile = (char *)&File[FPGA_NAME_OFFSET];
fpgaTlen = (dword)fpgaFile[fpgaFlen + 2];
if (fpgaTlen == 0)
fpgaTlen = 10;
fpgaType = (char *)&fpgaFile[fpgaFlen + 3];
fpgaDlen = (dword) fpgaType[fpgaTlen + 2];
if (fpgaDlen == 0)
fpgaDlen = 11;
fpgaDate = (char *)&fpgaType[fpgaTlen + 3];
fpgaTime = (char *)&fpgaDate[fpgaDlen + 3];
cnt = (dword)(((File[i] & 0x0F) << 20) + (File[i + 1] << 12)
+ (File[i + 2] << 4) + (File[i + 3] >> 4));
if ( (dword)(i + (cnt / 8)) > *Length )
if ((dword)(i + (cnt / 8)) > *Length)
{
DBG_FTL(("FPGA download: '%s' file too small (%ld < %ld)",
FileName, *Length, code + ((cnt + 7) / 8) ))
xdiFreeFile (File) ;
return (NULL) ;
FileName, *Length, code + ((cnt + 7) / 8)))
xdiFreeFile(File);
return (NULL);
}
i = 0 ;
i = 0;
do
{
while ( (fpgaDate[i] != '\0')
&& ((fpgaDate[i] < '0') || (fpgaDate[i] > '9')) )
while ((fpgaDate[i] != '\0')
&& ((fpgaDate[i] < '0') || (fpgaDate[i] > '9')))
{
i++;
}
year = 0 ;
while ( (fpgaDate[i] >= '0') && (fpgaDate[i] <= '9') )
year = year * 10 + (fpgaDate[i++] - '0') ;
} while ( (year < 2000) && (fpgaDate[i] != '\0') );
year = 0;
while ((fpgaDate[i] >= '0') && (fpgaDate[i] <= '9'))
year = year * 10 + (fpgaDate[i++] - '0');
} while ((year < 2000) && (fpgaDate[i] != '\0'));
switch (IoAdapter->cardType) {
case CARDTYPE_DIVASRV_B_2F_PCI:
break;
default:
if ( year >= 2001 ) {
IoAdapter->fpga_features |= PCINIT_FPGA_PLX_ACCESS_SUPPORTED ;
if (year >= 2001) {
IoAdapter->fpga_features |= PCINIT_FPGA_PLX_ACCESS_SUPPORTED;
}
}
DBG_LOG(("FPGA[%s] file %s (%s %s) len %d",
fpgaType, fpgaFile, fpgaDate, fpgaTime, cnt))
return (File) ;
return (File);
}
/******************************************************************************/
@@ -272,18 +272,18 @@ static byte * qBri_check_FPGAsrc (PISDN_ADAPTER IoAdapter, char *FileName,
#define FPGA_DOUT 0x0400
#define FPGA_DIN FPGA_DOUT /* bidirectional I/O */
int qBri_FPGA_download (PISDN_ADAPTER IoAdapter) {
int bit ;
byte *File ;
dword code, FileLength ;
int qBri_FPGA_download(PISDN_ADAPTER IoAdapter) {
int bit;
byte *File;
dword code, FileLength;
word volatile __iomem *addr = (word volatile __iomem *)DIVA_OS_MEM_ATTACH_PROM(IoAdapter);
word val, baseval = FPGA_CS | FPGA_PROG ;
word val, baseval = FPGA_CS | FPGA_PROG;
if (DIVA_4BRI_REVISION(IoAdapter))
{
char* name;
char *name;
switch (IoAdapter->cardType) {
case CARDTYPE_DIVASRV_B_2F_PCI:
@@ -299,87 +299,87 @@ int qBri_FPGA_download (PISDN_ADAPTER IoAdapter) {
name = "ds4bri2.bit";
}
File = qBri_check_FPGAsrc (IoAdapter, name,
File = qBri_check_FPGAsrc(IoAdapter, name,
&FileLength, &code);
}
else
{
File = qBri_check_FPGAsrc (IoAdapter, "ds4bri.bit",
&FileLength, &code) ;
File = qBri_check_FPGAsrc(IoAdapter, "ds4bri.bit",
&FileLength, &code);
}
if ( !File ) {
if (!File) {
DIVA_OS_MEM_DETACH_PROM(IoAdapter, addr);
return (0) ;
return (0);
}
/*
* prepare download, pulse PROGRAM pin down.
*/
WRITE_WORD(addr, baseval & ~FPGA_PROG) ; /* PROGRAM low pulse */
WRITE_WORD(addr, baseval) ; /* release */
diva_os_wait (50) ; /* wait until FPGA finished internal memory clear */
WRITE_WORD(addr, baseval & ~FPGA_PROG); /* PROGRAM low pulse */
WRITE_WORD(addr, baseval); /* release */
diva_os_wait(50); /* wait until FPGA finished internal memory clear */
/*
* check done pin, must be low
*/
if ( READ_WORD(addr) & FPGA_BUSY )
if (READ_WORD(addr) & FPGA_BUSY)
{
DBG_FTL(("FPGA download: acknowledge for FPGA memory clear missing"))
xdiFreeFile (File) ;
xdiFreeFile(File);
DIVA_OS_MEM_DETACH_PROM(IoAdapter, addr);
return (0) ;
return (0);
}
/*
* put data onto the FPGA
*/
while ( code < FileLength )
while (code < FileLength)
{
val = ((word)File[code++]) << 3 ;
val = ((word)File[code++]) << 3;
for ( bit = 8 ; bit-- > 0 ; val <<= 1 ) /* put byte onto FPGA */
for (bit = 8; bit-- > 0; val <<= 1) /* put byte onto FPGA */
{
baseval &= ~FPGA_DOUT ; /* clr data bit */
baseval |= (val & FPGA_DOUT) ; /* copy data bit */
WRITE_WORD(addr, baseval) ;
WRITE_WORD(addr, baseval | FPGA_CCLK) ; /* set CCLK hi */
WRITE_WORD(addr, baseval | FPGA_CCLK) ; /* set CCLK hi */
WRITE_WORD(addr, baseval) ; /* set CCLK lo */
baseval &= ~FPGA_DOUT; /* clr data bit */
baseval |= (val & FPGA_DOUT); /* copy data bit */
WRITE_WORD(addr, baseval);
WRITE_WORD(addr, baseval | FPGA_CCLK); /* set CCLK hi */
WRITE_WORD(addr, baseval | FPGA_CCLK); /* set CCLK hi */
WRITE_WORD(addr, baseval); /* set CCLK lo */
}
}
xdiFreeFile (File) ;
diva_os_wait (100) ;
val = READ_WORD(addr) ;
xdiFreeFile(File);
diva_os_wait(100);
val = READ_WORD(addr);
DIVA_OS_MEM_DETACH_PROM(IoAdapter, addr);
if ( !(val & FPGA_BUSY) )
if (!(val & FPGA_BUSY))
{
DBG_FTL(("FPGA download: chip remains in busy state (0x%04x)", val))
return (0) ;
return (0);
}
return (1) ;
return (1);
}
static int load_qBri_hardware (PISDN_ADAPTER IoAdapter) {
static int load_qBri_hardware(PISDN_ADAPTER IoAdapter) {
return (0);
}
/* --------------------------------------------------------------------------
Card ISR
-------------------------------------------------------------------------- */
static int qBri_ISR (struct _ISDN_ADAPTER* IoAdapter) {
dword volatile __iomem *qBriIrq ;
static int qBri_ISR(struct _ISDN_ADAPTER *IoAdapter) {
dword volatile __iomem *qBriIrq;
PADAPTER_LIST_ENTRY QuadroList = IoAdapter->QuadroList ;
PADAPTER_LIST_ENTRY QuadroList = IoAdapter->QuadroList;
word i ;
int serviced = 0 ;
word i;
int serviced = 0;
byte __iomem *p;
p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
if ( !(READ_BYTE(&p[PLX9054_INTCSR]) & 0x80) ) {
if (!(READ_BYTE(&p[PLX9054_INTCSR]) & 0x80)) {
DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
return (0) ;
return (0);
}
DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
@@ -388,34 +388,34 @@ static int qBri_ISR (struct _ISDN_ADAPTER* IoAdapter) {
*/
p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
qBriIrq = (dword volatile __iomem *)(&p[DIVA_4BRI_REVISION(IoAdapter) ? (MQ2_BREG_IRQ_TEST) : (MQ_BREG_IRQ_TEST)]);
WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF) ;
WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF);
DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
for ( i = 0 ; i < IoAdapter->tasks; ++i )
for (i = 0; i < IoAdapter->tasks; ++i)
{
IoAdapter = QuadroList->QuadroAdapter[i] ;
IoAdapter = QuadroList->QuadroAdapter[i];
if ( IoAdapter && IoAdapter->Initialized
&& IoAdapter->tst_irq (&IoAdapter->a) )
if (IoAdapter && IoAdapter->Initialized
&& IoAdapter->tst_irq(&IoAdapter->a))
{
IoAdapter->IrqCount++ ;
serviced = 1 ;
diva_os_schedule_soft_isr (&IoAdapter->isr_soft_isr);
IoAdapter->IrqCount++;
serviced = 1;
diva_os_schedule_soft_isr(&IoAdapter->isr_soft_isr);
}
}
return (serviced) ;
return (serviced);
}
/* --------------------------------------------------------------------------
Does disable the interrupt on the card
-------------------------------------------------------------------------- */
static void disable_qBri_interrupt (PISDN_ADAPTER IoAdapter) {
dword volatile __iomem *qBriIrq ;
static void disable_qBri_interrupt(PISDN_ADAPTER IoAdapter) {
dword volatile __iomem *qBriIrq;
byte __iomem *p;
if ( IoAdapter->ControllerNumber > 0 )
return ;
if (IoAdapter->ControllerNumber > 0)
return;
/*
* clear interrupt line (reset Local Interrupt Test Register)
*/
@@ -425,84 +425,84 @@ static void disable_qBri_interrupt (PISDN_ADAPTER IoAdapter) {
p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
qBriIrq = (dword volatile __iomem *)(&p[DIVA_4BRI_REVISION(IoAdapter) ? (MQ2_BREG_IRQ_TEST) : (MQ_BREG_IRQ_TEST)]);
WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF) ;
WRITE_DWORD(qBriIrq, MQ_IRQ_REQ_OFF);
DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
}
/* --------------------------------------------------------------------------
Install Adapter Entry Points
-------------------------------------------------------------------------- */
static void set_common_qBri_functions (PISDN_ADAPTER IoAdapter) {
static void set_common_qBri_functions(PISDN_ADAPTER IoAdapter) {
ADAPTER *a;
a = &IoAdapter->a ;
a = &IoAdapter->a;
a->ram_in = mem_in ;
a->ram_inw = mem_inw ;
a->ram_in_buffer = mem_in_buffer ;
a->ram_look_ahead = mem_look_ahead ;
a->ram_out = mem_out ;
a->ram_outw = mem_outw ;
a->ram_out_buffer = mem_out_buffer ;
a->ram_inc = mem_inc ;
a->ram_in = mem_in;
a->ram_inw = mem_inw;
a->ram_in_buffer = mem_in_buffer;
a->ram_look_ahead = mem_look_ahead;
a->ram_out = mem_out;
a->ram_outw = mem_outw;
a->ram_out_buffer = mem_out_buffer;
a->ram_inc = mem_inc;
IoAdapter->out = pr_out ;
IoAdapter->dpc = pr_dpc ;
IoAdapter->tst_irq = scom_test_int ;
IoAdapter->clr_irq = scom_clear_int ;
IoAdapter->pcm = (struct pc_maint *)MIPS_MAINT_OFFS ;
IoAdapter->out = pr_out;
IoAdapter->dpc = pr_dpc;
IoAdapter->tst_irq = scom_test_int;
IoAdapter->clr_irq = scom_clear_int;
IoAdapter->pcm = (struct pc_maint *)MIPS_MAINT_OFFS;
IoAdapter->load = load_qBri_hardware ;
IoAdapter->load = load_qBri_hardware;
IoAdapter->disIrq = disable_qBri_interrupt ;
IoAdapter->rstFnc = reset_qBri_hardware ;
IoAdapter->stop = stop_qBri_hardware ;
IoAdapter->trapFnc = qBri_cpu_trapped ;
IoAdapter->disIrq = disable_qBri_interrupt;
IoAdapter->rstFnc = reset_qBri_hardware;
IoAdapter->stop = stop_qBri_hardware;
IoAdapter->trapFnc = qBri_cpu_trapped;
IoAdapter->diva_isr_handler = qBri_ISR;
IoAdapter->a.io = (void*)IoAdapter ;
IoAdapter->a.io = (void *)IoAdapter;
}
static void set_qBri_functions (PISDN_ADAPTER IoAdapter) {
static void set_qBri_functions(PISDN_ADAPTER IoAdapter) {
if (!IoAdapter->tasks) {
IoAdapter->tasks = MQ_INSTANCE_COUNT;
}
IoAdapter->MemorySize = MQ_MEMORY_SIZE ;
set_common_qBri_functions (IoAdapter) ;
diva_os_set_qBri_functions (IoAdapter) ;
IoAdapter->MemorySize = MQ_MEMORY_SIZE;
set_common_qBri_functions(IoAdapter);
diva_os_set_qBri_functions(IoAdapter);
}
static void set_qBri2_functions (PISDN_ADAPTER IoAdapter) {
static void set_qBri2_functions(PISDN_ADAPTER IoAdapter) {
if (!IoAdapter->tasks) {
IoAdapter->tasks = MQ_INSTANCE_COUNT;
}
IoAdapter->MemorySize = (IoAdapter->tasks == 1) ? BRI2_MEMORY_SIZE : MQ2_MEMORY_SIZE;
set_common_qBri_functions (IoAdapter) ;
diva_os_set_qBri2_functions (IoAdapter) ;
set_common_qBri_functions(IoAdapter);
diva_os_set_qBri2_functions(IoAdapter);
}
/******************************************************************************/
void prepare_qBri_functions (PISDN_ADAPTER IoAdapter) {
void prepare_qBri_functions(PISDN_ADAPTER IoAdapter) {
set_qBri_functions (IoAdapter->QuadroList->QuadroAdapter[0]) ;
set_qBri_functions (IoAdapter->QuadroList->QuadroAdapter[1]) ;
set_qBri_functions (IoAdapter->QuadroList->QuadroAdapter[2]) ;
set_qBri_functions (IoAdapter->QuadroList->QuadroAdapter[3]) ;
set_qBri_functions(IoAdapter->QuadroList->QuadroAdapter[0]);
set_qBri_functions(IoAdapter->QuadroList->QuadroAdapter[1]);
set_qBri_functions(IoAdapter->QuadroList->QuadroAdapter[2]);
set_qBri_functions(IoAdapter->QuadroList->QuadroAdapter[3]);
}
void prepare_qBri2_functions (PISDN_ADAPTER IoAdapter) {
void prepare_qBri2_functions(PISDN_ADAPTER IoAdapter) {
if (!IoAdapter->tasks) {
IoAdapter->tasks = MQ_INSTANCE_COUNT;
}
set_qBri2_functions (IoAdapter->QuadroList->QuadroAdapter[0]) ;
set_qBri2_functions(IoAdapter->QuadroList->QuadroAdapter[0]);
if (IoAdapter->tasks > 1) {
set_qBri2_functions (IoAdapter->QuadroList->QuadroAdapter[1]) ;
set_qBri2_functions (IoAdapter->QuadroList->QuadroAdapter[2]) ;
set_qBri2_functions (IoAdapter->QuadroList->QuadroAdapter[3]) ;
set_qBri2_functions(IoAdapter->QuadroList->QuadroAdapter[1]);
set_qBri2_functions(IoAdapter->QuadroList->QuadroAdapter[2]);
set_qBri2_functions(IoAdapter->QuadroList->QuadroAdapter[3]);
}
}

View File

@@ -40,152 +40,152 @@
/* --------------------------------------------------------------------------
Investigate card state, recovery trace buffer
-------------------------------------------------------------------------- */
static void bri_cpu_trapped (PISDN_ADAPTER IoAdapter) {
byte __iomem *addrHi, *addrLo, *ioaddr ;
word *Xlog ;
dword regs[4], i, size ;
Xdesc xlogDesc ;
static void bri_cpu_trapped(PISDN_ADAPTER IoAdapter) {
byte __iomem *addrHi, *addrLo, *ioaddr;
word *Xlog;
dword regs[4], i, size;
Xdesc xlogDesc;
byte __iomem *Port;
/*
* first read pointers and trap frame
*/
if ( !(Xlog = (word *)diva_os_malloc (0, MAX_XLOG_SIZE)) )
return ;
if (!(Xlog = (word *)diva_os_malloc(0, MAX_XLOG_SIZE)))
return;
Port = DIVA_OS_MEM_ATTACH_PORT(IoAdapter);
addrHi = Port + ((IoAdapter->Properties.Bus == BUS_PCI) ? M_PCI_ADDRH : ADDRH) ;
addrLo = Port + ADDR ;
ioaddr = Port + DATA ;
outpp (addrHi, 0) ;
outppw (addrLo, 0) ;
for ( i = 0 ; i < 0x100 ; Xlog[i++] = inppw(ioaddr) ) ;
addrHi = Port + ((IoAdapter->Properties.Bus == BUS_PCI) ? M_PCI_ADDRH : ADDRH);
addrLo = Port + ADDR;
ioaddr = Port + DATA;
outpp(addrHi, 0);
outppw(addrLo, 0);
for (i = 0; i < 0x100; Xlog[i++] = inppw(ioaddr));
/*
* check for trapped MIPS 3xxx CPU, dump only exception frame
*/
if ( GET_DWORD(&Xlog[0x80 / sizeof(Xlog[0])]) == 0x99999999 )
if (GET_DWORD(&Xlog[0x80 / sizeof(Xlog[0])]) == 0x99999999)
{
dump_trap_frame (IoAdapter, &((byte *)Xlog)[0x90]) ;
IoAdapter->trapped = 1 ;
dump_trap_frame(IoAdapter, &((byte *)Xlog)[0x90]);
IoAdapter->trapped = 1;
}
regs[0] = GET_DWORD(&((byte *)Xlog)[0x70]);
regs[1] = GET_DWORD(&((byte *)Xlog)[0x74]);
regs[2] = GET_DWORD(&((byte *)Xlog)[0x78]);
regs[3] = GET_DWORD(&((byte *)Xlog)[0x7c]);
outpp (addrHi, (regs[1] >> 16) & 0x7F) ;
outppw (addrLo, regs[1] & 0xFFFF) ;
xlogDesc.cnt = inppw(ioaddr) ;
outpp (addrHi, (regs[2] >> 16) & 0x7F) ;
outppw (addrLo, regs[2] & 0xFFFF) ;
xlogDesc.out = inppw(ioaddr) ;
xlogDesc.buf = Xlog ;
regs[0] &= IoAdapter->MemorySize - 1 ;
if ( (regs[0] < IoAdapter->MemorySize - 1) )
outpp(addrHi, (regs[1] >> 16) & 0x7F);
outppw(addrLo, regs[1] & 0xFFFF);
xlogDesc.cnt = inppw(ioaddr);
outpp(addrHi, (regs[2] >> 16) & 0x7F);
outppw(addrLo, regs[2] & 0xFFFF);
xlogDesc.out = inppw(ioaddr);
xlogDesc.buf = Xlog;
regs[0] &= IoAdapter->MemorySize - 1;
if ((regs[0] < IoAdapter->MemorySize - 1))
{
size = IoAdapter->MemorySize - regs[0] ;
if ( size > MAX_XLOG_SIZE )
size = MAX_XLOG_SIZE ;
for ( i = 0 ; i < (size / sizeof(*Xlog)) ; regs[0] += 2 )
size = IoAdapter->MemorySize - regs[0];
if (size > MAX_XLOG_SIZE)
size = MAX_XLOG_SIZE;
for (i = 0; i < (size / sizeof(*Xlog)); regs[0] += 2)
{
outpp (addrHi, (regs[0] >> 16) & 0x7F) ;
outppw (addrLo, regs[0] & 0xFFFF) ;
Xlog[i++] = inppw(ioaddr) ;
outpp(addrHi, (regs[0] >> 16) & 0x7F);
outppw(addrLo, regs[0] & 0xFFFF);
Xlog[i++] = inppw(ioaddr);
}
dump_xlog_buffer (IoAdapter, &xlogDesc) ;
diva_os_free (0, Xlog) ;
IoAdapter->trapped = 2 ;
dump_xlog_buffer(IoAdapter, &xlogDesc);
diva_os_free(0, Xlog);
IoAdapter->trapped = 2;
}
outpp (addrHi, (byte)((BRI_UNCACHED_ADDR (IoAdapter->MemoryBase + IoAdapter->MemorySize -
BRI_SHARED_RAM_SIZE)) >> 16)) ;
outppw (addrLo, 0x00) ;
outpp(addrHi, (byte)((BRI_UNCACHED_ADDR(IoAdapter->MemoryBase + IoAdapter->MemorySize -
BRI_SHARED_RAM_SIZE)) >> 16));
outppw(addrLo, 0x00);
DIVA_OS_MEM_DETACH_PORT(IoAdapter, Port);
}
/* ---------------------------------------------------------------------
Reset hardware
--------------------------------------------------------------------- */
static void reset_bri_hardware (PISDN_ADAPTER IoAdapter) {
static void reset_bri_hardware(PISDN_ADAPTER IoAdapter) {
byte __iomem *p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
outpp (p, 0x00) ;
outpp(p, 0x00);
DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
}
/* ---------------------------------------------------------------------
Halt system
--------------------------------------------------------------------- */
static void stop_bri_hardware (PISDN_ADAPTER IoAdapter) {
static void stop_bri_hardware(PISDN_ADAPTER IoAdapter) {
byte __iomem *p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
if (p) {
outpp (p, 0x00) ; /* disable interrupts ! */
outpp(p, 0x00); /* disable interrupts ! */
}
DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
outpp (p, 0x00) ; /* clear int, halt cpu */
outpp(p, 0x00); /* clear int, halt cpu */
DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
}
static int load_bri_hardware (PISDN_ADAPTER IoAdapter) {
static int load_bri_hardware(PISDN_ADAPTER IoAdapter) {
return (0);
}
/******************************************************************************/
static int bri_ISR (struct _ISDN_ADAPTER* IoAdapter) {
static int bri_ISR(struct _ISDN_ADAPTER *IoAdapter) {
byte __iomem *p;
p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
if ( !(inpp (p) & 0x01) ) {
if (!(inpp(p) & 0x01)) {
DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
return (0) ;
return (0);
}
/*
clear interrupt line
*/
outpp (p, 0x08) ;
outpp(p, 0x08);
DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
IoAdapter->IrqCount++ ;
if ( IoAdapter->Initialized ) {
diva_os_schedule_soft_isr (&IoAdapter->isr_soft_isr);
IoAdapter->IrqCount++;
if (IoAdapter->Initialized) {
diva_os_schedule_soft_isr(&IoAdapter->isr_soft_isr);
}
return (1) ;
return (1);
}
/* --------------------------------------------------------------------------
Disable IRQ in the card hardware
-------------------------------------------------------------------------- */
static void disable_bri_interrupt (PISDN_ADAPTER IoAdapter) {
static void disable_bri_interrupt(PISDN_ADAPTER IoAdapter) {
byte __iomem *p;
p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
if ( p )
if (p)
{
outpp (p, 0x00) ; /* disable interrupts ! */
outpp(p, 0x00); /* disable interrupts ! */
}
DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
p = DIVA_OS_MEM_ATTACH_CTLREG(IoAdapter);
outpp (p, 0x00) ; /* clear int, halt cpu */
outpp(p, 0x00); /* clear int, halt cpu */
DIVA_OS_MEM_DETACH_CTLREG(IoAdapter, p);
}
/* -------------------------------------------------------------------------
Fill card entry points
------------------------------------------------------------------------- */
void prepare_maestra_functions (PISDN_ADAPTER IoAdapter) {
ADAPTER *a = &IoAdapter->a ;
a->ram_in = io_in ;
a->ram_inw = io_inw ;
a->ram_in_buffer = io_in_buffer ;
a->ram_look_ahead = io_look_ahead ;
a->ram_out = io_out ;
a->ram_outw = io_outw ;
a->ram_out_buffer = io_out_buffer ;
a->ram_inc = io_inc ;
IoAdapter->MemoryBase = BRI_MEMORY_BASE ;
IoAdapter->MemorySize = BRI_MEMORY_SIZE ;
IoAdapter->out = pr_out ;
IoAdapter->dpc = pr_dpc ;
IoAdapter->tst_irq = scom_test_int ;
IoAdapter->clr_irq = scom_clear_int ;
IoAdapter->pcm = (struct pc_maint *)MIPS_MAINT_OFFS ;
IoAdapter->load = load_bri_hardware ;
IoAdapter->disIrq = disable_bri_interrupt ;
IoAdapter->rstFnc = reset_bri_hardware ;
IoAdapter->stop = stop_bri_hardware ;
IoAdapter->trapFnc = bri_cpu_trapped ;
void prepare_maestra_functions(PISDN_ADAPTER IoAdapter) {
ADAPTER *a = &IoAdapter->a;
a->ram_in = io_in;
a->ram_inw = io_inw;
a->ram_in_buffer = io_in_buffer;
a->ram_look_ahead = io_look_ahead;
a->ram_out = io_out;
a->ram_outw = io_outw;
a->ram_out_buffer = io_out_buffer;
a->ram_inc = io_inc;
IoAdapter->MemoryBase = BRI_MEMORY_BASE;
IoAdapter->MemorySize = BRI_MEMORY_SIZE;
IoAdapter->out = pr_out;
IoAdapter->dpc = pr_dpc;
IoAdapter->tst_irq = scom_test_int;
IoAdapter->clr_irq = scom_clear_int;
IoAdapter->pcm = (struct pc_maint *)MIPS_MAINT_OFFS;
IoAdapter->load = load_bri_hardware;
IoAdapter->disIrq = disable_bri_interrupt;
IoAdapter->rstFnc = reset_bri_hardware;
IoAdapter->stop = stop_bri_hardware;
IoAdapter->trapFnc = bri_cpu_trapped;
IoAdapter->diva_isr_handler = bri_ISR;
/*
Prepare OS dependent functions
*/
diva_os_prepare_maestra_functions (IoAdapter);
diva_os_prepare_maestra_functions(IoAdapter);
}
/* -------------------------------------------------------------------------- */

View File

@@ -40,166 +40,166 @@
/* -------------------------------------------------------------------------
Does return offset between ADAPTER->ram and real begin of memory
------------------------------------------------------------------------- */
static dword pri_ram_offset (ADAPTER* a) {
static dword pri_ram_offset(ADAPTER *a) {
return ((dword)MP_SHARED_RAM_OFFSET);
}
/* -------------------------------------------------------------------------
Recovery XLOG buffer from the card
------------------------------------------------------------------------- */
static void pri_cpu_trapped (PISDN_ADAPTER IoAdapter) {
byte __iomem *base ;
word *Xlog ;
dword regs[4], TrapID, size ;
Xdesc xlogDesc ;
static void pri_cpu_trapped(PISDN_ADAPTER IoAdapter) {
byte __iomem *base;
word *Xlog;
dword regs[4], TrapID, size;
Xdesc xlogDesc;
/*
* check for trapped MIPS 46xx CPU, dump exception frame
*/
base = DIVA_OS_MEM_ATTACH_ADDRESS(IoAdapter);
TrapID = READ_DWORD(&base[0x80]) ;
if ( (TrapID == 0x99999999) || (TrapID == 0x99999901) )
TrapID = READ_DWORD(&base[0x80]);
if ((TrapID == 0x99999999) || (TrapID == 0x99999901))
{
dump_trap_frame (IoAdapter, &base[0x90]) ;
IoAdapter->trapped = 1 ;
dump_trap_frame(IoAdapter, &base[0x90]);
IoAdapter->trapped = 1;
}
regs[0] = READ_DWORD(&base[MP_PROTOCOL_OFFSET + 0x70]);
regs[1] = READ_DWORD(&base[MP_PROTOCOL_OFFSET + 0x74]);
regs[2] = READ_DWORD(&base[MP_PROTOCOL_OFFSET + 0x78]);
regs[3] = READ_DWORD(&base[MP_PROTOCOL_OFFSET + 0x7c]);
regs[0] &= IoAdapter->MemorySize - 1 ;
if ( (regs[0] < IoAdapter->MemorySize - 1) )
regs[0] &= IoAdapter->MemorySize - 1;
if ((regs[0] < IoAdapter->MemorySize - 1))
{
if ( !(Xlog = (word *)diva_os_malloc (0, MAX_XLOG_SIZE)) ) {
if (!(Xlog = (word *)diva_os_malloc(0, MAX_XLOG_SIZE))) {
DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, base);
return ;
return;
}
size = IoAdapter->MemorySize - regs[0] ;
if ( size > MAX_XLOG_SIZE )
size = MAX_XLOG_SIZE ;
memcpy_fromio(Xlog, &base[regs[0]], size) ;
xlogDesc.buf = Xlog ;
xlogDesc.cnt = READ_WORD(&base[regs[1] & (IoAdapter->MemorySize - 1)]) ;
xlogDesc.out = READ_WORD(&base[regs[2] & (IoAdapter->MemorySize - 1)]) ;
dump_xlog_buffer (IoAdapter, &xlogDesc) ;
diva_os_free (0, Xlog) ;
IoAdapter->trapped = 2 ;
size = IoAdapter->MemorySize - regs[0];
if (size > MAX_XLOG_SIZE)
size = MAX_XLOG_SIZE;
memcpy_fromio(Xlog, &base[regs[0]], size);
xlogDesc.buf = Xlog;
xlogDesc.cnt = READ_WORD(&base[regs[1] & (IoAdapter->MemorySize - 1)]);
xlogDesc.out = READ_WORD(&base[regs[2] & (IoAdapter->MemorySize - 1)]);
dump_xlog_buffer(IoAdapter, &xlogDesc);
diva_os_free(0, Xlog);
IoAdapter->trapped = 2;
}
DIVA_OS_MEM_DETACH_ADDRESS(IoAdapter, base);
}
/* -------------------------------------------------------------------------
Hardware reset of PRI card
------------------------------------------------------------------------- */
static void reset_pri_hardware (PISDN_ADAPTER IoAdapter) {
static void reset_pri_hardware(PISDN_ADAPTER IoAdapter) {
byte __iomem *p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
WRITE_BYTE(p, _MP_RISC_RESET | _MP_LED1 | _MP_LED2);
diva_os_wait (50) ;
diva_os_wait(50);
WRITE_BYTE(p, 0x00);
diva_os_wait (50) ;
diva_os_wait(50);
DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
}
/* -------------------------------------------------------------------------
Stop Card Hardware
------------------------------------------------------------------------- */
static void stop_pri_hardware (PISDN_ADAPTER IoAdapter) {
static void stop_pri_hardware(PISDN_ADAPTER IoAdapter) {
dword i;
byte __iomem *p;
dword volatile __iomem *cfgReg = (void __iomem *)DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
WRITE_DWORD(&cfgReg[3], 0);
WRITE_DWORD(&cfgReg[1], 0);
DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfgReg);
IoAdapter->a.ram_out (&IoAdapter->a, &RAM->SWReg, SWREG_HALT_CPU) ;
i = 0 ;
while ( (i < 100) && (IoAdapter->a.ram_in (&IoAdapter->a, &RAM->SWReg) != 0) )
IoAdapter->a.ram_out(&IoAdapter->a, &RAM->SWReg, SWREG_HALT_CPU);
i = 0;
while ((i < 100) && (IoAdapter->a.ram_in(&IoAdapter->a, &RAM->SWReg) != 0))
{
diva_os_wait (1) ;
i++ ;
diva_os_wait(1);
i++;
}
DBG_TRC(("%s: PRI stopped (%d)", IoAdapter->Name, i))
cfgReg = (void __iomem *)DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
WRITE_DWORD(&cfgReg[0],((dword)(~0x03E00000)));
WRITE_DWORD(&cfgReg[0], ((dword)(~0x03E00000)));
DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfgReg);
diva_os_wait (1) ;
diva_os_wait(1);
p = DIVA_OS_MEM_ATTACH_RESET(IoAdapter);
WRITE_BYTE(p, _MP_RISC_RESET | _MP_LED1 | _MP_LED2);
DIVA_OS_MEM_DETACH_RESET(IoAdapter, p);
}
static int load_pri_hardware (PISDN_ADAPTER IoAdapter) {
static int load_pri_hardware(PISDN_ADAPTER IoAdapter) {
return (0);
}
/* --------------------------------------------------------------------------
PRI Adapter interrupt Service Routine
-------------------------------------------------------------------------- */
static int pri_ISR (struct _ISDN_ADAPTER* IoAdapter) {
static int pri_ISR(struct _ISDN_ADAPTER *IoAdapter) {
byte __iomem *cfg = DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
if ( !(READ_DWORD(cfg) & 0x80000000) ) {
if (!(READ_DWORD(cfg) & 0x80000000)) {
DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfg);
return (0) ;
return (0);
}
/*
clear interrupt line
*/
WRITE_DWORD(cfg, (dword)~0x03E00000) ;
WRITE_DWORD(cfg, (dword)~0x03E00000);
DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfg);
IoAdapter->IrqCount++ ;
if ( IoAdapter->Initialized )
IoAdapter->IrqCount++;
if (IoAdapter->Initialized)
{
diva_os_schedule_soft_isr (&IoAdapter->isr_soft_isr);
diva_os_schedule_soft_isr(&IoAdapter->isr_soft_isr);
}
return (1) ;
return (1);
}
/* -------------------------------------------------------------------------
Disable interrupt in the card hardware
------------------------------------------------------------------------- */
static void disable_pri_interrupt (PISDN_ADAPTER IoAdapter) {
dword volatile __iomem *cfgReg = (dword volatile __iomem *)DIVA_OS_MEM_ATTACH_CFG(IoAdapter) ;
static void disable_pri_interrupt(PISDN_ADAPTER IoAdapter) {
dword volatile __iomem *cfgReg = (dword volatile __iomem *)DIVA_OS_MEM_ATTACH_CFG(IoAdapter);
WRITE_DWORD(&cfgReg[3], 0);
WRITE_DWORD(&cfgReg[1], 0);
WRITE_DWORD(&cfgReg[0], (dword)(~0x03E00000)) ;
WRITE_DWORD(&cfgReg[0], (dword)(~0x03E00000));
DIVA_OS_MEM_DETACH_CFG(IoAdapter, cfgReg);
}
/* -------------------------------------------------------------------------
Install entry points for PRI Adapter
------------------------------------------------------------------------- */
static void prepare_common_pri_functions (PISDN_ADAPTER IoAdapter) {
ADAPTER *a = &IoAdapter->a ;
a->ram_in = mem_in ;
a->ram_inw = mem_inw ;
a->ram_in_buffer = mem_in_buffer ;
a->ram_look_ahead = mem_look_ahead ;
a->ram_out = mem_out ;
a->ram_outw = mem_outw ;
a->ram_out_buffer = mem_out_buffer ;
a->ram_inc = mem_inc ;
a->ram_offset = pri_ram_offset ;
static void prepare_common_pri_functions(PISDN_ADAPTER IoAdapter) {
ADAPTER *a = &IoAdapter->a;
a->ram_in = mem_in;
a->ram_inw = mem_inw;
a->ram_in_buffer = mem_in_buffer;
a->ram_look_ahead = mem_look_ahead;
a->ram_out = mem_out;
a->ram_outw = mem_outw;
a->ram_out_buffer = mem_out_buffer;
a->ram_inc = mem_inc;
a->ram_offset = pri_ram_offset;
a->ram_out_dw = mem_out_dw;
a->ram_in_dw = mem_in_dw;
a->istream_wakeup = pr_stream;
IoAdapter->out = pr_out ;
IoAdapter->dpc = pr_dpc ;
IoAdapter->tst_irq = scom_test_int ;
IoAdapter->clr_irq = scom_clear_int ;
IoAdapter->out = pr_out;
IoAdapter->dpc = pr_dpc;
IoAdapter->tst_irq = scom_test_int;
IoAdapter->clr_irq = scom_clear_int;
IoAdapter->pcm = (struct pc_maint *)(MIPS_MAINT_OFFS
- MP_SHARED_RAM_OFFSET) ;
IoAdapter->load = load_pri_hardware ;
IoAdapter->disIrq = disable_pri_interrupt ;
IoAdapter->rstFnc = reset_pri_hardware ;
IoAdapter->stop = stop_pri_hardware ;
IoAdapter->trapFnc = pri_cpu_trapped ;
- MP_SHARED_RAM_OFFSET);
IoAdapter->load = load_pri_hardware;
IoAdapter->disIrq = disable_pri_interrupt;
IoAdapter->rstFnc = reset_pri_hardware;
IoAdapter->stop = stop_pri_hardware;
IoAdapter->trapFnc = pri_cpu_trapped;
IoAdapter->diva_isr_handler = pri_ISR;
}
/* -------------------------------------------------------------------------
Install entry points for PRI Adapter
------------------------------------------------------------------------- */
void prepare_pri_functions (PISDN_ADAPTER IoAdapter) {
IoAdapter->MemorySize = MP_MEMORY_SIZE ;
prepare_common_pri_functions (IoAdapter) ;
diva_os_prepare_pri_functions (IoAdapter);
void prepare_pri_functions(PISDN_ADAPTER IoAdapter) {
IoAdapter->MemorySize = MP_MEMORY_SIZE;
prepare_common_pri_functions(IoAdapter);
diva_os_prepare_pri_functions(IoAdapter);
}
/* -------------------------------------------------------------------------
Install entry points for PRI Rev.2 Adapter
------------------------------------------------------------------------- */
void prepare_pri2_functions (PISDN_ADAPTER IoAdapter) {
IoAdapter->MemorySize = MP2_MEMORY_SIZE ;
prepare_common_pri_functions (IoAdapter) ;
diva_os_prepare_pri2_functions (IoAdapter);
void prepare_pri2_functions(PISDN_ADAPTER IoAdapter) {
IoAdapter->MemorySize = MP2_MEMORY_SIZE;
prepare_common_pri_functions(IoAdapter);
diva_os_prepare_pri2_functions(IoAdapter);
}
/* ------------------------------------------------------------------------- */

View File

@@ -28,8 +28,8 @@
/*
The soft DSP image is described by binary header contained on begin of this
image:
OFFSET FROM IMAGE START | VARIABLE
------------------------------------------------------------------------
OFFSET FROM IMAGE START | VARIABLE
------------------------------------------------------------------------
DIVA_MIPS_TASK_IMAGE_LINK_OFFS | link to the next image
----------------------------------------------------------------------
DIVA_MIPS_TASK_IMAGE_GP_OFFS | image gp register value, void*
@@ -42,7 +42,7 @@ OFFSET FROM IMAGE START | VARIABLE
----------------------------------------------------------------------
DIVA_MIPS_TASK_IMAGE_ID_STRING_OFFS | image id string char[...];
----------------------------------------------------------------------
*/
*/
#define DIVA_MIPS_TASK_IMAGE_LINK_OFFS 0x6C
#define DIVA_MIPS_TASK_IMAGE_GP_OFFS 0x70
#define DIVA_MIPS_TASK_IMAGE_ENTRY_OFFS 0x74
@@ -53,38 +53,38 @@ OFFSET FROM IMAGE START | VARIABLE
This function is called in order to set GP register of this task
This function should be always called before any function of the
task is called
*/
typedef void (*diva_task_set_prog_gp_proc_t)(void* new_gp);
*/
typedef void (*diva_task_set_prog_gp_proc_t)(void *new_gp);
/*
This function is called to clear .bss at task initialization step
*/
*/
typedef void (*diva_task_sys_reset_proc_t)(void);
/*
This function is called in order to provide GP of master call to
task, that will be used by calls from the task to the master
*/
typedef void (*diva_task_set_main_gp_proc_t)(void* main_gp);
*/
typedef void (*diva_task_set_main_gp_proc_t)(void *main_gp);
/*
This function is called to provide address of 'dprintf' function
to the task
*/
*/
typedef word (*diva_prt_proc_t)(char *, ...);
typedef void (*diva_task_set_prt_proc_t)(diva_prt_proc_t fn);
/*
This function is called to set task PID
*/
*/
typedef void (*diva_task_set_pid_proc_t)(dword id);
/*
This function is called for run-time task init
*/
*/
typedef int (*diva_task_run_time_init_proc_t)(void*, dword);
/*
This function is called from system scheduler or from timer
*/
*/
typedef void (*diva_task_callback_proc_t)(void);
/*
This callback is used by task to get current time im mS
*/
*/
typedef dword (*diva_task_get_tick_count_proc_t)(void);
typedef void (*diva_task_set_get_time_proc_t)(\
diva_task_get_tick_count_proc_t fn);
@@ -98,15 +98,15 @@ typedef struct _diva_mips_sdp_task_entry {
diva_task_callback_proc_t task_callback_proc;
diva_task_callback_proc_t timer_callback_proc;
diva_task_set_get_time_proc_t set_get_time_proc;
void* last_entry_proc;
void *last_entry_proc;
} diva_mips_sdp_task_entry_t;
/*
'last_entry_proc' should be set to zero and is used for future extensuios
*/
*/
typedef struct _diva_mips_sw_task {
diva_mips_sdp_task_entry_t sdp_entry;
void* sdp_gp_reg;
void* own_gp_reg;
void *sdp_gp_reg;
void *own_gp_reg;
} diva_mips_sw_task_t;
#if !defined(DIVA_BRI2F_SDP_1_NAME)
#define DIVA_BRI2F_SDP_1_NAME "sdp0.2q0"

View File

@@ -25,16 +25,16 @@ static LIST_HEAD(adapter_q);
static diva_os_spin_lock_t adapter_lock;
static diva_um_idi_adapter_t *diva_um_idi_find_adapter(dword nr);
static void cleanup_adapter(diva_um_idi_adapter_t * a);
static void cleanup_entity(divas_um_idi_entity_t * e);
static int diva_user_mode_idi_adapter_features(diva_um_idi_adapter_t * a,
static void cleanup_adapter(diva_um_idi_adapter_t *a);
static void cleanup_entity(divas_um_idi_entity_t *e);
static int diva_user_mode_idi_adapter_features(diva_um_idi_adapter_t *a,
diva_um_idi_adapter_features_t
* features);
static int process_idi_request(divas_um_idi_entity_t * e,
const diva_um_idi_req_hdr_t * req);
static int process_idi_rc(divas_um_idi_entity_t * e, byte rc);
static int process_idi_ind(divas_um_idi_entity_t * e, byte ind);
static int write_return_code(divas_um_idi_entity_t * e, byte rc);
*features);
static int process_idi_request(divas_um_idi_entity_t *e,
const diva_um_idi_req_hdr_t *req);
static int process_idi_rc(divas_um_idi_entity_t *e, byte rc);
static int process_idi_ind(divas_um_idi_entity_t *e, byte ind);
static int write_return_code(divas_um_idi_entity_t *e, byte rc);
/* --------------------------------------------------------------------------
MAIN
@@ -49,7 +49,7 @@ int diva_user_mode_idi_init(void)
Copy adapter features to user supplied buffer
-------------------------------------------------------------------------- */
static int
diva_user_mode_idi_adapter_features(diva_um_idi_adapter_t * a,
diva_user_mode_idi_adapter_features(diva_um_idi_adapter_t *a,
diva_um_idi_adapter_features_t *
features)
{
@@ -63,14 +63,14 @@ diva_user_mode_idi_adapter_features(diva_um_idi_adapter_t * a,
sync_req.GetName.Req = 0;
sync_req.GetName.Rc = IDI_SYNC_REQ_GET_NAME;
(*(a->d.request)) ((ENTITY *) & sync_req);
(*(a->d.request)) ((ENTITY *)&sync_req);
strlcpy(features->name, sync_req.GetName.name,
sizeof(features->name));
sync_req.GetSerial.Req = 0;
sync_req.GetSerial.Rc = IDI_SYNC_REQ_GET_SERIAL;
sync_req.GetSerial.serial = 0;
(*(a->d.request)) ((ENTITY *) & sync_req);
(*(a->d.request))((ENTITY *)&sync_req);
features->serial_number = sync_req.GetSerial.serial;
}
@@ -118,7 +118,7 @@ void diva_user_mode_idi_finit(void)
/* -------------------------------------------------------------------------
CREATE AND INIT IDI ADAPTER
------------------------------------------------------------------------- */
int diva_user_mode_idi_create_adapter(const DESCRIPTOR * d, int adapter_nr)
int diva_user_mode_idi_create_adapter(const DESCRIPTOR *d, int adapter_nr)
{
diva_os_spin_lock_magic_t old_irql;
diva_um_idi_adapter_t *a =
@@ -159,14 +159,14 @@ static diva_um_idi_adapter_t *diva_um_idi_find_adapter(dword nr)
break;
a = NULL;
}
return(a);
return (a);
}
/* ------------------------------------------------------------------------
Cleanup this adapter and cleanup/delete all entities assigned
to this adapter
------------------------------------------------------------------------ */
static void cleanup_adapter(diva_um_idi_adapter_t * a)
static void cleanup_adapter(diva_um_idi_adapter_t *a)
{
struct list_head *tmp, *safe;
divas_um_idi_entity_t *e;
@@ -186,7 +186,7 @@ static void cleanup_adapter(diva_um_idi_adapter_t * a)
/* ------------------------------------------------------------------------
Cleanup, but NOT delete this entity
------------------------------------------------------------------------ */
static void cleanup_entity(divas_um_idi_entity_t * e)
static void cleanup_entity(divas_um_idi_entity_t *e)
{
e->os_ref = NULL;
e->status = 0;
@@ -426,7 +426,7 @@ int diva_um_idi_write(void *entity,
return (ret);
}
req = (diva_um_idi_req_hdr_t *) & e->buffer[0];
req = (diva_um_idi_req_hdr_t *)&e->buffer[0];
switch (req->type) {
case DIVA_UM_IDI_GET_FEATURES:{
@@ -488,7 +488,7 @@ int diva_um_idi_write(void *entity,
/* --------------------------------------------------------------------------
CALLBACK FROM XDI
-------------------------------------------------------------------------- */
static void diva_um_idi_xdi_callback(ENTITY * entity)
static void diva_um_idi_xdi_callback(ENTITY *entity)
{
divas_um_idi_entity_t *e = DIVAS_CONTAINING_RECORD(entity,
divas_um_idi_entity_t,
@@ -529,8 +529,8 @@ static void diva_um_idi_xdi_callback(ENTITY * entity)
}
}
static int process_idi_request(divas_um_idi_entity_t * e,
const diva_um_idi_req_hdr_t * req)
static int process_idi_request(divas_um_idi_entity_t *e,
const diva_um_idi_req_hdr_t *req)
{
int assign = 0;
byte Req = (byte) req->Req;
@@ -579,7 +579,7 @@ static int process_idi_request(divas_um_idi_entity_t * e,
e->e.Req = Req;
e->e.ReqCh = (byte) req->ReqCh;
e->e.X->PLength = (word) req->data_length;
e->e.X->P = (byte *) & req[1]; /* Our buffer is safe */
e->e.X->P = (byte *)&req[1]; /* Our buffer is safe */
DBG_TRC(("A(%d) E(%08x) request(%02x-%02x-%02x (%d))",
e->adapter->adapter_nr, e, e->e.Id, e->e.Req,
@@ -621,7 +621,7 @@ static int process_idi_request(divas_um_idi_entity_t * e,
return (0);
}
static int process_idi_rc(divas_um_idi_entity_t * e, byte rc)
static int process_idi_rc(divas_um_idi_entity_t *e, byte rc)
{
DBG_TRC(("A(%d) E(%08x) rc(%02x-%02x-%02x)",
e->adapter->adapter_nr, e, e->e.Id, rc, e->e.RcCh));
@@ -674,7 +674,7 @@ static int process_idi_rc(divas_um_idi_entity_t * e, byte rc)
return (1);
}
static int process_idi_ind(divas_um_idi_entity_t * e, byte ind)
static int process_idi_ind(divas_um_idi_entity_t *e, byte ind)
{
int do_wakeup = 0;
@@ -684,7 +684,7 @@ static int process_idi_ind(divas_um_idi_entity_t * e, byte ind)
diva_data_q_get_segment4write(&e->data);
if (pind) {
e->e.RNum = 1;
e->e.R->P = (byte *) & pind[1];
e->e.R->P = (byte *)&pind[1];
e->e.R->PLength =
(word) (diva_data_q_get_max_length(&e->data) -
sizeof(*pind));
@@ -730,7 +730,7 @@ static int process_idi_ind(divas_um_idi_entity_t * e, byte ind)
/* --------------------------------------------------------------------------
Write return code to the return code queue of entity
-------------------------------------------------------------------------- */
static int write_return_code(divas_um_idi_entity_t * e, byte rc)
static int write_return_code(divas_um_idi_entity_t *e, byte rc)
{
diva_um_idi_ind_hdr_t *prc;

View File

@@ -6,7 +6,7 @@
/*
interface between UM IDI core and OS dependent part
*/
*/
int diva_user_mode_idi_init(void);
void diva_user_mode_idi_finit(void);
void *divas_um_idi_create_entity(dword adapter_nr, void *file);

View File

@@ -24,11 +24,11 @@ typedef union _divas_card_resources {
} divas_card_resources_t;
struct _diva_os_xdi_adapter;
typedef int (*diva_init_card_proc_t) (struct _diva_os_xdi_adapter * a);
typedef int (*diva_cmd_card_proc_t) (struct _diva_os_xdi_adapter * a,
diva_xdi_um_cfg_cmd_t * data,
typedef int (*diva_init_card_proc_t)(struct _diva_os_xdi_adapter *a);
typedef int (*diva_cmd_card_proc_t)(struct _diva_os_xdi_adapter *a,
diva_xdi_um_cfg_cmd_t *data,
int length);
typedef void (*diva_xdi_clear_interrupts_proc_t) (struct
typedef void (*diva_xdi_clear_interrupts_proc_t)(struct
_diva_os_xdi_adapter *);
#define DIVA_XDI_MBOX_BUSY 1

Some files were not shown because too many files have changed in this diff Show More