125981136fb13bcacf5f475f3e0ec750341e1e671Christopher Ferris/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _XT_STRING_H
330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _XT_STRING_H
430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h>
630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define XT_STRING_MAX_PATTERN_SIZE 128
830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define XT_STRING_MAX_ALGO_NAME_SIZE 16
930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
1030692c65c4174412c90e79489e98ab85c1a7412fBen Chengenum {
1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	XT_STRING_FLAG_INVERT		= 0x01,
1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	XT_STRING_FLAG_IGNORECASE	= 0x02
1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
1530692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct xt_string_info {
1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u16 from_offset;
1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u16 to_offset;
1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char	  algo[XT_STRING_MAX_ALGO_NAME_SIZE];
1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char 	  pattern[XT_STRING_MAX_PATTERN_SIZE];
2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8  patlen;
2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	union {
2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng		struct {
2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng			__u8  invert;
2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng		} v0;
2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng		struct {
2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng			__u8  flags;
2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng		} v1;
2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	} u;
3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	/* Used internally by the kernel */
3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	struct ts_config __attribute__((aligned(8))) *config;
3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /*_XT_STRING_H*/
36