1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Link Layer Control manager
5 * Copyright (C) 2012 Intel Corporation. All rights reserved.
11 #include <net/nfc/hci.h>
12 #include <net/nfc/llc.h>
13 #include <linux/skbuff.h>
16 void *(*init
) (struct nfc_hci_dev
*hdev
, xmit_to_drv_t xmit_to_drv
,
17 rcv_to_hci_t rcv_to_hci
, int tx_headroom
,
18 int tx_tailroom
, int *rx_headroom
, int *rx_tailroom
,
19 llc_failure_t llc_failure
);
20 void (*deinit
) (struct nfc_llc
*llc
);
21 int (*start
) (struct nfc_llc
*llc
);
22 int (*stop
) (struct nfc_llc
*llc
);
23 void (*rcv_from_drv
) (struct nfc_llc
*llc
, struct sk_buff
*skb
);
24 int (*xmit_from_hci
) (struct nfc_llc
*llc
, struct sk_buff
*skb
);
27 struct nfc_llc_engine
{
29 const struct nfc_llc_ops
*ops
;
30 struct list_head entry
;
35 const struct nfc_llc_ops
*ops
;
40 void *nfc_llc_get_data(struct nfc_llc
*llc
);
42 int nfc_llc_register(const char *name
, const struct nfc_llc_ops
*ops
);
43 void nfc_llc_unregister(const char *name
);
45 int nfc_llc_nop_register(void);
47 #if defined(CONFIG_NFC_SHDLC)
48 int nfc_llc_shdlc_register(void);
50 static inline int nfc_llc_shdlc_register(void)
56 #endif /* __LOCAL_LLC_H_ */