Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
target_core_configfs.c File Reference
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <generated/utsrelease.h>
#include <linux/utsname.h>
#include <linux/init.h>
#include <linux/fs.h>
#include <linux/namei.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/delay.h>
#include <linux/unistd.h>
#include <linux/string.h>
#include <linux/parser.h>
#include <linux/syscalls.h>
#include <linux/configfs.h>
#include <linux/spinlock.h>
#include <target/target_core_base.h>
#include <target/target_core_backend.h>
#include <target/target_core_fabric.h>
#include <target/target_core_fabric_configfs.h>
#include <target/target_core_configfs.h>
#include <target/configfs_macros.h>
#include "target_core_internal.h"
#include "target_core_alua.h"
#include "target_core_pr.h"
#include "target_core_rd.h"

Go to the source code of this file.

Data Structures

struct  target_core_configfs_attribute
 

Macros

#define DEF_DEV_ATTRIB_SHOW(_name)
 
#define DEF_DEV_ATTRIB_STORE(_name)
 
#define DEF_DEV_ATTRIB(_name)
 
#define DEF_DEV_ATTRIB_RO(_name)   DEF_DEV_ATTRIB_SHOW(_name);
 
#define SE_DEV_ATTR(_name, _mode)
 
#define SE_DEV_ATTR_RO(_name)
 
#define SE_DEV_WWN_ATTR(_name, _mode)
 
#define SE_DEV_WWN_ATTR_RO(_name)
 
#define DEF_DEV_WWN_ASSOC_SHOW(_name, _assoc)
 
#define SE_DEV_PR_ATTR(_name, _mode)
 
#define SE_DEV_PR_ATTR_RO(_name)
 
#define SE_DEV_ALUA_LU_ATTR(_name, _mode)
 
#define SE_DEV_ALUA_LU_ATTR_RO(_name)
 
#define SE_DEV_ALUA_TG_PT_ATTR(_name, _mode)
 
#define SE_DEV_ALUA_TG_PT_ATTR_RO(_name)
 
#define SE_HBA_ATTR(_name, _mode)
 
#define SE_HBA_ATTR_RO(_name)
 

Enumerations

enum  {
  Opt_initiator_fabric, Opt_initiator_node, Opt_initiator_sid, Opt_sa_res_key,
  Opt_res_holder, Opt_res_type, Opt_res_scope, Opt_res_all_tg_pt,
  Opt_mapped_lun, Opt_target_fabric, Opt_target_node, Opt_tpgt,
  Opt_port_rtpi, Opt_target_lun, Opt_err
}
 

Functions

struct target_fabric_configfstarget_fabric_configfs_init (struct module *fabric_mod, const char *name)
 
 EXPORT_SYMBOL (target_fabric_configfs_init)
 
void target_fabric_configfs_free (struct target_fabric_configfs *tf)
 
 EXPORT_SYMBOL (target_fabric_configfs_free)
 
int target_fabric_configfs_register (struct target_fabric_configfs *tf)
 
 EXPORT_SYMBOL (target_fabric_configfs_register)
 
