From: Chris Johns <chr...@rtems.org>

---
 freebsd/sys/kern/kern_ntptime.c | 17 +++++++++++++++++
 libbsd.py                       |  1 +
 2 files changed, 18 insertions(+)
diff --git a/freebsd/sys/kern/kern_ntptime.c b/freebsd/sys/kern/kern_ntptime.c
index 116fb584..518adab5 100644
--- a/freebsd/sys/kern/kern_ntptime.c
+++ b/freebsd/sys/kern/kern_ntptime.c
@@ -276,6 +276,10 @@ ntp_gettime1(struct ntptimeval *ntvp)
  * See the timex.h header file for synopsis and API description.  Note that
  * the TAI offset is returned in the ntvtimeval.tai structure member.
  */
+#ifdef __rtems__
+#undef _SYS_SYSPROTO_H_
+#endif /* __rtems__ */
+
 #ifndef _SYS_SYSPROTO_H_
 struct ntp_gettime_args {
        struct ntptimeval *ntvp;
@@ -311,7 +315,11 @@ ntp_sysctl(SYSCTL_HANDLER_ARGS)
        return (sysctl_handle_opaque(oidp, &ntv, sizeof(ntv), req));
 }
 
+#ifndef __rtems__
 SYSCTL_NODE(_kern, OID_AUTO, ntp_pll, CTLFLAG_RW, 0, "");
+#else /* __rtems__ */
+SYSCTL_NODE(_kern, OID_AUTO, ntp_pll, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, "");
+#endif /* __rtems__ */
 SYSCTL_PROC(_kern_ntp_pll, OID_AUTO, gettime, CTLTYPE_OPAQUE | CTLFLAG_RD |
     CTLFLAG_MPSAFE, 0, sizeof(struct ntptimeval) , ntp_sysctl, "S,ntptimeval",
     "");
@@ -367,8 +375,10 @@ sys_ntp_adjtime(struct thread *td, struct ntp_adjtime_args 
*uap)
         * status words are reset to the initial values at boot.
         */
        modes = ntv.modes;
+#ifndef __rtems__
        if (modes)
                error = priv_check(td, PRIV_NTP_ADJTIME);
+#endif /* __rtems__ */
        if (error != 0)
                return (error);
        NTP_LOCK();
@@ -477,7 +487,11 @@ sys_ntp_adjtime(struct thread *td, struct ntp_adjtime_args 
*uap)
 
        error = copyout((caddr_t)&ntv, (caddr_t)uap->tp, sizeof(ntv));
        if (error == 0)
+#ifdef __rtems__
+        error = retval;
+#else /* __rtems__ */
                td->td_retval[0] = retval;
+#endif /* __rtems__ */
        return (error);
 }
 
@@ -1056,6 +1070,7 @@ done:
        return (0);
 }
 
+#ifndef __rtems__
 SYSCTL_PROC(_machdep, OID_AUTO, rtc_save_period, CTLTYPE_INT | CTLFLAG_RWTUN |
     CTLFLAG_MPSAFE, &resettodr_period, 1800, sysctl_resettodr_period, "I",
     "Save system time to RTC with this period (in seconds)");
@@ -1075,3 +1090,5 @@ start_periodic_resettodr(void *arg __unused)
 
 SYSINIT(periodic_resettodr, SI_SUB_LAST, SI_ORDER_MIDDLE,
        start_periodic_resettodr, NULL);
+
+#endif /* __rtems__ */
diff --git a/libbsd.py b/libbsd.py
index c9151901..a3003344 100644
--- a/libbsd.py
+++ b/libbsd.py
@@ -505,6 +505,7 @@ class base(builder.Module):
                 'sys/kern/kern_mib.c',
                 'sys/kern/kern_module.c',
                 'sys/kern/kern_mtxpool.c',
+                'sys/kern/kern_ntptime.c',
                 'sys/kern/kern_osd.c',
                 'sys/kern/kern_synch.c',
                 'sys/kern/kern_sysctl.c',
-- 
2.17.1

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to