summaryrefslogtreecommitdiffstats
path: root/src/table.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/table.c')
-rw-r--r--src/table.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/table.c b/src/table.c
index f21a6ed..3e8d4c9 100644
--- a/src/table.c
+++ b/src/table.c
@@ -409,6 +409,22 @@ void nft_table_list_add(struct nft_table *r, struct nft_table_list *list)
}
EXPORT_SYMBOL(nft_table_list_add);
+int nft_table_list_foreach(struct nft_table_list *table_list,
+ int (*cb)(struct nft_table *t, void *data),
+ void *data)
+{
+ struct nft_table *cur, *tmp;
+ int ret;
+
+ list_for_each_entry_safe(cur, tmp, &table_list->list, head) {
+ ret = cb(cur, data);
+ if (ret < 0)
+ return ret;
+ }
+ return 0;
+}
+EXPORT_SYMBOL(nft_table_list_foreach);
+
struct nft_table_list_iter {
struct nft_table_list *list;
struct nft_table *cur;