facilities->reverse = p[1] & 0x01; *vc_fac_mask |= X25_MASK_REVERSE; break; 
if((p[1] & 0x81) == 0x81) { facilities->reverse = p[1] & 0x81; *vc_fac_mask |= X25_MASK_REVERSE; break; }  if((p[1] & 0x01) == 0x01) { facilities->reverse = p[1] & 0x01; *vc_fac_mask |= X25_MASK_REVERSE; break; }  if((p[1] & 0x80) == 0x80) { facilities->reverse = p[1] & 0x80; *vc_fac_mask |= X25_MASK_REVERSE; break; }  if(p[1] == 0x00) { facilities->reverse = X25_DEFAULT_REVERSE; *vc_fac_mask |= X25_MASK_REVERSE; break; }  
int x25_parse_facilities(struct sk_buff *skb,			 struct x25_facilities *facilities,			 unsigned long *vc_fac_mask){	unsigned char *p = skb->data;	unsigned int len = *p++;	*vc_fac_mask = 0;	while (len > 0) {		switch (*p & X25_FAC_CLASS_MASK) {		case X25_FAC_CLASS_A:			switch (*p) {			case X25_FAC_REVERSE:				facilities->reverse = p[1] & 0x01;				*vc_fac_mask |= X25_MASK_REVERSE;				break;			case X25_FAC_THROUGHPUT:				facilities->throughput = p[1];				*vc_fac_mask |= X25_MASK_THROUGHPUT;				break;			default:				printk(KERN_DEBUG "X.25: unknown facility "				       "%02X, value %02X\n",				       p[0], p[1]);				break;			}			p   += 2;			len -= 2;			break;		case X25_FAC_CLASS_B:			switch (*p) {			case X25_FAC_PACKET_SIZE:				facilities->pacsize_in  = p[1];				facilities->pacsize_out = p[2];				*vc_fac_mask |= X25_MASK_PACKET_SIZE;				break;			case X25_FAC_WINDOW_SIZE:				facilities->winsize_in  = p[1];				facilities->winsize_out = p[2];				*vc_fac_mask |= X25_MASK_WINDOW_SIZE;				break;			default:				printk(KERN_DEBUG "X.25: unknown facility "				       "%02X, values %02X, %02X\n",				       p[0], p[1], p[2]);				break;			}			p   += 3;			len -= 3;			break;		case X25_FAC_CLASS_C:			printk(KERN_DEBUG "X.25: unknown facility %02X, "			       "values %02X, %02X, %02X\n",			       p[0], p[1], p[2], p[3]);			p   += 4;			len -= 4;			break;		case X25_FAC_CLASS_D:			printk(KERN_DEBUG "X.25: unknown facility %02X, "			       "length %d, values %02X, %02X, %02X, %02X\n",			       p[0], p[1], p[2], p[3], p[4], p[5]);			len -= p[1] + 2;			p   += p[1] + 2;			break;		}	}	return p - skb->data;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/ebc3f64b864fc16a594c2e63bf55a55c7d42084b/x25_facilities.c/clean/net/x25/x25_facilities.c