unsigned long max_wait_tb; 
u64 max_wait_tb; 
int rtas_set_rtc_time(struct rtc_time *tm){	int error, wait_time;	unsigned long max_wait_tb;	max_wait_tb = get_tb() + tb_ticks_per_usec * 1000 * MAX_RTC_WAIT;	do {	        error = rtas_call(rtas_token("set-time-of-day"), 7, 1, NULL,				  tm->tm_year + 1900, tm->tm_mon + 1,				  tm->tm_mday, tm->tm_hour, tm->tm_min,				  tm->tm_sec, 0);		if (error == RTAS_CLOCK_BUSY || rtas_is_extended_busy(error)) {			if (in_interrupt())				return 1;	/* probably decrementer */			wait_time = rtas_extended_busy_delay_time(error);			msleep(wait_time);			error = RTAS_CLOCK_BUSY;		}	} while (error == RTAS_CLOCK_BUSY && (get_tb() < max_wait_tb));        if (error != 0 && printk_ratelimit())                printk(KERN_WARNING "error: setting the clock failed (%d)\n",		       error);        return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/49e16b7becd6320bde51aa238c11815708f836d9/rtas-rtc.c/clean/arch/powerpc/kernel/rtas-rtc.c