#define pr_fmt(fmt) …
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/nfc.h>
#include <net/nfc/nfc.h>
#include <net/nfc/hci.h>
#include <net/nfc/llc.h>
#include "hci.h"
#define HCI_CMDS_HEADROOM …
int nfc_hci_result_to_errno(u8 result)
{ … }
EXPORT_SYMBOL(…);
void nfc_hci_reset_pipes(struct nfc_hci_dev *hdev)
{ … }
EXPORT_SYMBOL(…);
void nfc_hci_reset_pipes_per_host(struct nfc_hci_dev *hdev, u8 host)
{ … }
EXPORT_SYMBOL(…);
static void nfc_hci_msg_tx_work(struct work_struct *work)
{ … }
static void nfc_hci_msg_rx_work(struct work_struct *work)
{ … }
static void __nfc_hci_cmd_completion(struct nfc_hci_dev *hdev, int err,
struct sk_buff *skb)
{ … }
void nfc_hci_resp_received(struct nfc_hci_dev *hdev, u8 result,
struct sk_buff *skb)
{ … }
void nfc_hci_cmd_received(struct nfc_hci_dev *hdev, u8 pipe, u8 cmd,
struct sk_buff *skb)
{ … }
u32 nfc_hci_sak_to_protocol(u8 sak)
{ … }
EXPORT_SYMBOL(…);
int nfc_hci_target_discovered(struct nfc_hci_dev *hdev, u8 gate)
{ … }
EXPORT_SYMBOL(…);
void nfc_hci_event_received(struct nfc_hci_dev *hdev, u8 pipe, u8 event,
struct sk_buff *skb)
{ … }
static void nfc_hci_cmd_timeout(struct timer_list *t)
{ … }
static int hci_dev_connect_gates(struct nfc_hci_dev *hdev, u8 gate_count,
const struct nfc_hci_gate *gates)
{ … }
static int hci_dev_session_init(struct nfc_hci_dev *hdev)
{ … }
static int hci_dev_version(struct nfc_hci_dev *hdev)
{ … }
static int hci_dev_up(struct nfc_dev *nfc_dev)
{ … }
static int hci_dev_down(struct nfc_dev *nfc_dev)
{ … }
static int hci_start_poll(struct nfc_dev *nfc_dev,
u32 im_protocols, u32 tm_protocols)
{ … }
static void hci_stop_poll(struct nfc_dev *nfc_dev)
{ … }
static int hci_dep_link_up(struct nfc_dev *nfc_dev, struct nfc_target *target,
__u8 comm_mode, __u8 *gb, size_t gb_len)
{ … }
static int hci_dep_link_down(struct nfc_dev *nfc_dev)
{ … }
static int hci_activate_target(struct nfc_dev *nfc_dev,
struct nfc_target *target, u32 protocol)
{ … }
static void hci_deactivate_target(struct nfc_dev *nfc_dev,
struct nfc_target *target,
u8 mode)
{ … }
#define HCI_CB_TYPE_TRANSCEIVE …
static void hci_transceive_cb(void *context, struct sk_buff *skb, int err)
{ … }
static int hci_transceive(struct nfc_dev *nfc_dev, struct nfc_target *target,
struct sk_buff *skb, data_exchange_cb_t cb,
void *cb_context)
{ … }
static int hci_tm_send(struct nfc_dev *nfc_dev, struct sk_buff *skb)
{ … }
static int hci_check_presence(struct nfc_dev *nfc_dev,
struct nfc_target *target)
{ … }
static int hci_discover_se(struct nfc_dev *nfc_dev)
{ … }
static int hci_enable_se(struct nfc_dev *nfc_dev, u32 se_idx)
{ … }
static int hci_disable_se(struct nfc_dev *nfc_dev, u32 se_idx)
{ … }
static int hci_se_io(struct nfc_dev *nfc_dev, u32 se_idx,
u8 *apdu, size_t apdu_length,
se_io_cb_t cb, void *cb_context)
{ … }
static void nfc_hci_failure(struct nfc_hci_dev *hdev, int err)
{ … }
static void nfc_hci_llc_failure(struct nfc_hci_dev *hdev, int err)
{ … }
static void nfc_hci_recv_from_llc(struct nfc_hci_dev *hdev, struct sk_buff *skb)
{ … }
static int hci_fw_download(struct nfc_dev *nfc_dev, const char *firmware_name)
{ … }
static const struct nfc_ops hci_nfc_ops = …;
struct nfc_hci_dev *nfc_hci_allocate_device(const struct nfc_hci_ops *ops,
struct nfc_hci_init_data *init_data,
unsigned long quirks,
u32 protocols,
const char *llc_name,
int tx_headroom,
int tx_tailroom,
int max_link_payload)
{ … }
EXPORT_SYMBOL(…);
void nfc_hci_free_device(struct nfc_hci_dev *hdev)
{ … }
EXPORT_SYMBOL(…);
int nfc_hci_register_device(struct nfc_hci_dev *hdev)
{ … }
EXPORT_SYMBOL(…);
void nfc_hci_unregister_device(struct nfc_hci_dev *hdev)
{ … }
EXPORT_SYMBOL(…);
void nfc_hci_set_clientdata(struct nfc_hci_dev *hdev, void *clientdata)
{ … }
EXPORT_SYMBOL(…);
void *nfc_hci_get_clientdata(struct nfc_hci_dev *hdev)
{ … }
EXPORT_SYMBOL(…);
void nfc_hci_driver_failure(struct nfc_hci_dev *hdev, int err)
{ … }
EXPORT_SYMBOL(…);
void nfc_hci_recv_frame(struct nfc_hci_dev *hdev, struct sk_buff *skb)
{ … }
EXPORT_SYMBOL(…);
static int __init nfc_hci_init(void)
{ … }
static void __exit nfc_hci_exit(void)
{ … }
subsys_initcall(nfc_hci_init);
module_exit(nfc_hci_exit);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;