|
@@ -1051,8 +1051,8 @@ EXPORT_SYMBOL(__pskb_copy);
|
|
|
* @ntail: room to add at tail
|
|
|
* @gfp_mask: allocation priority
|
|
|
*
|
|
|
- * Expands (or creates identical copy, if &nhead and &ntail are zero)
|
|
|
- * header of skb. &sk_buff itself is not changed. &sk_buff MUST have
|
|
|
+ * Expands (or creates identical copy, if @nhead and @ntail are zero)
|
|
|
+ * header of @skb. &sk_buff itself is not changed. &sk_buff MUST have
|
|
|
* reference count of 1. Returns zero in the case of success or error,
|
|
|
* if expansion failed. In the last case, &sk_buff is not changed.
|
|
|
*
|
|
@@ -1263,6 +1263,29 @@ free_skb:
|
|
|
}
|
|
|
EXPORT_SYMBOL(skb_pad);
|
|
|
|
|
|
+/**
|
|
|
+ * pskb_put - add data to the tail of a potentially fragmented buffer
|
|
|
+ * @skb: start of the buffer to use
|
|
|
+ * @tail: tail fragment of the buffer to use
|
|
|
+ * @len: amount of data to add
|
|
|
+ *
|
|
|
+ * This function extends the used data area of the potentially
|
|
|
+ * fragmented buffer. @tail must be the last fragment of @skb -- or
|
|
|
+ * @skb itself. If this would exceed the total buffer size the kernel
|
|
|
+ * will panic. A pointer to the first byte of the extra data is
|
|
|
+ * returned.
|
|
|
+ */
|
|
|
+
|
|
|
+unsigned char *pskb_put(struct sk_buff *skb, struct sk_buff *tail, int len)
|
|
|
+{
|
|
|
+ if (tail != skb) {
|
|
|
+ skb->data_len += len;
|
|
|
+ skb->len += len;
|
|
|
+ }
|
|
|
+ return skb_put(tail, len);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(pskb_put);
|
|
|
+
|
|
|
/**
|
|
|
* skb_put - add data to a buffer
|
|
|
* @skb: buffer to use
|
|
@@ -2540,14 +2563,14 @@ EXPORT_SYMBOL(skb_prepare_seq_read);
|
|
|
* @data: destination pointer for data to be returned
|
|
|
* @st: state variable
|
|
|
*
|
|
|
- * Reads a block of skb data at &consumed relative to the
|
|
|
+ * Reads a block of skb data at @consumed relative to the
|
|
|
* lower offset specified to skb_prepare_seq_read(). Assigns
|
|
|
- * the head of the data block to &data and returns the length
|
|
|
+ * the head of the data block to @data and returns the length
|
|
|
* of the block or 0 if the end of the skb data or the upper
|
|
|
* offset has been reached.
|
|
|
*
|
|
|
* The caller is not required to consume all of the data
|
|
|
- * returned, i.e. &consumed is typically set to the number
|
|
|
+ * returned, i.e. @consumed is typically set to the number
|
|
|
* of bytes already consumed and the next call to
|
|
|
* skb_seq_read() will return the remaining part of the block.
|
|
|
*
|