target: provide generic sbc device type/revision helpers
Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
8de530a523
commit
6f23ac8a39
5 changed files with 22 additions and 45 deletions
|
|
@ -491,24 +491,6 @@ static ssize_t fd_show_configfs_dev_params(struct se_device *dev, char *b)
|
||||||
return bl;
|
return bl;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* fd_get_device_rev(): (Part of se_subsystem_api_t template)
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
static u32 fd_get_device_rev(struct se_device *dev)
|
|
||||||
{
|
|
||||||
return SCSI_SPC_2; /* Returns SPC-3 in Initiator Data */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* fd_get_device_type(): (Part of se_subsystem_api_t template)
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
static u32 fd_get_device_type(struct se_device *dev)
|
|
||||||
{
|
|
||||||
return TYPE_DISK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static sector_t fd_get_blocks(struct se_device *dev)
|
static sector_t fd_get_blocks(struct se_device *dev)
|
||||||
{
|
{
|
||||||
struct fd_dev *fd_dev = FD_DEV(dev);
|
struct fd_dev *fd_dev = FD_DEV(dev);
|
||||||
|
|
@ -552,8 +534,8 @@ static struct se_subsystem_api fileio_template = {
|
||||||
.parse_cdb = fd_parse_cdb,
|
.parse_cdb = fd_parse_cdb,
|
||||||
.set_configfs_dev_params = fd_set_configfs_dev_params,
|
.set_configfs_dev_params = fd_set_configfs_dev_params,
|
||||||
.show_configfs_dev_params = fd_show_configfs_dev_params,
|
.show_configfs_dev_params = fd_show_configfs_dev_params,
|
||||||
.get_device_rev = fd_get_device_rev,
|
.get_device_rev = sbc_get_device_rev,
|
||||||
.get_device_type = fd_get_device_type,
|
.get_device_type = sbc_get_device_type,
|
||||||
.get_blocks = fd_get_blocks,
|
.get_blocks = fd_get_blocks,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -664,16 +664,6 @@ fail:
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 iblock_get_device_rev(struct se_device *dev)
|
|
||||||
{
|
|
||||||
return SCSI_SPC_2; /* Returns SPC-3 in Initiator Data */
|
|
||||||
}
|
|
||||||
|
|
||||||
static u32 iblock_get_device_type(struct se_device *dev)
|
|
||||||
{
|
|
||||||
return TYPE_DISK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static sector_t iblock_get_blocks(struct se_device *dev)
|
static sector_t iblock_get_blocks(struct se_device *dev)
|
||||||
{
|
{
|
||||||
struct iblock_dev *ib_dev = IBLOCK_DEV(dev);
|
struct iblock_dev *ib_dev = IBLOCK_DEV(dev);
|
||||||
|
|
@ -735,8 +725,8 @@ static struct se_subsystem_api iblock_template = {
|
||||||
.parse_cdb = iblock_parse_cdb,
|
.parse_cdb = iblock_parse_cdb,
|
||||||
.set_configfs_dev_params = iblock_set_configfs_dev_params,
|
.set_configfs_dev_params = iblock_set_configfs_dev_params,
|
||||||
.show_configfs_dev_params = iblock_show_configfs_dev_params,
|
.show_configfs_dev_params = iblock_show_configfs_dev_params,
|
||||||
.get_device_rev = iblock_get_device_rev,
|
.get_device_rev = sbc_get_device_rev,
|
||||||
.get_device_type = iblock_get_device_type,
|
.get_device_type = sbc_get_device_type,
|
||||||
.get_blocks = iblock_get_blocks,
|
.get_blocks = iblock_get_blocks,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -417,16 +417,6 @@ static ssize_t rd_show_configfs_dev_params(struct se_device *dev, char *b)
|
||||||
return bl;
|
return bl;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 rd_get_device_rev(struct se_device *dev)
|
|
||||||
{
|
|
||||||
return SCSI_SPC_2; /* Returns SPC-3 in Initiator Data */
|
|
||||||
}
|
|
||||||
|
|
||||||
static u32 rd_get_device_type(struct se_device *dev)
|
|
||||||
{
|
|
||||||
return TYPE_DISK;
|
|
||||||
}
|
|
||||||
|
|
||||||
static sector_t rd_get_blocks(struct se_device *dev)
|
static sector_t rd_get_blocks(struct se_device *dev)
|
||||||
{
|
{
|
||||||
struct rd_dev *rd_dev = RD_DEV(dev);
|
struct rd_dev *rd_dev = RD_DEV(dev);
|
||||||
|
|
@ -459,8 +449,8 @@ static struct se_subsystem_api rd_mcp_template = {
|
||||||
.parse_cdb = rd_parse_cdb,
|
.parse_cdb = rd_parse_cdb,
|
||||||
.set_configfs_dev_params = rd_set_configfs_dev_params,
|
.set_configfs_dev_params = rd_set_configfs_dev_params,
|
||||||
.show_configfs_dev_params = rd_show_configfs_dev_params,
|
.show_configfs_dev_params = rd_show_configfs_dev_params,
|
||||||
.get_device_rev = rd_get_device_rev,
|
.get_device_rev = sbc_get_device_rev,
|
||||||
.get_device_type = rd_get_device_type,
|
.get_device_type = sbc_get_device_type,
|
||||||
.get_blocks = rd_get_blocks,
|
.get_blocks = rd_get_blocks,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -603,3 +603,15 @@ out_invalid_cdb_field:
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(sbc_parse_cdb);
|
EXPORT_SYMBOL(sbc_parse_cdb);
|
||||||
|
|
||||||
|
u32 sbc_get_device_rev(struct se_device *dev)
|
||||||
|
{
|
||||||
|
return SCSI_SPC_2; /* Returns SPC-3 in Initiator Data */
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(sbc_get_device_rev);
|
||||||
|
|
||||||
|
u32 sbc_get_device_type(struct se_device *dev)
|
||||||
|
{
|
||||||
|
return TYPE_DISK;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(sbc_get_device_type);
|
||||||
|
|
|
||||||
|
|
@ -50,11 +50,14 @@ void transport_subsystem_release(struct se_subsystem_api *);
|
||||||
|
|
||||||
void target_complete_cmd(struct se_cmd *, u8);
|
void target_complete_cmd(struct se_cmd *, u8);
|
||||||
|
|
||||||
int sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops);
|
|
||||||
int spc_parse_cdb(struct se_cmd *cmd, unsigned int *size);
|
int spc_parse_cdb(struct se_cmd *cmd, unsigned int *size);
|
||||||
int spc_emulate_report_luns(struct se_cmd *cmd);
|
int spc_emulate_report_luns(struct se_cmd *cmd);
|
||||||
int spc_get_write_same_sectors(struct se_cmd *cmd);
|
int spc_get_write_same_sectors(struct se_cmd *cmd);
|
||||||
|
|
||||||
|
int sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops);
|
||||||
|
u32 sbc_get_device_rev(struct se_device *dev);
|
||||||
|
u32 sbc_get_device_type(struct se_device *dev);
|
||||||
|
|
||||||
void transport_set_vpd_proto_id(struct t10_vpd *, unsigned char *);
|
void transport_set_vpd_proto_id(struct t10_vpd *, unsigned char *);
|
||||||
int transport_set_vpd_assoc(struct t10_vpd *, unsigned char *);
|
int transport_set_vpd_assoc(struct t10_vpd *, unsigned char *);
|
||||||
int transport_set_vpd_ident_type(struct t10_vpd *, unsigned char *);
|
int transport_set_vpd_ident_type(struct t10_vpd *, unsigned char *);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue