[PATCH 1/3] score: Remove superfluous timecounter members

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Oct 1 11:50:07 UTC 2019


---
 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



More information about the devel mailing list