#ifndef __NET_NFC_H
#define __NET_NFC_H
#include <linux/nfc.h>
#include <linux/device.h>
#include <linux/skbuff.h>
#define nfc_dbg(dev, fmt, ...) …
#define nfc_info(dev, fmt, ...) …
#define nfc_err(dev, fmt, ...) …
struct nfc_phy_ops { … };
struct nfc_dev;
data_exchange_cb_t;
se_io_cb_t;
struct nfc_target;
struct nfc_ops { … };
#define NFC_TARGET_IDX_ANY …
#define NFC_MAX_GT_LEN …
#define NFC_ATR_RES_GT_OFFSET …
#define NFC_ATR_REQ_GT_OFFSET …
struct nfc_target { … };
struct nfc_se { … };
#define NFC_MIN_AID_LENGTH …
#define NFC_MAX_AID_LENGTH …
#define NFC_MAX_PARAMS_LENGTH …
#define NFC_EVT_TRANSACTION_AID_TAG …
#define NFC_EVT_TRANSACTION_PARAMS_TAG …
struct nfc_evt_transaction { … } __packed;
struct nfc_genl_data { … };
struct nfc_vendor_cmd { … };
struct nfc_dev { … };
#define to_nfc_dev(_dev) …
extern const struct class nfc_class;
struct nfc_dev *nfc_allocate_device(const struct nfc_ops *ops,
u32 supported_protocols,
int tx_headroom,
int tx_tailroom);
static inline void nfc_free_device(struct nfc_dev *dev)
{ … }
int nfc_register_device(struct nfc_dev *dev);
void nfc_unregister_device(struct nfc_dev *dev);
static inline void nfc_set_parent_dev(struct nfc_dev *nfc_dev,
struct device *dev)
{ … }
static inline void nfc_set_drvdata(struct nfc_dev *dev, void *data)
{ … }
static inline void *nfc_get_drvdata(const struct nfc_dev *dev)
{ … }
static inline const char *nfc_device_name(const struct nfc_dev *dev)
{ … }
struct sk_buff *nfc_alloc_send_skb(struct nfc_dev *dev, struct sock *sk,
unsigned int flags, unsigned int size,
unsigned int *err);
struct sk_buff *nfc_alloc_recv_skb(unsigned int size, gfp_t gfp);
int nfc_set_remote_general_bytes(struct nfc_dev *dev,
const u8 *gt, u8 gt_len);
u8 *nfc_get_local_general_bytes(struct nfc_dev *dev, size_t *gb_len);
int nfc_fw_download_done(struct nfc_dev *dev, const char *firmware_name,
u32 result);
int nfc_targets_found(struct nfc_dev *dev,
struct nfc_target *targets, int ntargets);
int nfc_target_lost(struct nfc_dev *dev, u32 target_idx);
int nfc_dep_link_is_up(struct nfc_dev *dev, u32 target_idx,
u8 comm_mode, u8 rf_mode);
int nfc_tm_activated(struct nfc_dev *dev, u32 protocol, u8 comm_mode,
const u8 *gb, size_t gb_len);
int nfc_tm_deactivated(struct nfc_dev *dev);
int nfc_tm_data_received(struct nfc_dev *dev, struct sk_buff *skb);
void nfc_driver_failure(struct nfc_dev *dev, int err);
int nfc_se_transaction(struct nfc_dev *dev, u8 se_idx,
struct nfc_evt_transaction *evt_transaction);
int nfc_se_connectivity(struct nfc_dev *dev, u8 se_idx);
int nfc_add_se(struct nfc_dev *dev, u32 se_idx, u16 type);
int nfc_remove_se(struct nfc_dev *dev, u32 se_idx);
struct nfc_se *nfc_find_se(struct nfc_dev *dev, u32 se_idx);
void nfc_send_to_raw_sock(struct nfc_dev *dev, struct sk_buff *skb,
u8 payload_type, u8 direction);
static inline int nfc_set_vendor_cmds(struct nfc_dev *dev,
const struct nfc_vendor_cmd *cmds,
int n_cmds)
{ … }
struct sk_buff *__nfc_alloc_vendor_cmd_reply_skb(struct nfc_dev *dev,
enum nfc_attrs attr,
u32 oui, u32 subcmd,
int approxlen);
int nfc_vendor_cmd_reply(struct sk_buff *skb);
static inline struct sk_buff *
nfc_vendor_cmd_alloc_reply_skb(struct nfc_dev *dev,
u32 oui, u32 subcmd, int approxlen)
{ … }
#endif