int		 c0 = 0, c1 = 0;	 int		 r0, r1;
int		 c0 = 0, c1 = 0, x;
iso_cksum(void *buf, u_int16_t len, u_int16_t pos){	u_int8_t	*p = buf;	int		 c0 = 0, c1 = 0;	/* counters */	int		 r0, r1;		/* results */	u_int16_t	 sop;	sop = len - pos - 1;	/* pos is an offset (pos 2 is at len 3) */	p += 2;	len -= 2;	while (len--) {		c0 += *p++;		c1 += c0;		if ((len & 0xfff) == 0) {			/* overflow protection */			c0 %= 255;			c1 %= 255;		}	}	r0 = c0 = c0 % 255;	r1 = c1 % 255;	if (pos) {		r0 = ((sop * r0 - r1)) % 255;		if (r0 <= 0)			r0 += 255;		r1 = 510 - r0 - c0;		if (r1 > 255)			r1 -= 255;	}	return (r0 << 8 | r1);}