libbb: introduce and use xgettimeofday(), do not truncate 64-bit time_t in shells
function old new delta xgettimeofday - 11 +11 get_local_var_value 280 281 +1 svlogd_main 1323 1322 -1 change_epoch 67 66 -1 timestamp_and_log 461 458 -3 hwclock_main 301 298 -3 fmt_time_bernstein_25 135 132 -3 step_time 331 326 -5 script_main 1207 1202 -5 machtime 34 28 -6 curtime 61 54 -7 ts_main 423 415 -8 nmeter_main 761 751 -10 gettime1900d 67 46 -21 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/12 up/down: 12/-73) Total: -61 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		@@ -291,19 +291,19 @@ unsigned FAST_FUNC monotonic_sec(void)
 | 
			
		||||
unsigned long long FAST_FUNC monotonic_ns(void)
 | 
			
		||||
{
 | 
			
		||||
	struct timeval tv;
 | 
			
		||||
	gettimeofday(&tv, NULL);
 | 
			
		||||
	xgettimeofday(&tv);
 | 
			
		||||
	return tv.tv_sec * 1000000000ULL + tv.tv_usec * 1000;
 | 
			
		||||
}
 | 
			
		||||
unsigned long long FAST_FUNC monotonic_us(void)
 | 
			
		||||
{
 | 
			
		||||
	struct timeval tv;
 | 
			
		||||
	gettimeofday(&tv, NULL);
 | 
			
		||||
	xgettimeofday(&tv);
 | 
			
		||||
	return tv.tv_sec * 1000000ULL + tv.tv_usec;
 | 
			
		||||
}
 | 
			
		||||
unsigned long long FAST_FUNC monotonic_ms(void)
 | 
			
		||||
{
 | 
			
		||||
	struct timeval tv;
 | 
			
		||||
	gettimeofday(&tv, NULL);
 | 
			
		||||
	xgettimeofday(&tv);
 | 
			
		||||
	return tv.tv_sec * 1000ULL + tv.tv_usec / 1000;
 | 
			
		||||
}
 | 
			
		||||
unsigned FAST_FUNC monotonic_sec(void)
 | 
			
		||||
 
 | 
			
		||||
@@ -720,3 +720,14 @@ void FAST_FUNC xsettimeofday(const struct timeval *tv)
 | 
			
		||||
	if (settimeofday(tv, NULL))
 | 
			
		||||
		bb_simple_perror_msg_and_die("settimeofday");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void FAST_FUNC xgettimeofday(struct timeval *tv)
 | 
			
		||||
{
 | 
			
		||||
#if 0
 | 
			
		||||
	if (gettimeofday(tv, NULL))
 | 
			
		||||
		bb_simple_perror_msg_and_die("gettimeofday");
 | 
			
		||||
#else
 | 
			
		||||
	/* Never fails on Linux */
 | 
			
		||||
	gettimeofday(tv, NULL);
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user