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.
This commit is contained in:
Konstantin Belousov
2016-07-27 11:27:52 +00:00
committed by Sebastian Huber
parent d310aa7c61
commit 6d3c12549f

View File

@@ -164,34 +164,23 @@ struct timehands {
#if defined(RTEMS_SMP) #if defined(RTEMS_SMP)
static struct timehands th0; static struct timehands th0;
static struct timehands th9 = { NULL, 0, 0, 0, {0, 0}, {0, 0}, {0, 0}, 0, &th0}; static struct timehands th1 = {
static struct timehands th8 = { NULL, 0, 0, 0, {0, 0}, {0, 0}, {0, 0}, 0, &th9}; .th_next = &th0
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};
#endif #endif
static struct timehands th0 = { static struct timehands th0 = {
&dummy_timecounter, .th_counter = &dummy_timecounter,
0, .th_scale = (uint64_t)-1 / 1000000,
(uint64_t)-1 / 1000000, .th_offset = { .sec = 1 },
0, .th_generation = 1,
{1, 0}, #ifdef __rtems__
#ifndef __rtems__ .th_microtime = { TOD_SECONDS_1970_THROUGH_1988, 0 },
{0, 0}, .th_nanotime = { TOD_SECONDS_1970_THROUGH_1988, 0 },
{0, 0},
#else /* __rtems__ */
{TOD_SECONDS_1970_THROUGH_1988, 0},
{TOD_SECONDS_1970_THROUGH_1988, 0},
#endif /* __rtems__ */ #endif /* __rtems__ */
1,
#if defined(RTEMS_SMP) #if defined(RTEMS_SMP)
&th1 .th_next = &th1
#else #else
&th0 .th_next = &th0
#endif #endif
}; };