---
 cpukit/include/sys/timetc.h               |  4 +++-
 cpukit/score/src/kern_tc.c                | 10 +++++++---
 testsuites/sptests/sptimecounter01/init.c |  4 ++--
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/cpukit/include/sys/timetc.h b/cpukit/include/sys/timetc.h
index 347a140ed9..5cdfdfe9b3 100644
--- a/cpukit/include/sys/timetc.h
+++ b/cpukit/include/sys/timetc.h
@@ -45,12 +45,14 @@ typedef uint32_t timecounter_fill_vdso_timehands32_t(struct 
vdso_timehands32 *,
 
 struct timecounter {
        timecounter_get_t       *tc_get_timecount;
+#ifndef __rtems__
                /*
                 * This function reads the counter.  It is not required to
                 * mask any unimplemented bits out, as long as they are
                 * constant.
                 */
        timecounter_pps_t       *tc_poll_pps;
+#endif /* __rtems__ */
                /*
                 * This function is optional.  It will be called whenever the
                 * timecounter is rewound, and is intended to check for PPS
@@ -64,6 +66,7 @@ struct timecounter {
        const char              *tc_name;
                /* Name of the timecounter. */
        int                     tc_quality;
+#ifndef __rtems__
                /*
                 * Used to determine if this timecounter is better than
                 * another timecounter higher means better.  Negative
@@ -80,7 +83,6 @@ struct timecounter {
                /* Pointer to the timecounter's private parts. */
        struct timecounter      *tc_next;
                /* Pointer to the next timecounter. */
-#ifndef __rtems__
        timecounter_fill_vdso_timehands_t *tc_fill_vdso_timehands;
        timecounter_fill_vdso_timehands32_t *tc_fill_vdso_timehands32;
 #endif /* __rtems__ */
diff --git a/cpukit/score/src/kern_tc.c b/cpukit/score/src/kern_tc.c
index d705b59a4c..082cb9f7d7 100644
--- a/cpukit/score/src/kern_tc.c
+++ b/cpukit/score/src/kern_tc.c
@@ -146,7 +146,11 @@ dummy_get_timecount(struct timecounter *tc)
 }
 
 static struct timecounter dummy_timecounter = {
+#ifndef __rtems__
        dummy_get_timecount, 0, ~0u, 1000000, "dummy", -1000000
+#else /* __rtems__ */
+       dummy_get_timecount, ~(uint32_t)0, 1000000, "dummy", -1000000
+#endif /* __rtems__ */
 };
 
 struct timehands {
@@ -195,9 +199,9 @@ static struct timehands th0 = {
 
 static struct timehands *volatile timehands = &th0;
 struct timecounter *timecounter = &dummy_timecounter;
+#ifndef __rtems__
 static struct timecounter *timecounters = &dummy_timecounter;
 
-#ifndef __rtems__
 int tc_min_ticktock_freq = 1;
 #endif /* __rtems__ */
 
@@ -1359,11 +1363,9 @@ tc_init(struct timecounter *tc)
                    tc->tc_name, (uintmax_t)tc->tc_frequency,
                    tc->tc_quality);
        }
-#endif /* __rtems__ */
 
        tc->tc_next = timecounters;
        timecounters = tc;
-#ifndef __rtems__
        /*
         * Set up sysctl tree for this counter.
         */
@@ -1566,6 +1568,7 @@ _Timecounter_Windup(struct bintime *new_boottimebin,
        }
        bintime_addx(&th->th_offset, th->th_scale * delta);
 
+#ifndef __rtems__
        /*
         * Hardware latching timecounters may not generate interrupts on
         * PPS events, so instead we poll them.  There is a finite risk that
@@ -1576,6 +1579,7 @@ _Timecounter_Windup(struct bintime *new_boottimebin,
         */
        if (tho->th_counter->tc_poll_pps)
                tho->th_counter->tc_poll_pps(tho->th_counter);
+#endif /* __rtems__ */
 
        /*
         * Deal with NTP second processing.  The for loop normally
diff --git a/testsuites/sptests/sptimecounter01/init.c 
b/testsuites/sptests/sptimecounter01/init.c
index 6976f7bc80..9fc36583c4 100644
--- a/testsuites/sptests/sptimecounter01/init.c
+++ b/testsuites/sptests/sptimecounter01/init.c
@@ -38,8 +38,9 @@ static test_context test_instance;
 
 static uint32_t test_get_timecount_soft(struct timecounter *tc)
 {
-  test_context *ctx = tc->tc_priv;
+  test_context *ctx;
 
+  ctx = RTEMS_CONTAINER_OF(tc, test_context, tc_soft);
   ++ctx->tc_soft_counter;
 
   return ctx->tc_soft_counter;
@@ -124,7 +125,6 @@ void boot_card(const char *cmdline)
   tc_soft->tc_counter_mask = 0x0fffffff;
   tc_soft->tc_frequency = soft_freq;
   tc_soft->tc_quality = 1234;
-  tc_soft->tc_priv = ctx;
   _Timecounter_Install(tc_soft);
   assert(ctx->tc_soft_counter == 3);
 
-- 
2.16.4

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

Reply via email to