[PATCH 09/10] dovetail/clock: implement pipeline_timer_name to get name of real device

chensong chensong at tj.kylinos.cn
Tue Jan 12 02:20:35 CET 2021



On 2021年01月11日 14:43, hongzha1 via Xenomai wrote:
> Signed-off-by: hongzha1 <hongzhan.chen at 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);
>





More information about the Xenomai mailing list