Lines Matching refs:skb

100 #define I2C_DUMP_SKB(info, skb)					\  argument
104 16, 1, (skb)->data, (skb)->len, 0); \
175 static void st21nfca_hci_add_len_crc(struct sk_buff *skb) in st21nfca_hci_add_len_crc() argument
180 *skb_push(skb, 1) = 0; in st21nfca_hci_add_len_crc()
182 crc = crc_ccitt(0xffff, skb->data, skb->len); in st21nfca_hci_add_len_crc()
186 *skb_put(skb, 1) = tmp; in st21nfca_hci_add_len_crc()
189 *skb_put(skb, 1) = tmp; in st21nfca_hci_add_len_crc()
192 static void st21nfca_hci_remove_len_crc(struct sk_buff *skb) in st21nfca_hci_remove_len_crc() argument
194 skb_pull(skb, ST21NFCA_FRAME_HEADROOM); in st21nfca_hci_remove_len_crc()
195 skb_trim(skb, skb->len - ST21NFCA_FRAME_TAILROOM); in st21nfca_hci_remove_len_crc()
203 static int st21nfca_hci_i2c_write(void *phy_id, struct sk_buff *skb) in st21nfca_hci_i2c_write() argument
210 I2C_DUMP_SKB("st21nfca_hci_i2c_write", skb); in st21nfca_hci_i2c_write()
221 st21nfca_hci_add_len_crc(skb); in st21nfca_hci_i2c_write()
224 *skb_put(skb, 1) = ST21NFCA_SOF_EOF; in st21nfca_hci_i2c_write()
226 *skb_push(skb, 1) = ST21NFCA_SOF_EOF; in st21nfca_hci_i2c_write()
234 tmp[0] = skb->data[0]; in st21nfca_hci_i2c_write()
235 for (i = 1, j = 1; i < skb->len - 1; i++, j++) { in st21nfca_hci_i2c_write()
236 if (skb->data[i] == ST21NFCA_SOF_EOF in st21nfca_hci_i2c_write()
237 || skb->data[i] == ST21NFCA_ESCAPE_BYTE_STUFFING) { in st21nfca_hci_i2c_write()
240 tmp[j] = skb->data[i] ^ ST21NFCA_BYTE_STUFFING_MASK; in st21nfca_hci_i2c_write()
242 tmp[j] = skb->data[i]; in st21nfca_hci_i2c_write()
245 tmp[j] = skb->data[i]; in st21nfca_hci_i2c_write()
267 st21nfca_hci_remove_len_crc(skb); in st21nfca_hci_i2c_write()
313 static int st21nfca_hci_i2c_repack(struct sk_buff *skb) in st21nfca_hci_i2c_repack() argument
317 if (skb->len < 1 || (skb->len > 1 && skb->data[1] != 0)) in st21nfca_hci_i2c_repack()
320 size = get_frame_size(skb->data, skb->len); in st21nfca_hci_i2c_repack()
322 skb_trim(skb, size); in st21nfca_hci_i2c_repack()
324 for (i = 1, j = 0; i < skb->len; i++) { in st21nfca_hci_i2c_repack()
325 if (skb->data[i + j] == in st21nfca_hci_i2c_repack()
327 skb->data[i] = skb->data[i + j + 1] in st21nfca_hci_i2c_repack()
332 skb->data[i] = skb->data[i + j]; in st21nfca_hci_i2c_repack()
335 skb_trim(skb, i - j); in st21nfca_hci_i2c_repack()
337 skb_pull(skb, 1); in st21nfca_hci_i2c_repack()
339 r = check_crc(skb->data, skb->len); in st21nfca_hci_i2c_repack()
346 skb_pull(skb, 1); in st21nfca_hci_i2c_repack()
348 skb_trim(skb, skb->len - 2); in st21nfca_hci_i2c_repack()
349 return skb->len; in st21nfca_hci_i2c_repack()
370 struct sk_buff *skb) in st21nfca_hci_i2c_read() argument
404 skb_trim(skb, 0); in st21nfca_hci_i2c_read()
413 skb_trim(skb, 0); in st21nfca_hci_i2c_read()
417 memcpy(skb_put(skb, len), buf, len); in st21nfca_hci_i2c_read()
419 if (skb->data[skb->len - 1] == ST21NFCA_SOF_EOF) { in st21nfca_hci_i2c_read()
421 return st21nfca_hci_i2c_repack(skb); in st21nfca_hci_i2c_read()