integ/base/linuxptp/debian/patches/0030-pmc_agent-Simplify-the...

107 lines
3.1 KiB
Diff

From d3b877cae9576beddb00d4c5db67bf49c944b222 Mon Sep 17 00:00:00 2001
From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Mon, 12 Jun 2023 17:30:57 -0300
Subject: [PATCH 30/54] pmc_agent: Simplify the method that gets of the number
of local ports.
The number of ports is already available in the cached default data
set. Use it directly.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>
[commit 6bc9eb81dd254d90b5fe059684271b9beebf6b9b upstream]
Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.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 0f33630..569544e 100644
--- a/phc2sys.c
+++ b/phc2sys.c
@@ -875,7 +875,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 51023d1..aa2347d 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;
@@ -300,6 +284,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;
+}
+
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 9d8bd1c..f0e2c7a 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);
/**
@@ -62,6 +61,16 @@ void pmc_agent_disable(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().
--
2.25.1