kernels/linux-2.4.0/include/linux/skbuff.h
/**
 *	dev_alloc_skb - allocate an skbuff for sending
 *	@length: length to allocate
 *
 *	Allocate a new &sk_buff and assign it a usage count of one. The
 *	buffer has unspecified headroom built in. Users should allocate
 *	the headroom they think they need without accounting for the
 *	built in space. The built in space is used for optimisations.
 *
 *	%NULL is returned in there is no free memory. Although this function
 *	allocates memory it can be called from an interrupt.
 */
allocate an skbuff for sending
@length: length to allocate

Allocate a new &sk_buff and assign it a usage count of one. The
buffer has unspecified headroom built in. Users should allocate
the headroom they think they need without accounting for the
built in space. The built in space is used for optimisations.

%NULL is returned in there is no free memory. Although this function
allocates memory it can be called from an interrupt.
allocate an skbuff for sending @length : length to allocate Allocate a new &sk_buff and assign it a usage count of one . The buffer has unspecified headroom built in . Users should allocate the headroom they think they need without accounting for the built in space . The built in space is used for optimisations . %NULL is returned in there is no free memory . Although this function allocates memory it can be called from an interrupt .
static inline struct sk_buff *dev_alloc_skb(unsigned int length)
{
	struct sk_buff *skb;
	skb = alloc_skb(length+16, GFP_ATOMIC);
	if (skb)
		skb_reserve(skb,16);
	return skb;
}
static inline struct sk_buff * dev_alloc_skb ( unsigned int length ) { struct sk_buff * skb ; skb = alloc_skb ( length + 16 , GFP_ATOMIC ) ; if ( skb ) skb_reserve ( skb , 16 ) ; return skb ; }
dev_alloc_skb - allocate an skbuff for sending
      @length: length to allocate
dev_alloc_skb - allocate an skbuff for sending @length : length to allocate