eal: add function to check lcore role
authorPavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Thu, 21 Sep 2017 10:59:17 +0000 (16:29 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 11 Oct 2017 20:30:16 +0000 (22:30 +0200)
This function can be used to check the role of a specific lcore.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
lib/librte_eal/bsdapp/eal/rte_eal_version.map
lib/librte_eal/common/eal_common_thread.c
lib/librte_eal/common/include/rte_lcore.h
lib/librte_eal/linuxapp/eal/rte_eal_version.map

index de25582..d19f264 100644 (file)
@@ -242,6 +242,7 @@ DPDK_17.11 {
        rte_bus_get_iommu_class;
        rte_eal_iova_mode;
        rte_eal_mbuf_default_mempool_ops;
+       rte_lcore_has_role;
        rte_pci_get_iommu_class;
        rte_pci_match;
 
index 2405e93..55e9696 100644 (file)
@@ -53,6 +53,20 @@ unsigned rte_socket_id(void)
        return RTE_PER_LCORE(_socket_id);
 }
 
+int
+rte_lcore_has_role(unsigned int lcore_id, enum rte_lcore_role_t role)
+{
+       struct rte_config *cfg = rte_eal_get_configuration();
+
+       if (lcore_id >= RTE_MAX_LCORE)
+               return -EINVAL;
+
+       if (cfg->lcore_role[lcore_id] == role)
+               return 0;
+
+       return -EINVAL;
+}
+
 int eal_cpuset_socket_id(rte_cpuset_t *cpusetp)
 {
        unsigned cpu = 0;
index 50e0d0f..c89e6ba 100644 (file)
@@ -262,6 +262,20 @@ void rte_thread_get_affinity(rte_cpuset_t *cpusetp);
  */
 int rte_thread_setname(pthread_t id, const char *name);
 
+/**
+ * Test if the core supplied has a specific role
+ *
+ * @param lcore_id
+ *   The identifier of the lcore, which MUST be between 0 and
+ *   RTE_MAX_LCORE-1.
+ * @param role
+ *   The role to be checked against.
+ * @return
+ *   On success, return 0; otherwise return a negative value.
+ */
+int
+rte_lcore_has_role(unsigned int lcore_id, enum rte_lcore_role_t role);
+
 #ifdef __cplusplus
 }
 #endif
index 146156e..fe186cb 100644 (file)
@@ -246,6 +246,7 @@ DPDK_17.11 {
        rte_bus_get_iommu_class;
        rte_eal_iova_mode;
        rte_eal_mbuf_default_mempool_ops;
+       rte_lcore_has_role;
        rte_pci_get_iommu_class;
        rte_pci_match;