Lines Matching refs:pkt

18 #define PKT_ERROR(pkt, errmsg)		   \  argument
20 cfpkt_priv(pkt)->erronous = true; \
21 skb_reset_tail_pointer(&pkt->skb); \
46 static inline struct cfpkt_priv_data *cfpkt_priv(struct cfpkt *pkt) in cfpkt_priv() argument
48 return (struct cfpkt_priv_data *) pkt->skb.cb; in cfpkt_priv()
51 static inline bool is_erronous(struct cfpkt *pkt) in is_erronous() argument
53 return cfpkt_priv(pkt)->erronous; in is_erronous()
56 static inline struct sk_buff *pkt_to_skb(struct cfpkt *pkt) in pkt_to_skb() argument
58 return &pkt->skb; in pkt_to_skb()
68 struct cfpkt *pkt = skb_to_pkt(nativepkt); in cfpkt_fromnative() local
69 cfpkt_priv(pkt)->erronous = false; in cfpkt_fromnative()
70 return pkt; in cfpkt_fromnative()
74 void *cfpkt_tonative(struct cfpkt *pkt) in cfpkt_tonative() argument
76 return (void *) pkt; in cfpkt_tonative()
101 void cfpkt_destroy(struct cfpkt *pkt) in cfpkt_destroy() argument
103 struct sk_buff *skb = pkt_to_skb(pkt); in cfpkt_destroy()
107 inline bool cfpkt_more(struct cfpkt *pkt) in cfpkt_more() argument
109 struct sk_buff *skb = pkt_to_skb(pkt); in cfpkt_more()
113 int cfpkt_peek_head(struct cfpkt *pkt, void *data, u16 len) in cfpkt_peek_head() argument
115 struct sk_buff *skb = pkt_to_skb(pkt); in cfpkt_peek_head()
120 return !cfpkt_extr_head(pkt, data, len) && in cfpkt_peek_head()
121 !cfpkt_add_head(pkt, data, len); in cfpkt_peek_head()
124 int cfpkt_extr_head(struct cfpkt *pkt, void *data, u16 len) in cfpkt_extr_head() argument
126 struct sk_buff *skb = pkt_to_skb(pkt); in cfpkt_extr_head()
128 if (unlikely(is_erronous(pkt))) in cfpkt_extr_head()
132 PKT_ERROR(pkt, "read beyond end of packet\n"); in cfpkt_extr_head()
138 PKT_ERROR(pkt, "linearize failed\n"); in cfpkt_extr_head()
150 int cfpkt_extr_trail(struct cfpkt *pkt, void *dta, u16 len) in cfpkt_extr_trail() argument
152 struct sk_buff *skb = pkt_to_skb(pkt); in cfpkt_extr_trail()
155 if (unlikely(is_erronous(pkt))) in cfpkt_extr_trail()
159 PKT_ERROR(pkt, "linearize failed\n"); in cfpkt_extr_trail()
163 PKT_ERROR(pkt, "read beyond end of packet\n"); in cfpkt_extr_trail()
172 int cfpkt_pad_trail(struct cfpkt *pkt, u16 len) in cfpkt_pad_trail() argument
174 return cfpkt_add_body(pkt, NULL, len); in cfpkt_pad_trail()
177 int cfpkt_add_body(struct cfpkt *pkt, const void *data, u16 len) in cfpkt_add_body() argument
179 struct sk_buff *skb = pkt_to_skb(pkt); in cfpkt_add_body()
185 if (unlikely(is_erronous(pkt))) in cfpkt_add_body()
203 PKT_ERROR(pkt, "cow failed\n"); in cfpkt_add_body()
215 inline int cfpkt_addbdy(struct cfpkt *pkt, u8 data) in cfpkt_addbdy() argument
217 return cfpkt_add_body(pkt, &data, 1); in cfpkt_addbdy()
220 int cfpkt_add_head(struct cfpkt *pkt, const void *data2, u16 len) in cfpkt_add_head() argument
222 struct sk_buff *skb = pkt_to_skb(pkt); in cfpkt_add_head()
227 if (unlikely(is_erronous(pkt))) in cfpkt_add_head()
230 PKT_ERROR(pkt, "no headroom\n"); in cfpkt_add_head()
237 PKT_ERROR(pkt, "cow failed\n"); in cfpkt_add_head()
247 inline int cfpkt_add_trail(struct cfpkt *pkt, const void *data, u16 len) in cfpkt_add_trail() argument
249 return cfpkt_add_body(pkt, data, len); in cfpkt_add_trail()
252 inline u16 cfpkt_getlen(struct cfpkt *pkt) in cfpkt_getlen() argument
254 struct sk_buff *skb = pkt_to_skb(pkt); in cfpkt_getlen()
258 int cfpkt_iterate(struct cfpkt *pkt, in cfpkt_iterate() argument
266 if (unlikely(is_erronous(pkt))) in cfpkt_iterate()
268 if (unlikely(skb_linearize(&pkt->skb) != 0)) { in cfpkt_iterate()
269 PKT_ERROR(pkt, "linearize failed\n"); in cfpkt_iterate()
272 return iter_func(data, pkt->skb.data, cfpkt_getlen(pkt)); in cfpkt_iterate()
275 int cfpkt_setlen(struct cfpkt *pkt, u16 len) in cfpkt_setlen() argument
277 struct sk_buff *skb = pkt_to_skb(pkt); in cfpkt_setlen()
280 if (unlikely(is_erronous(pkt))) in cfpkt_setlen()
289 return cfpkt_getlen(pkt); in cfpkt_setlen()
293 if (unlikely(!cfpkt_pad_trail(pkt, len - skb->len))) in cfpkt_setlen()
294 PKT_ERROR(pkt, "skb_pad_trail failed\n"); in cfpkt_setlen()
296 return cfpkt_getlen(pkt); in cfpkt_setlen()
340 struct cfpkt *cfpkt_split(struct cfpkt *pkt, u16 pos) in cfpkt_split() argument
343 struct sk_buff *skb = pkt_to_skb(pkt); in cfpkt_split()
348 if (unlikely(is_erronous(pkt))) in cfpkt_split()
352 PKT_ERROR(pkt, "trying to split beyond end of packet\n"); in cfpkt_split()
378 bool cfpkt_erroneous(struct cfpkt *pkt) in cfpkt_erroneous() argument
380 return cfpkt_priv(pkt)->erronous; in cfpkt_erroneous()
383 struct caif_payload_info *cfpkt_info(struct cfpkt *pkt) in cfpkt_info() argument
385 return (struct caif_payload_info *)&pkt_to_skb(pkt)->cb; in cfpkt_info()
389 void cfpkt_set_prio(struct cfpkt *pkt, int prio) in cfpkt_set_prio() argument
391 pkt_to_skb(pkt)->priority = prio; in cfpkt_set_prio()