mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 09:59:32 +00:00
netfilter: nftables: move nft_expr before nft_set
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>
This commit is contained in:
parent
8cfd9b0f85
commit
92b211a289
1 changed files with 26 additions and 28 deletions
|
@ -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
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue