111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _X_TABLES_H 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _X_TABLES_H 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_FUNCTION_MAXNAMELEN 30 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_TABLE_MAXNAMELEN 32 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_entry_match 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union { 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int16_t match_size; 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char name[XT_FUNCTION_MAXNAMELEN-1]; 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int8_t revision; 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } user; 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int16_t match_size; 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct xt_match *match; 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } kernel; 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int16_t match_size; 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } u; 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char data[0]; 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_entry_target 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union { 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int16_t target_size; 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char name[XT_FUNCTION_MAXNAMELEN-1]; 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int8_t revision; 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } user; 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int16_t target_size; 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct xt_target *target; 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } kernel; 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int16_t target_size; 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } u; 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char data[0]; 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_standard_target 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct xt_entry_target target; 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int verdict; 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_get_revision 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char name[XT_FUNCTION_MAXNAMELEN-1]; 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int8_t revision; 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_CONTINUE 0xFFFFFFFF 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_RETURN (-NF_REPEAT - 1) 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct _xt_align 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int8_t u8; 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int16_t u16; 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int32_t u32; 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int64_t u64; 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_ALIGN(s) (((s) + (__alignof__(struct _xt_align)-1)) & ~(__alignof__(struct _xt_align)-1)) 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_STANDARD_TARGET "" 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_ERROR_TARGET "ERROR" 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_BASE_CTL 64 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_SO_SET_REPLACE (XT_BASE_CTL) 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_SO_SET_ADD_COUNTERS (XT_BASE_CTL + 1) 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_SO_SET_MAX XT_SO_SET_ADD_COUNTERS 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_SO_GET_INFO (XT_BASE_CTL) 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_SO_GET_ENTRIES (XT_BASE_CTL + 1) 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_SO_GET_REVISION_MATCH (XT_BASE_CTL + 2) 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_SO_GET_REVISION_TARGET (XT_BASE_CTL + 3) 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_SO_GET_MAX XT_SO_GET_REVISION_TARGET 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_COUNTER(c,b,p) do { (c).bcnt = (b); (c).pcnt = (p); } while(0) 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ADD_COUNTER(c,b,p) do { (c).bcnt += (b); (c).pcnt += (p); } while(0) 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_counters 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert u_int64_t pcnt, bcnt; 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_counters_info 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{ 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char name[XT_TABLE_MAXNAMELEN]; 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int num_counters; 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct xt_counters counters[0]; 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_INV_PROTO 0x40 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 126