diff options
Diffstat (limited to '4/platforms/android-3/arch-arm/usr/include/linux/skbuff.h')
-rw-r--r-- | 4/platforms/android-3/arch-arm/usr/include/linux/skbuff.h | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/4/platforms/android-3/arch-arm/usr/include/linux/skbuff.h b/4/platforms/android-3/arch-arm/usr/include/linux/skbuff.h new file mode 100644 index 0000000..82140a6 --- /dev/null +++ b/4/platforms/android-3/arch-arm/usr/include/linux/skbuff.h @@ -0,0 +1,164 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + **************************************************************************** + ****************************************************************************/ +#ifndef _LINUX_SKBUFF_H +#define _LINUX_SKBUFF_H + +#include <linux/kernel.h> +#include <linux/compiler.h> +#include <linux/time.h> +#include <linux/cache.h> + +#include <asm/atomic.h> +#include <asm/types.h> +#include <linux/spinlock.h> +#include <linux/mm.h> +#include <linux/highmem.h> +#include <linux/poll.h> +#include <linux/net.h> +#include <linux/textsearch.h> +#include <net/checksum.h> +#include <linux/dmaengine.h> + +#define HAVE_ALLOC_SKB +#define HAVE_ALIGNABLE_SKB + +#define CHECKSUM_NONE 0 +#define CHECKSUM_HW 1 +#define CHECKSUM_UNNECESSARY 2 + +#define SKB_DATA_ALIGN(X) (((X) + (SMP_CACHE_BYTES - 1)) & ~(SMP_CACHE_BYTES - 1)) +#define SKB_MAX_ORDER(X, ORDER) (((PAGE_SIZE << (ORDER)) - (X) - sizeof(struct skb_shared_info)) & ~(SMP_CACHE_BYTES - 1)) +#define SKB_MAX_HEAD(X) (SKB_MAX_ORDER((X), 0)) +#define SKB_MAX_ALLOC (SKB_MAX_ORDER(0, 2)) + +struct net_device; + +struct sk_buff_head { + + struct sk_buff *next; + struct sk_buff *prev; + + __u32 qlen; + spinlock_t lock; +}; + +struct sk_buff; + +#define MAX_SKB_FRAGS (65536/PAGE_SIZE + 2) + +typedef struct skb_frag_struct skb_frag_t; + +struct skb_frag_struct { + struct page *page; + __u16 page_offset; + __u16 size; +}; + +struct skb_shared_info { + atomic_t dataref; + unsigned short nr_frags; + unsigned short gso_size; + + unsigned short gso_segs; + unsigned short gso_type; + unsigned int ip6_frag_id; + struct sk_buff *frag_list; + skb_frag_t frags[MAX_SKB_FRAGS]; +}; + +#define SKB_DATAREF_SHIFT 16 +#define SKB_DATAREF_MASK ((1 << SKB_DATAREF_SHIFT) - 1) + +struct skb_timeval { + u32 off_sec; + u32 off_usec; +}; + +enum { + SKB_FCLONE_UNAVAILABLE, + SKB_FCLONE_ORIG, + SKB_FCLONE_CLONE, +}; + +enum { + SKB_GSO_TCPV4 = 1 << 0, + SKB_GSO_UDP = 1 << 1, + + SKB_GSO_DODGY = 1 << 2, + + SKB_GSO_TCP_ECN = 1 << 3, + + SKB_GSO_TCPV6 = 1 << 4, +}; + +struct sk_buff { + + struct sk_buff *next; + struct sk_buff *prev; + + struct sock *sk; + struct skb_timeval tstamp; + struct net_device *dev; + struct net_device *input_dev; + + union { + struct tcphdr *th; + struct udphdr *uh; + struct icmphdr *icmph; + struct igmphdr *igmph; + struct iphdr *ipiph; + struct ipv6hdr *ipv6h; + unsigned char *raw; + } h; + + union { + struct iphdr *iph; + struct ipv6hdr *ipv6h; + struct arphdr *arph; + unsigned char *raw; + } nh; + + union { + unsigned char *raw; + } mac; + + struct dst_entry *dst; + struct sec_path *sp; + + char cb[48]; + + unsigned int len, + data_len, + mac_len, + csum; + __u32 priority; + __u8 local_df:1, + cloned:1, + ip_summed:2, + nohdr:1, + nfctinfo:3; + __u8 pkt_type:3, + fclone:2, + ipvs_property:1; + __be16 protocol; + + void (*destructor)(struct sk_buff *skb); + + unsigned int truesize; + atomic_t users; + unsigned char *head, + *data, + *tail, + *end; +}; + +#endif |