1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 **************************************************************************** 11 ****************************************************************************/ 12 #ifndef _X_TABLES_H 13 #define _X_TABLES_H 14 15 #define XT_FUNCTION_MAXNAMELEN 30 16 #define XT_TABLE_MAXNAMELEN 32 17 18 struct xt_entry_match 19 { 20 union { 21 struct { 22 u_int16_t match_size; 23 24 char name[XT_FUNCTION_MAXNAMELEN-1]; 25 26 u_int8_t revision; 27 } user; 28 struct { 29 u_int16_t match_size; 30 31 struct xt_match *match; 32 } kernel; 33 34 u_int16_t match_size; 35 } u; 36 37 unsigned char data[0]; 38 }; 39 40 struct xt_entry_target 41 { 42 union { 43 struct { 44 u_int16_t target_size; 45 46 char name[XT_FUNCTION_MAXNAMELEN-1]; 47 48 u_int8_t revision; 49 } user; 50 struct { 51 u_int16_t target_size; 52 53 struct xt_target *target; 54 } kernel; 55 56 u_int16_t target_size; 57 } u; 58 59 unsigned char data[0]; 60 }; 61 62 struct xt_standard_target 63 { 64 struct xt_entry_target target; 65 int verdict; 66 }; 67 68 struct xt_get_revision 69 { 70 char name[XT_FUNCTION_MAXNAMELEN-1]; 71 72 u_int8_t revision; 73 }; 74 75 #define XT_CONTINUE 0xFFFFFFFF 76 77 #define XT_RETURN (-NF_REPEAT - 1) 78 79 struct _xt_align 80 { 81 u_int8_t u8; 82 u_int16_t u16; 83 u_int32_t u32; 84 u_int64_t u64; 85 }; 86 87 #define XT_ALIGN(s) (((s) + (__alignof__(struct _xt_align)-1)) & ~(__alignof__(struct _xt_align)-1)) 88 89 #define XT_STANDARD_TARGET "" 90 91 #define XT_ERROR_TARGET "ERROR" 92 93 #define XT_BASE_CTL 64 94 95 #define XT_SO_SET_REPLACE (XT_BASE_CTL) 96 #define XT_SO_SET_ADD_COUNTERS (XT_BASE_CTL + 1) 97 #define XT_SO_SET_MAX XT_SO_SET_ADD_COUNTERS 98 99 #define XT_SO_GET_INFO (XT_BASE_CTL) 100 #define XT_SO_GET_ENTRIES (XT_BASE_CTL + 1) 101 #define XT_SO_GET_REVISION_MATCH (XT_BASE_CTL + 2) 102 #define XT_SO_GET_REVISION_TARGET (XT_BASE_CTL + 3) 103 #define XT_SO_GET_MAX XT_SO_GET_REVISION_TARGET 104 105 #define SET_COUNTER(c,b,p) do { (c).bcnt = (b); (c).pcnt = (p); } while(0) 106 #define ADD_COUNTER(c,b,p) do { (c).bcnt += (b); (c).pcnt += (p); } while(0) 107 108 struct xt_counters 109 { 110 u_int64_t pcnt, bcnt; 111 }; 112 113 struct xt_counters_info 114 { 115 116 char name[XT_TABLE_MAXNAMELEN]; 117 118 unsigned int num_counters; 119 120 struct xt_counters counters[0]; 121 }; 122 123 #define XT_INV_PROTO 0x40 124 125 #endif 126