+/*
+ * Time of day and interval timer support.
+ *
+ * These routines provide the kernel entry points to get and set
+ * the time-of-day and per-process interval timers. Subroutines
+ * here provide support for adding and subtracting timeval structures
+ * and decrementing interval timers, optionally reloading the interval
+ * timers when they expire.
+ */
+/* NOTE THIS implementation is for ppc architectures only.
+ * It is infrequently called, since the commpage intercepts
+ * most calls in user mode.
+ *
+ * XXX Y2038 bug because of assumed return of 32 bit seconds value, and
+ * XXX first parameter to clock_gettimeofday()
+ */
+int
+ppc_gettimeofday(__unused struct proc *p,
+ register struct ppc_gettimeofday_args *uap,
+ register_t *retval)
+{
+ int error = 0;
+ extern lck_spin_t * tz_slock;
+
+ if (uap->tp)
+ clock_gettimeofday(&retval[0], &retval[1]);
+
+ if (uap->tzp) {
+ struct timezone ltz;
+
+ lck_spin_lock(tz_slock);
+ ltz = tz;
+ lck_spin_unlock(tz_slock);
+ error = copyout((caddr_t)<z, uap->tzp, sizeof (tz));
+ }
+
+ return (error);
+}
+