cryptodev: uninline parameter parsing
authorThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 24 Jun 2016 15:34:26 +0000 (17:34 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 27 Jun 2016 14:50:27 +0000 (16:50 +0200)
There is no need to have this parsing inlined in the header.
It brings kvargs dependency to every crypto drivers.
The functions are moved into rte_cryptodev.c.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
drivers/crypto/kasumi/rte_kasumi_pmd.c
drivers/crypto/null/Makefile
drivers/crypto/snow3g/rte_snow3g_pmd.c
lib/librte_cryptodev/rte_cryptodev.c
lib/librte_cryptodev/rte_cryptodev.h
lib/librte_cryptodev/rte_cryptodev_version.map

index 0bf415d..5f8c7a2 100644 (file)
@@ -38,7 +38,6 @@
 #include <rte_dev.h>
 #include <rte_malloc.h>
 #include <rte_cpuflags.h>
-#include <rte_kvargs.h>
 
 #include "rte_kasumi_pmd_private.h"
 
index 573894f..35db8b1 100644 (file)
@@ -56,6 +56,5 @@ DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += lib/librte_eal
 DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += lib/librte_mbuf
 DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += lib/librte_cryptodev
 DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += lib/librte_ring
-DEPDIRS-$(CONFIG_RTE_LIBRTE_PMD_NULL_CRYPTO) += lib/librte_kvargs
 
 include $(RTE_SDK)/mk/rte.lib.mk
index 6d59de7..dc8de6b 100644 (file)
@@ -38,7 +38,6 @@
 #include <rte_dev.h>
 #include <rte_malloc.h>
 #include <rte_cpuflags.h>
-#include <rte_kvargs.h>
 
 #include "rte_snow3g_pmd_private.h"
 
index 960e2d5..20e5beb 100644 (file)
@@ -102,6 +102,97 @@ struct rte_cryptodev_callback {
        uint32_t active;                        /**< Callback is executing */
 };
 
+#define RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG               ("max_nb_queue_pairs")
+#define RTE_CRYPTODEV_VDEV_MAX_NB_SESS_ARG             ("max_nb_sessions")
+#define RTE_CRYPTODEV_VDEV_SOCKET_ID                   ("socket_id")
+
+static const char *cryptodev_vdev_valid_params[] = {
+       RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG,
+       RTE_CRYPTODEV_VDEV_MAX_NB_SESS_ARG,
+       RTE_CRYPTODEV_VDEV_SOCKET_ID
+};
+
+static uint8_t
+number_of_sockets(void)
+{
+       int sockets = 0;
+       int i;
+       const struct rte_memseg *ms = rte_eal_get_physmem_layout();
+
+       for (i = 0; ((i < RTE_MAX_MEMSEG) && (ms[i].addr != NULL)); i++) {
+               if (sockets < ms[i].socket_id)
+                       sockets = ms[i].socket_id;
+       }
+
+       /* Number of sockets = maximum socket_id + 1 */
+       return ++sockets;
+}
+
+/** Parse integer from integer argument */
+static int
+parse_integer_arg(const char *key __rte_unused,
+               const char *value, void *extra_args)
+{
+       int *i = (int *) extra_args;
+
+       *i = atoi(value);
+       if (*i < 0) {
+               CDEV_LOG_ERR("Argument has to be positive.");
+               return -1;
+       }
+
+       return 0;
+}
+
+int
+rte_cryptodev_parse_vdev_init_params(struct rte_crypto_vdev_init_params *params,
+               const char *input_args)
+{
+       struct rte_kvargs *kvlist;
+       int ret;
+
+       if (params == NULL)
+               return -EINVAL;
+
+       if (input_args) {
+               kvlist = rte_kvargs_parse(input_args,
+                               cryptodev_vdev_valid_params);
+               if (kvlist == NULL)
+                       return -1;
+
+               ret = rte_kvargs_process(kvlist,
+                                       RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG,
+                                       &parse_integer_arg,
+                                       &params->max_nb_queue_pairs);
+               if (ret < 0)
+                       goto free_kvlist;
+
+               ret = rte_kvargs_process(kvlist,
+                                       RTE_CRYPTODEV_VDEV_MAX_NB_SESS_ARG,
+                                       &parse_integer_arg,
+                                       &params->max_nb_sessions);
+               if (ret < 0)
+                       goto free_kvlist;
+
+               ret = rte_kvargs_process(kvlist, RTE_CRYPTODEV_VDEV_SOCKET_ID,
+                                       &parse_integer_arg,
+                                       &params->socket_id);
+               if (ret < 0)
+                       goto free_kvlist;
+
+               if (params->socket_id >= number_of_sockets()) {
+                       CDEV_LOG_ERR("Invalid socket id specified to create "
+                               "the virtual crypto device on");
+                       goto free_kvlist;
+               }
+       }
+
+       return 0;
+
+free_kvlist:
+       rte_kvargs_free(kvlist);
+       return ret;
+}
 
 const char *
 rte_cryptodev_get_feature_name(uint64_t flag)
index 27cf8ef..7768f0a 100644 (file)
@@ -300,48 +300,6 @@ struct rte_crypto_vdev_init_params {
        uint8_t socket_id;
 };
 
-#define RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG               ("max_nb_queue_pairs")
-#define RTE_CRYPTODEV_VDEV_MAX_NB_SESS_ARG             ("max_nb_sessions")
-#define RTE_CRYPTODEV_VDEV_SOCKET_ID                   ("socket_id")
-
-static const char *cryptodev_vdev_valid_params[] = {
-       RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG,
-       RTE_CRYPTODEV_VDEV_MAX_NB_SESS_ARG,
-       RTE_CRYPTODEV_VDEV_SOCKET_ID
-};
-
-static inline uint8_t
-number_of_sockets(void)
-{
-       int sockets = 0;
-       int i;
-       const struct rte_memseg *ms = rte_eal_get_physmem_layout();
-
-       for (i = 0; ((i < RTE_MAX_MEMSEG) && (ms[i].addr != NULL)); i++) {
-               if (sockets < ms[i].socket_id)
-                       sockets = ms[i].socket_id;
-       }
-
-       /* Number of sockets = maximum socket_id + 1 */
-       return ++sockets;
-}
-
-/** Parse integer from integer argument */
-static inline int
-__rte_cryptodev_parse_integer_arg(const char *key __rte_unused,
-               const char *value, void *extra_args)
-{
-       int *i = (int *) extra_args;
-
-       *i = atoi(value);
-       if (*i < 0) {
-               CDEV_LOG_ERR("Argument has to be positive.");
-               return -1;
-       }
-
-       return 0;
-}
-
 /**
  * Parse virtual device initialisation parameters input arguments
  * @internal
@@ -353,55 +311,10 @@ __rte_cryptodev_parse_integer_arg(const char *key __rte_unused,
  * 0 on successful parse
  * <0 on failure to parse
  */
-static inline int
-rte_cryptodev_parse_vdev_init_params(struct rte_crypto_vdev_init_params *params,
-               const char *input_args)
-{
-       struct rte_kvargs *kvlist;
-       int ret;
-
-       if (params == NULL)
-               return -EINVAL;
-
-       if (input_args) {
-               kvlist = rte_kvargs_parse(input_args,
-                               cryptodev_vdev_valid_params);
-               if (kvlist == NULL)
-                       return -1;
-
-               ret = rte_kvargs_process(kvlist,
-                                       RTE_CRYPTODEV_VDEV_MAX_NB_QP_ARG,
-                                       &__rte_cryptodev_parse_integer_arg,
-                                       &params->max_nb_queue_pairs);
-               if (ret < 0)
-                       goto free_kvlist;
-
-               ret = rte_kvargs_process(kvlist,
-                                       RTE_CRYPTODEV_VDEV_MAX_NB_SESS_ARG,
-                                       &__rte_cryptodev_parse_integer_arg,
-                                       &params->max_nb_sessions);
-               if (ret < 0)
-                       goto free_kvlist;
-
-               ret = rte_kvargs_process(kvlist, RTE_CRYPTODEV_VDEV_SOCKET_ID,
-                                       &__rte_cryptodev_parse_integer_arg,
-                                       &params->socket_id);
-               if (ret < 0)
-                       goto free_kvlist;
-
-               if (params->socket_id >= number_of_sockets()) {
-                       CDEV_LOG_ERR("Invalid socket id specified to create "
-                               "the virtual crypto device on");
-                       goto free_kvlist;
-               }
-       }
-
-       return 0;
-
-free_kvlist:
-       rte_kvargs_free(kvlist);
-       return ret;
-}
+int
+rte_cryptodev_parse_vdev_init_params(
+               struct rte_crypto_vdev_init_params *params,
+               const char *input_args);
 
 /**
  * Create a virtual crypto device
index 41004e1..a08fd20 100644 (file)
@@ -32,3 +32,10 @@ DPDK_16.04 {
 
        local: *;
 };
+
+DPDK_16.07 {
+       global:
+
+       rte_cryptodev_parse_vdev_init_params;
+
+} DPDK_16.04;