2 #include <linux/config.h>
3 #include <linux/module.h>
4 #include <linux/version.h>
5 #include <linux/kernel.h>
6 #include <linux/sched.h>
7 #include <linux/slab.h>
8 #include <linux/string.h>
9 #include <linux/errno.h>
10 #include <linux/netdevice.h>
11 #include <linux/inetdevice.h>
12 #include <linux/etherdevice.h>
13 #include <linux/skbuff.h>
14 #include <linux/init.h>
18 EXPORT_SYMBOL(__dev_alloc_skb);
20 /* Referenced in netback.c. */
21 /*static*/ kmem_cache_t *skbuff_cachep;
23 /* Size must be cacheline-aligned (alloc_skb uses SKB_DATA_ALIGN). */
24 #define XEN_SKB_SIZE \
25 ((PAGE_SIZE - sizeof(struct skb_shared_info)) & ~(SMP_CACHE_BYTES - 1))
27 struct sk_buff *__dev_alloc_skb(unsigned int length, int gfp_mask)
30 skb = alloc_skb_from_cache(skbuff_cachep, length + 16, gfp_mask);
31 if ( likely(skb != NULL) )
36 static void skbuff_ctor(void *buf, kmem_cache_t *cachep, unsigned long unused)
41 static int __init skbuff_init(void)
43 skbuff_cachep = kmem_cache_create(
44 "xen-skb", PAGE_SIZE, PAGE_SIZE, 0, skbuff_ctor, NULL);
47 __initcall(skbuff_init);