blob: 9099667ffa6d32a572764f3a1acab287853fd1b8 [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001#ifndef _IPTABLES_COMMON_H
2#define _IPTABLES_COMMON_H
3/* Shared definitions between ipv4 and ipv6. */
4
5enum 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
15extern void exit_printhelp(void) __attribute__((noreturn));
16extern void exit_tryhelp(int) __attribute__((noreturn));
17int check_inverse(const char option[], int *invert, int *optind, int argc);
18extern int string_to_number(const char *,
19 unsigned int,
20 unsigned int,
21 unsigned int *);
22extern int string_to_number_l(const char *,
23 unsigned long int,
24 unsigned long int,
25 unsigned long *);
26extern int string_to_number_ll(const char *,
27 unsigned long long int,
28 unsigned long long int,
29 unsigned long long *);
30extern int iptables_insmod(const char *modname, const char *modprobe);
31extern int load_iptables_ko(const char *modprobe);
32void exit_error(enum exittype, char *, ...)__attribute__((noreturn,
33 format(printf,2,3)));
34extern const char *program_name, *program_version;
35extern 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*/