On 11/28/2020 9:08 AM, Richard Cochran wrote:
> The number of ports is already available in the cached default data
> set.  Use it directly.
> 
> Signed-off-by: Richard Cochran <richardcoch...@gmail.com>
> ---
>  phc2sys.c   |  2 +-
>  pmc_agent.c | 24 ++++++++----------------
>  pmc_agent.h | 11 ++++++++++-
>  3 files changed, 19 insertions(+), 18 deletions(-)
> 
> diff --git a/phc2sys.c b/phc2sys.c
> index 5386cf4..16daa66 100644
> --- a/phc2sys.c
> +++ b/phc2sys.c
> @@ -864,7 +864,7 @@ static int auto_init_ports(struct phc2sys_private *priv, 
> int add_rt)
>               }
>       }
>  
> -     number_ports = run_pmc_get_number_ports(priv->node, 1000);
> +     number_ports = pmc_agent_get_number_ports(priv->node);
>       if (number_ports <= 0) {
>               pr_err("failed to get number of ports");
>               return -1;
> diff --git a/pmc_agent.c b/pmc_agent.c
> index 4c5b18a..d3db975 100644
> --- a/pmc_agent.c
> +++ b/pmc_agent.c
> @@ -229,22 +229,6 @@ int run_pmc_wait_sync(struct pmc_agent *node, int 
> timeout)
>       }
>  }
>  
> -int run_pmc_get_number_ports(struct pmc_agent *node, int timeout)
> -{
> -     struct ptp_message *msg;
> -     int res;
> -     struct defaultDS *dds;
> -
> -     res = run_pmc(node, timeout, TLV_DEFAULT_DATA_SET, &msg);
> -     if (res <= 0)
> -             return res;
> -
> -     dds = (struct defaultDS *) management_tlv_data(msg);
> -     res = dds->numberPorts;
> -     msg_put(msg);
> -     return res;
> -}
> -
>  void run_pmc_events(struct pmc_agent *node)
>  {
>       struct ptp_message *msg;
> @@ -292,6 +276,14 @@ int pmc_agent_get_sync_offset(struct pmc_agent *agent)
>       return agent->sync_offset;
>  }
>  
> +int pmc_agent_get_number_ports(struct pmc_agent *node)
> +{
> +     if (!node->dds_valid) {
> +             return -1;
> +     }
> +     return node->dds.numberPorts;
> +}
> +

Based on your previous patches suggestions, shouldn't this be
"pmc_agent_query_number_ports", considering that this is returning a
cached value?

>  int pmc_agent_query_dds(struct pmc_agent *node, int timeout)
>  {
>       struct ptp_message *msg;
> diff --git a/pmc_agent.h b/pmc_agent.h
> index 2bb3101..abe62f5 100644
> --- a/pmc_agent.h
> +++ b/pmc_agent.h
> @@ -34,7 +34,6 @@ typedef int pmc_node_recv_subscribed_t(void *context, 
> struct ptp_message *msg,
>  int init_pmc_node(struct config *cfg, struct pmc_agent *agent, const char 
> *uds,
>                 pmc_node_recv_subscribed_t *recv_subscribed, void *context);
>  int run_pmc_wait_sync(struct pmc_agent *agent, int timeout);
> -int run_pmc_get_number_ports(struct pmc_agent *agent, int timeout);
>  void run_pmc_events(struct pmc_agent *agent);
>  
>  /**
> @@ -56,6 +55,16 @@ void pmc_agent_destroy(struct pmc_agent *agent);
>   */
>  int pmc_agent_get_leap(struct pmc_agent *agent);
>  
> +/**
> + * Gets the number of local ports from the default data set.  Users
> + * should first call pmc_agent_query_dds() before invoking this
> + * function.
> + *
> + * @param agent  Pointer to a PMC instance obtained via @ref 
> pmc_agent_create().
> + * @return       The non-negative number of ports, or -1 if unknown.
> + */
> +int pmc_agent_get_number_ports(struct pmc_agent *agent);
> +
>  /**
>   * Gets the TAI-UTC offset.
>   * @param agent  Pointer to a PMC instance obtained via @ref 
> pmc_agent_create().
> 


_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to