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:
@@ -79,7 +79,7 @@ static time_t read_rtc(const char **pp_rtcname, struct timeval *sys_tv, int utc)
|
||||
int before = tm_time.tm_sec;
|
||||
while (1) {
|
||||
rtc_read_tm(&tm_time, fd);
|
||||
gettimeofday(sys_tv, NULL);
|
||||
xgettimeofday(sys_tv);
|
||||
if (before != (int)tm_time.tm_sec)
|
||||
break;
|
||||
}
|
||||
@@ -205,7 +205,7 @@ static void from_sys_clock(const char **pp_rtcname, int utc)
|
||||
int rtc;
|
||||
|
||||
rtc = rtc_xopen(pp_rtcname, O_WRONLY);
|
||||
gettimeofday(&tv, NULL);
|
||||
xgettimeofday(&tv);
|
||||
/* Prepare tm_time */
|
||||
if (sizeof(time_t) == sizeof(tv.tv_sec)) {
|
||||
if (utc)
|
||||
@@ -253,7 +253,7 @@ static void from_sys_clock(const char **pp_rtcname, int utc)
|
||||
unsigned rem_usec;
|
||||
time_t t;
|
||||
|
||||
gettimeofday(&tv, NULL);
|
||||
xgettimeofday(&tv);
|
||||
|
||||
t = tv.tv_sec;
|
||||
rem_usec = 1000000 - tv.tv_usec;
|
||||
@@ -274,7 +274,7 @@ static void from_sys_clock(const char **pp_rtcname, int utc)
|
||||
}
|
||||
|
||||
/* gmtime/localtime took some time, re-get cur time */
|
||||
gettimeofday(&tv, NULL);
|
||||
xgettimeofday(&tv);
|
||||
|
||||
if (tv.tv_sec < t /* we are still in old second */
|
||||
|| (tv.tv_sec == t && tv.tv_usec < adj) /* not too far into next second */
|
||||
|
@@ -963,7 +963,7 @@ static void load_firmware(const char *firmware, const char *sysfs_path)
|
||||
static char *curtime(void)
|
||||
{
|
||||
struct timeval tv;
|
||||
gettimeofday(&tv, NULL);
|
||||
xgettimeofday(&tv);
|
||||
sprintf(
|
||||
strftime_HHMMSS(G.timestr, sizeof(G.timestr), &tv.tv_sec),
|
||||
".%06u",
|
||||
|
@@ -172,7 +172,7 @@ int script_main(int argc UNUSED_PARAM, char **argv)
|
||||
struct timeval tv;
|
||||
double newtime;
|
||||
|
||||
gettimeofday(&tv, NULL);
|
||||
xgettimeofday(&tv);
|
||||
newtime = tv.tv_sec + (double) tv.tv_usec / 1000000;
|
||||
fprintf(timing_fp, "%f %u\n", newtime - oldtime, count);
|
||||
oldtime = newtime;
|
||||
|
Reference in New Issue
Block a user