Lines Matching refs:len

80 static struct cfpkt *cfpkt_create_pfx(u16 len, u16 pfx)
85 skb = alloc_skb(len + pfx, GFP_ATOMIC);
87 skb = alloc_skb(len + pfx, GFP_KERNEL);
96 inline struct cfpkt *cfpkt_create(u16 len)
98 return cfpkt_create_pfx(len + PKT_POSTFIX, PKT_PREFIX);
110 return skb->len > 0;
113 int cfpkt_peek_head(struct cfpkt *pkt, void *data, u16 len)
116 if (skb_headlen(skb) >= len) {
117 memcpy(data, skb->data, len);
120 return !cfpkt_extr_head(pkt, data, len) &&
121 !cfpkt_add_head(pkt, data, len);
124 int cfpkt_extr_head(struct cfpkt *pkt, void *data, u16 len)
131 if (unlikely(len > skb->len)) {
136 if (unlikely(len > skb_headlen(skb))) {
142 from = skb_pull(skb, len);
143 from -= len;
145 memcpy(data, from, len);
150 int cfpkt_extr_trail(struct cfpkt *pkt, void *dta, u16 len)
162 if (unlikely(skb->data + len > skb_tail_pointer(skb))) {
166 from = skb_tail_pointer(skb) - len;
167 skb_trim(skb, skb->len - len);
168 memcpy(data, from, len);
172 int cfpkt_pad_trail(struct cfpkt *pkt, u16 len)
174 return cfpkt_add_body(pkt, NULL, len);
177 int cfpkt_add_body(struct cfpkt *pkt, const void *data, u16 len)
191 if (unlikely(skb_tailroom(skb) < len)) {
192 if (likely(len < PKT_LEN_WHEN_EXTENDING))
195 addlen = len;
209 to = pskb_put(skb, lastskb, len);
211 memcpy(to, data, len);
220 int cfpkt_add_head(struct cfpkt *pkt, const void *data2, u16 len)
229 if (unlikely(skb_headroom(skb) < len)) {
241 to = skb_push(skb, len);
242 memcpy(to, data, len);
247 inline int cfpkt_add_trail(struct cfpkt *pkt, const void *data, u16 len)
249 return cfpkt_add_body(pkt, data, len);
255 return skb->len;
275 int cfpkt_setlen(struct cfpkt *pkt, u16 len)
283 if (likely(len <= skb->len)) {
285 ___pskb_trim(skb, len);
287 skb_trim(skb, len);
293 if (unlikely(!cfpkt_pad_trail(pkt, len - skb->len)))
328 tmp->len = dstlen;
336 dst->len += addlen;
369 skb->len = pos;
373 skb2->len += len2nd;