#ifndef __NET_HCI_H
#define __NET_HCI_H
#include <linux/skbuff.h>
#include <net/nfc/nfc.h>
struct nfc_hci_dev;
struct nfc_hci_ops { … };
#define NFC_HCI_DO_NOT_CREATE_PIPE …
#define NFC_HCI_INVALID_PIPE …
#define NFC_HCI_INVALID_GATE …
#define NFC_HCI_INVALID_HOST …
#define NFC_HCI_LINK_MGMT_PIPE …
#define NFC_HCI_ADMIN_PIPE …
struct nfc_hci_gate { … };
struct nfc_hci_pipe { … };
#define NFC_HCI_MAX_CUSTOM_GATES …
#define NFC_HCI_MAX_PIPES …
struct nfc_hci_init_data { … };
xmit;
#define NFC_HCI_MAX_GATES …
enum { … };
struct nfc_hci_dev { … };
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);
void nfc_hci_free_device(struct nfc_hci_dev *hdev);
int nfc_hci_register_device(struct nfc_hci_dev *hdev);
void nfc_hci_unregister_device(struct nfc_hci_dev *hdev);
void nfc_hci_set_clientdata(struct nfc_hci_dev *hdev, void *clientdata);
void *nfc_hci_get_clientdata(struct nfc_hci_dev *hdev);
static inline int nfc_hci_set_vendor_cmds(struct nfc_hci_dev *hdev,
const struct nfc_vendor_cmd *cmds,
int n_cmds)
{ … }
void nfc_hci_driver_failure(struct nfc_hci_dev *hdev, int err);
int nfc_hci_result_to_errno(u8 result);
void nfc_hci_reset_pipes(struct nfc_hci_dev *dev);
void nfc_hci_reset_pipes_per_host(struct nfc_hci_dev *hdev, u8 host);
#define NFC_HCI_HOST_CONTROLLER_ID …
#define NFC_HCI_TERMINAL_HOST_ID …
#define NFC_HCI_UICC_HOST_ID …
#define NFC_HCI_ADMIN_GATE …
#define NFC_HCI_ADMIN_SESSION_IDENTITY …
#define NFC_HCI_ADMIN_MAX_PIPE …
#define NFC_HCI_ADMIN_WHITELIST …
#define NFC_HCI_ADMIN_HOST_LIST …
#define NFC_HCI_LOOPBACK_GATE …
#define NFC_HCI_ID_MGMT_GATE …
#define NFC_HCI_ID_MGMT_VERSION_SW …
#define NFC_HCI_ID_MGMT_VERSION_HW …
#define NFC_HCI_ID_MGMT_VENDOR_NAME …
#define NFC_HCI_ID_MGMT_MODEL_ID …
#define NFC_HCI_ID_MGMT_HCI_VERSION …
#define NFC_HCI_ID_MGMT_GATES_LIST …
#define NFC_HCI_LINK_MGMT_GATE …
#define NFC_HCI_LINK_MGMT_REC_ERROR …
#define NFC_HCI_RF_READER_B_GATE …
#define NFC_HCI_RF_READER_B_PUPI …
#define NFC_HCI_RF_READER_B_APPLICATION_DATA …
#define NFC_HCI_RF_READER_B_AFI …
#define NFC_HCI_RF_READER_B_HIGHER_LAYER_RESPONSE …
#define NFC_HCI_RF_READER_B_HIGHER_LAYER_DATA …
#define NFC_HCI_RF_READER_A_GATE …
#define NFC_HCI_RF_READER_A_UID …
#define NFC_HCI_RF_READER_A_ATQA …
#define NFC_HCI_RF_READER_A_APPLICATION_DATA …
#define NFC_HCI_RF_READER_A_SAK …
#define NFC_HCI_RF_READER_A_FWI_SFGT …
#define NFC_HCI_RF_READER_A_DATARATE_MAX …
#define NFC_HCI_TYPE_A_SEL_PROT(x) …
#define NFC_HCI_TYPE_A_SEL_PROT_MIFARE …
#define NFC_HCI_TYPE_A_SEL_PROT_ISO14443 …
#define NFC_HCI_TYPE_A_SEL_PROT_DEP …
#define NFC_HCI_TYPE_A_SEL_PROT_ISO14443_DEP …
#define NFC_HCI_EVT_HCI_END_OF_OPERATION …
#define NFC_HCI_EVT_POST_DATA …
#define NFC_HCI_EVT_HOT_PLUG …
#define NFC_HCI_ANY_SET_PARAMETER …
#define NFC_HCI_ANY_GET_PARAMETER …
#define NFC_HCI_ANY_OPEN_PIPE …
#define NFC_HCI_ANY_CLOSE_PIPE …
#define NFC_HCI_EVT_READER_REQUESTED …
#define NFC_HCI_EVT_END_OPERATION …
#define NFC_HCI_EVT_TARGET_DISCOVERED …
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);
void nfc_hci_event_received(struct nfc_hci_dev *hdev, u8 pipe, u8 event,
struct sk_buff *skb);
void nfc_hci_recv_frame(struct nfc_hci_dev *hdev, struct sk_buff *skb);
int nfc_hci_connect_gate(struct nfc_hci_dev *hdev, u8 dest_host, u8 dest_gate,
u8 pipe);
int nfc_hci_disconnect_gate(struct nfc_hci_dev *hdev, u8 gate);
int nfc_hci_disconnect_all_gates(struct nfc_hci_dev *hdev);
int nfc_hci_get_param(struct nfc_hci_dev *hdev, u8 gate, u8 idx,
struct sk_buff **skb);
int nfc_hci_set_param(struct nfc_hci_dev *hdev, u8 gate, u8 idx,
const u8 *param, size_t param_len);
int nfc_hci_send_cmd(struct nfc_hci_dev *hdev, u8 gate, u8 cmd,
const u8 *param, size_t param_len, struct sk_buff **skb);
int nfc_hci_send_cmd_async(struct nfc_hci_dev *hdev, u8 gate, u8 cmd,
const u8 *param, size_t param_len,
data_exchange_cb_t cb, void *cb_context);
int nfc_hci_send_event(struct nfc_hci_dev *hdev, u8 gate, u8 event,
const u8 *param, size_t param_len);
int nfc_hci_target_discovered(struct nfc_hci_dev *hdev, u8 gate);
u32 nfc_hci_sak_to_protocol(u8 sak);
#endif