aboutsummaryrefslogtreecommitdiffstats
path: root/net/nfc/llcp/llcp.h
diff options
context:
space:
mode:
authorThierry Escande <thierry.escande@linux.intel.com>2013-02-15 04:43:05 -0500
committerSamuel Ortiz <sameo@linux.intel.com>2013-03-10 18:10:55 -0400
commite0ae7bac06ccb90bb0cf7a3362730b48c7d7f1a8 (patch)
tree9c0ef047089dd244a9df4216d3e4a8348f6ef6e8 /net/nfc/llcp/llcp.h
parent8af362d124ce250cafb50cb488b4beb69fee3373 (diff)
NFC: llcp: Service Name Lookup SDRES aggregation
This modifies the way SDRES PDUs are sent back. If multiple SDREQs are received within a single SNL PDU, all SDRES replies are sent packed in one SNL PDU too. Signed-off-by: Thierry Escande <thierry.escande@linux.intel.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'net/nfc/llcp/llcp.h')
-rw-r--r--net/nfc/llcp/llcp.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/net/nfc/llcp/llcp.h b/net/nfc/llcp/llcp.h
index 5f117adac2e5..465f5953e2d1 100644
--- a/net/nfc/llcp/llcp.h
+++ b/net/nfc/llcp/llcp.h
@@ -46,6 +46,17 @@ struct llcp_sock_list {
46 rwlock_t lock; 46 rwlock_t lock;
47}; 47};
48 48
49struct nfc_llcp_sdp_tlv {
50 u8 *tlv;
51 u8 tlv_len;
52
53 char *uri;
54 u8 tid;
55 u8 sap;
56
57 struct hlist_node node;
58};
59
49struct nfc_llcp_local { 60struct nfc_llcp_local {
50 struct list_head list; 61 struct list_head list;
51 struct nfc_dev *dev; 62 struct nfc_dev *dev;
@@ -218,12 +229,15 @@ int nfc_llcp_parse_connection_tlv(struct nfc_llcp_sock *sock,
218/* Commands API */ 229/* Commands API */
219void nfc_llcp_recv(void *data, struct sk_buff *skb, int err); 230void nfc_llcp_recv(void *data, struct sk_buff *skb, int err);
220u8 *nfc_llcp_build_tlv(u8 type, u8 *value, u8 value_length, u8 *tlv_length); 231u8 *nfc_llcp_build_tlv(u8 type, u8 *value, u8 value_length, u8 *tlv_length);
232struct nfc_llcp_sdp_tlv *nfc_llcp_build_sdres_tlv(u8 tid, u8 sap);
233void nfc_llcp_free_sdp_tlv(struct nfc_llcp_sdp_tlv *sdp);
221void nfc_llcp_recv(void *data, struct sk_buff *skb, int err); 234void nfc_llcp_recv(void *data, struct sk_buff *skb, int err);
222int nfc_llcp_disconnect(struct nfc_llcp_sock *sock); 235int nfc_llcp_disconnect(struct nfc_llcp_sock *sock);
223int nfc_llcp_send_symm(struct nfc_dev *dev); 236int nfc_llcp_send_symm(struct nfc_dev *dev);
224int nfc_llcp_send_connect(struct nfc_llcp_sock *sock); 237int nfc_llcp_send_connect(struct nfc_llcp_sock *sock);
225int nfc_llcp_send_cc(struct nfc_llcp_sock *sock); 238int nfc_llcp_send_cc(struct nfc_llcp_sock *sock);
226int nfc_llcp_send_snl(struct nfc_llcp_local *local, u8 tid, u8 sap); 239int nfc_llcp_send_snl_sdres(struct nfc_llcp_local *local,
240 struct hlist_head *tlv_list, size_t tlvs_len);
227int nfc_llcp_send_dm(struct nfc_llcp_local *local, u8 ssap, u8 dsap, u8 reason); 241int nfc_llcp_send_dm(struct nfc_llcp_local *local, u8 ssap, u8 dsap, u8 reason);
228int nfc_llcp_send_disconnect(struct nfc_llcp_sock *sock); 242int nfc_llcp_send_disconnect(struct nfc_llcp_sock *sock);
229int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock, 243int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock,