mirror of
https://git.netfilter.org/libnftnl
synced 2026-01-28 03:14:09 +00:00
Prepare for storing data reg byteorder, no functional change intended. Note the odd case in expr/byteorder.c since there is a local variable with same name already. Signed-off-by: Phil Sutter <phil@nwl.cc>
34 lines
897 B
C
34 lines
897 B
C
#ifndef _EXPR_OPS_H_
|
|
#define _EXPR_OPS_H_
|
|
|
|
#include <stdint.h>
|
|
#include "internal.h"
|
|
|
|
struct nlattr;
|
|
struct nlmsghdr;
|
|
struct nftnl_expr;
|
|
|
|
struct attr_policy {
|
|
uint32_t maxlen;
|
|
};
|
|
|
|
struct expr_ops {
|
|
const char *name;
|
|
uint32_t alloc_len;
|
|
int nftnl_max_attr;
|
|
struct attr_policy *attr_policy;
|
|
void (*init)(const struct nftnl_expr *e);
|
|
void (*free)(const struct nftnl_expr *e);
|
|
int (*set)(struct nftnl_expr *e, uint16_t type, const void *data, uint32_t data_len, uint32_t byteorder);
|
|
const void *(*get)(const struct nftnl_expr *e, uint16_t type, uint32_t *data_len);
|
|
int (*parse)(struct nftnl_expr *e, struct nlattr *attr);
|
|
void (*build)(struct nlmsghdr *nlh, const struct nftnl_expr *e);
|
|
int (*output)(char *buf, size_t len, uint32_t flags, const struct nftnl_expr *e);
|
|
};
|
|
|
|
struct expr_ops *nftnl_expr_ops_lookup(const char *name);
|
|
|
|
#define nftnl_expr_data(ops) (void *)ops->data
|
|
|
|
#endif
|