Hi, If the timecounter struct changes again in the future it will be easier to make the change if we are using C99-style initialization everywhere. In general I think C99-style initialization is easier to read for larger structs. The timecounter struct definitely qualifies as "larger". We probably should already be doing this but nobody has bothered yet.
So I will bother. This patch changes every timecounter struct to use C99-style initialization. Some are already using it but most are not. Yes, I am aware that this is tedious to review. I'm sorry. I think suffering this now will pay off in the future. Speaking of the future: in a subsequent patch I would like to remove several of the the zero and NULL members, as C99 guarantees that omission of a member at initialization causes it to be implicitly zeroed. For instance, there is no reason to set .tc_user if the timecounter has no corresponding driver in libc. There are also no drivers setting the .tc_poll_pps function pointer, so we can just let it implicitly be NULL. And if the timecounter needs no private cookie we don't need to explicitly set .tc_priv to NULL. Et cetera. I suppose if people prefer it we _could_ do such changes in this patch. I'm leaning toward not doing that. Switching to the C99 style *and* dropping members will make review more difficult and increase the likelihood of a mistake, i.e. I will accidentally break the build on some platform and people will yell at me, which I want to avoid. Thoughts? Preferences? ok? Index: ./arch/alpha/alpha/clock.c =================================================================== RCS file: /cvs/src/sys/arch/alpha/alpha/clock.c,v retrieving revision 1.24 diff -u -p -r1.24 clock.c --- ./arch/alpha/alpha/clock.c 6 Jul 2020 13:33:06 -0000 1.24 +++ ./arch/alpha/alpha/clock.c 19 Feb 2021 02:57:55 -0000 @@ -64,7 +64,14 @@ int clk_irq = 0; u_int rpcc_get_timecount(struct timecounter *); struct timecounter rpcc_timecounter = { - rpcc_get_timecount, NULL, ~0u, 0, "rpcc", 0, NULL, 0 + .tc_get_timecount = rpcc_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = ~0u, + .tc_frequency = 0, + .tc_name = "rpcc", + .tc_quality = 0, + .tc_priv = NULL, + .tc_user = 0, }; extern todr_chip_handle_t todr_handle; Index: ./arch/amd64/amd64/tsc.c =================================================================== RCS file: /cvs/src/sys/arch/amd64/amd64/tsc.c,v retrieving revision 1.22 diff -u -p -r1.22 tsc.c --- ./arch/amd64/amd64/tsc.c 24 Dec 2020 04:20:48 -0000 1.22 +++ ./arch/amd64/amd64/tsc.c 19 Feb 2021 02:57:55 -0000 @@ -52,7 +52,14 @@ extern u_int32_t lapic_per_second; #endif struct timecounter tsc_timecounter = { - tsc_get_timecount, NULL, ~0u, 0, "tsc", -1000, NULL, TC_TSC + .tc_get_timecount = tsc_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = ~0u, + .tc_frequency = 0, + .tc_name = "tsc", + .tc_quality = -1000, + .tc_priv = NULL, + .tc_user = TC_TSC, }; uint64_t Index: ./arch/amd64/isa/clock.c =================================================================== RCS file: /cvs/src/sys/arch/amd64/isa/clock.c,v retrieving revision 1.34 diff -u -p -r1.34 clock.c --- ./arch/amd64/isa/clock.c 6 Jul 2020 13:33:06 -0000 1.34 +++ ./arch/amd64/isa/clock.c 19 Feb 2021 02:57:55 -0000 @@ -116,7 +116,14 @@ u_int i8254_get_timecount(struct timecou u_int i8254_simple_get_timecount(struct timecounter *tc); static struct timecounter i8254_timecounter = { - i8254_get_timecount, NULL, ~0u, TIMER_FREQ, "i8254", 0, NULL, 0 + .tc_get_timecount = i8254_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = ~0u, + .tc_frequency = TIMER_FREQ, + .tc_name = "i8254", + .tc_quality = 0, + .tc_priv = NULL, + .tc_user = 0, }; int clockintr(void *); Index: ./arch/armv7/omap/dmtimer.c =================================================================== RCS file: /cvs/src/sys/arch/armv7/omap/dmtimer.c,v retrieving revision 1.9 diff -u -p -r1.9 dmtimer.c --- ./arch/armv7/omap/dmtimer.c 19 Jan 2021 18:04:43 -0000 1.9 +++ ./arch/armv7/omap/dmtimer.c 19 Feb 2021 02:57:55 -0000 @@ -111,7 +111,13 @@ void dmtimer_setstatclockrate(int newhz) u_int dmtimer_get_timecount(struct timecounter *); static struct timecounter dmtimer_timecounter = { - dmtimer_get_timecount, NULL, 0xffffffff, 0, "dmtimer", 0, NULL + .tc_get_timecount = dmtimer_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 0, + .tc_name = "dmtimer", + .tc_quality = 0, + .tc_priv = NULL, }; bus_space_handle_t dmtimer_ioh0; Index: ./arch/armv7/omap/gptimer.c =================================================================== RCS file: /cvs/src/sys/arch/armv7/omap/gptimer.c,v retrieving revision 1.11 diff -u -p -r1.11 gptimer.c --- ./arch/armv7/omap/gptimer.c 19 Jan 2021 18:04:43 -0000 1.11 +++ ./arch/armv7/omap/gptimer.c 19 Feb 2021 02:57:56 -0000 @@ -113,7 +113,14 @@ int gptimer_irq = 0; u_int gptimer_get_timecount(struct timecounter *); static struct timecounter gptimer_timecounter = { - gptimer_get_timecount, NULL, 0xffffffff, 0, "gptimer", 0, NULL, 0 + .tc_get_timecount = gptimer_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 0, + .tc_name = "gptimer", + .tc_quality = 0, + .tc_priv = NULL, + .tc_user = 0, }; volatile u_int32_t nexttickevent; Index: ./arch/armv7/sunxi/sxitimer.c =================================================================== RCS file: /cvs/src/sys/arch/armv7/sunxi/sxitimer.c,v retrieving revision 1.15 diff -u -p -r1.15 sxitimer.c --- ./arch/armv7/sunxi/sxitimer.c 19 Jan 2021 18:04:43 -0000 1.15 +++ ./arch/armv7/sunxi/sxitimer.c 19 Feb 2021 02:57:56 -0000 @@ -89,7 +89,14 @@ void sxitimer_delay(u_int); u_int sxitimer_get_timecount(struct timecounter *); static struct timecounter sxitimer_timecounter = { - sxitimer_get_timecount, NULL, 0xffffffff, 0, "sxitimer", 0, NULL, 0 + .tc_get_timecount = sxitimer_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 0, + .tc_name = "sxitimer", + .tc_quality = 0, + .tc_priv = NULL, + .tc_user = 0, }; bus_space_tag_t sxitimer_iot; Index: ./arch/arm/cortex/amptimer.c =================================================================== RCS file: /cvs/src/sys/arch/arm/cortex/amptimer.c,v retrieving revision 1.10 diff -u -p -r1.10 amptimer.c --- ./arch/arm/cortex/amptimer.c 19 Jan 2021 18:04:43 -0000 1.10 +++ ./arch/arm/cortex/amptimer.c 19 Feb 2021 02:57:56 -0000 @@ -67,7 +67,14 @@ int32_t amptimer_frequency = TIMER_FREQU u_int amptimer_get_timecount(struct timecounter *); static struct timecounter amptimer_timecounter = { - amptimer_get_timecount, NULL, 0xffffffff, 0, "amptimer", 0, NULL, 0 + .tc_get_timecount = amptimer_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 0, + .tc_name = "amptimer", + .tc_quality = 0, + .tc_priv = NULL, + .tc_user = 0, }; #define MAX_ARM_CPUS 8 Index: ./arch/arm/cortex/agtimer.c =================================================================== RCS file: /cvs/src/sys/arch/arm/cortex/agtimer.c,v retrieving revision 1.11 diff -u -p -r1.11 agtimer.c --- ./arch/arm/cortex/agtimer.c 19 Jan 2021 18:04:43 -0000 1.11 +++ ./arch/arm/cortex/agtimer.c 19 Feb 2021 02:57:56 -0000 @@ -46,7 +46,13 @@ int32_t agtimer_frequency = TIMER_FREQUE u_int agtimer_get_timecount(struct timecounter *); static struct timecounter agtimer_timecounter = { - agtimer_get_timecount, NULL, 0xffffffff, 0, "agtimer", 0, NULL + .tc_get_timecount = agtimer_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 0, + .tc_name = "agtimer", + .tc_quality = 0, + .tc_priv = NULL, }; struct agtimer_pcpu_softc { Index: ./arch/arm64/dev/agtimer.c =================================================================== RCS file: /cvs/src/sys/arch/arm64/dev/agtimer.c,v retrieving revision 1.16 diff -u -p -r1.16 agtimer.c --- ./arch/arm64/dev/agtimer.c 19 Jan 2021 18:07:15 -0000 1.16 +++ ./arch/arm64/dev/agtimer.c 19 Feb 2021 02:57:56 -0000 @@ -43,8 +43,14 @@ int32_t agtimer_frequency = TIMER_FREQUE u_int agtimer_get_timecount(struct timecounter *); static struct timecounter agtimer_timecounter = { - agtimer_get_timecount, NULL, 0xffffffff, 0, "agtimer", 0, NULL, - TC_AGTIMER + .tc_get_timecount = agtimer_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 0, + .tc_name = "agtimer", + .tc_quality = 0, + .tc_priv = NULL, + .tc_user = TC_AGTIMER, }; struct agtimer_pcpu_softc { Index: ./arch/hppa/dev/clock.c =================================================================== RCS file: /cvs/src/sys/arch/hppa/dev/clock.c,v retrieving revision 1.31 diff -u -p -r1.31 clock.c --- ./arch/hppa/dev/clock.c 6 Jul 2020 13:33:07 -0000 1.31 +++ ./arch/hppa/dev/clock.c 19 Feb 2021 02:57:56 -0000 @@ -47,7 +47,14 @@ int cpu_hardclock(void *); u_int itmr_get_timecount(struct timecounter *); struct timecounter itmr_timecounter = { - itmr_get_timecount, NULL, 0xffffffff, 0, "itmr", 0, NULL, 0 + .tc_get_timecount = itmr_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 0, + .tc_name = "itmr", + .tc_quality = 0, + .tc_priv = NULL, + .tc_user = 0, }; extern todr_chip_handle_t todr_handle; Index: ./arch/i386/isa/clock.c =================================================================== RCS file: /cvs/src/sys/arch/i386/isa/clock.c,v retrieving revision 1.59 diff -u -p -r1.59 clock.c --- ./arch/i386/isa/clock.c 6 Jul 2020 13:33:07 -0000 1.59 +++ ./arch/i386/isa/clock.c 19 Feb 2021 02:57:56 -0000 @@ -129,7 +129,14 @@ u_int i8254_get_timecount(struct timecou u_int i8254_simple_get_timecount(struct timecounter *tc); static struct timecounter i8254_timecounter = { - i8254_get_timecount, NULL, ~0u, TIMER_FREQ, "i8254", 0, NULL, 0 + .tc_get_timecount = i8254_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = ~0u, + .tc_frequency = TIMER_FREQ, + .tc_name = "i8254", + .tc_quality = 0, + .tc_priv = NULL, + .tc_user = 0, }; struct mutex timer_mutex = MUTEX_INITIALIZER(IPL_HIGH); u_long rtclock_tval; Index: ./arch/i386/pci/gscpm.c =================================================================== RCS file: /cvs/src/sys/arch/i386/pci/gscpm.c,v retrieving revision 1.10 diff -u -p -r1.10 gscpm.c --- ./arch/i386/pci/gscpm.c 6 Jul 2020 13:33:07 -0000 1.10 +++ ./arch/i386/pci/gscpm.c 19 Feb 2021 02:57:56 -0000 @@ -50,14 +50,14 @@ void gscpm_setperf(int); u_int gscpm_get_timecount(struct timecounter *tc); struct timecounter gscpm_timecounter = { - gscpm_get_timecount, /* get_timecount */ - 0, /* no poll_pps */ - 0xffffff, /* counter_mask */ - 3579545, /* frequency */ - "GSCPM", /* name */ - 1000, /* quality */ - NULL, /* private bits */ - 0 /* expose to user */ + .tc_get_timecount = gscpm_get_timecount, + .tc_poll_pps = 0, + .tc_counter_mask = 0xffffff, + .tc_frequency = 3579545, + .tc_name = "GSCPM", + .tc_quality = 1000, + .tc_priv = NULL, + .tc_user = 0, }; struct cfattach gscpm_ca = { Index: ./arch/i386/pci/ichpcib.c =================================================================== RCS file: /cvs/src/sys/arch/i386/pci/ichpcib.c,v retrieving revision 1.29 diff -u -p -r1.29 ichpcib.c --- ./arch/i386/pci/ichpcib.c 6 Jul 2020 13:33:07 -0000 1.29 +++ ./arch/i386/pci/ichpcib.c 19 Feb 2021 02:57:56 -0000 @@ -58,14 +58,14 @@ void pcibattach(struct device *, stru u_int ichpcib_get_timecount(struct timecounter *tc); struct timecounter ichpcib_timecounter = { - ichpcib_get_timecount, /* get_timecount */ - 0, /* no poll_pps */ - 0xffffff, /* counter_mask */ - 3579545, /* frequency */ - "ICHPM", /* name */ - 1000, /* quality */ - NULL, /* private bits */ - 0 /* expose to user */ + .tc_get_timecount = ichpcib_get_timecount, + .tc_poll_pps = 0, + .tc_counter_mask = 0xffffff, + .tc_frequency = 3579545, + .tc_name = "ICHPM", + .tc_quality = 1000, + .tc_priv = NULL, + .tc_user = 0, }; struct cfattach ichpcib_ca = { Index: ./arch/i386/pci/geodesc.c =================================================================== RCS file: /cvs/src/sys/arch/i386/pci/geodesc.c,v retrieving revision 1.15 diff -u -p -r1.15 geodesc.c --- ./arch/i386/pci/geodesc.c 6 Jul 2020 13:33:07 -0000 1.15 +++ ./arch/i386/pci/geodesc.c 19 Feb 2021 02:57:56 -0000 @@ -60,14 +60,14 @@ struct cfdriver geodesc_cd = { u_int geodesc_get_timecount(struct timecounter *tc); struct timecounter geodesc_timecounter = { - geodesc_get_timecount, /* get_timecount */ - 0, /* no poll_pps */ - 0xffffffff, /* counter_mask */ - 27000000, /* frequency */ - "GEOTSC", /* name */ - 2000, /* quality */ - NULL, /* private bits */ - 0 /* expose to user */ + .tc_get_timecount = geodesc_get_timecount, + .tc_poll_pps = 0, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 27000000, + .tc_name = "GEOTSC", + .tc_quality = 2000, + .tc_priv = NULL, + .tc_user = 0, }; int Index: ./arch/macppc/macppc/clock.c =================================================================== RCS file: /cvs/src/sys/arch/macppc/macppc/clock.c,v retrieving revision 1.47 diff -u -p -r1.47 clock.c --- ./arch/macppc/macppc/clock.c 26 Aug 2020 03:29:06 -0000 1.47 +++ ./arch/macppc/macppc/clock.c 19 Feb 2021 02:57:56 -0000 @@ -57,7 +57,14 @@ u_int32_t ns_per_tick = 320; static int32_t ticks_per_intr; static struct timecounter tb_timecounter = { - tb_get_timecount, NULL, 0xffffffff, 0, "tb", 0, NULL, TC_TB + .tc_get_timecount = tb_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 0, + .tc_name = "tb", + .tc_quality = 0, + .tc_priv = NULL, + .tc_user = TC_TB, }; /* calibrate the timecounter frequency for the listed models */ Index: ./arch/mips64/mips64/mips64_machdep.c =================================================================== RCS file: /cvs/src/sys/arch/mips64/mips64/mips64_machdep.c,v retrieving revision 1.34 diff -u -p -r1.34 mips64_machdep.c --- ./arch/mips64/mips64/mips64_machdep.c 13 Jan 2021 16:28:49 -0000 1.34 +++ ./arch/mips64/mips64/mips64_machdep.c 19 Feb 2021 02:57:56 -0000 @@ -267,14 +267,14 @@ delay(int n) u_int cp0_get_timecount(struct timecounter *); struct timecounter cp0_timecounter = { - cp0_get_timecount, /* get_timecount */ - 0, /* no poll_pps */ - 0xffffffff, /* counter_mask */ - 0, /* frequency */ - "CP0", /* name */ - 0, /* quality */ - NULL, /* private bits */ - 0, /* expose to user */ + .tc_get_timecount = cp0_get_timecount, + .tc_poll_pps = 0, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 0, + .tc_name = "CP0", + .tc_quality = 0, + .tc_priv = NULL, + .tc_user = 0, }; u_int Index: ./arch/sparc64/dev/psycho.c =================================================================== RCS file: /cvs/src/sys/arch/sparc64/dev/psycho.c,v retrieving revision 1.77 diff -u -p -r1.77 psycho.c --- ./arch/sparc64/dev/psycho.c 6 Jul 2020 13:33:08 -0000 1.77 +++ ./arch/sparc64/dev/psycho.c 19 Feb 2021 02:57:56 -0000 @@ -127,7 +127,14 @@ extern struct sparc_pci_chipset _sparc_p u_int stick_get_timecount(struct timecounter *); struct timecounter stick_timecounter = { - stick_get_timecount, NULL, ~0u, 0, "stick", 1000, NULL, 0 + .tc_get_timecount = stick_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = ~0u, + .tc_frequency = 0, + .tc_name = "stick", + .tc_quality = 1000, + .tc_priv = NULL, + .tc_user = 0, }; /* Index: ./arch/sparc64/sparc64/clock.c =================================================================== RCS file: /cvs/src/sys/arch/sparc64/sparc64/clock.c,v retrieving revision 1.67 diff -u -p -r1.67 clock.c --- ./arch/sparc64/sparc64/clock.c 20 Oct 2020 15:59:17 -0000 1.67 +++ ./arch/sparc64/sparc64/clock.c 19 Feb 2021 02:57:56 -0000 @@ -109,8 +109,14 @@ struct cfdriver clock_cd = { u_int tick_get_timecount(struct timecounter *); struct timecounter tick_timecounter = { - tick_get_timecount, NULL, ~0u, 0, "tick", 0, - NULL, TC_TICK + .tc_get_timecount = tick_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = ~0u, + .tc_frequency = 0, + .tc_name = "tick", + .tc_quality = 0, + .tc_priv = NULL, + .tc_user = TC_TICK, }; u_int sys_tick_get_timecount(struct timecounter *); Index: ./arch/powerpc64/powerpc64/clock.c =================================================================== RCS file: /cvs/src/sys/arch/powerpc64/powerpc64/clock.c,v retrieving revision 1.2 diff -u -p -r1.2 clock.c --- ./arch/powerpc64/powerpc64/clock.c 12 Jul 2020 20:32:20 -0000 1.2 +++ ./arch/powerpc64/powerpc64/clock.c 19 Feb 2021 02:57:56 -0000 @@ -37,7 +37,13 @@ struct evcount stat_count; u_int tb_get_timecount(struct timecounter *); static struct timecounter tb_timecounter = { - tb_get_timecount, NULL, 0xffffffff, 0, "tb", 0, NULL + .tc_get_timecount = tb_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 0, + .tc_name = "tb", + .tc_quality = 0, + .tc_priv = NULL, }; void cpu_startclock(void); Index: ./dev/pv/hyperv.c =================================================================== RCS file: /cvs/src/sys/dev/pv/hyperv.c,v retrieving revision 1.47 diff -u -p -r1.47 hyperv.c --- ./dev/pv/hyperv.c 4 Dec 2020 03:22:46 -0000 1.47 +++ ./dev/pv/hyperv.c 19 Feb 2021 02:57:56 -0000 @@ -141,7 +141,14 @@ struct { }; struct timecounter hv_timecounter = { - hv_gettime, 0, 0xffffffff, 10000000, "hyperv", 9001, NULL, 0 + .tc_get_timecount = hv_gettime, + .tc_poll_pps = 0, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 10000000, + .tc_name = "hyperv", + .tc_quality = 9001, + .tc_priv = NULL, + .tc_user = 0, }; struct cfdriver hyperv_cd = { Index: ./dev/pv/pvclock.c =================================================================== RCS file: /cvs/src/sys/dev/pv/pvclock.c,v retrieving revision 1.6 diff -u -p -r1.6 pvclock.c --- ./dev/pv/pvclock.c 6 Jul 2020 13:33:09 -0000 1.6 +++ ./dev/pv/pvclock.c 19 Feb 2021 02:57:56 -0000 @@ -74,7 +74,14 @@ struct cfdriver pvclock_cd = { }; struct timecounter pvclock_timecounter = { - pvclock_get_timecount, NULL, ~0u, 0, NULL, -2000, NULL, 0 + .tc_get_timecount = pvclock_get_timecount, + .tc_poll_pps = NULL, + .tc_counter_mask = ~0u, + .tc_frequency = 0, + .tc_name = NULL, + .tc_quality = -2000, + .tc_priv = NULL, + .tc_user = 0, }; int Index: ./dev/acpi/acpihpet.c =================================================================== RCS file: /cvs/src/sys/dev/acpi/acpihpet.c,v retrieving revision 1.24 diff -u -p -r1.24 acpihpet.c --- ./dev/acpi/acpihpet.c 6 Jul 2020 13:33:08 -0000 1.24 +++ ./dev/acpi/acpihpet.c 19 Feb 2021 02:57:56 -0000 @@ -40,14 +40,14 @@ void acpihpet_w(bus_space_tag_t _iot, b bus_size_t _ioa, uint64_t _val); static struct timecounter hpet_timecounter = { - acpihpet_gettime, /* get_timecount */ - 0, /* no poll_pps */ - 0xffffffff, /* counter_mask (32 bits) */ - 0, /* frequency */ - 0, /* name */ - 1000, /* quality */ - NULL, /* private bits */ - 0, /* expose to user */ + .tc_get_timecount = acpihpet_gettime, + .tc_poll_pps = 0, + .tc_counter_mask = 0xffffffff, + .tc_frequency = 0, + .tc_name = 0, + .tc_quality = 1000, + .tc_priv = NULL, + .tc_user = 0, }; #define HPET_TIMERS 3 Index: ./dev/acpi/acpitimer.c =================================================================== RCS file: /cvs/src/sys/dev/acpi/acpitimer.c,v retrieving revision 1.13 diff -u -p -r1.13 acpitimer.c --- ./dev/acpi/acpitimer.c 6 Jul 2020 13:33:08 -0000 1.13 +++ ./dev/acpi/acpitimer.c 19 Feb 2021 02:57:56 -0000 @@ -31,14 +31,14 @@ void acpitimerattach(struct device *, st u_int acpi_get_timecount(struct timecounter *tc); static struct timecounter acpi_timecounter = { - acpi_get_timecount, /* get_timecount */ - 0, /* no poll_pps */ - 0x00ffffff, /* counter_mask (24 bits) */ - ACPI_FREQUENCY, /* frequency */ - 0, /* name */ - 1000, /* quality */ - NULL, /* private bits */ - 0, /* expose to user */ + .tc_get_timecount = acpi_get_timecount, + .tc_poll_pps = 0, + .tc_counter_mask = 0x00ffffff, /* 24 bits */ + .tc_frequency = ACPI_FREQUENCY, + .tc_name = 0, + .tc_quality = 1000, + .tc_priv = NULL, + .tc_user = 0, }; struct acpitimer_softc { Index: ./dev/pci/amdpm.c =================================================================== RCS file: /cvs/src/sys/dev/pci/amdpm.c,v retrieving revision 1.36 diff -u -p -r1.36 amdpm.c --- ./dev/pci/amdpm.c 6 Jul 2020 13:33:09 -0000 1.36 +++ ./dev/pci/amdpm.c 19 Feb 2021 02:57:56 -0000 @@ -77,14 +77,14 @@ u_int amdpm_get_timecount(struct timecou #endif static struct timecounter amdpm_timecounter = { - amdpm_get_timecount, /* get_timecount */ - 0, /* no poll_pps */ - 0xffffff, /* counter_mask */ - AMDPM_FREQUENCY, /* frequency */ - "AMDPM", /* name */ - 1000, /* quality */ - NULL, /* private bits */ - 0, /* expose to user */ + .tc_get_timecount = amdpm_get_timecount, + .tc_poll_pps = 0, + .tc_counter_mask = 0xffffff, + .tc_frequency = AMDPM_FREQUENCY, + .tc_name = "AMDPM", + .tc_quality = 1000, + .tc_priv = NULL, + .tc_user = 0, }; #define AMDPM_CONFREG 0x40 Index: ./dev/pci/viapm.c =================================================================== RCS file: /cvs/src/sys/dev/pci/viapm.c,v retrieving revision 1.19 diff -u -p -r1.19 viapm.c --- ./dev/pci/viapm.c 6 Jul 2020 13:33:09 -0000 1.19 +++ ./dev/pci/viapm.c 19 Feb 2021 02:57:56 -0000 @@ -172,14 +172,14 @@ u_int viapm_get_timecount(struct timecou #endif static struct timecounter viapm_timecounter = { - viapm_get_timecount, /* get_timecount */ - 0, /* no poll_pps */ - 0xffffff, /* counter_mask */ - VIAPM_FREQUENCY, /* frequency */ - "VIAPM", /* name */ - 1000, /* quality */ - NULL, /* private bits */ - 0, /* expose to user */ + .tc_get_timecount = viapm_get_timecount, + .tc_poll_pps = 0, + .tc_counter_mask = 0xffffff, + .tc_frequency = VIAPM_FREQUENCY, + .tc_name = "VIAPM", + .tc_quality = 1000, + .tc_priv = NULL, + .tc_user = 0, }; struct timeout viapm_timeout; Index: ./kern/kern_tc.c =================================================================== RCS file: /cvs/src/sys/kern/kern_tc.c,v retrieving revision 1.70 diff -u -p -r1.70 kern_tc.c --- ./kern/kern_tc.c 5 Dec 2020 04:46:34 -0000 1.70 +++ ./kern/kern_tc.c 19 Feb 2021 02:57:56 -0000 @@ -55,7 +55,14 @@ dummy_get_timecount(struct timecounter * } static struct timecounter dummy_timecounter = { - dummy_get_timecount, 0, ~0u, 1000000, "dummy", -1000000, NULL, 0 + .tc_get_timecount = dummy_get_timecount, + .tc_poll_pps = 0, + .tc_counter_mask = ~0u, + .tc_frequency = 1000000, + .tc_name = "dummy", + .tc_quality = -1000000, + .tc_priv = NULL, + .tc_user = 0, }; /*