aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorEric Lapuyade <eric.lapuyade@linux.intel.com>2012-09-13 11:10:00 -0400
committerSamuel Ortiz <sameo@linux.intel.com>2012-09-24 18:17:25 -0400
commit67cccfe17d1b3da1ed6c79e643c9be95ebde9642 (patch)
treeec08617b50bbb6dce81fd3436b582e3cf55b231a /include
parentf3e8fb552789f4845e60b11c47b676d14b9488e5 (diff)
NFC: Add an LLC Core layer to HCI
The LLC layer manages modules that control the link layer protocol (such as shdlc) between HCI and an HCI driver. The driver must simply specify the required llc when it registers with HCI. Signed-off-by: Eric Lapuyade <eric.lapuyade@intel.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'include')
-rw-r--r--include/net/nfc/llc.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/include/net/nfc/llc.h b/include/net/nfc/llc.h
new file mode 100644
index 000000000000..98df903f8b7d
--- /dev/null
+++ b/include/net/nfc/llc.h
@@ -0,0 +1,51 @@
1/*
2 * Link Layer Control manager public interface
3 *
4 * Copyright (C) 2012 Intel Corporation. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License,
8 * version 2, as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the
17 * Free Software Foundation, Inc.,
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 */
20
21#ifndef __NFC_LLC_H_
22#define __NFC_LLC_H_
23
24#include <net/nfc/hci.h>
25#include <linux/skbuff.h>
26
27typedef void (*rcv_to_hci_t) (struct nfc_hci_dev *hdev, struct sk_buff *skb);
28typedef int (*xmit_to_drv_t) (struct nfc_hci_dev *hdev, struct sk_buff *skb);
29typedef void (*llc_failure_t) (struct nfc_hci_dev *hdev, int err);
30
31struct nfc_llc;
32
33struct nfc_llc *nfc_llc_allocate(const char *name, struct nfc_hci_dev *hdev,
34 xmit_to_drv_t xmit_to_drv,
35 rcv_to_hci_t rcv_to_hci, int tx_headroom,
36 int tx_tailroom, llc_failure_t llc_failure);
37void nfc_llc_free(struct nfc_llc *llc);
38
39void nfc_llc_get_rx_head_tail_room(struct nfc_llc *llc, int *rx_headroom,
40 int *rx_tailroom);
41
42
43int nfc_llc_start(struct nfc_llc *llc);
44int nfc_llc_stop(struct nfc_llc *llc);
45void nfc_llc_rcv_from_drv(struct nfc_llc *llc, struct sk_buff *skb);
46int nfc_llc_xmit_from_hci(struct nfc_llc *llc, struct sk_buff *skb);
47
48int nfc_llc_init(void);
49void nfc_llc_exit(void);
50
51#endif /* __NFC_LLC_H_ */