From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <thomas@monjalon.net>
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com
 [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id 363F01B209
 for <dev@dpdk.org>; Wed, 10 Oct 2018 00:33:43 +0200 (CEST)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41])
 by mailout.nyi.internal (Postfix) with ESMTP id C63E122028;
 Tue,  9 Oct 2018 18:33:42 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute1.internal (MEProxy); Tue, 09 Oct 2018 18:33:42 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=
 from:to:cc:subject:date:message-id:in-reply-to:references
 :mime-version:content-type:content-transfer-encoding; s=mesmtp;
 bh=ET7Tz4LmbD1BVE9CWVNC8uTfisBGLDmprnxDCoWCzQw=; b=VL60wAymLp1q
 7EBgFOqVCM22ZAhgy55CaB+y/+yBX5y+Ta9/jc38gHfFelBLBNuIvHZh+uZZbx9y
 hfVj4Uu1sBDXlmkW9kcLDHO0BCm7sCd/RmeYmmTcyWWc2Ca4EsyvkWqu/ABqiQ9H
 H3FmjD3sHa2ffSUlu6bHBshl6NEYQTU=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-transfer-encoding:content-type
 :date:from:in-reply-to:message-id:mime-version:references
 :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender
 :x-sasl-enc; s=fm1; bh=ET7Tz4LmbD1BVE9CWVNC8uTfisBGLDmprnxDCoWCz
 Qw=; b=OZeAceuCutW/S65VPvBwq9+kfOZiB6B3ozvGL1S/EDCHnhP+Yt3c8OpNH
 LdpMTNqXYDt4WA1g3Gqz8ncQPGYoViYNME9vTMOWwEcdaZJaLAhgWA1+4Xp2AI8g
 VbItPreyZlAoDQMK1OJpmcUz220CurrvQXunO4M6DBfJr/0ZtTeUU9q5tOsZIlI4
 PzLzJtPnMwY5cyDRSOGlQlYJ3zW5/2tSgX9w+W+RSP0jtua5VmSJGEievu1e2nUr
 ye+KN2wS+JHdRLQFV6YU87WdyibIpbx8ttUhdHpjk/eXh6hI83eTE5Fwj5hbJkQj
 +KEo1KGOTFWzD5txmlGASwkTEcgxw==
X-ME-Sender: <xms:xiy9WzsqiCqXxl2tZnn97GcYYP9LjMIcruUn6KooVOaj6JK2cFT33g>
X-ME-Proxy: <xmx:xiy9W9uYRYYKxSjnaZPiAYHySnNujUGPfX9IiLtpSaeGwxxDq-zNrQ>
 <xmx:xiy9WykiuZFbOARHzT98unNIVyx7bj3ftTeZhfXrJ_DwDAqE_X6How>
 <xmx:xiy9W6B9pSmqRkOLtUWDDGrU0h2xKveZn8LPZzK3aD_sGrMBFQO_-Q>
 <xmx:xiy9WzSit03bFljXO1zmxhp1_Da1P57H0JSh_f9pISJbtVWvqdISTA>
 <xmx:xiy9WyK_Wgn5pNvQi4TI30sqjzuDOB8AKiQ24sK0fWV45yRN6OgpdQ>
 <xmx:xiy9W7v_ilWVkiH0nCCmXdOPbjotbbntYM1mLQ5oplzcloZwfDT3YA>
Received: from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184])
 by mail.messagingengine.com (Postfix) with ESMTPA id AFB26102EA;
 Tue,  9 Oct 2018 18:33:41 -0400 (EDT)
From: Thomas Monjalon <thomas@monjalon.net>
To: dev@dpdk.org
Cc: gaetan.rivet@6wind.com, ophirmu@mellanox.com, ferruh.yigit@intel.com,
 arybchenko@solarflare.com
Date: Wed, 10 Oct 2018 00:33:33 +0200
Message-Id: <20181009223338.18307-2-thomas@monjalon.net>
X-Mailer: git-send-email 2.19.0
In-Reply-To: <20181009223338.18307-1-thomas@monjalon.net>
References: <20181007222554.4886-1-thomas@monjalon.net>
 <20181009223338.18307-1-thomas@monjalon.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Subject: [dpdk-dev] [PATCH v4 1/6] bus/vdev: add iteration filter on name
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 09 Oct 2018 22:33:43 -0000

A virtual device can be matched with following syntax:
	bus=vdev,name=X

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
 drivers/bus/vdev/vdev_params.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/drivers/bus/vdev/vdev_params.c b/drivers/bus/vdev/vdev_params.c
index da270f2ec..6f74704d1 100644
--- a/drivers/bus/vdev/vdev_params.c
+++ b/drivers/bus/vdev/vdev_params.c
@@ -2,6 +2,8 @@
  * Copyright 2018 Gaƫtan Rivet
  */
 
+#include <string.h>
+
 #include <rte_dev.h>
 #include <rte_bus.h>
 #include <rte_kvargs.h>
@@ -11,10 +13,12 @@
 #include "vdev_private.h"
 
 enum vdev_params {
+	RTE_VDEV_PARAM_NAME,
 	RTE_VDEV_PARAM_MAX,
 };
 
 static const char * const vdev_params_keys[] = {
+	[RTE_VDEV_PARAM_NAME] = "name",
 	[RTE_VDEV_PARAM_MAX] = NULL,
 };
 
@@ -22,10 +26,21 @@ static int
 vdev_dev_match(const struct rte_device *dev,
 	       const void *_kvlist)
 {
+	int ret;
 	const struct rte_kvargs *kvlist = _kvlist;
+	char *name;
+
+	/* cannot pass const dev->name to rte_kvargs_process() */
+	name = strdup(dev->name);
+	if (name == NULL)
+		return -1;
+	ret = rte_kvargs_process(kvlist,
+		vdev_params_keys[RTE_VDEV_PARAM_NAME],
+		rte_kvargs_strcmp, name);
+	free(name);
+	if (ret != 0)
+		return -1;
 
-	(void) kvlist;
-	(void) dev;
 	return 0;
 }
 
-- 
2.19.0