Prepare Open vSwitch 1.1.2 release.
[sliver-openvswitch.git] / datapath / table.h
index 609d9b1..22574be 100644 (file)
@@ -34,7 +34,7 @@ struct tbl_node {
 struct tbl {
        struct rcu_head rcu;
        unsigned int n_buckets;
-       struct tbl_bucket ** __rcu *buckets;
+       struct tbl_bucket __rcu ***buckets;
        unsigned int count;
        void (*obj_destructor)(struct tbl_node *);
 };
@@ -47,6 +47,9 @@ struct tbl {
 #define TBL_L1_SIZE (1 << TBL_L1_BITS)
 #define TBL_L1_SHIFT TBL_L2_BITS
 
+/* For 4 kB pages, this is 1,024 on 32-bit or 512 on 64-bit.  */
+#define TBL_MIN_BUCKETS TBL_L2_SIZE
+
 /* For 4 kB pages, this is 1,048,576 on 32-bit or 262,144 on 64-bit. */
 #define TBL_MAX_BUCKETS (TBL_L1_SIZE * TBL_L2_SIZE)
 
@@ -59,6 +62,7 @@ int tbl_remove(struct tbl *, struct tbl_node *);
 unsigned int tbl_count(struct tbl *);
 int tbl_foreach(struct tbl *,
                int (*callback)(struct tbl_node *, void *aux), void *aux);
+struct tbl_node *tbl_next(struct tbl *, u32 *bucketp, u32 *objp);
 
 int tbl_n_buckets(struct tbl *);
 struct tbl *tbl_expand(struct tbl *);