-/* Call with rcu_read_lock held. */
-struct rcu_ht_node *ht_lookup(struct rcu_ht *ht, void *key, size_t key_len);
+/*
+ * cds_lfht_count_nodes - count the number of nodes in the hash table.
+ *
+ * Call with rcu_read_lock held.
+ */
+void cds_lfht_count_nodes(struct cds_lfht *ht,
+ unsigned long *count,
+ unsigned long *removed);
+
+/*
+ * cds_lfht_lookup - lookup a node by key.
+ *
+ * Return NULL if not found.
+ * Call with rcu_read_lock held.
+ */
+struct cds_lfht_node *cds_lfht_lookup(struct cds_lfht *ht, void *key, size_t key_len);
+
+/*
+ * cds_lfht_next - get the next item with same key (after a lookup).
+ *
+ * Return NULL if no following node exists with same key.
+ * RCU read-side lock must be held across cds_lfht_lookup and cds_lfht_next calls, and also
+ * between cds_lfht_next calls using the node returned by a previous cds_lfht_next.
+ * Call with rcu_read_lock held.
+ */
+struct cds_lfht_node *cds_lfht_next(struct cds_lfht *ht, struct cds_lfht_node *node);
+
+/*
+ * cds_lfht_add - add a node to the hash table.
+ *
+ * Call with rcu_read_lock held.
+ */
+void cds_lfht_add(struct cds_lfht *ht, struct cds_lfht_node *node);