• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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