[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