linux/drivers/target/iscsi/iscsi_target_seq_pdu_list.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************
 * This file contains main functions related to iSCSI DataSequenceInOrder=No
 * and DataPDUInOrder=No.
 *
 * (c) Copyright 2007-2013 Datera, Inc.
 *
 * Author: Nicholas A. Bellinger <[email protected]>
 *
 ******************************************************************************/

#include <linux/slab.h>
#include <linux/random.h>

#include <target/iscsi/iscsi_target_core.h>
#include "iscsi_target_util.h"
#include "iscsi_target_tpg.h"
#include "iscsi_target_seq_pdu_list.h"

#ifdef DEBUG
static void iscsit_dump_seq_list(struct iscsit_cmd *cmd)
{
	int i;
	struct iscsi_seq *seq;

	pr_debug("Dumping Sequence List for ITT: 0x%08x:\n",
			cmd->init_task_tag);

	for (i = 0; i < cmd->seq_count; i++) {
		seq = &cmd->seq_list[i];
		pr_debug("i: %d, pdu_start: %d, pdu_count: %d,"
			" offset: %d, xfer_len: %d, seq_send_order: %d,"
			" seq_no: %d\n", i, seq->pdu_start, seq->pdu_count,
			seq->offset, seq->xfer_len, seq->seq_send_order,
			seq->seq_no);
	}
}

static void iscsit_dump_pdu_list(struct iscsit_cmd *cmd)
{
	int i;
	struct iscsi_pdu *pdu;

	pr_debug("Dumping PDU List for ITT: 0x%08x:\n",
			cmd->init_task_tag);

	for (i = 0; i < cmd->pdu_count; i++) {
		pdu = &cmd->pdu_list[i];
		pr_debug("i: %d, offset: %d, length: %d,"
			" pdu_send_order: %d, seq_no: %d\n", i, pdu->offset,
			pdu->length, pdu->pdu_send_order, pdu->seq_no);
	}
}
#else
static void iscsit_dump_seq_list(struct iscsit_cmd *cmd) {}
static void iscsit_dump_pdu_list(struct iscsit_cmd *cmd) {}
#endif

static void iscsit_ordered_seq_lists(
	struct iscsit_cmd *cmd,
	u8 type)
{}

static void iscsit_ordered_pdu_lists(
	struct iscsit_cmd *cmd,
	u8 type)
{}

/*
 *	Generate count random values into array.
 *	Use 0x80000000 to mark generates valued in array[].
 */
static void iscsit_create_random_array(u32 *array, u32 count)
{}

static int iscsit_randomize_pdu_lists(
	struct iscsit_cmd *cmd,
	u8 type)
{}

static int iscsit_randomize_seq_lists(
	struct iscsit_cmd *cmd,
	u8 type)
{}

static void iscsit_determine_counts_for_list(
	struct iscsit_cmd *cmd,
	struct iscsi_build_list *bl,
	u32 *seq_count,
	u32 *pdu_count)
{}


/*
 *	Builds PDU and/or Sequence list, called while DataSequenceInOrder=No
 *	or DataPDUInOrder=No.
 */
static int iscsit_do_build_pdu_and_seq_lists(
	struct iscsit_cmd *cmd,
	struct iscsi_build_list *bl)
{}

int iscsit_build_pdu_and_seq_lists(
	struct iscsit_cmd *cmd,
	u32 immediate_data_length)
{}

struct iscsi_pdu *iscsit_get_pdu_holder(
	struct iscsit_cmd *cmd,
	u32 offset,
	u32 length)
{}

struct iscsi_pdu *iscsit_get_pdu_holder_for_seq(
	struct iscsit_cmd *cmd,
	struct iscsi_seq *seq)
{}

struct iscsi_seq *iscsit_get_seq_holder(
	struct iscsit_cmd *cmd,
	u32 offset,
	u32 length)
{}