| /**************************************************************************** |
| **************************************************************************** |
| *** |
| *** This header was automatically generated from a Linux kernel header |
| *** of the same name, to make information necessary for userspace to |
| *** call into the kernel available to libc. It contains only constants, |
| *** structures, and macros generated from the original header, and thus, |
| *** contains no copyrightable information. |
| *** |
| **************************************************************************** |
| ****************************************************************************/ |
| #ifndef _X_TABLES_H |
| #define _X_TABLES_H |
| |
| #define XT_FUNCTION_MAXNAMELEN 30 |
| #define XT_TABLE_MAXNAMELEN 32 |
| |
| struct xt_entry_match |
| { |
| union { |
| struct { |
| u_int16_t match_size; |
| |
| char name[XT_FUNCTION_MAXNAMELEN-1]; |
| |
| u_int8_t revision; |
| } user; |
| struct { |
| u_int16_t match_size; |
| |
| struct xt_match *match; |
| } kernel; |
| |
| u_int16_t match_size; |
| } u; |
| |
| unsigned char data[0]; |
| }; |
| |
| struct xt_entry_target |
| { |
| union { |
| struct { |
| u_int16_t target_size; |
| |
| char name[XT_FUNCTION_MAXNAMELEN-1]; |
| |
| u_int8_t revision; |
| } user; |
| struct { |
| u_int16_t target_size; |
| |
| struct xt_target *target; |
| } kernel; |
| |
| u_int16_t target_size; |
| } u; |
| |
| unsigned char data[0]; |
| }; |
| |
| struct xt_standard_target |
| { |
| struct xt_entry_target target; |
| int verdict; |
| }; |
| |
| struct xt_get_revision |
| { |
| char name[XT_FUNCTION_MAXNAMELEN-1]; |
| |
| u_int8_t revision; |
| }; |
| |
| #define XT_CONTINUE 0xFFFFFFFF |
| |
| #define XT_RETURN (-NF_REPEAT - 1) |
| |
| struct _xt_align |
| { |
| u_int8_t u8; |
| u_int16_t u16; |
| u_int32_t u32; |
| u_int64_t u64; |
| }; |
| |
| #define XT_ALIGN(s) (((s) + (__alignof__(struct _xt_align)-1)) & ~(__alignof__(struct _xt_align)-1)) |
| |
| #define XT_STANDARD_TARGET "" |
| |
| #define XT_ERROR_TARGET "ERROR" |
| |
| #define XT_BASE_CTL 64 |
| |
| #define XT_SO_SET_REPLACE (XT_BASE_CTL) |
| #define XT_SO_SET_ADD_COUNTERS (XT_BASE_CTL + 1) |
| #define XT_SO_SET_MAX XT_SO_SET_ADD_COUNTERS |
| |
| #define XT_SO_GET_INFO (XT_BASE_CTL) |
| #define XT_SO_GET_ENTRIES (XT_BASE_CTL + 1) |
| #define XT_SO_GET_REVISION_MATCH (XT_BASE_CTL + 2) |
| #define XT_SO_GET_REVISION_TARGET (XT_BASE_CTL + 3) |
| #define XT_SO_GET_MAX XT_SO_GET_REVISION_TARGET |
| |
| #define SET_COUNTER(c,b,p) do { (c).bcnt = (b); (c).pcnt = (p); } while(0) |
| #define ADD_COUNTER(c,b,p) do { (c).bcnt += (b); (c).pcnt += (p); } while(0) |
| |
| struct xt_counters |
| { |
| u_int64_t pcnt, bcnt; |
| }; |
| |
| struct xt_counters_info |
| { |
| |
| char name[XT_TABLE_MAXNAMELEN]; |
| |
| unsigned int num_counters; |
| |
| struct xt_counters counters[0]; |
| }; |
| |
| #define XT_INV_PROTO 0x40 |
| |
| #endif |