diff options
Diffstat (limited to 'cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h')
-rw-r--r-- | cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h | 61 |
1 files changed, 27 insertions, 34 deletions
diff --git a/cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h b/cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h index 81b4441b25..edc03bd074 100644 --- a/cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h +++ b/cpukit/score/cpu/sparc/include/rtems/score/sparcimpl.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 embedded brains GmbH. All rights reserved. + * Copyright (c) 2016, 2018 embedded brains GmbH. All rights reserved. * * embedded brains GmbH * Dornierstr. 4 @@ -21,6 +21,8 @@ extern "C" { #endif /* __cplusplus */ +struct timecounter; + /* * Provides a mutable alias to _SPARC_Counter for use in * _SPARC_Counter_initialize(). The _SPARC_Counter and _SPARC_Counter_mutable @@ -28,40 +30,27 @@ extern "C" { */ extern SPARC_Counter _SPARC_Counter_mutable; -CPU_Counter_ticks _SPARC_Counter_read_address( void ); +void _SPARC_Counter_at_tick_clock( void ); + +CPU_Counter_ticks _SPARC_Counter_read_default( void ); + +CPU_Counter_ticks _SPARC_Counter_read_up( void ); + +CPU_Counter_ticks _SPARC_Counter_read_down( void ); + +CPU_Counter_ticks _SPARC_Counter_read_clock_isr_disabled( void ); + +CPU_Counter_ticks _SPARC_Counter_read_clock( void ); CPU_Counter_ticks _SPARC_Counter_read_asr23( void ); -CPU_Counter_ticks _SPARC_Counter_difference_normal( - CPU_Counter_ticks second, - CPU_Counter_ticks first -); +uint32_t _SPARC_Get_timecount_up( struct timecounter * ); -CPU_Counter_ticks _SPARC_Counter_difference_clock_period( - CPU_Counter_ticks second, - CPU_Counter_ticks first -); +uint32_t _SPARC_Get_timecount_down( struct timecounter * ); -/* - * Returns always a value of one regardless of the parameters. This prevents - * an infinite loop in rtems_counter_delay_ticks(). Its only a reasonably safe - * default. - */ -CPU_Counter_ticks _SPARC_Counter_difference_one( - CPU_Counter_ticks second, - CPU_Counter_ticks first -); - -static inline void _SPARC_Counter_initialize( - SPARC_Counter_read counter_read, - SPARC_Counter_difference counter_difference, - volatile const CPU_Counter_ticks *counter_address -) -{ - _SPARC_Counter_mutable.counter_read = counter_read; - _SPARC_Counter_mutable.counter_difference = counter_difference; - _SPARC_Counter_mutable.counter_address = counter_address; -} +uint32_t _SPARC_Get_timecount_clock( struct timecounter * ); + +uint32_t _SPARC_Get_timecount_asr23( struct timecounter * ); /* * Defines the _SPARC_Counter and _SPARC_Counter_mutable global variables. @@ -75,12 +64,16 @@ static inline void _SPARC_Counter_initialize( "\t.section\t.data._SPARC_Counter,\"aw\",@progbits\n" \ "\t.align\t4\n" \ "\t.type\t_SPARC_Counter, #object\n" \ - "\t.size\t_SPARC_Counter, 12\n" \ + "\t.size\t_SPARC_Counter, 28\n" \ "_SPARC_Counter:\n" \ "_SPARC_Counter_mutable:\n" \ - "\t.long\t_SPARC_Counter_read_address\n" \ - "\t.long\t_SPARC_Counter_difference_one\n" \ - "\t.long\t_SPARC_Counter\n" \ + "\t.long\t_SPARC_Counter_read_default\n" \ + "\t.long\t_SPARC_Counter_read_default\n" \ + "\t.long\t0\n" \ + "\t.long\t0\n" \ + "\t.long\t0\n" \ + "\t.long\t0\n" \ + "\t.long\t0\n" \ "\t.previous\n" \ ) |