linux/drivers/nvme/target/passthru.c

// SPDX-License-Identifier: GPL-2.0
/*
 * NVMe Over Fabrics Target Passthrough command implementation.
 *
 * Copyright (c) 2017-2018 Western Digital Corporation or its
 * affiliates.
 * Copyright (c) 2019-2020, Eideticom Inc.
 *
 */
#define pr_fmt(fmt)
#include <linux/module.h>

#include "../host/nvme.h"
#include "nvmet.h"

MODULE_IMPORT_NS();

/*
 * xarray to maintain one passthru subsystem per nvme controller.
 */
static DEFINE_XARRAY(passthru_subsystems);

void nvmet_passthrough_override_cap(struct nvmet_ctrl *ctrl)
{}

static u16 nvmet_passthru_override_id_descs(struct nvmet_req *req)
{}

static u16 nvmet_passthru_override_id_ctrl(struct nvmet_req *req)
{}

static u16 nvmet_passthru_override_id_ns(struct nvmet_req *req)
{}

static void nvmet_passthru_execute_cmd_work(struct work_struct *w)
{}

static enum rq_end_io_ret nvmet_passthru_req_done(struct request *rq,
						  blk_status_t blk_status)
{}

static int nvmet_passthru_map_sg(struct nvmet_req *req, struct request *rq)
{}

static void nvmet_passthru_execute_cmd(struct nvmet_req *req)
{}

/*
 * We need to emulate set host behaviour to ensure that any requested
 * behaviour of the target's host matches the requested behaviour
 * of the device's host and fail otherwise.
 */
static void nvmet_passthru_set_host_behaviour(struct nvmet_req *req)
{}

static u16 nvmet_setup_passthru_command(struct nvmet_req *req)
{}

u16 nvmet_parse_passthru_io_cmd(struct nvmet_req *req)
{}

/*
 * Only features that are emulated or specifically allowed in the list  are
 * passed down to the controller. This function implements the allow list for
 * both get and set features.
 */
static u16 nvmet_passthru_get_set_features(struct nvmet_req *req)
{}

u16 nvmet_parse_passthru_admin_cmd(struct nvmet_req *req)
{}

int nvmet_passthru_ctrl_enable(struct nvmet_subsys *subsys)
{}

static void __nvmet_passthru_ctrl_disable(struct nvmet_subsys *subsys)
{}

void nvmet_passthru_ctrl_disable(struct nvmet_subsys *subsys)
{}

void nvmet_passthru_subsys_free(struct nvmet_subsys *subsys)
{}