int isdn_x25iface_xmit(struct concap_proto *cprot, struct sk_buff *skb) 
static int isdn_x25iface_xmit(struct concap_proto *cprot, struct sk_buff *skb) 
int isdn_x25iface_xmit(struct concap_proto *cprot, struct sk_buff *skb){	unsigned char firstbyte = skb->data[0];	enum wan_states *state = &((ix25_pdata_t*)cprot->proto_data)->state;	int ret = 0;	IX25DEBUG( "isdn_x25iface_xmit: %s first=%x state=%d \n", MY_DEVNAME(cprot -> net_dev), firstbyte, *state );	switch ( firstbyte ){	case 0x00: /* dl_data request */		if( *state == WAN_CONNECTED ){			skb_pull(skb, 1);			cprot -> net_dev -> trans_start = jiffies;			ret = ( cprot -> dops -> data_req(cprot, skb) );			/* prepare for future retransmissions */			if( ret ) skb_push(skb,1);			return ret;		}		illegal_state_warn( *state, firstbyte ); 		break;	case 0x01: /* dl_connect request */		if( *state == WAN_DISCONNECTED ){			*state = WAN_CONNECTING;		        ret = cprot -> dops -> connect_req(cprot);			if(ret){				/* reset state and notify upper layer about				 * immidiatly failed attempts */				isdn_x25iface_disconn_ind(cprot);			}		} else {			illegal_state_warn( *state, firstbyte );		}		break;	case 0x02: /* dl_disconnect request */		switch ( *state ){		case WAN_DISCONNECTED: 			/* Should not happen. However, give upper layer a			   chance to recover from inconstistency  but don't			   trust the lower layer sending the disconn_confirm			   when already disconnected */			printk(KERN_WARNING "isdn_x25iface_xmit: disconnect "			       " requested while disconnected\n" );			isdn_x25iface_disconn_ind(cprot);			break; /* prevent infinite loops */		case WAN_CONNECTING:		case WAN_CONNECTED:			*state = WAN_DISCONNECTED;			cprot -> dops -> disconn_req(cprot);			break;		default:			illegal_state_warn( *state, firstbyte );		}		break;	case 0x03: /* changing lapb parameters requested */		printk(KERN_WARNING "isdn_x25iface_xmit: setting of lapb"		       " options not yet supported\n");		break;	default:		printk(KERN_WARNING "isdn_x25iface_xmit: frame with illegal"		       " first byte %x ignored:\n", firstbyte);	}	dev_kfree_skb(skb);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3e206b0a66fcaf39dbef92640ce6a63d51fc5c53/isdn_x25iface.c/clean/drivers/isdn/i4l/isdn_x25iface.c