linux/net/smc/smc_loopback.c

// SPDX-License-Identifier: GPL-2.0
/*
 *  Shared Memory Communications Direct over loopback-ism device.
 *
 *  Functions for loopback-ism device.
 *
 *  Copyright (c) 2024, Alibaba Inc.
 *
 *  Author: Wen Gu <[email protected]>
 *          Tony Lu <[email protected]>
 *
 */

#include <linux/device.h>
#include <linux/types.h>
#include <net/smc.h>

#include "smc_cdc.h"
#include "smc_ism.h"
#include "smc_loopback.h"

#define SMC_LO_V2_CAPABLE
#define SMC_LO_SUPPORT_NOCOPY
#define SMC_DMA_ADDR_INVALID

static const char smc_lo_dev_name[] =;
static struct smc_lo_dev *lo_dev;

static void smc_lo_generate_ids(struct smc_lo_dev *ldev)
{}

static int smc_lo_query_rgid(struct smcd_dev *smcd, struct smcd_gid *rgid,
			     u32 vid_valid, u32 vid)
{}

static int smc_lo_register_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb,
			       void *client_priv)
{}

static void __smc_lo_unregister_dmb(struct smc_lo_dev *ldev,
				    struct smc_lo_dmb_node *dmb_node)
{}

static int smc_lo_unregister_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb)
{}

static int smc_lo_support_dmb_nocopy(struct smcd_dev *smcd)
{}

static int smc_lo_attach_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb)
{}

static int smc_lo_detach_dmb(struct smcd_dev *smcd, u64 token)
{}

static int smc_lo_move_data(struct smcd_dev *smcd, u64 dmb_tok,
			    unsigned int idx, bool sf, unsigned int offset,
			    void *data, unsigned int size)
{}

static int smc_lo_supports_v2(void)
{}

static void smc_lo_get_local_gid(struct smcd_dev *smcd,
				 struct smcd_gid *smcd_gid)
{}

static u16 smc_lo_get_chid(struct smcd_dev *smcd)
{}

static struct device *smc_lo_get_dev(struct smcd_dev *smcd)
{}

static const struct smcd_ops lo_ops =;

static struct smcd_dev *smcd_lo_alloc_dev(const struct smcd_ops *ops,
					  int max_dmbs)
{}

static int smcd_lo_register_dev(struct smc_lo_dev *ldev)
{}

static void smcd_lo_unregister_dev(struct smc_lo_dev *ldev)
{}

static int smc_lo_dev_init(struct smc_lo_dev *ldev)
{}

static void smc_lo_dev_exit(struct smc_lo_dev *ldev)
{}

static void smc_lo_dev_release(struct device *dev)
{}

static int smc_lo_dev_probe(void)
{}

static void smc_lo_dev_remove(void)
{}

int smc_loopback_init(void)
{}

void smc_loopback_exit(void)
{}