void target_fabric_configfs_deregister (struct target_fabric_configfs *tf)
 
 EXPORT_SYMBOL (target_fabric_configfs_deregister)
 
 CONFIGFS_EATTR_STRUCT (target_core_dev_attrib, se_dev_attrib)
 
 DEF_DEV_ATTRIB (emulate_dpo)
 
 SE_DEV_ATTR (emulate_dpo, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (emulate_fua_write)
 
 SE_DEV_ATTR (emulate_fua_write, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (emulate_fua_read)
 
 SE_DEV_ATTR (emulate_fua_read, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (emulate_write_cache)
 
 SE_DEV_ATTR (emulate_write_cache, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (emulate_ua_intlck_ctrl)
 
 SE_DEV_ATTR (emulate_ua_intlck_ctrl, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (emulate_tas)
 
 SE_DEV_ATTR (emulate_tas, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (emulate_tpu)
 
 SE_DEV_ATTR (emulate_tpu, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (emulate_tpws)
 
 SE_DEV_ATTR (emulate_tpws, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (enforce_pr_isids)
 
 SE_DEV_ATTR (enforce_pr_isids, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (is_nonrot)
 
 SE_DEV_ATTR (is_nonrot, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (emulate_rest_reord)
 
 SE_DEV_ATTR (emulate_rest_reord, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB_RO (hw_block_size)
 
 SE_DEV_ATTR_RO (hw_block_size)
 
 DEF_DEV_ATTRIB (block_size)
 
 SE_DEV_ATTR (block_size, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB_RO (hw_max_sectors)
 
 SE_DEV_ATTR_RO (hw_max_sectors)
 
 DEF_DEV_ATTRIB (fabric_max_sectors)
 
 SE_DEV_ATTR (fabric_max_sectors, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (optimal_sectors)
 
 SE_DEV_ATTR (optimal_sectors, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB_RO (hw_queue_depth)
 
 SE_DEV_ATTR_RO (hw_queue_depth)
 
 DEF_DEV_ATTRIB (queue_depth)
 
 SE_DEV_ATTR (queue_depth, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (max_unmap_lba_count)
 
 SE_DEV_ATTR (max_unmap_lba_count, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (max_unmap_block_desc_count)
 
 SE_DEV_ATTR (max_unmap_block_desc_count, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (unmap_granularity)
 
 SE_DEV_ATTR (unmap_granularity, S_IRUGO|S_IWUSR)
 
 DEF_DEV_ATTRIB (unmap_granularity_alignment)
 
 SE_DEV_ATTR (unmap_granularity_alignment, S_IRUGO|S_IWUSR)
 
 CONFIGFS_EATTR_OPS (target_core_dev_attrib, se_dev_attrib, da_group)
 
 CONFIGFS_EATTR_STRUCT (target_core_dev_wwn, t10_wwn)
 
 SE_DEV_WWN_ATTR (vpd_unit_serial, S_IRUGO|S_IWUSR)
 
 SE_DEV_WWN_ATTR (vpd_protocol_identifier, S_IRUGO|S_IWUSR)
 
 DEF_DEV_WWN_ASSOC_SHOW (vpd_assoc_logical_unit, 0x00)
 
 SE_DEV_WWN_ATTR (vpd_assoc_logical_unit, S_IRUGO|S_IWUSR)
 
 DEF_DEV_WWN_ASSOC_SHOW (vpd_assoc_target_port, 0x10)
 
 SE_DEV_WWN_ATTR (vpd_assoc_target_port, S_IRUGO|S_IWUSR)
 
 DEF_DEV_WWN_ASSOC_SHOW (vpd_assoc_scsi_target_device, 0x20)
 
 SE_DEV_WWN_ATTR (vpd_assoc_scsi_target_device, S_IRUGO|S_IWUSR)
 
 CONFIGFS_EATTR_OPS (target_core_dev_wwn, t10_wwn, t10_wwn_group)
 
 CONFIGFS_EATTR_STRUCT (target_core_dev_pr, se_subsystem_dev)
 
 SE_DEV_PR_ATTR_RO (res_holder)
 
 SE_DEV_PR_ATTR_RO (res_pr_all_tgt_pts)
 
 SE_DEV_PR_ATTR_RO (res_pr_generation)
 
 SE_DEV_PR_ATTR_RO (res_pr_holder_tg_port)
 
 SE_DEV_PR_ATTR_RO (res_pr_registered_i_pts)
 
 SE_DEV_PR_ATTR_RO (res_pr_type)
 
 SE_DEV_PR_ATTR_RO (res_type)
 
 SE_DEV_PR_ATTR_RO (res_aptpl_active)
 
 SE_DEV_PR_ATTR (res_aptpl_metadata, S_IRUGO|S_IWUSR)
 
 CONFIGFS_EATTR_OPS (target_core_dev_pr, se_subsystem_dev, se_dev_pr_group)
 
 CONFIGFS_EATTR_STRUCT (target_core_alua_lu_gp, t10_alua_lu_gp)
 
 SE_DEV_ALUA_LU_ATTR (lu_gp_id, S_IRUGO|S_IWUSR)
 
 SE_DEV_ALUA_LU_ATTR_RO (members)
 
 CONFIGFS_EATTR_OPS (target_core_alua_lu_gp, t10_alua_lu_gp, lu_gp_group)
 
 CONFIGFS_EATTR_STRUCT (target_core_alua_tg_pt_gp, t10_alua_tg_pt_gp)
 
 SE_DEV_ALUA_TG_PT_ATTR (alua_access_state, S_IRUGO|S_IWUSR)
 
 SE_DEV_ALUA_TG_PT_ATTR (alua_access_status, S_IRUGO|S_IWUSR)
 
 SE_DEV_ALUA_TG_PT_ATTR (alua_access_type, S_IRUGO|S_IWUSR)
 
 SE_DEV_ALUA_TG_PT_ATTR (alua_write_metadata, S_IRUGO|S_IWUSR)
 
 SE_DEV_ALUA_TG_PT_ATTR (nonop_delay_msecs, S_IRUGO|S_IWUSR)
 
 SE_DEV_ALUA_TG_PT_ATTR (trans_delay_msecs, S_IRUGO|S_IWUSR)
 
 SE_DEV_ALUA_TG_PT_ATTR (implict_trans_secs, S_IRUGO|S_IWUSR)
 
 SE_DEV_ALUA_TG_PT_ATTR (preferred, S_IRUGO|S_IWUSR)
 
 SE_DEV_ALUA_TG_PT_ATTR (tg_pt_gp_id, S_IRUGO|S_IWUSR)
 
 SE_DEV_ALUA_TG_PT_ATTR_RO (members)
 
 CONFIGFS_EATTR_OPS (target_core_alua_tg_pt_gp, t10_alua_tg_pt_gp, tg_pt_gp_group)
 
 CONFIGFS_EATTR_STRUCT (target_core_hba, se_hba)
 
 SE_HBA_ATTR_RO (hba_info)
 
 SE_HBA_ATTR (hba_mode, S_IRUGO|S_IWUSR)
 
 CONFIGFS_EATTR_OPS (target_core_hba, se_hba, hba_group)
 
 MODULE_DESCRIPTION ("Target_Core_Mod/ConfigFS")
 
 MODULE_AUTHOR ("[email protected]")
 
 MODULE_LICENSE ("GPL")
 
 module_init (target_core_init_configfs)
 
 module_exit (target_core_exit_configfs)
 

Variables

struct t10_alua_lu_gpdefault_lu_gp
 

Macro Definition Documentation

#define DEF_DEV_ATTRIB (   _name)
Value:
DEF_DEV_ATTRIB_STORE(_name);

Definition at line 615 of file target_core_configfs.c.

#define DEF_DEV_ATTRIB_RO (   _name)    DEF_DEV_ATTRIB_SHOW(_name);

Definition at line 619 of file target_core_configfs.c.

#define DEF_DEV_ATTRIB_SHOW (   _name)
Value:
static ssize_t target_core_dev_show_attr_##_name( \
struct se_dev_attrib *da, \
char *page) \
{ \
struct se_subsystem_dev *se_dev = da->da_sub_dev; \
\
spin_lock(&se_dev->se_dev_lock); \
dev = se_dev->se_dev_ptr; \
if (!dev) { \
spin_unlock(&se_dev->se_dev_lock); \
return -ENODEV; \
} \
rb = snprintf(page, PAGE_SIZE, "%u\n", \
(u32)dev->se_sub_dev->se_dev_attrib._name); \
spin_unlock(&se_dev->se_dev_lock); \
\
return rb; \
}

Definition at line 563 of file target_core_configfs.c.

#define DEF_DEV_ATTRIB_STORE (   _name)
Value:
static ssize_t target_core_dev_store_attr_##_name( \
struct se_dev_attrib *da, \
const char *page, \
size_t count) \
{ \
struct se_subsystem_dev *se_dev = da->da_sub_dev; \
unsigned long val; \
int ret; \
\
spin_lock(&se_dev->se_dev_lock); \
dev = se_dev->se_dev_ptr; \
if (!dev) { \
spin_unlock(&se_dev->se_dev_lock); \
return -ENODEV; \
} \
ret = strict_strtoul(page, 0, &val); \
if (ret < 0) { \
spin_unlock(&se_dev->se_dev_lock); \
pr_err("strict_strtoul() failed with" \
" ret: %d\n", ret); \
return -EINVAL; \
} \
ret = se_dev_set_##_name(dev, (u32)val); \
spin_unlock(&se_dev->se_dev_lock); \
return (!ret) ? count : -EINVAL; \
}

Definition at line 585 of file target_core_configfs.c.

#define DEF_DEV_WWN_ASSOC_SHOW (   _name,
  _assoc 
)

Definition at line 892 of file target_core_configfs.c.

#define SE_DEV_ALUA_LU_ATTR (   _name,
  _mode 
)
Value:
static struct target_core_alua_lu_gp_attribute \
target_core_alua_lu_gp_##_name = \
__CONFIGFS_EATTR(_name, _mode, \
target_core_alua_lu_gp_show_attr_##_name, \
target_core_alua_lu_gp_store_attr_##_name);

Definition at line 2040 of file target_core_configfs.c.

#define SE_DEV_ALUA_LU_ATTR_RO (   _name)
Value:
static struct target_core_alua_lu_gp_attribute \
target_core_alua_lu_gp_##_name = \
__CONFIGFS_EATTR_RO(_name, \
target_core_alua_lu_gp_show_attr_##_name);

Definition at line 2047 of file target_core_configfs.c.

#define SE_DEV_ALUA_TG_PT_ATTR (   _name,
  _mode 
)
Value:
static struct target_core_alua_tg_pt_gp_attribute \
target_core_alua_tg_pt_gp_##_name = \
__CONFIGFS_EATTR(_name, _mode, \
target_core_alua_tg_pt_gp_show_attr_##_name, \
target_core_alua_tg_pt_gp_store_attr_##_name);

Definition at line 2234 of file target_core_configfs.c.

#define SE_DEV_ALUA_TG_PT_ATTR_RO (   _name)
Value:
static struct target_core_alua_tg_pt_gp_attribute \
target_core_alua_tg_pt_gp_##_name = \
__CONFIGFS_EATTR_RO(_name, \
target_core_alua_tg_pt_gp_show_attr_##_name);

Definition at line 2241 of file target_core_configfs.c.

#define SE_DEV_ATTR (   _name,
  _mode 
)
Value:
static struct target_core_dev_attrib_attribute \
target_core_dev_attrib_##_name = \
__CONFIGFS_EATTR(_name, _mode, \
target_core_dev_show_attr_##_name, \
target_core_dev_store_attr_##_name);

Definition at line 623 of file target_core_configfs.c.

#define SE_DEV_ATTR_RO (   _name)
Value:
; \
static struct target_core_dev_attrib_attribute \
target_core_dev_attrib_##_name = \
__CONFIGFS_EATTR_RO(_name, \
target_core_dev_show_attr_##_name);

Definition at line 630 of file target_core_configfs.c.

#define SE_DEV_PR_ATTR (   _name,
  _mode 
)
Value:
static struct target_core_dev_pr_attribute target_core_dev_pr_##_name = \
__CONFIGFS_EATTR(_name, _mode, \
target_core_dev_pr_show_attr_##_name, \
target_core_dev_pr_store_attr_##_name);

Definition at line 1007 of file target_core_configfs.c.

#define SE_DEV_PR_ATTR_RO (   _name)
Value:
; \
static struct target_core_dev_pr_attribute target_core_dev_pr_##_name = \
__CONFIGFS_EATTR_RO(_name, \
target_core_dev_pr_show_attr_##_name);

Definition at line 1013 of file target_core_configfs.c.

#define SE_DEV_WWN_ATTR (   _name,
  _mode 
)
Value:
static struct target_core_dev_wwn_attribute target_core_dev_wwn_##_name = \
__CONFIGFS_EATTR(_name, _mode, \
target_core_dev_wwn_show_attr_##_name, \
target_core_dev_wwn_store_attr_##_name);

Definition at line 746 of file target_core_configfs.c.

#define SE_DEV_WWN_ATTR_RO (   _name)
Value:
; \
do { \
static struct target_core_dev_wwn_attribute \
target_core_dev_wwn_##_name = \
__CONFIGFS_EATTR_RO(_name, \
target_core_dev_wwn_show_attr_##_name); \
} while (0);

Definition at line 752 of file target_core_configfs.c.

#define SE_HBA_ATTR (   _name,
  _mode 
)
Value:
static struct target_core_hba_attribute \
target_core_hba_##_name = \
__CONFIGFS_EATTR(_name, _mode, \
target_core_hba_show_attr_##_name, \
target_core_hba_store_attr_##_name);

Definition at line 2914 of file target_core_configfs.c.

#define SE_HBA_ATTR_RO (   _name)
Value:
static struct target_core_hba_attribute \
target_core_hba_##_name = \
__CONFIGFS_EATTR_RO(_name, \
target_core_hba_show_attr_##_name);

Definition at line 2921 of file target_core_configfs.c.

Enumeration Type Documentation

anonymous enum
Enumerator:
Opt_initiator_fabric 
Opt_initiator_node 
Opt_initiator_sid 
Opt_sa_res_key 
Opt_res_holder 
Opt_res_type 
Opt_res_scope 
Opt_res_all_tg_pt 
Opt_mapped_lun 
Opt_target_fabric 
Opt_target_node 
Opt_tpgt 
Opt_port_rtpi 
Opt_target_lun 
Opt_err 

Definition at line 1369 of file target_core_configfs.c.

Function Documentation

CONFIGFS_EATTR_OPS ( target_core_dev_attrib  ,
se_dev_attrib  ,
da_group   
)
CONFIGFS_EATTR_OPS ( target_core_dev_wwn  ,
t10_wwn  ,
t10_wwn_group   
)
CONFIGFS_EATTR_OPS ( target_core_dev_pr  ,
se_subsystem_dev  ,
se_dev_pr_group   
)
CONFIGFS_EATTR_OPS ( target_core_alua_lu_gp  ,
t10_alua_lu_gp  ,
lu_gp_group   
)
CONFIGFS_EATTR_OPS ( target_core_alua_tg_pt_gp  ,
t10_alua_tg_pt_gp  ,
tg_pt_gp_group   
)
CONFIGFS_EATTR_OPS ( target_core_hba  ,
se_hba  ,
hba_group   
)
CONFIGFS_EATTR_STRUCT ( target_core_dev_attrib  ,
se_dev_attrib   
)
CONFIGFS_EATTR_STRUCT ( target_core_dev_wwn  ,
t10_wwn   
)
CONFIGFS_EATTR_STRUCT ( target_core_dev_pr  ,
se_subsystem_dev   
)
CONFIGFS_EATTR_STRUCT ( target_core_alua_lu_gp  ,
t10_alua_lu_gp   
)
CONFIGFS_EATTR_STRUCT ( target_core_alua_tg_pt_gp  ,
t10_alua_tg_pt_gp   
)
CONFIGFS_EATTR_STRUCT ( target_core_hba  ,
se_hba   
)
DEF_DEV_ATTRIB ( emulate_dpo  )
DEF_DEV_ATTRIB ( emulate_fua_write  )
DEF_DEV_ATTRIB ( emulate_fua_read  )
DEF_DEV_ATTRIB ( emulate_write_cache  )
DEF_DEV_ATTRIB ( emulate_ua_intlck_ctrl  )
DEF_DEV_ATTRIB ( emulate_tas  )
DEF_DEV_ATTRIB ( emulate_tpu  )
DEF_DEV_ATTRIB ( emulate_tpws  )
DEF_DEV_ATTRIB ( enforce_pr_isids  )
DEF_DEV_ATTRIB ( is_nonrot  )
DEF_DEV_ATTRIB ( emulate_rest_reord  )
DEF_DEV_ATTRIB ( block_size  )
DEF_DEV_ATTRIB ( fabric_max_sectors  )
DEF_DEV_ATTRIB ( optimal_sectors  )
DEF_DEV_ATTRIB ( queue_depth  )
DEF_DEV_ATTRIB ( max_unmap_lba_count  )
DEF_DEV_ATTRIB ( max_unmap_block_desc_count  )
DEF_DEV_ATTRIB ( unmap_granularity  )
DEF_DEV_ATTRIB ( unmap_granularity_alignment  )
DEF_DEV_ATTRIB_RO ( hw_block_size  )
DEF_DEV_ATTRIB_RO ( hw_max_sectors  )
DEF_DEV_ATTRIB_RO ( hw_queue_depth  )
DEF_DEV_WWN_ASSOC_SHOW ( vpd_assoc_logical_unit  ,
0x00   
)
DEF_DEV_WWN_ASSOC_SHOW ( vpd_assoc_target_port  ,
0x10   
)
DEF_DEV_WWN_ASSOC_SHOW ( vpd_assoc_scsi_target_device  ,
0x20   
)
EXPORT_SYMBOL ( target_fabric_configfs_init  )
EXPORT_SYMBOL ( target_fabric_configfs_free  )
EXPORT_SYMBOL ( target_fabric_configfs_register  )
EXPORT_SYMBOL ( target_fabric_configfs_deregister  )
MODULE_AUTHOR ( "[email protected] )
MODULE_DESCRIPTION ( "Target_Core_Mod/ConfigFS"  )
module_exit ( target_core_exit_configfs  )
module_init ( target_core_init_configfs  )
MODULE_LICENSE ( "GPL"  )
SE_DEV_ALUA_LU_ATTR ( lu_gp_id  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ALUA_LU_ATTR_RO ( members  )
SE_DEV_ALUA_TG_PT_ATTR ( alua_access_state  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ALUA_TG_PT_ATTR ( alua_access_status  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ALUA_TG_PT_ATTR ( alua_access_type  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ALUA_TG_PT_ATTR ( alua_write_metadata  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ALUA_TG_PT_ATTR ( nonop_delay_msecs  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ALUA_TG_PT_ATTR ( trans_delay_msecs  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ALUA_TG_PT_ATTR ( implict_trans_secs  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ALUA_TG_PT_ATTR ( preferred  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ALUA_TG_PT_ATTR ( tg_pt_gp_id  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ALUA_TG_PT_ATTR_RO ( members  )
SE_DEV_ATTR ( emulate_dpo  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( emulate_fua_write  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( emulate_fua_read  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( emulate_write_cache  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( emulate_ua_intlck_ctrl  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( emulate_tas  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( emulate_tpu  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( emulate_tpws  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( enforce_pr_isids  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( is_nonrot  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( emulate_rest_reord  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( block_size  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( fabric_max_sectors  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( optimal_sectors  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( queue_depth  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( max_unmap_lba_count  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( max_unmap_block_desc_count  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( unmap_granularity  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR ( unmap_granularity_alignment  ,
S_IRUGO S_IWUSR 
)
SE_DEV_ATTR_RO ( hw_block_size  )
SE_DEV_ATTR_RO ( hw_max_sectors  )
SE_DEV_ATTR_RO ( hw_queue_depth  )
SE_DEV_PR_ATTR ( res_aptpl_metadata  ,
S_IRUGO S_IWUSR 
)
SE_DEV_PR_ATTR_RO ( res_holder  )
SE_DEV_PR_ATTR_RO ( res_pr_all_tgt_pts  )
SE_DEV_PR_ATTR_RO ( res_pr_generation  )
SE_DEV_PR_ATTR_RO ( res_pr_holder_tg_port  )
SE_DEV_PR_ATTR_RO ( res_pr_registered_i_pts  )
SE_DEV_PR_ATTR_RO ( res_pr_type  )
SE_DEV_PR_ATTR_RO ( res_type  )
SE_DEV_PR_ATTR_RO ( res_aptpl_active  )
SE_DEV_WWN_ATTR ( vpd_unit_serial  ,
S_IRUGO S_IWUSR 
)
SE_DEV_WWN_ATTR ( vpd_protocol_identifier  ,
S_IRUGO S_IWUSR 
)
SE_DEV_WWN_ATTR ( vpd_assoc_logical_unit  ,
S_IRUGO S_IWUSR 
)
SE_DEV_WWN_ATTR ( vpd_assoc_target_port  ,
S_IRUGO S_IWUSR 
)
SE_DEV_WWN_ATTR ( vpd_assoc_scsi_target_device  ,
S_IRUGO S_IWUSR 
)
SE_HBA_ATTR ( hba_mode  ,
S_IRUGO S_IWUSR 
)
SE_HBA_ATTR_RO ( hba_info  )
void target_fabric_configfs_deregister ( struct target_fabric_configfs tf)

Definition at line 518 of file target_core_configfs.c.

void target_fabric_configfs_free ( struct target_fabric_configfs tf)

Definition at line 336 of file target_core_configfs.c.

struct target_fabric_configfs* target_fabric_configfs_init ( struct module fabric_mod,
const char name 
)
read

Definition at line 289 of file target_core_configfs.c.

int target_fabric_configfs_register ( struct target_fabric_configfs tf)

Definition at line 493 of file target_core_configfs.c.

Variable Documentation

struct t10_alua_lu_gp* default_lu_gp

Definition at line 55 of file target_core_alua.c.