diff options
author | Christoph Hellwig <hch@infradead.org> | 2012-10-07 10:55:53 -0400 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2012-11-06 23:55:44 -0500 |
commit | 6f23ac8a39418d6c6711f4fd73cc4519067d7f08 (patch) | |
tree | d6975dda37b047b6f9c3f5cf74cc4206a32a9e3a | |
parent | 8de530a523fd3cc46b5d8d96f3016298c5c808ac (diff) |
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>
-rw-r--r-- | drivers/target/target_core_file.c | 22 | ||||
-rw-r--r-- | drivers/target/target_core_iblock.c | 14 | ||||
-rw-r--r-- | drivers/target/target_core_rd.c | 14 | ||||
-rw-r--r-- | drivers/target/target_core_sbc.c | 12 | ||||
-rw-r--r-- | include/target/target_core_backend.h | 5 |
5 files changed, 22 insertions, 45 deletions
diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c index 571d3645f58a..2a3e2bbd8078 100644 --- a/drivers/target/target_core_file.c +++ b/drivers/target/target_core_file.c | |||
@@ -491,24 +491,6 @@ static ssize_t fd_show_configfs_dev_params(struct se_device *dev, char *b) | |||
491 | return bl; | 491 | return bl; |
492 | } | 492 | } |
493 | 493 | ||
494 | /* fd_get_device_rev(): (Part of se_subsystem_api_t template) | ||
495 | * | ||
496 | * | ||
497 | */ | ||
498 | static u32 fd_get_device_rev(struct se_device *dev) | ||
499 | { | ||
500 | return SCSI_SPC_2; /* Returns SPC-3 in Initiator Data */ | ||
501 | } | ||
502 | |||
503 | /* fd_get_device_type(): (Part of se_subsystem_api_t template) | ||
504 | * | ||
505 | * | ||
506 | */ | ||
507 | static u32 fd_get_device_type(struct se_device *dev) | ||
508 | { | ||
509 | return TYPE_DISK; | ||
510 | } | ||
511 | |||
512 | static sector_t fd_get_blocks(struct se_device *dev) | 494 | static sector_t fd_get_blocks(struct se_device *dev) |
513 | { | 495 | { |
514 | struct fd_dev *fd_dev = FD_DEV(dev); | 496 | struct fd_dev *fd_dev = FD_DEV(dev); |
@@ -552,8 +534,8 @@ static struct se_subsystem_api fileio_template = { | |||
552 | .parse_cdb = fd_parse_cdb, | 534 | .parse_cdb = fd_parse_cdb, |
553 | .set_configfs_dev_params = fd_set_configfs_dev_params, | 535 | .set_configfs_dev_params = fd_set_configfs_dev_params, |
554 | .show_configfs_dev_params = fd_show_configfs_dev_params, | 536 | .show_configfs_dev_params = fd_show_configfs_dev_params, |
555 | .get_device_rev = fd_get_device_rev, | 537 | .get_device_rev = sbc_get_device_rev, |
556 | .get_device_type = fd_get_device_type, | 538 | .get_device_type = sbc_get_device_type, |
557 | .get_blocks = fd_get_blocks, | 539 | .get_blocks = fd_get_blocks, |
558 | }; | 540 | }; |
559 | 541 | ||
diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c index 969eed8bff52..701877f9cd33 100644 --- a/drivers/target/target_core_iblock.c +++ b/drivers/target/target_core_iblock.c | |||
@@ -664,16 +664,6 @@ fail: | |||
664 | return -ENOMEM; | 664 | return -ENOMEM; |
665 | } | 665 | } |
666 | 666 | ||
667 | static u32 iblock_get_device_rev(struct se_device *dev) | ||
668 | { | ||
669 | return SCSI_SPC_2; /* Returns SPC-3 in Initiator Data */ | ||
670 | } | ||
671 | |||
672 | static u32 iblock_get_device_type(struct se_device *dev) | ||
673 | { | ||
674 | return TYPE_DISK; | ||
675 | } | ||
676 | |||
677 | static sector_t iblock_get_blocks(struct se_device *dev) | 667 | static sector_t iblock_get_blocks(struct se_device *dev) |
678 | { | 668 | { |
679 | struct iblock_dev *ib_dev = IBLOCK_DEV(dev); | 669 | struct iblock_dev *ib_dev = IBLOCK_DEV(dev); |
@@ -735,8 +725,8 @@ static struct se_subsystem_api iblock_template = { | |||
735 | .parse_cdb = iblock_parse_cdb, | 725 | .parse_cdb = iblock_parse_cdb, |
736 | .set_configfs_dev_params = iblock_set_configfs_dev_params, | 726 | .set_configfs_dev_params = iblock_set_configfs_dev_params, |
737 | .show_configfs_dev_params = iblock_show_configfs_dev_params, | 727 | .show_configfs_dev_params = iblock_show_configfs_dev_params, |
738 | .get_device_rev = iblock_get_device_rev, | 728 | .get_device_rev = sbc_get_device_rev, |
739 | .get_device_type = iblock_get_device_type, | 729 | .get_device_type = sbc_get_device_type, |
740 | .get_blocks = iblock_get_blocks, | 730 | .get_blocks = iblock_get_blocks, |
741 | }; | 731 | }; |
742 | 732 | ||
diff --git a/drivers/target/target_core_rd.c b/drivers/target/target_core_rd.c index 1b36e67b1153..6348b6672526 100644 --- a/drivers/target/target_core_rd.c +++ b/drivers/target/target_core_rd.c | |||
@@ -417,16 +417,6 @@ static ssize_t rd_show_configfs_dev_params(struct se_device *dev, char *b) | |||
417 | return bl; | 417 | return bl; |
418 | } | 418 | } |
419 | 419 | ||
420 | static u32 rd_get_device_rev(struct se_device *dev) | ||
421 | { | ||
422 | return SCSI_SPC_2; /* Returns SPC-3 in Initiator Data */ | ||
423 | } | ||
424 | |||
425 | static u32 rd_get_device_type(struct se_device *dev) | ||
426 | { | ||
427 | return TYPE_DISK; | ||
428 | } | ||
429 | |||
430 | static sector_t rd_get_blocks(struct se_device *dev) | 420 | static sector_t rd_get_blocks(struct se_device *dev) |
431 | { | 421 | { |
432 | struct rd_dev *rd_dev = RD_DEV(dev); | 422 | struct rd_dev *rd_dev = RD_DEV(dev); |
@@ -459,8 +449,8 @@ static struct se_subsystem_api rd_mcp_template = { | |||
459 | .parse_cdb = rd_parse_cdb, | 449 | .parse_cdb = rd_parse_cdb, |
460 | .set_configfs_dev_params = rd_set_configfs_dev_params, | 450 | .set_configfs_dev_params = rd_set_configfs_dev_params, |
461 | .show_configfs_dev_params = rd_show_configfs_dev_params, | 451 | .show_configfs_dev_params = rd_show_configfs_dev_params, |
462 | .get_device_rev = rd_get_device_rev, | 452 | .get_device_rev = sbc_get_device_rev, |
463 | .get_device_type = rd_get_device_type, | 453 | .get_device_type = sbc_get_device_type, |
464 | .get_blocks = rd_get_blocks, | 454 | .get_blocks = rd_get_blocks, |
465 | }; | 455 | }; |
466 | 456 | ||
diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c index a77a19c8d923..01686954cfa0 100644 --- a/drivers/target/target_core_sbc.c +++ b/drivers/target/target_core_sbc.c | |||
@@ -603,3 +603,15 @@ out_invalid_cdb_field: | |||
603 | return -EINVAL; | 603 | return -EINVAL; |
604 | } | 604 | } |
605 | EXPORT_SYMBOL(sbc_parse_cdb); | 605 | EXPORT_SYMBOL(sbc_parse_cdb); |
606 | |||
607 | u32 sbc_get_device_rev(struct se_device *dev) | ||
608 | { | ||
609 | return SCSI_SPC_2; /* Returns SPC-3 in Initiator Data */ | ||
610 | } | ||
611 | EXPORT_SYMBOL(sbc_get_device_rev); | ||
612 | |||
613 | u32 sbc_get_device_type(struct se_device *dev) | ||
614 | { | ||
615 | return TYPE_DISK; | ||
616 | } | ||
617 | EXPORT_SYMBOL(sbc_get_device_type); | ||
diff --git a/include/target/target_core_backend.h b/include/target/target_core_backend.h index e7a03056c957..b7f3936453e1 100644 --- a/include/target/target_core_backend.h +++ b/include/target/target_core_backend.h | |||
@@ -50,11 +50,14 @@ void transport_subsystem_release(struct se_subsystem_api *); | |||
50 | 50 | ||
51 | void target_complete_cmd(struct se_cmd *, u8); | 51 | void target_complete_cmd(struct se_cmd *, u8); |
52 | 52 | ||
53 | int sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops); | ||
54 | int spc_parse_cdb(struct se_cmd *cmd, unsigned int *size); | 53 | int spc_parse_cdb(struct se_cmd *cmd, unsigned int *size); |
55 | int spc_emulate_report_luns(struct se_cmd *cmd); | 54 | int spc_emulate_report_luns(struct se_cmd *cmd); |
56 | int spc_get_write_same_sectors(struct se_cmd *cmd); | 55 | int spc_get_write_same_sectors(struct se_cmd *cmd); |
57 | 56 | ||
57 | int sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops); | ||
58 | u32 sbc_get_device_rev(struct se_device *dev); | ||
59 | u32 sbc_get_device_type(struct se_device *dev); | ||
60 | |||
58 | void transport_set_vpd_proto_id(struct t10_vpd *, unsigned char *); | 61 | void transport_set_vpd_proto_id(struct t10_vpd *, unsigned char *); |
59 | int transport_set_vpd_assoc(struct t10_vpd *, unsigned char *); | 62 | int transport_set_vpd_assoc(struct t10_vpd *, unsigned char *); |
60 | int transport_set_vpd_ident_type(struct t10_vpd *, unsigned char *); | 63 | int transport_set_vpd_ident_type(struct t10_vpd *, unsigned char *); |