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 *** To edit the content of this header, modify the corresponding 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** source file (e.g. under external/kernel-headers/original/) then 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** run bionic/libc/kernel/tools/update_all.py 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** Any manual change here will be lost the next time this script will 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** be run. You've been warned! 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _UAPI_X_TABLES_H 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _UAPI_X_TABLES_H 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/kernel.h> 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h> 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_FUNCTION_MAXNAMELEN 30 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_EXTENSION_MAXNAMELEN 29 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_TABLE_MAXNAMELEN 32 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_entry_match { 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union { 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 match_size; 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char name[XT_EXTENSION_MAXNAMELEN]; 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 revision; 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } user; 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 match_size; 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct xt_match *match; 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } kernel; 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 match_size; 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } u; 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char data[0]; 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_entry_target { 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert union { 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 target_size; 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char name[XT_EXTENSION_MAXNAMELEN]; 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 revision; 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } user; 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct { 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 target_size; 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct xt_target *target; 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } kernel; 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 target_size; 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert } u; 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char data[0]; 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_TARGET_INIT(__name, __size) { .target.u.user = { .target_size = XT_ALIGN(__size), .name = __name, }, } 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_standard_target { 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct xt_entry_target target; 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int verdict; 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_error_target { 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct xt_entry_target target; 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char errorname[XT_FUNCTION_MAXNAMELEN]; 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_get_revision { 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char name[XT_EXTENSION_MAXNAMELEN]; 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 revision; 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_CONTINUE 0xFFFFFFFF 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_RETURN (-NF_REPEAT - 1) 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct _xt_align { 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 u8; 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 u16; 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 u32; 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 u64; 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_ALIGN(s) __ALIGN_KERNEL((s), __alignof__(struct _xt_align)) 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_STANDARD_TARGET "" 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_ERROR_TARGET "ERROR" 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SET_COUNTER(c,b,p) do { (c).bcnt = (b); (c).pcnt = (p); } while(0) 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define ADD_COUNTER(c,b,p) do { (c).bcnt += (b); (c).pcnt += (p); } while(0) 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_counters { 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 pcnt, bcnt; 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct xt_counters_info { 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char name[XT_TABLE_MAXNAMELEN]; 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int num_counters; 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct xt_counters counters[0]; 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_INV_PROTO 0x40 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_MATCH_ITERATE(type, e, fn, args...) ({ unsigned int __i; int __ret = 0; struct xt_entry_match *__m; for (__i = sizeof(type); __i < (e)->target_offset; __i += __m->u.match_size) { __m = (void *)e + __i; __ret = fn(__m , ## args); if (__ret != 0) break; } __ret; }) 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_ENTRY_ITERATE_CONTINUE(type, entries, size, n, fn, args...) ({ unsigned int __i, __n; int __ret = 0; type *__entry; for (__i = 0, __n = 0; __i < (size); __i += __entry->next_offset, __n++) { __entry = (void *)(entries) + __i; if (__n < n) continue; __ret = fn(__entry , ## args); if (__ret != 0) break; } __ret; }) 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define XT_ENTRY_ITERATE(type, entries, size, fn, args...) XT_ENTRY_ITERATE_CONTINUE(type, entries, size, 0, fn, args) 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define xt_entry_foreach(pos, ehead, esize) for ((pos) = (typeof(pos))(ehead); (pos) < (typeof(pos))((char *)(ehead) + (esize)); (pos) = (typeof(pos))((char *)(pos) + (pos)->next_offset)) 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define xt_ematch_foreach(pos, entry) for ((pos) = (struct xt_entry_match *)entry->elems; (pos) < (struct xt_entry_match *)((char *)(entry) + (entry)->target_offset); (pos) = (struct xt_entry_match *)((char *)(pos) + (pos)->u.match_size)) 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 116