107 lines
3.1 KiB
Diff
107 lines
3.1 KiB
Diff
From 7acbb86b5d95709a6d87b898df5783c25fbb2d26 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/57] 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.30.2
|
|
|