5 #include <linux/netdevice.h>
126 void (*compat_from_user)(
void *
dst,
const void *
src);
135 unsigned int compatsize;
166 void (*compat_from_user)(
void *
dst,
const void *
src);
175 unsigned int compatsize;
203 #include <linux/netfilter_ipv4.h>
230 #define XT_TABLE_INFO_SZ (offsetof(struct xt_table_info, entries) \
231 + nr_cpu_ids * sizeof(char *))
254 unsigned int num_counters,
297 static inline unsigned int xt_write_recseq_begin(
void)
326 static inline void xt_write_recseq_end(
unsigned int addend)
336 static inline unsigned long ifname_compare_aligned(
const char *_a,
340 const unsigned long *
a = (
const unsigned long *)_a;
341 const unsigned long *
b = (
const unsigned long *)_b;
342 const unsigned long *
mask = (
const unsigned long *)_mask;
345 ret = (a[0] ^ b[0]) & mask[0];
346 if (
IFNAMSIZ >
sizeof(
unsigned long))
347 ret |= (a[1] ^ b[1]) & mask[1];
348 if (
IFNAMSIZ > 2 *
sizeof(
unsigned long))
349 ret |= (a[2] ^ b[2]) & mask[2];
350 if (
IFNAMSIZ > 3 *
sizeof(
unsigned long))
351 ret |= (a[3] ^ b[3]) & mask[3];
362 struct compat_xt_entry_match {
375 unsigned char data[0];
378 struct compat_xt_entry_target {
391 unsigned char data[0];
398 struct compat_xt_counters {
402 struct compat_xt_counters_info {
405 struct compat_xt_counters counters[0];
408 struct _compat_xt_align {
415 #define COMPAT_XT_ALIGN(s) __ALIGN_KERNEL((s), __alignof__(struct _compat_xt_align))
417 extern void xt_compat_lock(
u_int8_t af);
418 extern void xt_compat_unlock(
u_int8_t af);
421 extern void xt_compat_flush_offsets(
u_int8_t af);
422 extern void xt_compat_init_offsets(
u_int8_t af,
unsigned int number);
425 extern int xt_compat_match_offset(
const struct xt_match *
match);
427 void **dstptr,
unsigned int *
size);
429 void __user **dstptr,
unsigned int *
size);
433 void **dstptr,
unsigned int *
size);
435 void __user **dstptr,
unsigned int *
size);