Commit 161e6137 authored by Pedro Tammela's avatar Pedro Tammela Committed by David S. Miller

net: add missing documentation in linux/skbuff.h

This patch adds missing documentation for some inline functions on
linux/skbuff.h. The patch is incomplete and a lot more can be added,
just wondering if it's of interest of the netdev developers.

Also fixed some whitespaces.
Signed-off-by: default avatarPedro Tammela <pctammela@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ffb3016b
...@@ -327,26 +327,49 @@ struct skb_frag_struct { ...@@ -327,26 +327,49 @@ struct skb_frag_struct {
#endif #endif
}; };
/**
* skb_frag_size - Returns the size of a skb fragment
* @frag: skb fragment
*/
static inline unsigned int skb_frag_size(const skb_frag_t *frag) static inline unsigned int skb_frag_size(const skb_frag_t *frag)
{ {
return frag->size; return frag->size;
} }
/**
* skb_frag_size_set - Sets the size of a skb fragment
* @frag: skb fragment
* @size: size of fragment
*/
static inline void skb_frag_size_set(skb_frag_t *frag, unsigned int size) static inline void skb_frag_size_set(skb_frag_t *frag, unsigned int size)
{ {
frag->size = size; frag->size = size;
} }
/**
* skb_frag_size_add - Incrementes the size of a skb fragment by %delta
* @frag: skb fragment
* @delta: value to add
*/
static inline void skb_frag_size_add(skb_frag_t *frag, int delta) static inline void skb_frag_size_add(skb_frag_t *frag, int delta)
{ {
frag->size += delta; frag->size += delta;
} }
/**
* skb_frag_size_sub - Decrements the size of a skb fragment by %delta
* @frag: skb fragment
* @delta: value to subtract
*/
static inline void skb_frag_size_sub(skb_frag_t *frag, int delta) static inline void skb_frag_size_sub(skb_frag_t *frag, int delta)
{ {
frag->size -= delta; frag->size -= delta;
} }
/**
* skb_frag_must_loop - Test if %p is a high memory page
* @p: fragment's page
*/
static inline bool skb_frag_must_loop(struct page *p) static inline bool skb_frag_must_loop(struct page *p)
{ {
#if defined(CONFIG_HIGHMEM) #if defined(CONFIG_HIGHMEM)
...@@ -590,7 +613,7 @@ typedef unsigned int sk_buff_data_t; ...@@ -590,7 +613,7 @@ typedef unsigned int sk_buff_data_t;
typedef unsigned char *sk_buff_data_t; typedef unsigned char *sk_buff_data_t;
#endif #endif
/** /**
* struct sk_buff - socket buffer * struct sk_buff - socket buffer
* @next: Next buffer in list * @next: Next buffer in list
* @prev: Previous buffer in list * @prev: Previous buffer in list
...@@ -648,7 +671,7 @@ typedef unsigned char *sk_buff_data_t; ...@@ -648,7 +671,7 @@ typedef unsigned char *sk_buff_data_t;
* @csum_not_inet: use CRC32c to resolve CHECKSUM_PARTIAL * @csum_not_inet: use CRC32c to resolve CHECKSUM_PARTIAL
* @dst_pending_confirm: need to confirm neighbour * @dst_pending_confirm: need to confirm neighbour
* @decrypted: Decrypted SKB * @decrypted: Decrypted SKB
* @napi_id: id of the NAPI struct this skb came from * @napi_id: id of the NAPI struct this skb came from
* @secmark: security marking * @secmark: security marking
* @mark: Generic packet mark * @mark: Generic packet mark
* @vlan_proto: vlan encapsulation protocol * @vlan_proto: vlan encapsulation protocol
...@@ -883,7 +906,10 @@ struct sk_buff { ...@@ -883,7 +906,10 @@ struct sk_buff {
#define SKB_ALLOC_RX 0x02 #define SKB_ALLOC_RX 0x02
#define SKB_ALLOC_NAPI 0x04 #define SKB_ALLOC_NAPI 0x04
/* Returns true if the skb was allocated from PFMEMALLOC reserves */ /**
* skb_pfmemalloc - Test if the skb was allocated from PFMEMALLOC reserves
* @skb: buffer
*/
static inline bool skb_pfmemalloc(const struct sk_buff *skb) static inline bool skb_pfmemalloc(const struct sk_buff *skb)
{ {
return unlikely(skb->pfmemalloc); return unlikely(skb->pfmemalloc);
...@@ -905,7 +931,7 @@ static inline bool skb_pfmemalloc(const struct sk_buff *skb) ...@@ -905,7 +931,7 @@ static inline bool skb_pfmemalloc(const struct sk_buff *skb)
*/ */
static inline struct dst_entry *skb_dst(const struct sk_buff *skb) static inline struct dst_entry *skb_dst(const struct sk_buff *skb)
{ {
/* If refdst was not refcounted, check we still are in a /* If refdst was not refcounted, check we still are in a
* rcu_read_lock section * rcu_read_lock section
*/ */
WARN_ON((skb->_skb_refdst & SKB_DST_NOREF) && WARN_ON((skb->_skb_refdst & SKB_DST_NOREF) &&
...@@ -952,6 +978,10 @@ static inline bool skb_dst_is_noref(const struct sk_buff *skb) ...@@ -952,6 +978,10 @@ static inline bool skb_dst_is_noref(const struct sk_buff *skb)
return (skb->_skb_refdst & SKB_DST_NOREF) && skb_dst(skb); return (skb->_skb_refdst & SKB_DST_NOREF) && skb_dst(skb);
} }
/**
* skb_rtable - Returns the skb &rtable
* @skb: buffer
*/
static inline struct rtable *skb_rtable(const struct sk_buff *skb) static inline struct rtable *skb_rtable(const struct sk_buff *skb)
{ {
return (struct rtable *)skb_dst(skb); return (struct rtable *)skb_dst(skb);
...@@ -966,6 +996,10 @@ static inline bool skb_pkt_type_ok(u32 ptype) ...@@ -966,6 +996,10 @@ static inline bool skb_pkt_type_ok(u32 ptype)
return ptype <= PACKET_OTHERHOST; return ptype <= PACKET_OTHERHOST;
} }
/**
* skb_napi_id - Returns the skb's NAPI id
* @skb: buffer
*/
static inline unsigned int skb_napi_id(const struct sk_buff *skb) static inline unsigned int skb_napi_id(const struct sk_buff *skb)
{ {
#ifdef CONFIG_NET_RX_BUSY_POLL #ifdef CONFIG_NET_RX_BUSY_POLL
...@@ -975,7 +1009,12 @@ static inline unsigned int skb_napi_id(const struct sk_buff *skb) ...@@ -975,7 +1009,12 @@ static inline unsigned int skb_napi_id(const struct sk_buff *skb)
#endif #endif
} }
/* decrement the reference count and return true if we can free the skb */ /**
* skb_unref - decrement the skb's reference count
* @skb: buffer
*
* Returns true if we can free the skb.
*/
static inline bool skb_unref(struct sk_buff *skb) static inline bool skb_unref(struct sk_buff *skb)
{ {
if (unlikely(!skb)) if (unlikely(!skb))
...@@ -1005,6 +1044,14 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t priority, int flags, ...@@ -1005,6 +1044,14 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t priority, int flags,
int node); int node);
struct sk_buff *__build_skb(void *data, unsigned int frag_size); struct sk_buff *__build_skb(void *data, unsigned int frag_size);
struct sk_buff *build_skb(void *data, unsigned int frag_size); struct sk_buff *build_skb(void *data, unsigned int frag_size);
/**
* alloc_skb - allocate a network buffer
* @size: size to allocate
* @priority: allocation mask
*
* This function is a convenient wrapper around __alloc_skb().
*/
static inline struct sk_buff *alloc_skb(unsigned int size, static inline struct sk_buff *alloc_skb(unsigned int size,
gfp_t priority) gfp_t priority)
{ {
...@@ -1047,6 +1094,13 @@ static inline bool skb_fclone_busy(const struct sock *sk, ...@@ -1047,6 +1094,13 @@ static inline bool skb_fclone_busy(const struct sock *sk,
fclones->skb2.sk == sk; fclones->skb2.sk == sk;
} }
/**
* alloc_skb_fclone - allocate a network buffer from fclone cache
* @size: size to allocate
* @priority: allocation mask
*
* This function is a convenient wrapper around __alloc_skb().
*/
static inline struct sk_buff *alloc_skb_fclone(unsigned int size, static inline struct sk_buff *alloc_skb_fclone(unsigned int size,
gfp_t priority) gfp_t priority)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment