diff options
Diffstat (limited to 'drivers/isdn/pcbit/capi.c')
| -rw-r--r-- | drivers/isdn/pcbit/capi.c | 585 | 
1 files changed, 290 insertions, 295 deletions
diff --git a/drivers/isdn/pcbit/capi.c b/drivers/isdn/pcbit/capi.c index ac5a91ccde8..4e3cbf857d6 100644 --- a/drivers/isdn/pcbit/capi.c +++ b/drivers/isdn/pcbit/capi.c @@ -3,10 +3,10 @@   * Portugal Telecom CAPI 2.0   *   * Copyright (C) 1996 Universidade de Lisboa - *  + *   * Written by Pedro Roque Marques (roque@di.fc.ul.pt)   * - * This software may be used and distributed according to the terms of  + * This software may be used and distributed according to the terms of   * the GNU General Public License, incorporated herein by reference.   *   * Not compatible with the AVM Gmbh. CAPI 2.0 @@ -51,39 +51,39 @@   *   */ -int capi_conn_req(const char * calledPN, struct sk_buff **skb, int proto) +int capi_conn_req(const char *calledPN, struct sk_buff **skb, int proto)  { -        ushort len; - -        /* -         * length -         *   AppInfoMask - 2 -         *   BC0         - 3 -         *   BC1         - 1 -         *   Chan        - 2 -         *   Keypad      - 1 -         *   CPN         - 1 -         *   CPSA        - 1 -         *   CalledPN    - 2 + strlen -         *   CalledPSA   - 1 -         *   rest...     - 4 -         *   ---------------- -         *   Total        18 + strlen -         */ - -        len = 18 + strlen(calledPN); +	ushort len; + +	/* +	 * length +	 *   AppInfoMask - 2 +	 *   BC0         - 3 +	 *   BC1         - 1 +	 *   Chan        - 2 +	 *   Keypad      - 1 +	 *   CPN         - 1 +	 *   CPSA        - 1 +	 *   CalledPN    - 2 + strlen +	 *   CalledPSA   - 1 +	 *   rest...     - 4 +	 *   ---------------- +	 *   Total        18 + strlen +	 */ + +	len = 18 + strlen(calledPN);  	if (proto == ISDN_PROTO_L2_TRANS)  		len++;  	if ((*skb = dev_alloc_skb(len)) == NULL) { -     -	        printk(KERN_WARNING "capi_conn_req: alloc_skb failed\n"); + +		printk(KERN_WARNING "capi_conn_req: alloc_skb failed\n");  		return -1;  	} -        /* InfoElmMask */ -        *((ushort*) skb_put(*skb, 2)) = AppInfoMask;  +	/* InfoElmMask */ +	*((ushort *)skb_put(*skb, 2)) = AppInfoMask;  	if (proto == ISDN_PROTO_L2_TRANS)  	{ @@ -101,162 +101,162 @@ int capi_conn_req(const char * calledPN, struct sk_buff **skb, int proto)  		*(skb_put(*skb, 1)) = 0x90;     /* BC0.Octect4		*/  	} -        /* Bearer Capability - Optional*/ -        *(skb_put(*skb, 1)) = 0;        /* BC1.Length = 0                    */ +	/* Bearer Capability - Optional*/ +	*(skb_put(*skb, 1)) = 0;        /* BC1.Length = 0                    */ -        *(skb_put(*skb, 1)) = 1;        /* ChannelID.Length = 1              */ -        *(skb_put(*skb, 1)) = 0x83;     /* Basic Interface - Any Channel     */ +	*(skb_put(*skb, 1)) = 1;        /* ChannelID.Length = 1              */ +	*(skb_put(*skb, 1)) = 0x83;     /* Basic Interface - Any Channel     */ -        *(skb_put(*skb, 1)) = 0;        /* Keypad.Length = 0                 */ -                   +	*(skb_put(*skb, 1)) = 0;        /* Keypad.Length = 0                 */ -        *(skb_put(*skb, 1)) = 0;        /* CallingPN.Length = 0              */ -        *(skb_put(*skb, 1)) = 0;        /* CallingPSA.Length = 0             */ -        /* Called Party Number */ -        *(skb_put(*skb, 1)) = strlen(calledPN) + 1; -        *(skb_put(*skb, 1)) = 0x81; -        memcpy(skb_put(*skb, strlen(calledPN)), calledPN, strlen(calledPN)); +	*(skb_put(*skb, 1)) = 0;        /* CallingPN.Length = 0              */ +	*(skb_put(*skb, 1)) = 0;        /* CallingPSA.Length = 0             */ -        /* '#' */ +	/* Called Party Number */ +	*(skb_put(*skb, 1)) = strlen(calledPN) + 1; +	*(skb_put(*skb, 1)) = 0x81; +	memcpy(skb_put(*skb, strlen(calledPN)), calledPN, strlen(calledPN)); -        *(skb_put(*skb, 1)) = 0;       /* CalledPSA.Length = 0     */ +	/* '#' */ -        /* LLC.Length  = 0; */ -        /* HLC0.Length = 0; */ -        /* HLC1.Length = 0; */  -        /* UTUS.Length = 0; */ -        memset(skb_put(*skb, 4), 0, 4); +	*(skb_put(*skb, 1)) = 0;       /* CalledPSA.Length = 0     */ -        return len; +	/* LLC.Length  = 0; */ +	/* HLC0.Length = 0; */ +	/* HLC1.Length = 0; */ +	/* UTUS.Length = 0; */ +	memset(skb_put(*skb, 4), 0, 4); + +	return len;  } -int capi_conn_resp(struct pcbit_chan* chan, struct sk_buff **skb) +int capi_conn_resp(struct pcbit_chan *chan, struct sk_buff **skb)  { -         +  	if ((*skb = dev_alloc_skb(5)) == NULL) { -     +  		printk(KERN_WARNING "capi_conn_resp: alloc_skb failed\n");  		return -1;  	} -        *((ushort*) skb_put(*skb, 2) ) = chan->callref;   -        *(skb_put(*skb, 1)) = 0x01;  /* ACCEPT_CALL */ -        *(skb_put(*skb, 1)) = 0; -        *(skb_put(*skb, 1)) = 0; +	*((ushort *)skb_put(*skb, 2)) = chan->callref; +	*(skb_put(*skb, 1)) = 0x01;  /* ACCEPT_CALL */ +	*(skb_put(*skb, 1)) = 0; +	*(skb_put(*skb, 1)) = 0; -        return 5; +	return 5;  } -int capi_conn_active_req(struct pcbit_chan* chan, struct sk_buff **skb) +int capi_conn_active_req(struct pcbit_chan *chan, struct sk_buff **skb)  { -        /* -         * 8 bytes -         */ -         +	/* +	 * 8 bytes +	 */ +  	if ((*skb = dev_alloc_skb(8)) == NULL) { -     +  		printk(KERN_WARNING "capi_conn_active_req: alloc_skb failed\n");  		return -1;  	} -        *((ushort*) skb_put(*skb, 2) ) = chan->callref;   +	*((ushort *)skb_put(*skb, 2)) = chan->callref;  #ifdef DEBUG -	printk(KERN_DEBUG "Call Reference: %04x\n", chan->callref);  +	printk(KERN_DEBUG "Call Reference: %04x\n", chan->callref);  #endif -        *(skb_put(*skb, 1)) = 0;       /*  BC.Length = 0;          */ -        *(skb_put(*skb, 1)) = 0;       /*  ConnectedPN.Length = 0  */ -        *(skb_put(*skb, 1)) = 0;       /*  PSA.Length              */ -        *(skb_put(*skb, 1)) = 0;       /*  LLC.Length = 0;         */ -        *(skb_put(*skb, 1)) = 0;       /*  HLC.Length = 0;         */ -        *(skb_put(*skb, 1)) = 0;       /*  UTUS.Length = 0;        */ +	*(skb_put(*skb, 1)) = 0;       /*  BC.Length = 0;          */ +	*(skb_put(*skb, 1)) = 0;       /*  ConnectedPN.Length = 0  */ +	*(skb_put(*skb, 1)) = 0;       /*  PSA.Length              */ +	*(skb_put(*skb, 1)) = 0;       /*  LLC.Length = 0;         */ +	*(skb_put(*skb, 1)) = 0;       /*  HLC.Length = 0;         */ +	*(skb_put(*skb, 1)) = 0;       /*  UTUS.Length = 0;        */  	return 8;  } -int capi_conn_active_resp(struct pcbit_chan* chan, struct sk_buff **skb) +int capi_conn_active_resp(struct pcbit_chan *chan, struct sk_buff **skb)  { -        /* -         * 2 bytes -         */ -   +	/* +	 * 2 bytes +	 */ +  	if ((*skb = dev_alloc_skb(2)) == NULL) { -     +  		printk(KERN_WARNING "capi_conn_active_resp: alloc_skb failed\n");  		return -1;  	} -        *((ushort*) skb_put(*skb, 2) ) = chan->callref;   +	*((ushort *)skb_put(*skb, 2)) = chan->callref; -        return 2; +	return 2;  } -int capi_select_proto_req(struct pcbit_chan *chan, struct sk_buff **skb,  -                          int outgoing) +int capi_select_proto_req(struct pcbit_chan *chan, struct sk_buff **skb, +			  int outgoing)  { -        /* -         * 18 bytes -         */ +	/* +	 * 18 bytes +	 */  	if ((*skb = dev_alloc_skb(18)) == NULL) { -     +  		printk(KERN_WARNING "capi_select_proto_req: alloc_skb failed\n");  		return -1;  	} -        *((ushort*) skb_put(*skb, 2) ) = chan->callref;   +	*((ushort *)skb_put(*skb, 2)) = chan->callref; -        /* Layer2 protocol */ +	/* Layer2 protocol */ -        switch (chan->proto) { -        case ISDN_PROTO_L2_X75I:  -                *(skb_put(*skb, 1)) = 0x05;            /* LAPB */ -                break; -        case ISDN_PROTO_L2_HDLC: -                *(skb_put(*skb, 1)) = 0x02; -                break; +	switch (chan->proto) { +	case ISDN_PROTO_L2_X75I: +		*(skb_put(*skb, 1)) = 0x05;            /* LAPB */ +		break; +	case ISDN_PROTO_L2_HDLC: +		*(skb_put(*skb, 1)) = 0x02; +		break;  	case ISDN_PROTO_L2_TRANS: -		/*  +		/*  		 *	Voice (a-law)  		 */  		*(skb_put(*skb, 1)) = 0x06;  		break; -        default: -#ifdef DEBUG  -                printk(KERN_DEBUG "Transparent\n"); +	default: +#ifdef DEBUG +		printk(KERN_DEBUG "Transparent\n");  #endif -                *(skb_put(*skb, 1)) = 0x03; -                break; -        } - -        *(skb_put(*skb, 1)) = (outgoing ? 0x02 : 0x42);    /* Don't ask */ -        *(skb_put(*skb, 1)) = 0x00; -   -        *((ushort *) skb_put(*skb, 2)) = MRU; - -  -        *(skb_put(*skb, 1)) = 0x08;           /* Modulo */ -        *(skb_put(*skb, 1)) = 0x07;           /* Max Window */ -   -        *(skb_put(*skb, 1)) = 0x01;           /* No Layer3 Protocol */ - -        /* -         * 2 - layer3 MTU       [10] -         *   - Modulo           [12] -         *   - Window            -         *   - layer1 proto     [14] -         *   - bitrate -         *   - sub-channel      [16] -         *   - layer1dataformat [17] -         */ - -        memset(skb_put(*skb, 8), 0, 8); - -        return 18; +		*(skb_put(*skb, 1)) = 0x03; +		break; +	} + +	*(skb_put(*skb, 1)) = (outgoing ? 0x02 : 0x42);    /* Don't ask */ +	*(skb_put(*skb, 1)) = 0x00; + +	*((ushort *) skb_put(*skb, 2)) = MRU; + + +	*(skb_put(*skb, 1)) = 0x08;           /* Modulo */ +	*(skb_put(*skb, 1)) = 0x07;           /* Max Window */ + +	*(skb_put(*skb, 1)) = 0x01;           /* No Layer3 Protocol */ + +	/* +	 * 2 - layer3 MTU       [10] +	 *   - Modulo           [12] +	 *   - Window +	 *   - layer1 proto     [14] +	 *   - bitrate +	 *   - sub-channel      [16] +	 *   - layer1dataformat [17] +	 */ + +	memset(skb_put(*skb, 8), 0, 8); + +	return 18;  } @@ -264,45 +264,45 @@ int capi_activate_transp_req(struct pcbit_chan *chan, struct sk_buff **skb)  {  	if ((*skb = dev_alloc_skb(7)) == NULL) { -     +  		printk(KERN_WARNING "capi_activate_transp_req: alloc_skb failed\n");  		return -1;  	} -        *((ushort*) skb_put(*skb, 2) ) = chan->callref;   +	*((ushort *)skb_put(*skb, 2)) = chan->callref; -         -        *(skb_put(*skb, 1)) = chan->layer2link; /* Layer2 id */ -        *(skb_put(*skb, 1)) = 0x00;             /* Transmit by default */ -        *((ushort *) skb_put(*skb, 2)) = MRU; +	*(skb_put(*skb, 1)) = chan->layer2link; /* Layer2 id */ +	*(skb_put(*skb, 1)) = 0x00;             /* Transmit by default */ -        *(skb_put(*skb, 1)) = 0x01;             /* Enables reception*/ +	*((ushort *) skb_put(*skb, 2)) = MRU; -        return 7; +	*(skb_put(*skb, 1)) = 0x01;             /* Enables reception*/ + +	return 7;  } -int capi_tdata_req(struct pcbit_chan* chan, struct sk_buff *skb) +int capi_tdata_req(struct pcbit_chan *chan, struct sk_buff *skb)  {  	ushort data_len; -	 -	/*   -	 * callref      - 2   + +	/* +	 * callref      - 2  	 * layer2link   - 1 -	 * wBlockLength - 2  +	 * wBlockLength - 2  	 * data         - 4  	 * sernum       - 1  	 */ -	 +  	data_len = skb->len; -	if(skb_headroom(skb) < 10) +	if (skb_headroom(skb) < 10)  	{  		printk(KERN_CRIT "No headspace (%u) on headroom %p for capi header\n", skb_headroom(skb), skb);  	}  	else -	{	 +	{  		skb_push(skb, 10);  	} @@ -318,58 +318,58 @@ int capi_tdata_req(struct pcbit_chan* chan, struct sk_buff *skb)  	return 10;  } -int capi_tdata_resp(struct pcbit_chan *chan, struct sk_buff ** skb) -		     +int capi_tdata_resp(struct pcbit_chan *chan, struct sk_buff **skb) +  {  	if ((*skb = dev_alloc_skb(4)) == NULL) { -     +  		printk(KERN_WARNING "capi_tdata_resp: alloc_skb failed\n");  		return -1;  	} -        *((ushort*) skb_put(*skb, 2) ) = chan->callref;   +	*((ushort *)skb_put(*skb, 2)) = chan->callref; -        *(skb_put(*skb, 1)) = chan->layer2link; -        *(skb_put(*skb, 1)) = chan->r_refnum; +	*(skb_put(*skb, 1)) = chan->layer2link; +	*(skb_put(*skb, 1)) = chan->r_refnum; -        return (*skb)->len; +	return (*skb)->len;  }  int capi_disc_req(ushort callref, struct sk_buff **skb, u_char cause)  {  	if ((*skb = dev_alloc_skb(6)) == NULL) { -     +  		printk(KERN_WARNING "capi_disc_req: alloc_skb failed\n");  		return -1;  	} -        *((ushort*) skb_put(*skb, 2) ) = callref;   +	*((ushort *)skb_put(*skb, 2)) = callref; -        *(skb_put(*skb, 1)) = 2;                  /* Cause.Length = 2; */ -        *(skb_put(*skb, 1)) = 0x80; -        *(skb_put(*skb, 1)) = 0x80 | cause;            +	*(skb_put(*skb, 1)) = 2;                  /* Cause.Length = 2; */ +	*(skb_put(*skb, 1)) = 0x80; +	*(skb_put(*skb, 1)) = 0x80 | cause; -        /*  -         * Change it: we should send 'Sic transit gloria Mundi' here ;-)  -         */ +	/* +	 * Change it: we should send 'Sic transit gloria Mundi' here ;-) +	 */ -        *(skb_put(*skb, 1)) = 0;                   /* UTUS.Length = 0;  */ +	*(skb_put(*skb, 1)) = 0;                   /* UTUS.Length = 0;  */ -        return 6; +	return 6;  }  int capi_disc_resp(struct pcbit_chan *chan, struct sk_buff **skb)  {  	if ((*skb = dev_alloc_skb(2)) == NULL) { -     +  		printk(KERN_WARNING "capi_disc_resp: alloc_skb failed\n");  		return -1;  	} -        *((ushort*) skb_put(*skb, 2)) = chan->callref;   +	*((ushort *)skb_put(*skb, 2)) = chan->callref; -        return 2; +	return 2;  } @@ -378,57 +378,57 @@ int capi_disc_resp(struct pcbit_chan *chan, struct sk_buff **skb)   *   */ -int capi_decode_conn_ind(struct pcbit_chan * chan,  -                         struct sk_buff *skb, -                         struct callb_data *info)  +int capi_decode_conn_ind(struct pcbit_chan *chan, +			 struct sk_buff *skb, +			 struct callb_data *info)  { -        int CIlen, len; +	int CIlen, len; -        /* Call Reference [CAPI] */ -        chan->callref = *((ushort*) skb->data); -        skb_pull(skb, 2); +	/* Call Reference [CAPI] */ +	chan->callref = *((ushort *)skb->data); +	skb_pull(skb, 2);  #ifdef DEBUG -	printk(KERN_DEBUG "Call Reference: %04x\n", chan->callref);  +	printk(KERN_DEBUG "Call Reference: %04x\n", chan->callref);  #endif -        /* Channel Identification */ +	/* Channel Identification */ -        /* Expect   -           Len = 1  -           Octect 3 = 0100 10CC - [ 7 Basic, 4 , 2-1 chan ] -           */ +	/* Expect +	   Len = 1 +	   Octect 3 = 0100 10CC - [ 7 Basic, 4 , 2-1 chan ] +	*/ -        CIlen = skb->data[0]; +	CIlen = skb->data[0];  #ifdef DEBUG -        if (CIlen == 1) { +	if (CIlen == 1) { -                if ( ((skb->data[1]) & 0xFC) == 0x48 ) -                        printk(KERN_DEBUG "decode_conn_ind: chan ok\n"); -                printk(KERN_DEBUG "phyChan = %d\n", skb->data[1] & 0x03);  -        } +		if (((skb->data[1]) & 0xFC) == 0x48) +			printk(KERN_DEBUG "decode_conn_ind: chan ok\n"); +		printk(KERN_DEBUG "phyChan = %d\n", skb->data[1] & 0x03); +	}  	else  		printk(KERN_DEBUG "conn_ind: CIlen = %d\n", CIlen);  #endif -        skb_pull(skb, CIlen + 1); +	skb_pull(skb, CIlen + 1); -        /* Calling Party Number */ -        /* An "additional service" as far as Portugal Telecom is concerned */ +	/* Calling Party Number */ +	/* An "additional service" as far as Portugal Telecom is concerned */ -        len = skb->data[0]; +	len = skb->data[0];  	if (len > 0) {  		int count = 1; -		 +  #ifdef DEBUG  		printk(KERN_DEBUG "CPN: Octect 3 %02x\n", skb->data[1]);  #endif  		if ((skb->data[1] & 0x80) == 0)  			count = 2; -		 +  		if (!(info->data.setup.CallingPN = kmalloc(len - count + 1, GFP_ATOMIC)))  			return -1; -        +  		skb_copy_from_linear_data_offset(skb, count + 1,  						 info->data.setup.CallingPN,  						 len - count); @@ -442,22 +442,22 @@ int capi_decode_conn_ind(struct pcbit_chan * chan,  	skb_pull(skb, len + 1); -        /* Calling Party Subaddress */ -        skb_pull(skb, skb->data[0] + 1); +	/* Calling Party Subaddress */ +	skb_pull(skb, skb->data[0] + 1); -        /* Called Party Number */ +	/* Called Party Number */ -        len = skb->data[0]; +	len = skb->data[0];  	if (len > 0) {  		int count = 1; -		 +  		if ((skb->data[1] & 0x80) == 0)  			count = 2; -         +  		if (!(info->data.setup.CalledPN = kmalloc(len - count + 1, GFP_ATOMIC)))  			return -1; -         +  		skb_copy_from_linear_data_offset(skb, count + 1,  						 info->data.setup.CalledPN,  						 len - count); @@ -471,73 +471,73 @@ int capi_decode_conn_ind(struct pcbit_chan * chan,  	skb_pull(skb, len + 1); -        /* Called Party Subaddress */ -        skb_pull(skb, skb->data[0] + 1); +	/* Called Party Subaddress */ +	skb_pull(skb, skb->data[0] + 1); -        /* LLC */ -        skb_pull(skb, skb->data[0] + 1); +	/* LLC */ +	skb_pull(skb, skb->data[0] + 1); -        /* HLC */ -        skb_pull(skb, skb->data[0] + 1); +	/* HLC */ +	skb_pull(skb, skb->data[0] + 1); -        /* U2U */ -        skb_pull(skb, skb->data[0] + 1); +	/* U2U */ +	skb_pull(skb, skb->data[0] + 1); -        return 0; +	return 0;  }  /*   *  returns errcode   */ -int capi_decode_conn_conf(struct pcbit_chan * chan, struct sk_buff *skb, -			  int *complete)  +int capi_decode_conn_conf(struct pcbit_chan *chan, struct sk_buff *skb, +			  int *complete)  { -        int errcode; -   -        chan->callref = *((ushort *) skb->data);     /* Update CallReference */ -        skb_pull(skb, 2); +	int errcode; + +	chan->callref = *((ushort *)skb->data);     /* Update CallReference */ +	skb_pull(skb, 2); + +	errcode = *((ushort *) skb->data);   /* read errcode */ +	skb_pull(skb, 2); -        errcode = *((ushort *) skb->data);   /* read errcode */ -        skb_pull(skb, 2); +	*complete = *(skb->data); +	skb_pull(skb, 1); -        *complete = *(skb->data); -        skb_pull(skb, 1); +	/* FIX ME */ +	/* This is actually a firmware bug */ +	if (!*complete) +	{ +		printk(KERN_DEBUG "complete=%02x\n", *complete); +		*complete = 1; +	} -        /* FIX ME */ -        /* This is actually a firmware bug */ -        if (!*complete) -        { -                printk(KERN_DEBUG "complete=%02x\n", *complete); -                *complete = 1; -        } +	/* Optional Bearer Capability */ +	skb_pull(skb, *(skb->data) + 1); -        /* Optional Bearer Capability */ -        skb_pull(skb, *(skb->data) + 1); -         -        /* Channel Identification */ -        skb_pull(skb, *(skb->data) + 1); +	/* Channel Identification */ +	skb_pull(skb, *(skb->data) + 1); -        /* High Layer Compatibility follows */ -        skb_pull(skb, *(skb->data) + 1); +	/* High Layer Compatibility follows */ +	skb_pull(skb, *(skb->data) + 1); -        return errcode; +	return errcode;  } -int capi_decode_conn_actv_ind(struct pcbit_chan * chan, struct sk_buff *skb) +int capi_decode_conn_actv_ind(struct pcbit_chan *chan, struct sk_buff *skb)  { -        ushort len; +	ushort len;  #ifdef DEBUG -        char str[32]; +	char str[32];  #endif -        /* Yet Another Bearer Capability */ -        skb_pull(skb, *(skb->data) + 1); -   +	/* Yet Another Bearer Capability */ +	skb_pull(skb, *(skb->data) + 1); -        /* Connected Party Number */ -        len=*(skb->data); + +	/* Connected Party Number */ +	len = *(skb->data);  #ifdef DEBUG  	if (len > 1 && len < 31) { @@ -549,106 +549,101 @@ int capi_decode_conn_actv_ind(struct pcbit_chan * chan, struct sk_buff *skb)  		printk(KERN_DEBUG "actv_ind CPN len = %d\n", len);  #endif -        skb_pull(skb, len + 1); +	skb_pull(skb, len + 1); -        /* Connected Subaddress */ -        skb_pull(skb, *(skb->data) + 1); +	/* Connected Subaddress */ +	skb_pull(skb, *(skb->data) + 1); -        /* Low Layer Capability */ -        skb_pull(skb, *(skb->data) + 1); +	/* Low Layer Capability */ +	skb_pull(skb, *(skb->data) + 1); -        /* High Layer Capability */ -        skb_pull(skb, *(skb->data) + 1); +	/* High Layer Capability */ +	skb_pull(skb, *(skb->data) + 1); -        return 0; +	return 0;  } -int capi_decode_conn_actv_conf(struct pcbit_chan * chan, struct sk_buff *skb) +int capi_decode_conn_actv_conf(struct pcbit_chan *chan, struct sk_buff *skb)  { -        ushort errcode; - -        errcode = *((ushort*) skb->data); -        skb_pull(skb, 2); -         -        /* Channel Identification  -        skb_pull(skb, skb->data[0] + 1); -        */ -        return errcode; +	ushort errcode; + +	errcode = *((ushort *)skb->data); +	skb_pull(skb, 2); + +	/* Channel Identification +	   skb_pull(skb, skb->data[0] + 1); +	*/ +	return errcode;  }  int capi_decode_sel_proto_conf(struct pcbit_chan *chan, struct sk_buff *skb)  { -        ushort errcode; -         -        chan->layer2link = *(skb->data); -        skb_pull(skb, 1); +	ushort errcode; -        errcode = *((ushort*) skb->data); -        skb_pull(skb, 2); +	chan->layer2link = *(skb->data); +	skb_pull(skb, 1); -        return errcode; +	errcode = *((ushort *)skb->data); +	skb_pull(skb, 2); + +	return errcode;  }  int capi_decode_actv_trans_conf(struct pcbit_chan *chan, struct sk_buff *skb)  { -        ushort errcode; +	ushort errcode; -        if (chan->layer2link != *(skb->data) ) -                printk("capi_decode_actv_trans_conf: layer2link doesn't match\n"); +	if (chan->layer2link != *(skb->data)) +		printk("capi_decode_actv_trans_conf: layer2link doesn't match\n"); -        skb_pull(skb, 1); +	skb_pull(skb, 1); -        errcode = *((ushort*) skb->data); -        skb_pull(skb, 2); +	errcode = *((ushort *)skb->data); +	skb_pull(skb, 2); -        return errcode;         +	return errcode;  }  int capi_decode_disc_ind(struct pcbit_chan *chan, struct sk_buff *skb)  { -        ushort len; +	ushort len;  #ifdef DEBUG -        int i; +	int i;  #endif -        /* Cause */ -         -        len = *(skb->data); -        skb_pull(skb, 1); +	/* Cause */ + +	len = *(skb->data); +	skb_pull(skb, 1);  #ifdef DEBUG -        for (i=0; i<len; i++) -                printk(KERN_DEBUG "Cause Octect %d: %02x\n", i+3,  -                       *(skb->data + i)); +	for (i = 0; i < len; i++) +		printk(KERN_DEBUG "Cause Octect %d: %02x\n", i + 3, +		       *(skb->data + i));  #endif -        skb_pull(skb, len); +	skb_pull(skb, len); -        return 0; +	return 0;  }  #ifdef DEBUG  int capi_decode_debug_188(u_char *hdr, ushort hdrlen)  { -        char str[64]; -        int len; -         -        len = hdr[0]; - -        if (len < 64 && len == hdrlen - 1) {         -                memcpy(str, hdr + 1, hdrlen - 1); -                str[hdrlen - 1] = 0; -                printk("%s\n", str); -        } -        else -                printk("debug message incorrect\n"); - -        return 0; -} -#endif - - +	char str[64]; +	int len; +	len = hdr[0]; +	if (len < 64 && len == hdrlen - 1) { +		memcpy(str, hdr + 1, hdrlen - 1); +		str[hdrlen - 1] = 0; +		printk("%s\n", str); +	} +	else +		printk("debug message incorrect\n"); +	return 0; +} +#endif  | 
