#define pr_fmt(fmt) …
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/nfc.h>
#include "nfc.h"
#include "llcp.h"
static u8 llcp_magic[3] = …;
static LIST_HEAD(llcp_devices);
static DEFINE_SPINLOCK(llcp_devices_lock);
static void nfc_llcp_rx_skb(struct nfc_llcp_local *local, struct sk_buff *skb);
void nfc_llcp_sock_link(struct llcp_sock_list *l, struct sock *sk)
{ … }
void nfc_llcp_sock_unlink(struct llcp_sock_list *l, struct sock *sk)
{ … }
void nfc_llcp_socket_remote_param_init(struct nfc_llcp_sock *sock)
{ … }
static void nfc_llcp_socket_purge(struct nfc_llcp_sock *sock)
{ … }
static void nfc_llcp_socket_release(struct nfc_llcp_local *local, bool device,
int err)
{ … }
static struct nfc_llcp_local *nfc_llcp_local_get(struct nfc_llcp_local *local)
{ … }
static void local_cleanup(struct nfc_llcp_local *local)
{ … }
static void local_release(struct kref *ref)
{ … }
int nfc_llcp_local_put(struct nfc_llcp_local *local)
{ … }
static struct nfc_llcp_sock *nfc_llcp_sock_get(struct nfc_llcp_local *local,
u8 ssap, u8 dsap)
{ … }
static void nfc_llcp_sock_put(struct nfc_llcp_sock *sock)
{ … }
static void nfc_llcp_timeout_work(struct work_struct *work)
{ … }
static void nfc_llcp_symm_timer(struct timer_list *t)
{ … }
static void nfc_llcp_sdreq_timeout_work(struct work_struct *work)
{ … }
static void nfc_llcp_sdreq_timer(struct timer_list *t)
{ … }
struct nfc_llcp_local *nfc_llcp_find_local(struct nfc_dev *dev)
{ … }
static struct nfc_llcp_local *nfc_llcp_remove_local(struct nfc_dev *dev)
{ … }
static char *wks[] = …;
static int nfc_llcp_wks_sap(const char *service_name, size_t service_name_len)
{ … }
static
struct nfc_llcp_sock *nfc_llcp_sock_from_sn(struct nfc_llcp_local *local,
const u8 *sn, size_t sn_len,
bool needref)
{ … }
u8 nfc_llcp_get_sdp_ssap(struct nfc_llcp_local *local,
struct nfc_llcp_sock *sock)
{ … }
u8 nfc_llcp_get_local_ssap(struct nfc_llcp_local *local)
{ … }
void nfc_llcp_put_ssap(struct nfc_llcp_local *local, u8 ssap)
{ … }
static u8 nfc_llcp_reserve_sdp_ssap(struct nfc_llcp_local *local)
{ … }
static int nfc_llcp_build_gb(struct nfc_llcp_local *local)
{ … }
u8 *nfc_llcp_general_bytes(struct nfc_dev *dev, size_t *general_bytes_len)
{ … }
int nfc_llcp_set_remote_gb(struct nfc_dev *dev, const u8 *gb, u8 gb_len)
{ … }
static u8 nfc_llcp_dsap(const struct sk_buff *pdu)
{ … }
static u8 nfc_llcp_ptype(const struct sk_buff *pdu)
{ … }
static u8 nfc_llcp_ssap(const struct sk_buff *pdu)
{ … }
static u8 nfc_llcp_ns(const struct sk_buff *pdu)
{ … }
static u8 nfc_llcp_nr(const struct sk_buff *pdu)
{ … }
static void nfc_llcp_set_nrns(struct nfc_llcp_sock *sock, struct sk_buff *pdu)
{ … }
void nfc_llcp_send_to_raw_sock(struct nfc_llcp_local *local,
struct sk_buff *skb, u8 direction)
{ … }
static void nfc_llcp_tx_work(struct work_struct *work)
{ … }
static struct nfc_llcp_sock *nfc_llcp_connecting_sock_get(struct nfc_llcp_local *local,
u8 ssap)
{ … }
static struct nfc_llcp_sock *nfc_llcp_sock_get_sn(struct nfc_llcp_local *local,
const u8 *sn, size_t sn_len)
{ … }
static const u8 *nfc_llcp_connect_sn(const struct sk_buff *skb, size_t *sn_len)
{ … }
static void nfc_llcp_recv_ui(struct nfc_llcp_local *local,
struct sk_buff *skb)
{ … }
static void nfc_llcp_recv_connect(struct nfc_llcp_local *local,
const struct sk_buff *skb)
{ … }
int nfc_llcp_queue_i_frames(struct nfc_llcp_sock *sock)
{ … }
static void nfc_llcp_recv_hdlc(struct nfc_llcp_local *local,
struct sk_buff *skb)
{ … }
static void nfc_llcp_recv_disc(struct nfc_llcp_local *local,
const struct sk_buff *skb)
{ … }
static void nfc_llcp_recv_cc(struct nfc_llcp_local *local,
const struct sk_buff *skb)
{ … }
static void nfc_llcp_recv_dm(struct nfc_llcp_local *local,
const struct sk_buff *skb)
{ … }
static void nfc_llcp_recv_snl(struct nfc_llcp_local *local,
const struct sk_buff *skb)
{ … }
static void nfc_llcp_recv_agf(struct nfc_llcp_local *local, struct sk_buff *skb)
{ … }
static void nfc_llcp_rx_skb(struct nfc_llcp_local *local, struct sk_buff *skb)
{ … }
static void nfc_llcp_rx_work(struct work_struct *work)
{ … }
static void __nfc_llcp_recv(struct nfc_llcp_local *local, struct sk_buff *skb)
{ … }
void nfc_llcp_recv(void *data, struct sk_buff *skb, int err)
{ … }
int nfc_llcp_data_received(struct nfc_dev *dev, struct sk_buff *skb)
{ … }
void nfc_llcp_mac_is_down(struct nfc_dev *dev)
{ … }
void nfc_llcp_mac_is_up(struct nfc_dev *dev, u32 target_idx,
u8 comm_mode, u8 rf_mode)
{ … }
int nfc_llcp_register_device(struct nfc_dev *ndev)
{ … }
void nfc_llcp_unregister_device(struct nfc_dev *dev)
{ … }
int __init nfc_llcp_init(void)
{ … }
void nfc_llcp_exit(void)
{ … }