1 #ifndef _IPTABLES_COMMON_H 2 #define _IPTABLES_COMMON_H 3 /* Shared definitions between ipv4 and ipv6. */ 4 5 enum exittype { 6 OTHER_PROBLEM = 1, 7 PARAMETER_PROBLEM, 8 VERSION_PROBLEM, 9 RESOURCE_PROBLEM 10 }; 11 12 /* this is a special 64bit data type that is 8-byte aligned */ 13 #define aligned_u64 unsigned long long __attribute__((aligned(8))) 14 15 extern void exit_printhelp(void) __attribute__((noreturn)); 16 extern void exit_tryhelp(int) __attribute__((noreturn)); 17 int check_inverse(const char option[], int *invert, int *optind, int argc); 18 extern int string_to_number(const char *, 19 unsigned int, 20 unsigned int, 21 unsigned int *); 22 extern int string_to_number_l(const char *, 23 unsigned long int, 24 unsigned long int, 25 unsigned long *); 26 extern int string_to_number_ll(const char *, 27 unsigned long long int, 28 unsigned long long int, 29 unsigned long long *); 30 extern int iptables_insmod(const char *modname, const char *modprobe); 31 extern int load_iptables_ko(const char *modprobe); 32 void exit_error(enum exittype, char *, ...)__attribute__((noreturn, 33 format(printf,2,3))); 34 extern const char *program_name, *program_version; 35 extern char *lib_dir; 36 37 #define _init __attribute__((constructor)) my_init 38 #ifdef NO_SHARED_LIBS 39 # ifdef _INIT 40 # undef _init 41 # define _init _INIT 42 # endif 43 extern void init_extensions(void); 44 #endif 45 46 #define __be32 u_int32_t 47 #define __le32 u_int32_t 48 #define __be16 u_int16_t 49 #define __le16 u_int16_t 50 51 #endif /*_IPTABLES_COMMON_H*/ 52