Lines Matching refs:len
79 static struct cfpkt *cfpkt_create_pfx(u16 len, u16 pfx) in cfpkt_create_pfx() argument
83 skb = alloc_skb(len + pfx, GFP_ATOMIC); in cfpkt_create_pfx()
91 inline struct cfpkt *cfpkt_create(u16 len) in cfpkt_create() argument
93 return cfpkt_create_pfx(len + PKT_POSTFIX, PKT_PREFIX); in cfpkt_create()
105 return skb->len > 0; in cfpkt_more()
108 int cfpkt_peek_head(struct cfpkt *pkt, void *data, u16 len) in cfpkt_peek_head() argument
111 if (skb_headlen(skb) >= len) { in cfpkt_peek_head()
112 memcpy(data, skb->data, len); in cfpkt_peek_head()
115 return !cfpkt_extr_head(pkt, data, len) && in cfpkt_peek_head()
116 !cfpkt_add_head(pkt, data, len); in cfpkt_peek_head()
119 int cfpkt_extr_head(struct cfpkt *pkt, void *data, u16 len) in cfpkt_extr_head() argument
126 if (unlikely(len > skb->len)) { in cfpkt_extr_head()
131 if (unlikely(len > skb_headlen(skb))) { in cfpkt_extr_head()
137 from = skb_pull(skb, len); in cfpkt_extr_head()
138 from -= len; in cfpkt_extr_head()
140 memcpy(data, from, len); in cfpkt_extr_head()
145 int cfpkt_extr_trail(struct cfpkt *pkt, void *dta, u16 len) in cfpkt_extr_trail() argument
157 if (unlikely(skb->data + len > skb_tail_pointer(skb))) { in cfpkt_extr_trail()
161 from = skb_tail_pointer(skb) - len; in cfpkt_extr_trail()
162 skb_trim(skb, skb->len - len); in cfpkt_extr_trail()
163 memcpy(data, from, len); in cfpkt_extr_trail()
167 int cfpkt_pad_trail(struct cfpkt *pkt, u16 len) in cfpkt_pad_trail() argument
169 return cfpkt_add_body(pkt, NULL, len); in cfpkt_pad_trail()
172 int cfpkt_add_body(struct cfpkt *pkt, const void *data, u16 len) in cfpkt_add_body() argument
186 if (unlikely(skb_tailroom(skb) < len)) { in cfpkt_add_body()
187 if (likely(len < PKT_LEN_WHEN_EXTENDING)) in cfpkt_add_body()
190 addlen = len; in cfpkt_add_body()
204 to = pskb_put(skb, lastskb, len); in cfpkt_add_body()
206 memcpy(to, data, len); in cfpkt_add_body()
215 int cfpkt_add_head(struct cfpkt *pkt, const void *data2, u16 len) in cfpkt_add_head() argument
224 if (unlikely(skb_headroom(skb) < len)) { in cfpkt_add_head()
236 to = skb_push(skb, len); in cfpkt_add_head()
237 memcpy(to, data, len); in cfpkt_add_head()
242 inline int cfpkt_add_trail(struct cfpkt *pkt, const void *data, u16 len) in cfpkt_add_trail() argument
244 return cfpkt_add_body(pkt, data, len); in cfpkt_add_trail()
250 return skb->len; in cfpkt_getlen()
270 int cfpkt_setlen(struct cfpkt *pkt, u16 len) in cfpkt_setlen() argument
278 if (likely(len <= skb->len)) { in cfpkt_setlen()
280 ___pskb_trim(skb, len); in cfpkt_setlen()
282 skb_trim(skb, len); in cfpkt_setlen()
288 if (unlikely(!cfpkt_pad_trail(pkt, len - skb->len))) in cfpkt_setlen()