On 2021年01月11日 14:43, hongzha1 via Xenomai wrote:
Signed-off-by: hongzha1 <hongzhan.c...@intel.com> --- include/cobalt/kernel/dovetail/pipeline/clock.h | 5 ++--- kernel/cobalt/dovetail/tick.c | 8 ++++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/cobalt/kernel/dovetail/pipeline/clock.h b/include/cobalt/kernel/dovetail/pipeline/clock.h index ce9a5c867..771104ab4 100644 --- a/include/cobalt/kernel/dovetail/pipeline/clock.h +++ b/include/cobalt/kernel/dovetail/pipeline/clock.h @@ -12,6 +12,7 @@ struct timespec64; extern inline void xnproxy_timer_set(unsigned long delta); +inline const char *xn_get_timer_name(void); static inline u64 pipeline_read_cycle_counter(void) { @@ -37,9 +38,7 @@ static inline const char *pipeline_timer_name(void) * Return the name of the current clock event chip, which is * the real device controlled by the proxy tick device. */ - TODO(); - - return "?"; + return xn_get_timer_name(); }
PATCH 02/10, PATCH 08/10 and this one, all of them have the changes for pipeline_read_cycle_counter in include/cobalt/kernel/dovetail/pipeline/clock.h, and they look different, how so? or they are incremental implementation,but PATCH 02/10 returns ktime_get_raw_fast_ns() and PATCH 09/10 returns xn_get_timer_name();.
static inline const char *pipeline_clock_name(void) diff --git a/kernel/cobalt/dovetail/tick.c b/kernel/cobalt/dovetail/tick.c index 58662e94e..e40ec06cb 100644 --- a/kernel/cobalt/dovetail/tick.c +++ b/kernel/cobalt/dovetail/tick.c @@ -16,6 +16,14 @@ extern struct xnintr nktimer; static DEFINE_PER_CPU(struct clock_proxy_device *, proxy_device); +inline const char *xn_get_timer_name(void) +{ + struct clock_proxy_device *dev = __this_cpu_read(proxy_device); + struct clock_event_device *real_dev = dev->real_device; + + return real_dev->name; +} + inline void xnproxy_timer_set(unsigned long delta) { struct clock_proxy_device *dev = __this_cpu_read(proxy_device);