Lines Matching refs:tlv

32 static u8 llcp_tlv8(const u8 *tlv, u8 type)  in llcp_tlv8()  argument
34 if (tlv[0] != type || tlv[1] != llcp_tlv_length[tlv[0]]) in llcp_tlv8()
37 return tlv[2]; in llcp_tlv8()
40 static u16 llcp_tlv16(const u8 *tlv, u8 type) in llcp_tlv16() argument
42 if (tlv[0] != type || tlv[1] != llcp_tlv_length[tlv[0]]) in llcp_tlv16()
45 return be16_to_cpu(*((__be16 *)(tlv + 2))); in llcp_tlv16()
49 static u8 llcp_tlv_version(const u8 *tlv) in llcp_tlv_version() argument
51 return llcp_tlv8(tlv, LLCP_TLV_VERSION); in llcp_tlv_version()
54 static u16 llcp_tlv_miux(const u8 *tlv) in llcp_tlv_miux() argument
56 return llcp_tlv16(tlv, LLCP_TLV_MIUX) & 0x7ff; in llcp_tlv_miux()
59 static u16 llcp_tlv_wks(const u8 *tlv) in llcp_tlv_wks() argument
61 return llcp_tlv16(tlv, LLCP_TLV_WKS); in llcp_tlv_wks()
64 static u16 llcp_tlv_lto(const u8 *tlv) in llcp_tlv_lto() argument
66 return llcp_tlv8(tlv, LLCP_TLV_LTO); in llcp_tlv_lto()
69 static u8 llcp_tlv_opt(const u8 *tlv) in llcp_tlv_opt() argument
71 return llcp_tlv8(tlv, LLCP_TLV_OPT); in llcp_tlv_opt()
74 static u8 llcp_tlv_rw(const u8 *tlv) in llcp_tlv_rw() argument
76 return llcp_tlv8(tlv, LLCP_TLV_RW) & 0xf; in llcp_tlv_rw()
81 u8 *tlv, length; in nfc_llcp_build_tlv() local
95 tlv = kzalloc(2 + length, GFP_KERNEL); in nfc_llcp_build_tlv()
96 if (tlv == NULL) in nfc_llcp_build_tlv()
97 return tlv; in nfc_llcp_build_tlv()
99 tlv[0] = type; in nfc_llcp_build_tlv()
100 tlv[1] = length; in nfc_llcp_build_tlv()
101 memcpy(tlv + 2, value, length); in nfc_llcp_build_tlv()
103 return tlv; in nfc_llcp_build_tlv()
118 sdres->tlv = nfc_llcp_build_tlv(LLCP_TLV_SDRES, value, 2, in nfc_llcp_build_sdres_tlv()
120 if (sdres->tlv == NULL) { in nfc_llcp_build_sdres_tlv()
153 sdreq->tlv = kzalloc(sdreq->tlv_len + 1, GFP_KERNEL); in nfc_llcp_build_sdreq_tlv()
154 if (sdreq->tlv == NULL) { in nfc_llcp_build_sdreq_tlv()
159 sdreq->tlv[0] = LLCP_TLV_SDREQ; in nfc_llcp_build_sdreq_tlv()
160 sdreq->tlv[1] = sdreq->tlv_len - 2; in nfc_llcp_build_sdreq_tlv()
161 sdreq->tlv[2] = tid; in nfc_llcp_build_sdreq_tlv()
164 sdreq->uri = sdreq->tlv + 3; in nfc_llcp_build_sdreq_tlv()
176 kfree(sdp->tlv); in nfc_llcp_free_sdp_tlv()
195 const u8 *tlv = tlv_array; in nfc_llcp_parse_gb_tlv() local
204 type = tlv[0]; in nfc_llcp_parse_gb_tlv()
205 length = tlv[1]; in nfc_llcp_parse_gb_tlv()
211 local->remote_version = llcp_tlv_version(tlv); in nfc_llcp_parse_gb_tlv()
214 local->remote_miu = llcp_tlv_miux(tlv) + 128; in nfc_llcp_parse_gb_tlv()
217 local->remote_wks = llcp_tlv_wks(tlv); in nfc_llcp_parse_gb_tlv()
220 local->remote_lto = llcp_tlv_lto(tlv) * 10; in nfc_llcp_parse_gb_tlv()
223 local->remote_opt = llcp_tlv_opt(tlv); in nfc_llcp_parse_gb_tlv()
231 tlv += length + 2; in nfc_llcp_parse_gb_tlv()
245 const u8 *tlv = tlv_array; in nfc_llcp_parse_connection_tlv() local
254 type = tlv[0]; in nfc_llcp_parse_connection_tlv()
255 length = tlv[1]; in nfc_llcp_parse_connection_tlv()
261 sock->remote_miu = llcp_tlv_miux(tlv) + 128; in nfc_llcp_parse_connection_tlv()
264 sock->remote_rw = llcp_tlv_rw(tlv); in nfc_llcp_parse_connection_tlv()
274 tlv += length + 2; in nfc_llcp_parse_connection_tlv()
300 static struct sk_buff *llcp_add_tlv(struct sk_buff *pdu, const u8 *tlv, in llcp_add_tlv() argument
305 if (tlv == NULL) in llcp_add_tlv()
308 skb_put_data(pdu, tlv, tlv_length); in llcp_add_tlv()
567 skb_put_data(skb, sdp->tlv, sdp->tlv_len); in nfc_llcp_send_snl_sdres()
599 skb_put_data(skb, sdreq->tlv, sdreq->tlv_len); in nfc_llcp_send_snl_sdreq()