Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef _LINUX_SKBUFF_H
     20 #define _LINUX_SKBUFF_H
     21 #include <linux/kernel.h>
     22 #include <linux/compiler.h>
     23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     24 #include <linux/time.h>
     25 #include <linux/cache.h>
     26 #include <asm/atomic.h>
     27 #include <asm/types.h>
     28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     29 #include <linux/spinlock.h>
     30 #include <linux/mm.h>
     31 #include <linux/highmem.h>
     32 #include <linux/poll.h>
     33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     34 #include <linux/net.h>
     35 #include <linux/textsearch.h>
     36 #include <net/checksum.h>
     37 #include <linux/dmaengine.h>
     38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     39 #define HAVE_ALLOC_SKB
     40 #define HAVE_ALIGNABLE_SKB
     41 #define CHECKSUM_NONE 0
     42 #define CHECKSUM_HW 1
     43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     44 #define CHECKSUM_UNNECESSARY 2
     45 #define SKB_DATA_ALIGN(X) (((X) + (SMP_CACHE_BYTES - 1)) &   ~(SMP_CACHE_BYTES - 1))
     46 #define SKB_MAX_ORDER(X, ORDER) (((PAGE_SIZE << (ORDER)) - (X) -   sizeof(struct skb_shared_info)) &   ~(SMP_CACHE_BYTES - 1))
     47 #define SKB_MAX_HEAD(X) (SKB_MAX_ORDER((X), 0))
     48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     49 #define SKB_MAX_ALLOC (SKB_MAX_ORDER(0, 2))
     50 struct net_device;
     51 struct sk_buff_head {
     52  struct sk_buff *next;
     53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     54  struct sk_buff *prev;
     55  __u32 qlen;
     56  spinlock_t lock;
     57 };
     58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     59 struct sk_buff;
     60 #define MAX_SKB_FRAGS (65536/PAGE_SIZE + 2)
     61 typedef struct skb_frag_struct skb_frag_t;
     62 struct skb_frag_struct {
     63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     64  struct page *page;
     65  __u16 page_offset;
     66  __u16 size;
     67 };
     68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     69 struct skb_shared_info {
     70  atomic_t dataref;
     71  unsigned short nr_frags;
     72  unsigned short gso_size;
     73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     74  unsigned short gso_segs;
     75  unsigned short gso_type;
     76  unsigned int ip6_frag_id;
     77  struct sk_buff *frag_list;
     78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     79  skb_frag_t frags[MAX_SKB_FRAGS];
     80 };
     81 #define SKB_DATAREF_SHIFT 16
     82 #define SKB_DATAREF_MASK ((1 << SKB_DATAREF_SHIFT) - 1)
     83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     84 struct skb_timeval {
     85  u32 off_sec;
     86  u32 off_usec;
     87 };
     88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     89 enum {
     90  SKB_FCLONE_UNAVAILABLE,
     91  SKB_FCLONE_ORIG,
     92  SKB_FCLONE_CLONE,
     93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     94 };
     95 enum {
     96  SKB_GSO_TCPV4 = 1 << 0,
     97  SKB_GSO_UDP = 1 << 1,
     98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     99  SKB_GSO_DODGY = 1 << 2,
    100  SKB_GSO_TCP_ECN = 1 << 3,
    101  SKB_GSO_TCPV6 = 1 << 4,
    102 };
    103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    104 struct sk_buff {
    105  struct sk_buff *next;
    106  struct sk_buff *prev;
    107  struct sock *sk;
    108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    109  struct skb_timeval tstamp;
    110  struct net_device *dev;
    111  struct net_device *input_dev;
    112  union {
    113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    114  struct tcphdr *th;
    115  struct udphdr *uh;
    116  struct icmphdr *icmph;
    117  struct igmphdr *igmph;
    118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    119  struct iphdr *ipiph;
    120  struct ipv6hdr *ipv6h;
    121  unsigned char *raw;
    122  } h;
    123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    124  union {
    125  struct iphdr *iph;
    126  struct ipv6hdr *ipv6h;
    127  struct arphdr *arph;
    128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    129  unsigned char *raw;
    130  } nh;
    131  union {
    132  unsigned char *raw;
    133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    134  } mac;
    135  struct dst_entry *dst;
    136  struct sec_path *sp;
    137  char cb[48];
    138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    139  unsigned int len,
    140  data_len,
    141  mac_len,
    142  csum;
    143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    144  __u32 priority;
    145  __u8 local_df:1,
    146  cloned:1,
    147  ip_summed:2,
    148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    149  nohdr:1,
    150  nfctinfo:3;
    151  __u8 pkt_type:3,
    152  fclone:2,
    153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    154  ipvs_property:1;
    155  __be16 protocol;
    156  void (*destructor)(struct sk_buff *skb);
    157  unsigned int truesize;
    158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    159  atomic_t users;
    160  unsigned char *head,
    161  *data,
    162  *tail,
    163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    164  *end;
    165 };
    166 #endif
    167