From 26c945057d742fc4b0f4dfdc07849074cb9264c1 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Fri, 13 Feb 2015 18:01:02 +0100 Subject: src: split internal.h is smaller files The internal.h file started being a small file with private definitions. Its size has been increasing over time more and more, so let's split this in small header files that map to the corresponding class where the functions belong to. Signed-off-by: Pablo Neira Ayuso --- include/expr_ops.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 include/expr_ops.h (limited to 'include/expr_ops.h') diff --git a/include/expr_ops.h b/include/expr_ops.h new file mode 100644 index 0000000..ea5defd --- /dev/null +++ b/include/expr_ops.h @@ -0,0 +1,34 @@ +#ifndef _EXPR_OPS_H_ +#define _EXPR_OPS_H_ + +#include +#include "internal.h" + +struct nlattr; +struct nlmsghdr; +struct nft_rule_expr; + +struct expr_ops { + struct list_head head; + + const char *name; + uint32_t alloc_len; + int max_attr; + void (*free)(struct nft_rule_expr *e); + int (*set)(struct nft_rule_expr *e, uint16_t type, const void *data, uint32_t data_len); + const void *(*get)(const struct nft_rule_expr *e, uint16_t type, uint32_t *data_len); + int (*parse)(struct nft_rule_expr *e, struct nlattr *attr); + void (*build)(struct nlmsghdr *nlh, struct nft_rule_expr *e); + int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, struct nft_rule_expr *e); + int (*xml_parse)(struct nft_rule_expr *e, mxml_node_t *tree, + struct nft_parse_err *err); + int (*json_parse)(struct nft_rule_expr *e, json_t *data, + struct nft_parse_err *err); +}; + +void nft_expr_ops_register(struct expr_ops *ops); +struct expr_ops *nft_expr_ops_lookup(const char *name); + +#define nft_expr_data(ops) (void *)ops->data + +#endif -- cgit v1.2.3