Looks Good.
On Fri, Mar 25, 2011 at 3:40 PM, Ben Pfaff <b...@nicira.com> wrote: > --- > lib/netdev-linux.c | 12 ++++++------ > lib/netdev-provider.h | 8 ++++---- > lib/netdev.c | 31 +++++++++++++++---------------- > lib/netdev.h | 10 +++++----- > 4 files changed, 30 insertions(+), 31 deletions(-) > > diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c > index 02d8a4d..af84e5b 100644 > --- a/lib/netdev-linux.c > +++ b/lib/netdev-linux.c > @@ -64,7 +64,7 @@ > #include "rtnetlink-link.h" > #include "socket-util.h" > #include "shash.h" > -#include "svec.h" > +#include "sset.h" > #include "vlog.h" > > VLOG_DEFINE_THIS_MODULE(netdev_linux); > @@ -729,9 +729,9 @@ netdev_linux_close(struct netdev *netdev_) > free(netdev); > } > > -/* Initializes 'svec' with a list of the names of all known network devices. > */ > +/* Initializes 'sset' with a list of the names of all known network devices. > */ > static int > -netdev_linux_enumerate(struct svec *svec) > +netdev_linux_enumerate(struct sset *sset) > { > struct if_nameindex *names; > > @@ -740,7 +740,7 @@ netdev_linux_enumerate(struct svec *svec) > size_t i; > > for (i = 0; names[i].if_name != NULL; i++) { > - svec_add(svec, names[i].if_name); > + sset_add(sset, names[i].if_name); > } > if_freenameindex(names); > return 0; > @@ -1510,14 +1510,14 @@ netdev_linux_set_policing(struct netdev *netdev, > > static int > netdev_linux_get_qos_types(const struct netdev *netdev OVS_UNUSED, > - struct svec *types) > + struct sset *types) > { > const struct tc_ops **opsp; > > for (opsp = tcs; *opsp != NULL; opsp++) { > const struct tc_ops *ops = *opsp; > if (ops->tc_install && ops->ovs_name[0] != '\0') { > - svec_add(types, ops->ovs_name); > + sset_add(types, ops->ovs_name); > } > } > return 0; > diff --git a/lib/netdev-provider.h b/lib/netdev-provider.h > index 1a916f7..c6ebd2a 100644 > --- a/lib/netdev-provider.h > +++ b/lib/netdev-provider.h > @@ -166,7 +166,7 @@ struct netdev_class { > * > * If this netdev class does not support enumeration, this may be a null > * pointer. */ > - int (*enumerate)(struct svec *all_names); > + int (*enumerate)(struct sset *all_names); > > /* Attempts to receive a packet from 'netdev' into the 'size' bytes in > * 'buffer'. If successful, returns the number of bytes in the received > @@ -330,11 +330,11 @@ struct netdev_class { > * this function must not add "" to 'types'. > * > * The caller is responsible for initializing 'types' (e.g. with > - * svec_init()) before calling this function. The caller takes ownership > - * of the strings added to 'types'. > + * sset_init()) before calling this function. The caller retains > ownership > + * of 'types'. > * > * May be NULL if 'netdev' does not support QoS at all. */ > - int (*get_qos_types)(const struct netdev *netdev, struct svec *types); > + int (*get_qos_types)(const struct netdev *netdev, struct sset *types); > > /* Queries 'netdev' for its capabilities regarding the specified 'type' of > * QoS. On success, initializes 'caps' with the QoS capabilities. > diff --git a/lib/netdev.c b/lib/netdev.c > index 4254c1a..bf7ff6a 100644 > --- a/lib/netdev.c > +++ b/lib/netdev.c > @@ -177,18 +177,18 @@ netdev_lookup_provider(const char *type) > } > > /* Clears 'types' and enumerates the types of all currently registered netdev > - * providers into it. The caller must first initialize the svec. */ > + * providers into it. The caller must first initialize the sset. */ > void > -netdev_enumerate_types(struct svec *types) > +netdev_enumerate_types(struct sset *types) > { > struct shash_node *node; > > netdev_initialize(); > - svec_clear(types); > + sset_clear(types); > > SHASH_FOR_EACH(node, &netdev_classes) { > const struct netdev_class *netdev_class = node->data; > - svec_add(types, netdev_class->type); > + sset_add(types, netdev_class->type); > } > } > > @@ -360,20 +360,20 @@ netdev_is_open(const char *name) > return !!shash_find_data(&netdev_dev_shash, name); > } > > -/* Clears 'svec' and enumerates the names of all known network devices. */ > +/* Clears 'sset' and enumerates the names of all known network devices. */ > int > -netdev_enumerate(struct svec *svec) > +netdev_enumerate(struct sset *sset) > { > struct shash_node *node; > int error = 0; > > netdev_initialize(); > - svec_clear(svec); > + sset_clear(sset); > > SHASH_FOR_EACH(node, &netdev_classes) { > const struct netdev_class *netdev_class = node->data; > if (netdev_class->enumerate) { > - int retval = netdev_class->enumerate(svec); > + int retval = netdev_class->enumerate(sset); > if (retval) { > VLOG_WARN("failed to enumerate %s network devices: %s", > netdev_class->type, strerror(retval)); > @@ -964,13 +964,13 @@ netdev_set_policing(struct netdev *netdev, uint32_t > kbits_rate, > * Every network device supports disabling QoS with a type of "", but this > type > * will not be added to 'types'. > * > - * The caller must initialize 'types' (e.g. with svec_init()) before calling > + * The caller must initialize 'types' (e.g. with sset_init()) before calling > * this function. The caller is responsible for destroying 'types' (e.g. with > - * svec_destroy()) when it is no longer needed. > + * sset_destroy()) when it is no longer needed. > * > * Returns 0 if successful, otherwise a positive errno value. */ > int > -netdev_get_qos_types(const struct netdev *netdev, struct svec *types) > +netdev_get_qos_types(const struct netdev *netdev, struct sset *types) > { > const struct netdev_class *class = netdev_get_dev(netdev)->netdev_class; > return (class->get_qos_types > @@ -1258,12 +1258,11 @@ struct netdev * > netdev_find_dev_by_in4(const struct in_addr *in4) > { > struct netdev *netdev; > - struct svec dev_list = SVEC_EMPTY_INITIALIZER; > - size_t i; > + struct sset dev_list = SSET_INITIALIZER(&dev_list); > + const char *name; > > netdev_enumerate(&dev_list); > - for (i = 0; i < dev_list.n; i++) { > - const char *name = dev_list.names[i]; > + SSET_FOR_EACH (name, &dev_list) { > struct in_addr dev_in4; > > if (!netdev_open_default(name, &netdev) > @@ -1276,7 +1275,7 @@ netdev_find_dev_by_in4(const struct in_addr *in4) > netdev = NULL; > > exit: > - svec_destroy(&dev_list); > + sset_destroy(&dev_list); > return netdev; > } > > diff --git a/lib/netdev.h b/lib/netdev.h > index a7deb24..e6fadb0 100644 > --- a/lib/netdev.h > +++ b/lib/netdev.h > @@ -1,5 +1,5 @@ > /* > - * Copyright (c) 2008, 2009, 2010 Nicira Networks. > + * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks. > * > * Licensed under the Apache License, Version 2.0 (the "License"); > * you may not use this file except in compliance with the License. > @@ -35,7 +35,7 @@ struct ofpbuf; > struct in_addr; > struct in6_addr; > struct shash; > -struct svec; > +struct sset; > > enum netdev_flags { > NETDEV_UP = 0x0001, /* Device enabled? */ > @@ -93,7 +93,7 @@ struct netdev_class; > void netdev_run(void); > void netdev_wait(void); > > -void netdev_enumerate_types(struct svec *types); > +void netdev_enumerate_types(struct sset *types); > > /* Open and close. */ > int netdev_open(struct netdev_options *, struct netdev **); > @@ -103,7 +103,7 @@ void netdev_close(struct netdev *); > bool netdev_exists(const char *name); > bool netdev_is_open(const char *name); > > -int netdev_enumerate(struct svec *); > +int netdev_enumerate(struct sset *); > > /* Options. */ > int netdev_set_config(struct netdev *, const struct shash *args); > @@ -173,7 +173,7 @@ struct netdev_queue_stats { > int netdev_set_policing(struct netdev *, uint32_t kbits_rate, > uint32_t kbits_burst); > > -int netdev_get_qos_types(const struct netdev *, struct svec *types); > +int netdev_get_qos_types(const struct netdev *, struct sset *types); > int netdev_get_qos_capabilities(const struct netdev *, > const char *type, > struct netdev_qos_capabilities *); > -- > 1.7.1 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev