linux/drivers/target/target_core_stat.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************
 * Filename:  target_core_stat.c
 *
 * Modern ConfigFS group context specific statistics based on original
 * target_core_mib.c code
 *
 * (c) Copyright 2006-2013 Datera, Inc.
 *
 * Nicholas A. Bellinger <[email protected]>
 *
 ******************************************************************************/

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/timer.h>
#include <linux/string.h>
#include <linux/utsname.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/configfs.h>

#include <target/target_core_base.h>
#include <target/target_core_backend.h>
#include <target/target_core_fabric.h>

#include "target_core_internal.h"

#ifndef INITIAL_JIFFIES
#define INITIAL_JIFFIES
#endif

#define SCSI_LU_INDEX
#define LU_COUNT

/*
 * SCSI Device Table
 */

static struct se_device *to_stat_dev(struct config_item *item)
{}

static ssize_t target_stat_inst_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_indx_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_role_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_ports_show(struct config_item *item, char *page)
{}

CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();

static struct configfs_attribute *target_stat_scsi_dev_attrs[] =;

static const struct config_item_type target_stat_scsi_dev_cit =;

/*
 * SCSI Target Device Table
 */
static struct se_device *to_stat_tgt_dev(struct config_item *item)
{}

static ssize_t target_stat_tgt_inst_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_tgt_indx_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_tgt_num_lus_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_status_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_non_access_lus_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_resets_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_aborts_complete_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_aborts_no_task_show(struct config_item *item,
		char *page)
{}

CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();

static struct configfs_attribute *target_stat_scsi_tgt_dev_attrs[] =;

static const struct config_item_type target_stat_scsi_tgt_dev_cit =;

/*
 * SCSI Logical Unit Table
 */

static struct se_device *to_stat_lu_dev(struct config_item *item)
{}

static ssize_t target_stat_lu_inst_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_lu_dev_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_lu_indx_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_lu_lun_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_lu_lu_name_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_lu_vend_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_lu_prod_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_lu_rev_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_lu_dev_type_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_lu_status_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_lu_state_bit_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_lu_num_cmds_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_lu_read_mbytes_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_lu_write_mbytes_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_lu_resets_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_lu_full_stat_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_lu_hs_num_cmds_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_lu_creation_time_show(struct config_item *item,
		char *page)
{}

CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();

static struct configfs_attribute *target_stat_scsi_lu_attrs[] =;

static const struct config_item_type target_stat_scsi_lu_cit =;

/*
 * Called from target_core_configfs.c:target_core_make_subdev() to setup
 * the target statistics groups + configfs CITs located in target_core_stat.c
 */
void target_stat_setup_dev_default_groups(struct se_device *dev)
{}

/*
 * SCSI Port Table
 */

static struct se_lun *to_stat_port(struct config_item *item)
{}

static ssize_t target_stat_port_inst_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_port_dev_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_port_indx_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_port_role_show(struct config_item *item, char *page)
{}

static ssize_t target_stat_port_busy_count_show(struct config_item *item,
		char *page)
{}

CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();

static struct configfs_attribute *target_stat_scsi_port_attrs[] =;

static const struct config_item_type target_stat_scsi_port_cit =;

/*
 * SCSI Target Port Table
 */
static struct se_lun *to_stat_tgt_port(struct config_item *item)
{}

static ssize_t target_stat_tgt_port_inst_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_port_dev_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_port_indx_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_port_name_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_port_port_index_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_port_in_cmds_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_port_write_mbytes_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_port_read_mbytes_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_tgt_port_hs_in_cmds_show(struct config_item *item,
		char *page)
{}

CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();

static struct configfs_attribute *target_stat_scsi_tgt_port_attrs[] =;

static const struct config_item_type target_stat_scsi_tgt_port_cit =;

/*
 * SCSI Transport Table
 */
static struct se_lun *to_transport_stat(struct config_item *item)
{}

static ssize_t target_stat_transport_inst_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_transport_device_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_transport_indx_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_transport_dev_name_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_transport_proto_id_show(struct config_item *item,
		char *page)
{}

CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();

static struct configfs_attribute *target_stat_scsi_transport_attrs[] =;

static const struct config_item_type target_stat_scsi_transport_cit =;

/*
 * Called from target_core_fabric_configfs.c:target_fabric_make_lun() to setup
 * the target port statistics groups + configfs CITs located in target_core_stat.c
 */
void target_stat_setup_port_default_groups(struct se_lun *lun)
{}

/*
 * SCSI Authorized Initiator Table
 */

static struct se_lun_acl *auth_to_lacl(struct config_item *item)
{}

static ssize_t target_stat_auth_inst_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_dev_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_port_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_indx_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_dev_or_port_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_intr_name_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_map_indx_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_att_count_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_num_cmds_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_read_mbytes_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_write_mbytes_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_hs_num_cmds_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_creation_time_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_auth_row_status_show(struct config_item *item,
		char *page)
{}

CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();

static struct configfs_attribute *target_stat_scsi_auth_intr_attrs[] =;

static const struct config_item_type target_stat_scsi_auth_intr_cit =;

/*
 * SCSI Attached Initiator Port Table
 */

static struct se_lun_acl *iport_to_lacl(struct config_item *item)
{}

static ssize_t target_stat_iport_inst_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_iport_dev_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_iport_port_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_iport_indx_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_iport_port_auth_indx_show(struct config_item *item,
		char *page)
{}

static ssize_t target_stat_iport_port_ident_show(struct config_item *item,
		char *page)
{}

CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();
CONFIGFS_ATTR_RO();

static struct configfs_attribute *target_stat_scsi_ath_intr_port_attrs[] =;

static const struct config_item_type target_stat_scsi_att_intr_port_cit =;

/*
 * Called from target_core_fabric_configfs.c:target_fabric_make_mappedlun() to setup
 * the target MappedLUN statistics groups + configfs CITs located in target_core_stat.c
 */
void target_stat_setup_mappedlun_default_groups(struct se_lun_acl *lacl)
{}