|  | @@ -37,19 +37,26 @@ RTM_EXPORT(isatty);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  char *ttyname(int fd)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -    return "/dev/tty"; /*TODO: need to add more specific*/
 | 
	
		
			
				|  |  | +    return "/dev/tty"; /* TODO: need to add more specific */
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  RTM_EXPORT(ttyname);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  unsigned int sleep(unsigned int seconds)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -    rt_tick_t delta_tick;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    delta_tick = rt_tick_get();
 | 
	
		
			
				|  |  | -    rt_thread_delay(seconds * RT_TICK_PER_SECOND);
 | 
	
		
			
				|  |  | -    delta_tick = rt_tick_get() - delta_tick;
 | 
	
		
			
				|  |  | +    if (rt_thread_self() != RT_NULL)
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        rt_thread_delay(seconds * RT_TICK_PER_SECOND);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    else /* scheduler has not run yet */
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        while(seconds > 0)
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            rt_hw_us_delay(1000000u);
 | 
	
		
			
				|  |  | +            seconds --;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    return seconds - delta_tick/RT_TICK_PER_SECOND;
 | 
	
		
			
				|  |  | +    return 0;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  RTM_EXPORT(sleep);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -59,11 +66,12 @@ int usleep(useconds_t usec)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |          rt_thread_mdelay(usec / 1000u);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    else
 | 
	
		
			
				|  |  | +    else  /* scheduler has not run yet */
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |          rt_hw_us_delay(usec / 1000u);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      rt_hw_us_delay(usec % 1000u);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      return 0;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  RTM_EXPORT(usleep);
 |