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