xref: /openbmc/linux/include/net/nfc/llc.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
1*46fe7771SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
267cccfe1SEric Lapuyade /*
367cccfe1SEric Lapuyade  * Link Layer Control manager public interface
467cccfe1SEric Lapuyade  *
567cccfe1SEric Lapuyade  * Copyright (C) 2012  Intel Corporation. All rights reserved.
667cccfe1SEric Lapuyade  */
767cccfe1SEric Lapuyade 
867cccfe1SEric Lapuyade #ifndef __NFC_LLC_H_
967cccfe1SEric Lapuyade #define __NFC_LLC_H_
1067cccfe1SEric Lapuyade 
1167cccfe1SEric Lapuyade #include <net/nfc/hci.h>
1267cccfe1SEric Lapuyade #include <linux/skbuff.h>
1367cccfe1SEric Lapuyade 
148af00d48SEric Lapuyade #define LLC_NOP_NAME "nop"
154a61cd66SEric Lapuyade #define LLC_SHDLC_NAME "shdlc"
168af00d48SEric Lapuyade 
1767cccfe1SEric Lapuyade typedef void (*rcv_to_hci_t) (struct nfc_hci_dev *hdev, struct sk_buff *skb);
1867cccfe1SEric Lapuyade typedef int (*xmit_to_drv_t) (struct nfc_hci_dev *hdev, struct sk_buff *skb);
1967cccfe1SEric Lapuyade typedef void (*llc_failure_t) (struct nfc_hci_dev *hdev, int err);
2067cccfe1SEric Lapuyade 
2167cccfe1SEric Lapuyade struct nfc_llc;
2267cccfe1SEric Lapuyade 
2367cccfe1SEric Lapuyade struct nfc_llc *nfc_llc_allocate(const char *name, struct nfc_hci_dev *hdev,
2467cccfe1SEric Lapuyade 				 xmit_to_drv_t xmit_to_drv,
2567cccfe1SEric Lapuyade 				 rcv_to_hci_t rcv_to_hci, int tx_headroom,
2667cccfe1SEric Lapuyade 				 int tx_tailroom, llc_failure_t llc_failure);
2767cccfe1SEric Lapuyade void nfc_llc_free(struct nfc_llc *llc);
2867cccfe1SEric Lapuyade 
2967cccfe1SEric Lapuyade int nfc_llc_start(struct nfc_llc *llc);
3067cccfe1SEric Lapuyade int nfc_llc_stop(struct nfc_llc *llc);
3167cccfe1SEric Lapuyade void nfc_llc_rcv_from_drv(struct nfc_llc *llc, struct sk_buff *skb);
3267cccfe1SEric Lapuyade int nfc_llc_xmit_from_hci(struct nfc_llc *llc, struct sk_buff *skb);
3367cccfe1SEric Lapuyade 
3467cccfe1SEric Lapuyade int nfc_llc_init(void);
3567cccfe1SEric Lapuyade void nfc_llc_exit(void);
3667cccfe1SEric Lapuyade 
3767cccfe1SEric Lapuyade #endif /* __NFC_LLC_H_ */
38