From 65f868cac6f7fd5c3ad02046574c19f8f4673255 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 23 May 2018 14:17:25 +0200 Subject: Add _CPU_Counter_frequency() Add rtems_counter_frequency() API function. Use it to initialize the counter value converter via the new system initialization step (RTEMS_SYSINIT_CPU_COUNTER). This decouples the counter implementation and the counter converter. It avoids an unnecessary pull in of the 64-bit integer division from libgcc. Update #3456. --- cpukit/score/cpu/arm/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/bfin/Makefile.am | 1 + cpukit/score/cpu/bfin/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/epiphany/Makefile.am | 1 + cpukit/score/cpu/epiphany/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/i386/Makefile.am | 1 + cpukit/score/cpu/i386/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/lm32/Makefile.am | 1 + cpukit/score/cpu/lm32/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/m32c/Makefile.am | 1 + cpukit/score/cpu/m32c/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/m68k/Makefile.am | 1 + cpukit/score/cpu/m68k/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/mips/Makefile.am | 1 + cpukit/score/cpu/mips/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/moxie/Makefile.am | 1 + cpukit/score/cpu/moxie/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/nios2/Makefile.am | 1 + cpukit/score/cpu/nios2/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/no_cpu/Makefile.am | 1 + cpukit/score/cpu/no_cpu/cpucounterfrequency.c | 20 ++++++++++++++++++++ cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h | 7 +++++++ cpukit/score/cpu/or1k/Makefile.am | 3 ++- cpukit/score/cpu/or1k/include/rtems/score/cpu.h | 4 ++-- cpukit/score/cpu/powerpc/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/riscv/Makefile.am | 1 + cpukit/score/cpu/riscv/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/sh/Makefile.am | 1 + cpukit/score/cpu/sh/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/sparc/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/sparc64/Makefile.am | 1 + cpukit/score/cpu/sparc64/include/rtems/score/cpu.h | 2 ++ cpukit/score/cpu/v850/Makefile.am | 1 + cpukit/score/cpu/v850/include/rtems/score/cpu.h | 2 ++ 34 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 cpukit/score/cpu/no_cpu/cpucounterfrequency.c (limited to 'cpukit/score/cpu') diff --git a/cpukit/score/cpu/arm/include/rtems/score/cpu.h b/cpukit/score/cpu/arm/include/rtems/score/cpu.h index 728a43c528..7ea6980959 100644 --- a/cpukit/score/cpu/arm/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/arm/include/rtems/score/cpu.h @@ -596,6 +596,8 @@ static inline uint16_t CPU_swap_u16( uint16_t value ) typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/bfin/Makefile.am b/cpukit/score/cpu/bfin/Makefile.am index 3d7483a220..7febda59b6 100644 --- a/cpukit/score/cpu/bfin/Makefile.am +++ b/cpukit/score/cpu/bfin/Makefile.am @@ -2,6 +2,7 @@ include $(top_srcdir)/automake/compile.am noinst_LIBRARIES = libscorecpu.a libscorecpu_a_SOURCES = cpu.c cpu_asm.S +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += ../no_cpu/cpucounterread.c libscorecpu_a_SOURCES += bfin-exception-frame-print.c libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/cpukit/score/cpu/bfin/include/rtems/score/cpu.h b/cpukit/score/cpu/bfin/include/rtems/score/cpu.h index d2c2cade08..a361e023ed 100644 --- a/cpukit/score/cpu/bfin/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/bfin/include/rtems/score/cpu.h @@ -982,6 +982,8 @@ static inline uint32_t CPU_swap_u32( typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); static inline CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/epiphany/Makefile.am b/cpukit/score/cpu/epiphany/Makefile.am index 659dd6f554..0c75bcdcd5 100644 --- a/cpukit/score/cpu/epiphany/Makefile.am +++ b/cpukit/score/cpu/epiphany/Makefile.am @@ -8,6 +8,7 @@ libscorecpu_a_SOURCES = cpu.c libscorecpu_a_SOURCES += epiphany-exception-handler.S libscorecpu_a_SOURCES += epiphany-context-switch.S libscorecpu_a_SOURCES += epiphany-context-initialize.c +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += setjmp.S libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/cpukit/score/cpu/epiphany/include/rtems/score/cpu.h b/cpukit/score/cpu/epiphany/include/rtems/score/cpu.h index 8979381259..84565d15d2 100644 --- a/cpukit/score/cpu/epiphany/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/epiphany/include/rtems/score/cpu.h @@ -854,6 +854,8 @@ static inline void _CPU_Context_validate( uintptr_t pattern ) typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); static inline CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/i386/Makefile.am b/cpukit/score/cpu/i386/Makefile.am index fe7fa5582c..b03d8593c4 100644 --- a/cpukit/score/cpu/i386/Makefile.am +++ b/cpukit/score/cpu/i386/Makefile.am @@ -2,6 +2,7 @@ include $(top_srcdir)/automake/compile.am noinst_LIBRARIES = libscorecpu.a libscorecpu_a_SOURCES = cpu.c cpu_asm.S +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += ../no_cpu/cpucounterread.c libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/cpukit/score/cpu/i386/include/rtems/score/cpu.h b/cpukit/score/cpu/i386/include/rtems/score/cpu.h index 42958c00f0..0986663be1 100644 --- a/cpukit/score/cpu/i386/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/i386/include/rtems/score/cpu.h @@ -697,6 +697,8 @@ void _CPU_Exception_frame_print( const CPU_Exception_frame *frame ); typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); static inline CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/lm32/Makefile.am b/cpukit/score/cpu/lm32/Makefile.am index 75bcba5793..795a6be283 100644 --- a/cpukit/score/cpu/lm32/Makefile.am +++ b/cpukit/score/cpu/lm32/Makefile.am @@ -2,6 +2,7 @@ include $(top_srcdir)/automake/compile.am noinst_LIBRARIES = libscorecpu.a libscorecpu_a_SOURCES = cpu.c cpu_asm.S irq.c +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += ../no_cpu/cpucounterread.c libscorecpu_a_SOURCES += lm32-exception-frame-print.c libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/cpukit/score/cpu/lm32/include/rtems/score/cpu.h b/cpukit/score/cpu/lm32/include/rtems/score/cpu.h index f36e00e404..fe8107c51b 100644 --- a/cpukit/score/cpu/lm32/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/lm32/include/rtems/score/cpu.h @@ -1018,6 +1018,8 @@ static inline uint16_t CPU_swap_u16(uint16_t v) typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); static inline CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/m32c/Makefile.am b/cpukit/score/cpu/m32c/Makefile.am index 22bec7fce0..6695d35c77 100644 --- a/cpukit/score/cpu/m32c/Makefile.am +++ b/cpukit/score/cpu/m32c/Makefile.am @@ -3,6 +3,7 @@ include $(top_srcdir)/automake/compile.am noinst_LIBRARIES = libscorecpu.a libscorecpu_a_SOURCES = cpu.c cpu_asm.c context_switch.S context_init.c \ varvects.S +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += ../no_cpu/cpucounterread.c libscorecpu_a_SOURCES += m32c-exception-frame-print.c libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/cpukit/score/cpu/m32c/include/rtems/score/cpu.h b/cpukit/score/cpu/m32c/include/rtems/score/cpu.h index ec0e71c286..c5486e80d6 100644 --- a/cpukit/score/cpu/m32c/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/m32c/include/rtems/score/cpu.h @@ -968,6 +968,8 @@ static inline uint32_t CPU_swap_u32( typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); static inline CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/m68k/Makefile.am b/cpukit/score/cpu/m68k/Makefile.am index 68fd3a253a..e02b4ab600 100644 --- a/cpukit/score/cpu/m68k/Makefile.am +++ b/cpukit/score/cpu/m68k/Makefile.am @@ -4,6 +4,7 @@ noinst_LIBRARIES = libscorecpu.a libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) libscorecpu_a_SOURCES = cpu.c cpu_asm.S +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += ../no_cpu/cpucounterread.c libscorecpu_a_SOURCES += m68k-exception-frame-print.c libscorecpu_a_SOURCES += __m68k_read_tp.c diff --git a/cpukit/score/cpu/m68k/include/rtems/score/cpu.h b/cpukit/score/cpu/m68k/include/rtems/score/cpu.h index 9b140d0da3..459ef8a9cd 100644 --- a/cpukit/score/cpu/m68k/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/m68k/include/rtems/score/cpu.h @@ -679,6 +679,8 @@ void _CPU_Exception_frame_print( typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); static inline CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/mips/Makefile.am b/cpukit/score/cpu/mips/Makefile.am index fe7fa5582c..b03d8593c4 100644 --- a/cpukit/score/cpu/mips/Makefile.am +++ b/cpukit/score/cpu/mips/Makefile.am @@ -2,6 +2,7 @@ include $(top_srcdir)/automake/compile.am noinst_LIBRARIES = libscorecpu.a libscorecpu_a_SOURCES = cpu.c cpu_asm.S +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += ../no_cpu/cpucounterread.c libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/cpukit/score/cpu/mips/include/rtems/score/cpu.h b/cpukit/score/cpu/mips/include/rtems/score/cpu.h index acc4ef81ec..46d1eb28e8 100644 --- a/cpukit/score/cpu/mips/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/mips/include/rtems/score/cpu.h @@ -988,6 +988,8 @@ static inline uint32_t CPU_swap_u32( typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); static inline CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/moxie/Makefile.am b/cpukit/score/cpu/moxie/Makefile.am index 29c9a656c5..d5e8952693 100644 --- a/cpukit/score/cpu/moxie/Makefile.am +++ b/cpukit/score/cpu/moxie/Makefile.am @@ -6,6 +6,7 @@ include $(top_srcdir)/automake/compile.am noinst_LIBRARIES = libscorecpu.a libscorecpu_a_SOURCES = cpu.c moxie-exception-frame-print.c cpu_asm.S +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += ../no_cpu/cpucounterread.c libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/cpukit/score/cpu/moxie/include/rtems/score/cpu.h b/cpukit/score/cpu/moxie/include/rtems/score/cpu.h index 7ab3e373b4..403b05f9fb 100644 --- a/cpukit/score/cpu/moxie/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/moxie/include/rtems/score/cpu.h @@ -835,6 +835,8 @@ static inline uint32_t CPU_swap_u32( typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); static inline CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/nios2/Makefile.am b/cpukit/score/cpu/nios2/Makefile.am index 3d6a35905c..a0ecab3345 100644 --- a/cpukit/score/cpu/nios2/Makefile.am +++ b/cpukit/score/cpu/nios2/Makefile.am @@ -5,6 +5,7 @@ CLEANFILES = noinst_LIBRARIES = libscorecpu.a libscorecpu_a_SOURCES = +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += ../no_cpu/cpucounterread.c libscorecpu_a_SOURCES += nios2-context-initialize.c libscorecpu_a_SOURCES += nios2-context-switch.S diff --git a/cpukit/score/cpu/nios2/include/rtems/score/cpu.h b/cpukit/score/cpu/nios2/include/rtems/score/cpu.h index c7fdb92d01..1d088ed058 100644 --- a/cpukit/score/cpu/nios2/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/nios2/include/rtems/score/cpu.h @@ -353,6 +353,8 @@ static inline uint32_t CPU_swap_u32( uint32_t value ) typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); static inline CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/no_cpu/Makefile.am b/cpukit/score/cpu/no_cpu/Makefile.am index 556d3dea34..0d89f5af2b 100644 --- a/cpukit/score/cpu/no_cpu/Makefile.am +++ b/cpukit/score/cpu/no_cpu/Makefile.am @@ -2,6 +2,7 @@ include $(top_srcdir)/automake/compile.am noinst_LIBRARIES = libscorecpu.a libscorecpu_a_SOURCES = cpu.c cpu_asm.c +libscorecpu_a_SOURCES += cpucounterfrequency.c libscorecpu_a_SOURCES += cpucounterread.c libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/cpukit/score/cpu/no_cpu/cpucounterfrequency.c b/cpukit/score/cpu/no_cpu/cpucounterfrequency.c new file mode 100644 index 0000000000..bbb8c127fe --- /dev/null +++ b/cpukit/score/cpu/no_cpu/cpucounterfrequency.c @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2018 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#include + +uint32_t _CPU_Counter_frequency( void ) +{ + return 1000000000; +} diff --git a/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h b/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h index 5902b4ef36..45edbaa3cf 100644 --- a/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h @@ -1328,6 +1328,13 @@ static inline uint32_t CPU_swap_u32( */ typedef uint32_t CPU_Counter_ticks; +/** + * @brief Returns the current CPU counter frequency in Hz. + * + * @return The current CPU counter frequency in Hz. + */ +uint32_t _CPU_Counter_frequency( void ); + /** * @brief Returns the current CPU counter value. * diff --git a/cpukit/score/cpu/or1k/Makefile.am b/cpukit/score/cpu/or1k/Makefile.am index ac83acf9b3..732f7c3d69 100644 --- a/cpukit/score/cpu/or1k/Makefile.am +++ b/cpukit/score/cpu/or1k/Makefile.am @@ -6,8 +6,9 @@ noinst_LIBRARIES = libscorecpu.a libscorecpu_a_SOURCES = libscorecpu_a_SOURCES += cpu.c -libscorecpu_a_SOURCES += or1k-context-switch.S +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += or1k-context-initialize.c +libscorecpu_a_SOURCES += or1k-context-switch.S libscorecpu_a_SOURCES += or1k-context-validate.S libscorecpu_a_SOURCES += or1k-context-volatile-clobber.S libscorecpu_a_SOURCES += or1k-exception-default.c diff --git a/cpukit/score/cpu/or1k/include/rtems/score/cpu.h b/cpukit/score/cpu/or1k/include/rtems/score/cpu.h index 648a7a6b9c..1dedeb6629 100644 --- a/cpukit/score/cpu/or1k/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/or1k/include/rtems/score/cpu.h @@ -665,8 +665,6 @@ void _CPU_Context_Initialize( #define CPU_MAXIMUM_PROCESSORS 32 #ifndef ASM -typedef uint32_t CPU_Counter_ticks; - typedef struct { uint32_t r[32]; @@ -856,6 +854,8 @@ static inline unsigned int CPU_swap_u32( typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/powerpc/include/rtems/score/cpu.h b/cpukit/score/cpu/powerpc/include/rtems/score/cpu.h index 31e74aba95..db2479b210 100644 --- a/cpukit/score/cpu/powerpc/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/powerpc/include/rtems/score/cpu.h @@ -803,6 +803,8 @@ static inline uint32_t CPU_swap_u32( typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + static inline CPU_Counter_ticks _CPU_Counter_read( void ) { CPU_Counter_ticks value; diff --git a/cpukit/score/cpu/riscv/Makefile.am b/cpukit/score/cpu/riscv/Makefile.am index 3630c038a7..e7714686f2 100644 --- a/cpukit/score/cpu/riscv/Makefile.am +++ b/cpukit/score/cpu/riscv/Makefile.am @@ -2,6 +2,7 @@ include $(top_srcdir)/automake/compile.am noinst_LIBRARIES = libscorecpu.a libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) libscorecpu_a_SOURCES = cpu.c +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += riscv-exception-handler.S libscorecpu_a_SOURCES += riscv-exception-default.c libscorecpu_a_SOURCES += riscv-exception-frame-print.c diff --git a/cpukit/score/cpu/riscv/include/rtems/score/cpu.h b/cpukit/score/cpu/riscv/include/rtems/score/cpu.h index 6f286e0bd8..663dd090f2 100644 --- a/cpukit/score/cpu/riscv/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/riscv/include/rtems/score/cpu.h @@ -474,6 +474,8 @@ static inline void _CPU_Context_validate( uintptr_t pattern ) typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); #ifdef RTEMS_SMP diff --git a/cpukit/score/cpu/sh/Makefile.am b/cpukit/score/cpu/sh/Makefile.am index 6a19ce4cb8..37188443ff 100644 --- a/cpukit/score/cpu/sh/Makefile.am +++ b/cpukit/score/cpu/sh/Makefile.am @@ -2,6 +2,7 @@ include $(top_srcdir)/automake/compile.am noinst_LIBRARIES = libscorecpu.a libscorecpu_a_SOURCES = cpu.c context.c +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += ../no_cpu/cpucounterread.c libscorecpu_a_SOURCES += sh-exception-frame-print.c libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/cpukit/score/cpu/sh/include/rtems/score/cpu.h b/cpukit/score/cpu/sh/include/rtems/score/cpu.h index aeef5defdd..79453bc1ac 100644 --- a/cpukit/score/cpu/sh/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/sh/include/rtems/score/cpu.h @@ -721,6 +721,8 @@ void _CPU_Exception_frame_print( const CPU_Exception_frame *frame ); typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); static inline CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/sparc/include/rtems/score/cpu.h b/cpukit/score/cpu/sparc/include/rtems/score/cpu.h index be02dcf9d3..76c8e429e0 100644 --- a/cpukit/score/cpu/sparc/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc/include/rtems/score/cpu.h @@ -1158,6 +1158,8 @@ static inline uint32_t CPU_swap_u32( typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + typedef CPU_Counter_ticks ( *SPARC_Counter_read )( void ); typedef CPU_Counter_ticks ( *SPARC_Counter_difference )( diff --git a/cpukit/score/cpu/sparc64/Makefile.am b/cpukit/score/cpu/sparc64/Makefile.am index 6cd23f0c95..711036e41a 100644 --- a/cpukit/score/cpu/sparc64/Makefile.am +++ b/cpukit/score/cpu/sparc64/Makefile.am @@ -5,6 +5,7 @@ libscorecpu_a_SOURCES = libscorecpu_a_SOURCES += context.S libscorecpu_a_SOURCES += cpu.c libscorecpu_a_SOURCES += interrupt.S +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += ../no_cpu/cpucounterread.c libscorecpu_a_SOURCES += sparc64-exception-frame-print.c libscorecpu_a_SOURCES += sparc64-syscall.S diff --git a/cpukit/score/cpu/sparc64/include/rtems/score/cpu.h b/cpukit/score/cpu/sparc64/include/rtems/score/cpu.h index 9db7cc3134..f1412e0bbb 100644 --- a/cpukit/score/cpu/sparc64/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc64/include/rtems/score/cpu.h @@ -1032,6 +1032,8 @@ static inline uint32_t CPU_swap_u32( typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); static inline CPU_Counter_ticks _CPU_Counter_difference( diff --git a/cpukit/score/cpu/v850/Makefile.am b/cpukit/score/cpu/v850/Makefile.am index 15867801a5..8db039c9f5 100644 --- a/cpukit/score/cpu/v850/Makefile.am +++ b/cpukit/score/cpu/v850/Makefile.am @@ -3,6 +3,7 @@ include $(top_srcdir)/automake/compile.am noinst_LIBRARIES = libscorecpu.a libscorecpu_a_SOURCES = cpu.c libscorecpu_a_SOURCES += cpu_asm.S +libscorecpu_a_SOURCES += ../no_cpu/cpucounterfrequency.c libscorecpu_a_SOURCES += ../no_cpu/cpucounterread.c libscorecpu_a_SOURCES += v850-exception-frame-print.c libscorecpu_a_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/cpukit/score/cpu/v850/include/rtems/score/cpu.h b/cpukit/score/cpu/v850/include/rtems/score/cpu.h index 620d228146..5c65f8532f 100644 --- a/cpukit/score/cpu/v850/include/rtems/score/cpu.h +++ b/cpukit/score/cpu/v850/include/rtems/score/cpu.h @@ -934,6 +934,8 @@ static inline uint16_t CPU_swap_u16( uint16_t value ) typedef uint32_t CPU_Counter_ticks; +uint32_t _CPU_Counter_frequency( void ); + CPU_Counter_ticks _CPU_Counter_read( void ); static inline CPU_Counter_ticks _CPU_Counter_difference( -- cgit v1.2.3