int Hgettimeofday(struct timeval *tv, struct timezone *tz) {
Tensurerecordfile();
Tmust("gettimeofday","tz",!tz);
+ T_gettimeofday_hook();
*tv= currenttime;
return 0;
}
#define P_READ(x) (P_read(&(x), sizeof((x))))
-static void P_updatetime(void) {
-m4_dnl xxx
-}
-
static unsigned P_fdf(int fd) {
assert(fd>=0 && fd<fdtab.used);
return fdtab.buf[fd];
}
+void T_gettimeofday_hook(void) {
+ struct timeval delta, sum;
+ P_READ(delta);
+ timeradd(&delta, ¤ttime, &sum);
+ currenttime= sum;
+}
+
static void Paddr(struct sockaddr *addr, int *lenr) {
int l, r;
uint16_t port;
$3
Tensurerecordfile();
- P_updatetime();
m4_define(`hm_rv_succfail',`
P_READ(r);
m4_define(`hm_arg_bytes_out',`r= Pbytes($'`2,$'`4);')
$3
- P_updatetime();
return r;
}
')