netfilter: nftables: move nft_expr before nft_set
authorPablo Neira Ayuso <pablo@netfilter.org>
Mon, 7 Dec 2020 16:37:05 +0000 (17:37 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Sat, 12 Dec 2020 10:44:42 +0000 (11:44 +0100)
Move the nft_expr structure definition before nft_set. Expressions are
used by rules and sets, remove unnecessary forward declarations. This
comes as preparation to support for multiple expressions per set element.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/net/netfilter/nf_tables.h

index aad7e13..0f4ae16 100644 (file)
@@ -305,8 +305,33 @@ struct nft_set_estimate {
        enum nft_set_class      space;
 };
 
+#define NFT_EXPR_MAXATTR               16
+#define NFT_EXPR_SIZE(size)            (sizeof(struct nft_expr) + \
+                                        ALIGN(size, __alignof__(struct nft_expr)))
+
+/**
+ *     struct nft_expr - nf_tables expression
+ *
+ *     @ops: expression ops
+ *     @data: expression private data
+ */
+struct nft_expr {
+       const struct nft_expr_ops       *ops;
+       unsigned char                   data[]
+               __attribute__((aligned(__alignof__(u64))));
+};
+
+static inline void *nft_expr_priv(const struct nft_expr *expr)
+{
+       return (void *)expr->data;
+}
+
+int nft_expr_clone(struct nft_expr *dst, struct nft_expr *src);
+void nft_expr_destroy(const struct nft_ctx *ctx, struct nft_expr *expr);
+int nft_expr_dump(struct sk_buff *skb, unsigned int attr,
+                 const struct nft_expr *expr);
+
 struct nft_set_ext;
-struct nft_expr;
 
 /**
  *     struct nft_set_ops - nf_tables set operations
@@ -797,7 +822,6 @@ struct nft_offload_ctx;
  *     @validate: validate expression, called during loop detection
  *     @data: extra data to attach to this expression operation
  */
-struct nft_expr;
 struct nft_expr_ops {
        void                            (*eval)(const struct nft_expr *expr,
                                                struct nft_regs *regs,
@@ -833,32 +857,6 @@ struct nft_expr_ops {
        void                            *data;
 };
 
-#define NFT_EXPR_MAXATTR               16
-#define NFT_EXPR_SIZE(size)            (sizeof(struct nft_expr) + \
-                                        ALIGN(size, __alignof__(struct nft_expr)))
-
-/**
- *     struct nft_expr - nf_tables expression
- *
- *     @ops: expression ops
- *     @data: expression private data
- */
-struct nft_expr {
-       const struct nft_expr_ops       *ops;
-       unsigned char                   data[]
-               __attribute__((aligned(__alignof__(u64))));
-};
-
-static inline void *nft_expr_priv(const struct nft_expr *expr)
-{
-       return (void *)expr->data;
-}
-
-int nft_expr_clone(struct nft_expr *dst, struct nft_expr *src);
-void nft_expr_destroy(const struct nft_ctx *ctx, struct nft_expr *expr);
-int nft_expr_dump(struct sk_buff *skb, unsigned int attr,
-                 const struct nft_expr *expr);
-
 /**
  *     struct nft_rule - nf_tables rule
  *