xref: /aosp_15_r20/external/iptables/include/libiptc/xtcshared.h (revision a71a954618bbadd4a345637e5edcf36eec826889)
1*a71a9546SAutomerger Merge Worker #ifndef _LIBXTC_SHARED_H
2*a71a9546SAutomerger Merge Worker #define _LIBXTC_SHARED_H 1
3*a71a9546SAutomerger Merge Worker 
4*a71a9546SAutomerger Merge Worker typedef char xt_chainlabel[32];
5*a71a9546SAutomerger Merge Worker struct xtc_handle;
6*a71a9546SAutomerger Merge Worker struct xt_counters;
7*a71a9546SAutomerger Merge Worker 
8*a71a9546SAutomerger Merge Worker struct xtc_ops {
9*a71a9546SAutomerger Merge Worker 	int (*commit)(struct xtc_handle *);
10*a71a9546SAutomerger Merge Worker 	struct xtc_handle *(*init)(const char *);
11*a71a9546SAutomerger Merge Worker 	void (*free)(struct xtc_handle *);
12*a71a9546SAutomerger Merge Worker 	int (*builtin)(const char *, struct xtc_handle *const);
13*a71a9546SAutomerger Merge Worker 	int (*is_chain)(const char *, struct xtc_handle *const);
14*a71a9546SAutomerger Merge Worker 	int (*flush_entries)(const xt_chainlabel, struct xtc_handle *);
15*a71a9546SAutomerger Merge Worker 	int (*create_chain)(const xt_chainlabel, struct xtc_handle *);
16*a71a9546SAutomerger Merge Worker 	const char *(*first_chain)(struct xtc_handle *);
17*a71a9546SAutomerger Merge Worker 	const char *(*next_chain)(struct xtc_handle *);
18*a71a9546SAutomerger Merge Worker 	const char *(*get_policy)(const char *, struct xt_counters *,
19*a71a9546SAutomerger Merge Worker 				  struct xtc_handle *);
20*a71a9546SAutomerger Merge Worker 	int (*set_policy)(const xt_chainlabel, const xt_chainlabel,
21*a71a9546SAutomerger Merge Worker 			  struct xt_counters *, struct xtc_handle *);
22*a71a9546SAutomerger Merge Worker 	const char *(*strerror)(int);
23*a71a9546SAutomerger Merge Worker };
24*a71a9546SAutomerger Merge Worker 
25*a71a9546SAutomerger Merge Worker #endif /* _LIBXTC_SHARED_H */
26