• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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