Patrick McHardy | 9651851 | 2013-10-14 11:00:02 +0200 | [diff] [blame] | 1 | #ifndef _NET_NF_TABLES_CORE_H |
| 2 | #define _NET_NF_TABLES_CORE_H |
| 3 | |
Joe Perches | 5eccdfa | 2013-10-19 22:05:31 -0700 | [diff] [blame] | 4 | int nf_tables_core_module_init(void); |
| 5 | void nf_tables_core_module_exit(void); |
Patrick McHardy | 9651851 | 2013-10-14 11:00:02 +0200 | [diff] [blame] | 6 | |
Joe Perches | 5eccdfa | 2013-10-19 22:05:31 -0700 | [diff] [blame] | 7 | int nft_immediate_module_init(void); |
| 8 | void nft_immediate_module_exit(void); |
Patrick McHardy | 9651851 | 2013-10-14 11:00:02 +0200 | [diff] [blame] | 9 | |
Patrick McHardy | cb7dbfd | 2013-10-10 23:35:40 +0200 | [diff] [blame] | 10 | struct nft_cmp_fast_expr { |
| 11 | u32 data; |
| 12 | enum nft_registers sreg:8; |
| 13 | u8 len; |
| 14 | }; |
| 15 | |
Patrick McHardy | b855d41 | 2014-04-12 13:17:57 +0200 | [diff] [blame] | 16 | /* Calculate the mask for the nft_cmp_fast expression. On big endian the |
| 17 | * mask needs to include the *upper* bytes when interpreting that data as |
| 18 | * something smaller than the full u32, therefore a cpu_to_le32 is done. |
| 19 | */ |
| 20 | static inline u32 nft_cmp_fast_mask(unsigned int len) |
| 21 | { |
| 22 | return cpu_to_le32(~0U >> (FIELD_SIZEOF(struct nft_cmp_fast_expr, |
| 23 | data) * BITS_PER_BYTE - len)); |
| 24 | } |
| 25 | |
Patrick McHardy | cb7dbfd | 2013-10-10 23:35:40 +0200 | [diff] [blame] | 26 | extern const struct nft_expr_ops nft_cmp_fast_ops; |
| 27 | |
Joe Perches | 5eccdfa | 2013-10-19 22:05:31 -0700 | [diff] [blame] | 28 | int nft_cmp_module_init(void); |
| 29 | void nft_cmp_module_exit(void); |
Patrick McHardy | 9651851 | 2013-10-14 11:00:02 +0200 | [diff] [blame] | 30 | |
Joe Perches | 5eccdfa | 2013-10-19 22:05:31 -0700 | [diff] [blame] | 31 | int nft_lookup_module_init(void); |
| 32 | void nft_lookup_module_exit(void); |
Patrick McHardy | 9651851 | 2013-10-14 11:00:02 +0200 | [diff] [blame] | 33 | |
Patrick McHardy | 22fe54d | 2015-04-05 14:41:08 +0200 | [diff] [blame] | 34 | int nft_dynset_module_init(void); |
| 35 | void nft_dynset_module_exit(void); |
| 36 | |
Joe Perches | 5eccdfa | 2013-10-19 22:05:31 -0700 | [diff] [blame] | 37 | int nft_bitwise_module_init(void); |
| 38 | void nft_bitwise_module_exit(void); |
Patrick McHardy | 9651851 | 2013-10-14 11:00:02 +0200 | [diff] [blame] | 39 | |
Joe Perches | 5eccdfa | 2013-10-19 22:05:31 -0700 | [diff] [blame] | 40 | int nft_byteorder_module_init(void); |
| 41 | void nft_byteorder_module_exit(void); |
Patrick McHardy | 9651851 | 2013-10-14 11:00:02 +0200 | [diff] [blame] | 42 | |
Patrick McHardy | c29b72e | 2013-10-10 11:06:41 +0200 | [diff] [blame] | 43 | struct nft_payload { |
| 44 | enum nft_payload_bases base:8; |
| 45 | u8 offset; |
| 46 | u8 len; |
| 47 | enum nft_registers dreg:8; |
| 48 | }; |
| 49 | |
| 50 | extern const struct nft_expr_ops nft_payload_fast_ops; |
| 51 | |
Joe Perches | 5eccdfa | 2013-10-19 22:05:31 -0700 | [diff] [blame] | 52 | int nft_payload_module_init(void); |
| 53 | void nft_payload_module_exit(void); |
Patrick McHardy | 9651851 | 2013-10-14 11:00:02 +0200 | [diff] [blame] | 54 | |
| 55 | #endif /* _NET_NF_TABLES_CORE_H */ |