12325c0fedf7507f94aa3bb11cc65a70d33836f8fJan Engelhardt#ifndef _LIBXTC_SHARED_H
22325c0fedf7507f94aa3bb11cc65a70d33836f8fJan Engelhardt#define _LIBXTC_SHARED_H 1
32325c0fedf7507f94aa3bb11cc65a70d33836f8fJan Engelhardt
42325c0fedf7507f94aa3bb11cc65a70d33836f8fJan Engelhardttypedef char xt_chainlabel[32];
51639fe86579f86f5f6a954a9b0adde2e16ad1980Jan Engelhardtstruct xtc_handle;
6de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardtstruct xt_counters;
7de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardt
8de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardtstruct xtc_ops {
9de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardt	int (*commit)(struct xtc_handle *);
10de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardt	void (*free)(struct xtc_handle *);
11de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardt	int (*builtin)(const char *, struct xtc_handle *const);
12de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardt	int (*is_chain)(const char *, struct xtc_handle *const);
13de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardt	int (*flush_entries)(const xt_chainlabel, struct xtc_handle *);
14de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardt	int (*create_chain)(const xt_chainlabel, struct xtc_handle *);
15de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardt	int (*set_policy)(const xt_chainlabel, const xt_chainlabel,
16de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardt			  struct xt_counters *, struct xtc_handle *);
17de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardt	const char *(*strerror)(int);
18de4d2d3b716d83a6d3831aaf902c5adb5d1d14c9Jan Engelhardt};
192325c0fedf7507f94aa3bb11cc65a70d33836f8fJan Engelhardt
202325c0fedf7507f94aa3bb11cc65a70d33836f8fJan Engelhardt#endif /* _LIBXTC_SHARED_H */
21