1 #ifndef _XT_U32_H 2 #define _XT_U32_H 1 3 4 #include <linux/types.h> 5 6 enum xt_u32_ops { 7 XT_U32_AND, 8 XT_U32_LEFTSH, 9 XT_U32_RIGHTSH, 10 XT_U32_AT, 11 }; 12 13 struct xt_u32_location_element { 14 __u32 number; 15 __u8 nextop; 16 }; 17 18 struct xt_u32_value_element { 19 __u32 min; 20 __u32 max; 21 }; 22 23 /* 24 * Any way to allow for an arbitrary number of elements? 25 * For now, I settle with a limit of 10 each. 26 */ 27 #define XT_U32_MAXSIZE 10 28 29 struct xt_u32_test { 30 struct xt_u32_location_element location[XT_U32_MAXSIZE+1]; 31 struct xt_u32_value_element value[XT_U32_MAXSIZE+1]; 32 __u8 nnums; 33 __u8 nvalues; 34 }; 35 36 struct xt_u32 { 37 struct xt_u32_test tests[XT_U32_MAXSIZE+1]; 38 __u8 ntests; 39 __u8 invert; 40 }; 41 42 #endif /* _XT_U32_H */ 43