X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_kvargs%2Frte_kvargs.h;fp=lib%2Flibrte_kvargs%2Frte_kvargs.h;h=25e086f01d8a27f2d36af50fb3eeaa92d2c84330;hb=ef8e5447e3a63dd2a0fc025a143aa7bd83d0e602;hp=3540e034ca9bfb4df6ba1b4ed3b8f12704ded8d9;hpb=03b611b7137a0b94bce6ecfa4e5bacd6463d503a;p=dpdk.git diff --git a/lib/librte_kvargs/rte_kvargs.h b/lib/librte_kvargs/rte_kvargs.h index 3540e034ca..25e086f01d 100644 --- a/lib/librte_kvargs/rte_kvargs.h +++ b/lib/librte_kvargs/rte_kvargs.h @@ -70,47 +70,41 @@ struct rte_kvargs_pair { /** Store a list of key/value associations */ struct rte_kvargs { + char *str; /**< copy of the argument string */ unsigned count; /**< number of entries in the list */ struct rte_kvargs_pair pairs[RTE_KVARGS_MAX]; /**< list of key/values */ }; /** - * Initialize an empty rte_kvargs structure + * Allocate a rte_kvargs and store key/value associations from a string * - * Set the content of the rte_kvargs structure given as a parameter - * to an empty list of key/value. + * The function allocates and fills a rte_kvargs structure from a given + * string whose format is key1=value1;key2=value2;... * - * @param kvlist - * The rte_kvargs structure + * The structure can be freed with rte_kvargs_free(). + * + * @param args + * The input string containing the key/value associations + * @param valid_keys + * A list of valid keys (table of const char *, the last must be NULL). + * This argument is ignored if NULL * * @return - * - 0 on success - * - Negative on error + * - A pointer to an allocated rte_kvargs structure on success + * - NULL on error */ -int rte_kvargs_init(struct rte_kvargs *kvlist); +struct rte_kvargs *rte_kvargs_parse(const char *args, const char *valid_keys[]); /** - * Append key/value associations in a rte_kvargs structure from a string + * Free a rte_kvargs structure * - * The function fills a rte_kvargs structure from a string whose format - * is key1=value1;key2=value2;... - * The key/value associations are appended to those which are already - * present in the rte_kvargs structure. + * Free a rte_kvargs structure previously allocated with + * rte_kvargs_parse(). * * @param kvlist * The rte_kvargs structure - * @param args - * The input string containing the key/value associations - * @param valid_keys - * A list of valid keys (table of const char *, the last must be NULL). - * This argument is ignored if NULL - * - * @return - * - 0 on success - * - Negative on error */ -int rte_kvargs_parse(struct rte_kvargs *kvlist, - const char *args, const char *valid_keys[]); +void rte_kvargs_free(struct rte_kvargs *kvlist); /** * Call a handler function for each key/value matching the key