From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wi0-f174.google.com (mail-wi0-f174.google.com [209.85.212.174]) by dpdk.org (Postfix) with ESMTP id 2F36A6AC6 for ; Fri, 28 Feb 2014 18:24:55 +0100 (CET) Received: by mail-wi0-f174.google.com with SMTP id f8so1027245wiw.7 for ; Fri, 28 Feb 2014 09:26:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=rwsiZF1s9ErDv6wga1fytNUeCvCs+nPojLCKuqGqbbE=; b=hDRHTEchTzubpLMdN53RiNh43KslsQS6A5mf0E4691gnO4IlN7qQmlMpJLjLkVGMkZ xdZFJ4MPHYeNlsB0FFje+L3/pqLL3xHZDjrzHjd+3QsrnoVsySFwGzxRN2qEAczN2fsp 3fj1MTtlfALPEN+VUhoSkQmDAeg0BYsWDYp8y7uHufBDOsJvXAc4tnMCJYxpbq+pxg1Q Jrk36iqjmjVh9H9jHYZhHdhg5UOr0YomzaufqBSD7X87PpPXjYpjKAQ8FStrKX/RNRVH H0WSeCJi+TL+RtHJueiUbSM3XX/EeTod7e+5pngEbcva7l0DUcEsqCLk7GYnBeCa7ZUw 82fg== X-Gm-Message-State: ALoCoQnanGSqntUlKR3KyUyycR8UdXvrz9Pg4nzJmBVzGf8h9xrW37FLuwD0wym9MFrB9tSyMsT+ X-Received: by 10.195.13.103 with SMTP id ex7mr3862028wjd.3.1393608382106; Fri, 28 Feb 2014 09:26:22 -0800 (PST) Received: from glumotte.dev.6wind.com (guy78-3-82-239-227-177.fbx.proxad.net. [82.239.227.177]) by mx.google.com with ESMTPSA id hy8sm5908439wjb.2.2014.02.28.09.26.20 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 28 Feb 2014 09:26:21 -0800 (PST) From: Olivier Matz To: dev@dpdk.org Date: Fri, 28 Feb 2014 18:25:47 +0100 Message-Id: <1393608350-4431-9-git-send-email-olivier.matz@6wind.com> X-Mailer: git-send-email 1.8.5.3 In-Reply-To: <1393608350-4431-1-git-send-email-olivier.matz@6wind.com> References: <1393608350-4431-1-git-send-email-olivier.matz@6wind.com> Subject: [dpdk-dev] [PATCH 08/11] device-args: use a comma instead of semicolon to separate key/values X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Feb 2014 17:24:55 -0000 This commit changes the API of --use-device. It changes the separator used between each key/value pairs from ';' to ','. Indeed, ';' was not the best choice as this character is also used to separate shell commands, forcing the user to surround arguments with quotes. Signed-off-by: Olivier Matz --- app/test/test_devargs.c | 10 +++++----- app/test/test_eal_flags.c | 4 ++-- app/test/test_kvargs.c | 14 +++++++------- lib/librte_eal/common/eal_common_devargs.c | 4 ++-- lib/librte_eal/common/include/rte_devargs.h | 8 ++++---- lib/librte_eal/linuxapp/eal/eal.c | 2 +- lib/librte_kvargs/rte_kvargs.h | 6 +++--- 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/app/test/test_devargs.c b/app/test/test_devargs.c index 4d45d53..f5451b2 100644 --- a/app/test/test_devargs.c +++ b/app/test/test_devargs.c @@ -68,7 +68,7 @@ test_devargs(void) goto fail; if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, "0000:5:00.0") < 0) goto fail; - if (rte_eal_devargs_add(RTE_DEVTYPE_BLACKLISTED_PCI, "04:00.0;arg=val") < 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_BLACKLISTED_PCI, "04:00.0,arg=val") < 0) goto fail; if (rte_eal_devargs_add(RTE_DEVTYPE_BLACKLISTED_PCI, "0000:01:00.1") < 0) goto fail; @@ -80,20 +80,20 @@ test_devargs(void) goto fail; if (rte_eal_devargs_add(RTE_DEVTYPE_VIRTUAL, "eth_ring0") < 0) goto fail; - if (rte_eal_devargs_add(RTE_DEVTYPE_VIRTUAL, "eth_ring1;key=val;k2=val2") < 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_VIRTUAL, "eth_ring1,key=val,k2=val2") < 0) goto fail; if (rte_eal_devargs_type_count(RTE_DEVTYPE_VIRTUAL) != 2) goto fail; free_devargs_list(); /* check virtual device with argument parsing */ - if (rte_eal_devargs_add(RTE_DEVTYPE_VIRTUAL, "eth_ring1;k1=val;k2=val2") < 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_VIRTUAL, "eth_ring1,k1=val,k2=val2") < 0) goto fail; devargs = TAILQ_FIRST(&devargs_list); if (strncmp(devargs->virtual.drv_name, "eth_ring1", sizeof(devargs->virtual.drv_name) != 0)) goto fail; - if (strncmp(devargs->args, "k1=val;k2=val2", sizeof(devargs->args) != 0)) + if (strncmp(devargs->args, "k1=val,k2=val2", sizeof(devargs->args) != 0)) goto fail; free_devargs_list(); @@ -117,7 +117,7 @@ test_devargs(void) goto fail; if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, "foo") == 0) goto fail; - if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, ";") == 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, ",") == 0) goto fail; if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, "000f:0:0") == 0) goto fail; diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c index 9bab1a5..45d3d02 100644 --- a/app/test/test_eal_flags.c +++ b/app/test/test_eal_flags.c @@ -313,8 +313,8 @@ test_whitelist_flag(void) const char *wlval2[] = {prgname, prefix, mp_flag, "-n", "1", "-c", "1", use_device, "09:0B.3", use_device, "0a:0b.1"}; const char *wlval3[] = {prgname, prefix, mp_flag, "-n", "1", "-c", "1", - use_device, "09:0B.3;type=test", - use_device, "08:00.1;type=normal"}; + use_device, "09:0B.3,type=test", + use_device, "08:00.1,type=normal"}; for (i = 0; i < sizeof(wlinval) / sizeof(wlinval[0]); i++) { if (launch_proc(wlinval[i]) == 0) { diff --git a/app/test/test_kvargs.c b/app/test/test_kvargs.c index 2db9d08..c417ba2 100644 --- a/app/test/test_kvargs.c +++ b/app/test/test_kvargs.c @@ -84,7 +84,7 @@ static int test_valid_kvargs(void) rte_kvargs_free(kvlist); /* first test without valid_keys */ - args = "foo=1234;check=value0;check=value1"; + args = "foo=1234,check=value0,check=value1"; valid_keys = NULL; kvlist = rte_kvargs_parse(args, valid_keys); if (kvlist == NULL) { @@ -145,7 +145,7 @@ static int test_valid_kvargs(void) rte_kvargs_free(kvlist); /* second test using valid_keys */ - args = "foo=droids;check=value0;check=value1;check=wrong_value"; + args = "foo=droids,check=value0,check=value1,check=wrong_value"; valid_keys = valid_keys_list; kvlist = rte_kvargs_parse(args, valid_keys); if (kvlist == NULL) { @@ -190,11 +190,11 @@ static int test_invalid_kvargs(void) /* list of argument that should fail */ const char *args_list[] = { "wrong-key=x", /* key not in valid_keys_list */ - "foo=1;foo=", /* empty value */ - "foo=1;;foo=2", /* empty key/value */ - "foo=1;foo", /* no value */ - "foo=1;=2", /* no key */ - ";=", /* also test with a smiley */ + "foo=1,foo=", /* empty value */ + "foo=1,,foo=2", /* empty key/value */ + "foo=1,foo", /* no value */ + "foo=1,=2", /* no key */ + ",=", /* also test with a smiley */ NULL }; const char **args; const char *valid_keys_list[] = { "foo", "check", NULL }; diff --git a/lib/librte_eal/common/eal_common_devargs.c b/lib/librte_eal/common/eal_common_devargs.c index de4ac6c..3d6656a 100644 --- a/lib/librte_eal/common/eal_common_devargs.c +++ b/lib/librte_eal/common/eal_common_devargs.c @@ -70,8 +70,8 @@ rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str) memset(devargs, 0, sizeof(*devargs)); devargs->type = devtype; - /* set the first ';' to '\0' to split name and arguments */ - sep = strchr(buf, ';'); + /* set the first ',' to '\0' to split name and arguments */ + sep = strchr(buf, ','); if (sep != NULL) { sep[0] = '\0'; snprintf(devargs->args, sizeof(devargs->args), "%s", sep + 1); diff --git a/lib/librte_eal/common/include/rte_devargs.h b/lib/librte_eal/common/include/rte_devargs.h index fbfbe45..6dd901a 100644 --- a/lib/librte_eal/common/include/rte_devargs.h +++ b/lib/librte_eal/common/include/rte_devargs.h @@ -96,12 +96,12 @@ extern struct rte_devargs_list devargs_list; * Add a device to the user device list * * For PCI devices, the format of arguments string is "PCI_ADDR" or - * "PCI_ADDR;key=val;key2=val2;...". Examples: "08:00.1", "0000:5:00.0", - * "04:00.0;arg=val". + * "PCI_ADDR,key=val,key2=val2,...". Examples: "08:00.1", "0000:5:00.0", + * "04:00.0,arg=val". * * For virtual devices, the format of arguments string is "DRIVER_NAME*" - * or "DRIVER_NAME*;key=val;key2=val2;...". Examples: "eth_ring", - * "eth_ring0", "eth_pmdAnything;arg=0:arg2=1". The validity of the + * or "DRIVER_NAME*,key=val,key2=val2,...". Examples: "eth_ring", + * "eth_ring0", "eth_pmdAnything,arg=0:arg2=1". The validity of the * driver name is not checked by this function, it is done when probing * the drivers. * diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index 6502755..67b2097 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -612,7 +612,7 @@ eal_parse_use_device(const char *optarg) return -1; /* remove arguments in 'dup' string */ - sep = strchr(dup, ';'); + sep = strchr(dup, ','); if (sep != NULL) *sep = '\0'; diff --git a/lib/librte_kvargs/rte_kvargs.h b/lib/librte_kvargs/rte_kvargs.h index 71c9630..ef4efab 100644 --- a/lib/librte_kvargs/rte_kvargs.h +++ b/lib/librte_kvargs/rte_kvargs.h @@ -40,7 +40,7 @@ * RTE Argument parsing * * This module can be used to parse arguments whose format is - * key1=value1;key2=value2;key3=value3;... + * key1=value1,key2=value2,key3=value3,... * * The same key can appear several times with the same or a different * value. Indeed, the arguments are stored as a list of key/values @@ -58,7 +58,7 @@ extern "C" { #define RTE_KVARGS_MAX 32 /** separator character used between each pair */ -#define RTE_KVARGS_PAIRS_DELIM ";" +#define RTE_KVARGS_PAIRS_DELIM "," /** separator character used between key and value */ #define RTE_KVARGS_KV_DELIM "=" @@ -83,7 +83,7 @@ struct rte_kvargs { * Allocate a rte_kvargs and store key/value associations from a string * * The function allocates and fills a rte_kvargs structure from a given - * string whose format is key1=value1;key2=value2;... + * string whose format is key1=value1,key2=value2,... * * The structure can be freed with rte_kvargs_free(). * -- 1.8.5.3