__set_current_state (TASK_INTERRUPTIBLE); schedule_timeout ((HZ+ 99) / 100); 
schedule_timeout_interruptible(msecs_to_jiffies(10)); 
int parport_wait_peripheral(struct parport *port,			    unsigned char mask, 			    unsigned char result){	int ret;	int usec;	unsigned long deadline;	unsigned char status;	usec = port->physport->spintime; /* usecs of fast polling */	if (!port->physport->cad->timeout)		/* A zero timeout is "special": busy wait for the		   entire 35ms. */		usec = 35000;	/* Fast polling.	 *	 * This should be adjustable.	 * How about making a note (in the device structure) of how long	 * it takes, so we know for next time?	 */	ret = parport_poll_peripheral (port, mask, result, usec);	if (ret != 1)		return ret;	if (!port->physport->cad->timeout)		/* We may be in an interrupt handler, so we can't poll		 * slowly anyway. */		return 1;	/* 40ms of slow polling. */	deadline = jiffies + (HZ + 24) / 25;	while (time_before (jiffies, deadline)) {		int ret;		if (signal_pending (current))			return -EINTR;		/* Wait for 10ms (or until an interrupt occurs if		 * the handler is set) */		if ((ret = parport_wait_event (port, (HZ + 99) / 100)) < 0)			return ret;		status = parport_read_status (port);		if ((status & mask) == result)			return 0;		if (!ret) {			/* parport_wait_event didn't time out, but the			 * peripheral wasn't actually ready either.			 * Wait for another 10ms. */			__set_current_state (TASK_INTERRUPTIBLE);			schedule_timeout ((HZ+ 99) / 100);		}	}	return 1;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7b4ccf8db4c1dc343ad5d6ed19240bbc3b5f945f/ieee1284.c/buggy/drivers/parport/ieee1284.c