Merge to iptables-1.3.5
[iptables.git] / include / iptables_common.h
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 };
10
11 /* this is a special 64bit data type that is 8-byte aligned */
12 #define aligned_u64 unsigned long long __attribute__((aligned(8)))
13
14 extern void exit_printhelp() __attribute__((noreturn));
15 extern void exit_tryhelp(int) __attribute__((noreturn));
16 int check_inverse(const char option[], int *invert, int *optind, int argc);
17 extern int string_to_number(const char *, 
18                             unsigned int, 
19                             unsigned int,
20                             unsigned int *);
21 extern int string_to_number_l(const char *, 
22                             unsigned long int, 
23                             unsigned long int,
24                             unsigned long *);
25 extern int string_to_number_ll(const char *, 
26                             unsigned long long int, 
27                             unsigned long long int,
28                             unsigned long long *);
29 extern int iptables_insmod(const char *modname, const char *modprobe);
30 void exit_error(enum exittype, char *, ...)__attribute__((noreturn,
31                                                           format(printf,2,3)));
32 extern const char *program_name, *program_version;
33 extern char *lib_dir;
34
35 #ifdef NO_SHARED_LIBS
36 # ifdef _INIT
37 #  define _init _INIT
38 # endif
39   extern void init_extensions(void);
40 #endif
41
42 #endif /*_IPTABLES_COMMON_H*/