#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 "nfc.h"
#include "llcp.h"
static const u8 llcp_tlv_length[LLCP_TLV_MAX] = …;
static u8 llcp_tlv8(const u8 *tlv, u8 type)
{ … }
static u16 llcp_tlv16(const u8 *tlv, u8 type)
{ … }
static u8 llcp_tlv_version(const u8 *tlv)
{ … }
static u16 llcp_tlv_miux(const u8 *tlv)
{ … }
static u16 llcp_tlv_wks(const u8 *tlv)
{ … }
static u16 llcp_tlv_lto(const u8 *tlv)
{ … }
static u8 llcp_tlv_opt(const u8 *tlv)
{ … }
static u8 llcp_tlv_rw(const u8 *tlv)
{ … }
u8 *nfc_llcp_build_tlv(u8 type, const u8 *value, u8 value_length, u8 *tlv_length)
{ … }
struct nfc_llcp_sdp_tlv *nfc_llcp_build_sdres_tlv(u8 tid, u8 sap)
{ … }
struct nfc_llcp_sdp_tlv *nfc_llcp_build_sdreq_tlv(u8 tid, const char *uri,
size_t uri_len)
{ … }
void nfc_llcp_free_sdp_tlv(struct nfc_llcp_sdp_tlv *sdp)
{ … }
void nfc_llcp_free_sdp_tlv_list(struct hlist_head *head)
{ … }
int nfc_llcp_parse_gb_tlv(struct nfc_llcp_local *local,
const u8 *tlv_array, u16 tlv_array_len)
{ … }
int nfc_llcp_parse_connection_tlv(struct nfc_llcp_sock *sock,
const u8 *tlv_array, u16 tlv_array_len)
{ … }
static struct sk_buff *llcp_add_header(struct sk_buff *pdu,
u8 dsap, u8 ssap, u8 ptype)
{ … }
static struct sk_buff *llcp_add_tlv(struct sk_buff *pdu, const u8 *tlv,
u8 tlv_length)
{ … }
static struct sk_buff *llcp_allocate_pdu(struct nfc_llcp_sock *sock,
u8 cmd, u16 size)
{ … }
int nfc_llcp_send_disconnect(struct nfc_llcp_sock *sock)
{ … }
int nfc_llcp_send_symm(struct nfc_dev *dev)
{ … }
int nfc_llcp_send_connect(struct nfc_llcp_sock *sock)
{ … }
int nfc_llcp_send_cc(struct nfc_llcp_sock *sock)
{ … }
static struct sk_buff *nfc_llcp_allocate_snl(struct nfc_llcp_local *local,
size_t tlv_length)
{ … }
int nfc_llcp_send_snl_sdres(struct nfc_llcp_local *local,
struct hlist_head *tlv_list, size_t tlvs_len)
{ … }
int nfc_llcp_send_snl_sdreq(struct nfc_llcp_local *local,
struct hlist_head *tlv_list, size_t tlvs_len)
{ … }
int nfc_llcp_send_dm(struct nfc_llcp_local *local, u8 ssap, u8 dsap, u8 reason)
{ … }
int nfc_llcp_send_i_frame(struct nfc_llcp_sock *sock,
struct msghdr *msg, size_t len)
{ … }
int nfc_llcp_send_ui_frame(struct nfc_llcp_sock *sock, u8 ssap, u8 dsap,
struct msghdr *msg, size_t len)
{ … }
int nfc_llcp_send_rr(struct nfc_llcp_sock *sock)
{ … }