11ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger#ifndef _IPTABLES_COMMON_H
21ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger#define _IPTABLES_COMMON_H
31ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger/* Shared definitions between ipv4 and ipv6. */
41ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger
51ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemmingerenum exittype {
61ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger	OTHER_PROBLEM = 1,
71ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger	PARAMETER_PROBLEM,
8de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger	VERSION_PROBLEM,
9de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger	RESOURCE_PROBLEM
101ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger};
11de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger
12de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger/* this is a special 64bit data type that is 8-byte aligned */
13de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger#define aligned_u64 unsigned long long __attribute__((aligned(8)))
14de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger
156560dbb89b08c8821b9fa5affa7a249952900a39Stephen Hemmingerextern void exit_printhelp(void) __attribute__((noreturn));
161ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemmingerextern void exit_tryhelp(int) __attribute__((noreturn));
171ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemmingerint check_inverse(const char option[], int *invert, int *optind, int argc);
18de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemmingerextern int string_to_number(const char *,
19de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger			    unsigned int,
201ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger			    unsigned int,
211ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger			    unsigned int *);
22de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemmingerextern int string_to_number_l(const char *,
23de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger			    unsigned long int,
241ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger			    unsigned long int,
251ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger			    unsigned long *);
26de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemmingerextern int string_to_number_ll(const char *,
27de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger			    unsigned long long int,
281ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger			    unsigned long long int,
291ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger			    unsigned long long *);
301ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemmingerextern int iptables_insmod(const char *modname, const char *modprobe);
31de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemmingerextern int load_iptables_ko(const char *modprobe);
321ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemmingervoid exit_error(enum exittype, char *, ...)__attribute__((noreturn,
331ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger							  format(printf,2,3)));
341ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemmingerextern const char *program_name, *program_version;
35b6d5f02e456b81c48809b2424f08741011623c24osdl.net!shemmingerextern char *lib_dir;
361ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger
37de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger#define _init __attribute__((constructor)) my_init
381ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger#ifdef NO_SHARED_LIBS
391ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger# ifdef _INIT
40de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger#  undef _init
411ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger#  define _init _INIT
421ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger# endif
431ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger  extern void init_extensions(void);
441ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger#endif
451ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger
46de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger#define __be32	u_int32_t
47de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger#define __le32	u_int32_t
48de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger#define __be16	u_int16_t
49de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger#define __le16	u_int16_t
50de539ecf6cc04530ee88839722be700fd1b0db01Stephen Hemminger
511ffd7fd23eeaff57eb3b83b9dbbbda89ddf030e3net[shemminger]!shemminger#endif /*_IPTABLES_COMMON_H*/
52