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