static int ds_recv_status(struct ds_device *dev, struct ds_status *st){	unsigned char buf[64];	int count, err = 0, i;		memcpy(st, buf, sizeof(*st));			count = ds_recv_status_nodump(dev, st, buf, sizeof(buf));	if (count < 0)		return err;		printk("0x%x: count=%d, status: ", dev->ep[EP_STATUS], count);	for (i=0; i<count; ++i)		printk("%02x ", buf[i]);	printk("\n");	if (count >= 16) {		ds_dump_status(buf, "enable flag", 0);		ds_dump_status(buf, "1-wire speed", 1);		ds_dump_status(buf, "strong pullup duration", 2);		ds_dump_status(buf, "programming pulse duration", 3);		ds_dump_status(buf, "pulldown slew rate control", 4);		ds_dump_status(buf, "write-1 low time", 5);		ds_dump_status(buf, "data sample offset/write-0 recovery time", 6);		ds_dump_status(buf, "reserved (test register)", 7);		ds_dump_status(buf, "device status flags", 8);		ds_dump_status(buf, "communication command byte 1", 9);		ds_dump_status(buf, "communication command byte 2", 10);		ds_dump_status(buf, "communication command buffer status", 11);		ds_dump_status(buf, "1-wire data output buffer status", 12);		ds_dump_status(buf, "1-wire data input buffer status", 13);		ds_dump_status(buf, "reserved", 14);		ds_dump_status(buf, "reserved", 15);	}	memcpy(st, buf, sizeof(*st));	if (st->status & ST_EPOF) {		printk(KERN_INFO "Resetting device after ST_EPOF.\n");		err = ds_send_control_cmd(dev, CTL_RESET_DEVICE, 0);		if (err)			return err;		count = ds_recv_status_nodump(dev, st, buf, sizeof(buf));		if (count < 0)			return err;	}#if 0	if (st->status & ST_IDLE) {		printk(KERN_INFO "Resetting pulse after ST_IDLE.\n");		err = ds_start_pulse(dev, PULLUP_PULSE_DURATION);		if (err)			return err;	}#endif		return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/8949d2aa05ddf5e9a31d738568a79915970cb38e/dscore.c/buggy/drivers/w1/dscore.c