From 6d3c12549f3b6394e841b98f663532b039c8289f Mon Sep 17 00:00:00 2001 From: Konstantin Belousov Date: Wed, 27 Jul 2016 11:27:52 +0000 Subject: timecounter: Merge FreeBSD change r303383 Reduce number of timehands to just two. This is useful because consumers can now be only one tc_windup() call late. Use C99 initialization. Tested by: pho (as part of the whole patch) Reviewed by: jhb (same) Discussed with: bde Sponsored by: The FreeBSD Foundation MFC after: 1 month X-Differential revision: https://reviews.freebsd.org/D7302 Update #3175. --- cpukit/score/src/kern_tc.c | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) (limited to 'cpukit/score/src') diff --git a/cpukit/score/src/kern_tc.c b/cpukit/score/src/kern_tc.c index c157584190..20a3fb49b2 100644 --- a/cpukit/score/src/kern_tc.c +++ b/cpukit/score/src/kern_tc.c @@ -164,34 +164,23 @@ struct timehands { #if defined(RTEMS_SMP) static struct timehands th0; -static struct timehands th9 = { NULL, 0, 0, 0, {0, 0}, {0, 0}, {0, 0}, 0, &th0}; -static struct timehands th8 = { NULL, 0, 0, 0, {0, 0}, {0, 0}, {0, 0}, 0, &th9}; -static struct timehands th7 = { NULL, 0, 0, 0, {0, 0}, {0, 0}, {0, 0}, 0, &th8}; -static struct timehands th6 = { NULL, 0, 0, 0, {0, 0}, {0, 0}, {0, 0}, 0, &th7}; -static struct timehands th5 = { NULL, 0, 0, 0, {0, 0}, {0, 0}, {0, 0}, 0, &th6}; -static struct timehands th4 = { NULL, 0, 0, 0, {0, 0}, {0, 0}, {0, 0}, 0, &th5}; -static struct timehands th3 = { NULL, 0, 0, 0, {0, 0}, {0, 0}, {0, 0}, 0, &th4}; -static struct timehands th2 = { NULL, 0, 0, 0, {0, 0}, {0, 0}, {0, 0}, 0, &th3}; -static struct timehands th1 = { NULL, 0, 0, 0, {0, 0}, {0, 0}, {0, 0}, 0, &th2}; +static struct timehands th1 = { + .th_next = &th0 +}; #endif static struct timehands th0 = { - &dummy_timecounter, - 0, - (uint64_t)-1 / 1000000, - 0, - {1, 0}, -#ifndef __rtems__ - {0, 0}, - {0, 0}, -#else /* __rtems__ */ - {TOD_SECONDS_1970_THROUGH_1988, 0}, - {TOD_SECONDS_1970_THROUGH_1988, 0}, + .th_counter = &dummy_timecounter, + .th_scale = (uint64_t)-1 / 1000000, + .th_offset = { .sec = 1 }, + .th_generation = 1, +#ifdef __rtems__ + .th_microtime = { TOD_SECONDS_1970_THROUGH_1988, 0 }, + .th_nanotime = { TOD_SECONDS_1970_THROUGH_1988, 0 }, #endif /* __rtems__ */ - 1, #if defined(RTEMS_SMP) - &th1 + .th_next = &th1 #else - &th0 + .th_next = &th0 #endif }; -- cgit v1.2.3