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:
Denys Vlasenko
2020-12-30 23:48:01 +01:00
parent 89a55972fd
commit 3c13da3dab
16 changed files with 46 additions and 34 deletions

View File

@@ -1701,7 +1701,7 @@ static uint32_t machtime(void)
{
struct timeval tv;
gettimeofday(&tv, NULL);
xgettimeofday(&tv);
return htonl((uint32_t)(tv.tv_sec + 2208988800U));
}
/* ARGSUSED */

View File

@@ -560,7 +560,7 @@ static double
gettime1900d(void)
{
struct timeval tv;
gettimeofday(&tv, NULL); /* never fails */
xgettimeofday(&tv);
G.cur_time = tv.tv_sec + (1.0e-6 * tv.tv_usec) + OFFSET_1900_1970;
return G.cur_time;
}
@@ -1144,7 +1144,7 @@ step_time(double offset)
char buf[sizeof("yyyy-mm-dd hh:mm:ss") + /*paranoia:*/ 4];
time_t tval;
gettimeofday(&tvc, NULL); /* never fails */
xgettimeofday(&tvc);
dtime = tvc.tv_sec + (1.0e-6 * tvc.tv_usec) + offset;
d_to_tv(dtime, &tvn);
xsettimeofday(&tvn);

View File

@@ -505,7 +505,7 @@ send_probe(int seq, int ttl)
struct outdata6_t *pkt = (void *) outdata;
pkt->ident6 = ident;
pkt->seq6 = htonl(seq);
/*gettimeofday(&pkt->tv, &tz);*/
/*xgettimeofday(&pkt->tv);*/
icp = outicmp6;
} else
#endif