linux/net/nfc/digital_dep.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * NFC Digital Protocol stack
 * Copyright (c) 2013, Intel Corporation.
 */

#define pr_fmt(fmt)

#include "digital.h"

#define DIGITAL_NFC_DEP_N_RETRY_NACK
#define DIGITAL_NFC_DEP_N_RETRY_ATN

#define DIGITAL_NFC_DEP_FRAME_DIR_OUT
#define DIGITAL_NFC_DEP_FRAME_DIR_IN

#define DIGITAL_NFC_DEP_NFCA_SOD_SB

#define DIGITAL_CMD_ATR_REQ
#define DIGITAL_CMD_ATR_RES
#define DIGITAL_CMD_PSL_REQ
#define DIGITAL_CMD_PSL_RES
#define DIGITAL_CMD_DEP_REQ
#define DIGITAL_CMD_DEP_RES

#define DIGITAL_ATR_REQ_MIN_SIZE
#define DIGITAL_ATR_REQ_MAX_SIZE

#define DIGITAL_ATR_RES_TO_WT(s)

#define DIGITAL_DID_MAX

#define DIGITAL_PAYLOAD_SIZE_MAX
#define DIGITAL_PAYLOAD_BITS_TO_PP(s)
#define DIGITAL_PAYLOAD_PP_TO_BITS(s)
#define DIGITAL_PAYLOAD_BITS_TO_FSL(s)
#define DIGITAL_PAYLOAD_FSL_TO_BITS(s)

#define DIGITAL_GB_BIT

#define DIGITAL_NFC_DEP_PFB_TYPE(pfb)

#define DIGITAL_NFC_DEP_PFB_TIMEOUT_BIT
#define DIGITAL_NFC_DEP_PFB_MI_BIT
#define DIGITAL_NFC_DEP_PFB_NACK_BIT
#define DIGITAL_NFC_DEP_PFB_DID_BIT

#define DIGITAL_NFC_DEP_PFB_IS_TIMEOUT(pfb)
#define DIGITAL_NFC_DEP_MI_BIT_SET(pfb)
#define DIGITAL_NFC_DEP_NACK_BIT_SET(pfb)
#define DIGITAL_NFC_DEP_NAD_BIT_SET(pfb)
#define DIGITAL_NFC_DEP_DID_BIT_SET(pfb)
#define DIGITAL_NFC_DEP_PFB_PNI(pfb)

#define DIGITAL_NFC_DEP_RTOX_VALUE(data)
#define DIGITAL_NFC_DEP_RTOX_MAX

#define DIGITAL_NFC_DEP_PFB_I_PDU
#define DIGITAL_NFC_DEP_PFB_ACK_NACK_PDU
#define DIGITAL_NFC_DEP_PFB_SUPERVISOR_PDU

struct digital_atr_req {} __packed;

struct digital_atr_res {} __packed;

struct digital_psl_req {} __packed;

struct digital_psl_res {} __packed;

struct digital_dep_req_res {} __packed;

static void digital_in_recv_dep_res(struct nfc_digital_dev *ddev, void *arg,
				    struct sk_buff *resp);
static void digital_tg_recv_dep_req(struct nfc_digital_dev *ddev, void *arg,
				    struct sk_buff *resp);

static const u8 digital_payload_bits_map[4] =;

/* Response Waiting Time for ATR_RES PDU in ms
 *
 * RWT(ATR_RES) = RWT(nfcdep,activation) + dRWT(nfcdep) + dT(nfcdep,initiator)
 *
 * with:
 *  RWT(nfcdep,activation) = 4096 * 2^12 / f(c) s
 *  dRWT(nfcdep) = 16 / f(c) s
 *  dT(nfcdep,initiator) = 100 ms
 *  f(c) = 13560000 Hz
 */
#define DIGITAL_ATR_RES_RWT

/* Response Waiting Time for other DEP PDUs in ms
 *
 * max_rwt = rwt + dRWT(nfcdep) + dT(nfcdep,initiator)
 *
 * with:
 *  rwt = (256 * 16 / f(c)) * 2^wt s
 *  dRWT(nfcdep) = 16 / f(c) s
 *  dT(nfcdep,initiator) = 100 ms
 *  f(c) = 13560000 Hz
 *  0 <= wt <= 14 (given by the target by the TO field of ATR_RES response)
 */
