Sapan says vnet_tun is obsolete.
[iptables.git] / include / xtables / internal.h
1 #ifndef _XTABLES_INTERNAL_H
2 #define _XTABLES_INTERNAL_H 1
3
4 #ifndef XT_LIB_DIR
5 #       define XT_LIB_DIR "/usr/local/lib/iptables"
6 #endif
7
8 /* protocol family dependent informations */
9 struct afinfo {
10         /* protocol family */
11         int family;
12
13         /* prefix of library name (ex "libipt_" */
14         char *libprefix;
15
16         /* used by setsockopt (ex IPPROTO_IP */
17         int ipproto;
18
19         /* kernel module (ex "ip_tables" */
20         char *kmod;
21
22         /* optname to check revision support of match */
23         int so_rev_match;
24
25         /* optname to check revision support of match */
26         int so_rev_target;
27 };
28
29 enum xt_tryload {
30         DONT_LOAD,
31         DURING_LOAD,
32         TRY_LOAD,
33         LOAD_MUST_SUCCEED
34 };
35
36 struct xtables_rule_match {
37         struct xtables_rule_match *next;
38         struct xtables_match *match;
39         /* Multiple matches of the same type: the ones before
40            the current one are completed from parsing point of view */
41         unsigned int completed;
42 };
43
44 extern char *lib_dir;
45
46 extern void *fw_calloc(size_t count, size_t size);
47 extern void *fw_malloc(size_t size);
48
49 extern const char *modprobe_program;
50 extern int xtables_insmod(const char *modname, const char *modprobe, int quiet);
51 extern int load_xtables_ko(const char *modprobe, int quiet);
52
53 /* This is decleared in ip[6]tables.c */
54 extern struct afinfo afinfo;
55
56 /* Keeping track of external matches and targets: linked lists.  */
57 extern struct xtables_match *xtables_matches;
58 extern struct xtables_target *xtables_targets;
59
60 extern struct xtables_match *find_match(const char *name, enum xt_tryload,
61                                         struct xtables_rule_match **match);
62 extern struct xtables_target *find_target(const char *name, enum xt_tryload);
63
64 extern void _init(void);
65
66 #endif /* _XTABLES_INTERNAL_H */