-#ifdef __ppc__
- if(__ppc_gettimeofday(tp, tzp))
- return(-1);
-#else
- if (syscall (SYS_gettimeofday, tp, tzp) < 0) {
- return (-1);
- }
-#endif
- if (tzp) {
- if (validtz == 0) {
- struct tm *localtm = localtime ((time_t *)&tp->tv_sec);
- cached_tz.tz_dsttime = localtm->tm_isdst;
- cached_tz.tz_minuteswest =
- (-localtm->tm_gmtoff / SECSPERMIN) +
- (localtm->tm_isdst * MINSPERHOUR);
- validtz = 1;
+ if (tp == NULL) {
+ if (tzp == NULL)
+ return (0);
+ tp = &atv;
+ }
+
+ if (__commpage_gettimeofday(tp)) { /* first try commpage */
+ if (__gettimeofday(tp, NULL) < 0) { /* if it fails, use syscall */
+ return (-1);