#define DIGITAL_NFC_DEP_IN_MAX_WT
#define DIGITAL_NFC_DEP_TG_MAX_WT
static const u16 digital_rwt_map[DIGITAL_NFC_DEP_IN_MAX_WT + 1] =;

static u8 digital_payload_bits_to_size(u8 payload_bits)
{}

static u8 digital_payload_size_to_bits(u8 payload_size)
{}

static void digital_skb_push_dep_sod(struct nfc_digital_dev *ddev,
				     struct sk_buff *skb)
{}

static int digital_skb_pull_dep_sod(struct nfc_digital_dev *ddev,
				    struct sk_buff *skb)
{}

static struct sk_buff *
digital_send_dep_data_prep(struct nfc_digital_dev *ddev, struct sk_buff *skb,
			   struct digital_dep_req_res *dep_req_res,
			   struct digital_data_exch *data_exch)
{}

static struct sk_buff *
digital_recv_dep_data_gather(struct nfc_digital_dev *ddev, u8 pfb,
			     struct sk_buff *resp,
			     int (*send_ack)(struct nfc_digital_dev *ddev,
					     struct digital_data_exch
							     *data_exch),
			     struct digital_data_exch *data_exch)
{}

static void digital_in_recv_psl_res(struct nfc_digital_dev *ddev, void *arg,
				    struct sk_buff *resp)
{}

static int digital_in_send_psl_req(struct nfc_digital_dev *ddev,
				   struct nfc_target *target)
{}

static void digital_in_recv_atr_res(struct nfc_digital_dev *ddev, void *arg,
				 struct sk_buff *resp)
{}

int digital_in_send_atr_req(struct nfc_digital_dev *ddev,
			    struct nfc_target *target, __u8 comm_mode, __u8 *gb,
			    size_t gb_len)
{}

static int digital_in_send_ack(struct nfc_digital_dev *ddev,
			       struct digital_data_exch *data_exch)
{}

static int digital_in_send_nack(struct nfc_digital_dev *ddev,
				struct digital_data_exch *data_exch)
{}

static int digital_in_send_atn(struct nfc_digital_dev *ddev,
			       struct digital_data_exch *data_exch)
{}

static int digital_in_send_rtox(struct nfc_digital_dev *ddev,
				struct digital_data_exch *data_exch, u8 rtox)
{}

static int digital_in_send_saved_skb(struct nfc_digital_dev *ddev,
				     struct digital_data_exch *data_exch)
{}

static void digital_in_recv_dep_res(struct nfc_digital_dev *ddev, void *arg,
				    struct sk_buff *resp)
{}

int digital_in_send_dep_req(struct nfc_digital_dev *ddev,
			    struct nfc_target *target, struct sk_buff *skb,
			    struct digital_data_exch *data_exch)
{}

static void digital_tg_set_rf_tech(struct nfc_digital_dev *ddev, u8 rf_tech)
{}

static int digital_tg_send_ack(struct nfc_digital_dev *ddev,
			       struct digital_data_exch *data_exch)
{}

static int digital_tg_send_atn(struct nfc_digital_dev *ddev)
{}

static int digital_tg_send_saved_skb(struct nfc_digital_dev *ddev)
{}

static void digital_tg_recv_dep_req(struct nfc_digital_dev *ddev, void *arg,
				    struct sk_buff *resp)
{}

int digital_tg_send_dep_res(struct nfc_digital_dev *ddev, struct sk_buff *skb)
{}

static void digital_tg_send_psl_res_complete(struct nfc_digital_dev *ddev,
					     void *arg, struct sk_buff *resp)
{}

static int digital_tg_send_psl_res(struct nfc_digital_dev *ddev, u8 did,
				   u8 rf_tech)
{}

static void digital_tg_recv_psl_req(struct nfc_digital_dev *ddev, void *arg,
				    struct sk_buff *resp)
{}

static void digital_tg_send_atr_res_complete(struct nfc_digital_dev *ddev,
					     void *arg, struct sk_buff *resp)
{}

static int digital_tg_send_atr_res(struct nfc_digital_dev *ddev,
				   struct digital_atr_req *atr_req)
{}

void digital_tg_recv_atr_req(struct nfc_digital_dev *ddev, void *arg,
			     struct sk_buff *resp)
{}