FreeBSD kernel CAM code
|
Go to the source code of this file.
Data Structures | |
struct | ctl_io_pool |
struct | ctl_cmd_entry |
union | ctl_softcs |
struct | ctl_page_index |
struct | ctl_logical_block_provisioning_page |
struct | ctl_mode_pages |
struct | ctl_log_pages |
struct | ctl_log_pages::stat_page |
struct | ctl_lun_delay_info |
struct | ctl_devid |
struct | ctl_lun |
struct | ctl_thread |
struct | ctl_softc |
Macros | |
#define | CTL_VENDOR "FREEBSD " |
#define | CTL_DIRECT_PRODUCT "CTLDISK " |
#define | CTL_PROCESSOR_PRODUCT "CTLPROCESSOR " |
#define | CTL_CDROM_PRODUCT "CTLCDROM " |
#define | CTL_UNKNOWN_PRODUCT "CTLDEVICE " |
#define | CTL_POOL_ENTRIES_OTHER_SC 200 |
#define | CTL_DEFAULT_SECTORS_PER_TRACK 256 |
#define | CTL_DEFAULT_HEADS 128 |
#define | CTL_DEFAULT_ROTATION_RATE SVPD_NON_ROTATING |
#define | CTL_PAGE_CURRENT 0x00 |
#define | CTL_PAGE_CHANGEABLE 0x01 |
#define | CTL_PAGE_DEFAULT 0x02 |
#define | CTL_PAGE_SAVED 0x03 |
#define | CTL_NUM_LBP_PARAMS 4 |
#define | CTL_NUM_LBP_THRESH 4 |
#define | CTL_LBP_EXPONENT 11 /* 2048 sectors */ |
#define | CTL_LBP_PERIOD 10 /* 10 seconds */ |
#define | CTL_LBP_UA_PERIOD 300 /* 5 minutes */ |
#define | CTL_NUM_MODE_PAGES |
#define | MODE_RWER mode_pages.rw_er_page[CTL_PAGE_CURRENT] |
#define | MODE_FMT mode_pages.format_page[CTL_PAGE_CURRENT] |
#define | MODE_RDISK mode_pages.rigid_disk_page[CTL_PAGE_CURRENT] |
#define | MODE_VER mode_pages.verify_er_page[CTL_PAGE_CURRENT] |
#define | MODE_CACHING mode_pages.caching_page[CTL_PAGE_CURRENT] |
#define | MODE_CTRL mode_pages.control_page[CTL_PAGE_CURRENT] |
#define | MODE_CTRLE mode_pages.control_ext_page[CTL_PAGE_CURRENT] |
#define | MODE_IE mode_pages.ie_page[CTL_PAGE_CURRENT] |
#define | MODE_LBP mode_pages.lbp_page[CTL_PAGE_CURRENT] |
#define | MODE_CDDVD mode_pages.cddvd_page[CTL_PAGE_CURRENT] |
#define | CTL_NUM_LOG_PAGES |
#define | CTL_PR_ALL_REGISTRANTS 0xFFFFFFFF |
#define | CTL_PR_NO_RESERVATION 0xFFFFFFF0 |
#define | NUM_HA_SHELVES 2 |
#define | CTL_WRITE_BUFFER_SIZE 262144 |
#define | CTL_MAX_THREADS 16 |
Typedefs | |
typedef int | ctl_opfunc(struct ctl_scsiio *ctsio) |
typedef int | ctl_modesen_handler(struct ctl_scsiio *ctsio, struct ctl_page_index *page_index, int pc) |
typedef int | ctl_modesel_handler(struct ctl_scsiio *ctsio, struct ctl_page_index *page_index, uint8_t *page_ptr) |
Variables | |
static const struct ctl_page_index | page_index_template [] |
static const struct ctl_page_index | log_page_index_template [] |
const struct ctl_cmd_entry | ctl_cmd_table [256] |
#define CTL_CDROM_PRODUCT "CTLCDROM " |
Definition at line 55 of file ctl_private.h.
#define CTL_DEFAULT_HEADS 128 |
Definition at line 224 of file ctl_private.h.
#define CTL_DEFAULT_ROTATION_RATE SVPD_NON_ROTATING |
Definition at line 226 of file ctl_private.h.
#define CTL_DEFAULT_SECTORS_PER_TRACK 256 |
Definition at line 223 of file ctl_private.h.
#define CTL_DIRECT_PRODUCT "CTLDISK " |
Definition at line 53 of file ctl_private.h.
#define CTL_LBP_EXPONENT 11 /* 2048 sectors */ |
Definition at line 262 of file ctl_private.h.
#define CTL_LBP_PERIOD 10 /* 10 seconds */ |
Definition at line 263 of file ctl_private.h.
#define CTL_LBP_UA_PERIOD 300 /* 5 minutes */ |
Definition at line 264 of file ctl_private.h.
#define CTL_MAX_THREADS 16 |
Definition at line 423 of file ctl_private.h.
#define CTL_NUM_LBP_PARAMS 4 |
Definition at line 260 of file ctl_private.h.
#define CTL_NUM_LBP_THRESH 4 |
Definition at line 261 of file ctl_private.h.
#define CTL_NUM_LOG_PAGES |
Definition at line 341 of file ctl_private.h.
#define CTL_NUM_MODE_PAGES |
Definition at line 298 of file ctl_private.h.
#define CTL_PAGE_CHANGEABLE 0x01 |
Definition at line 256 of file ctl_private.h.
#define CTL_PAGE_CURRENT 0x00 |
Definition at line 255 of file ctl_private.h.
#define CTL_PAGE_DEFAULT 0x02 |
Definition at line 257 of file ctl_private.h.
#define CTL_PAGE_SAVED 0x03 |
Definition at line 258 of file ctl_private.h.
#define CTL_POOL_ENTRIES_OTHER_SC 200 |
Definition at line 58 of file ctl_private.h.
#define CTL_PR_ALL_REGISTRANTS 0xFFFFFFFF |
Definition at line 365 of file ctl_private.h.
#define CTL_PR_NO_RESERVATION 0xFFFFFFF0 |
Definition at line 366 of file ctl_private.h.
#define CTL_PROCESSOR_PRODUCT "CTLPROCESSOR " |
Definition at line 54 of file ctl_private.h.
#define CTL_UNKNOWN_PRODUCT "CTLDEVICE " |
Definition at line 56 of file ctl_private.h.
#define CTL_VENDOR "FREEBSD " |
Definition at line 52 of file ctl_private.h.
#define CTL_WRITE_BUFFER_SIZE 262144 |
Definition at line 375 of file ctl_private.h.
#define MODE_CACHING mode_pages.caching_page[CTL_PAGE_CURRENT] |
Definition at line 319 of file ctl_private.h.
#define MODE_CDDVD mode_pages.cddvd_page[CTL_PAGE_CURRENT] |
Definition at line 324 of file ctl_private.h.
#define MODE_CTRL mode_pages.control_page[CTL_PAGE_CURRENT] |
Definition at line 320 of file ctl_private.h.
#define MODE_CTRLE mode_pages.control_ext_page[CTL_PAGE_CURRENT] |
Definition at line 321 of file ctl_private.h.
#define MODE_FMT mode_pages.format_page[CTL_PAGE_CURRENT] |
Definition at line 316 of file ctl_private.h.
#define MODE_IE mode_pages.ie_page[CTL_PAGE_CURRENT] |
Definition at line 322 of file ctl_private.h.
#define MODE_LBP mode_pages.lbp_page[CTL_PAGE_CURRENT] |
Definition at line 323 of file ctl_private.h.
#define MODE_RDISK mode_pages.rigid_disk_page[CTL_PAGE_CURRENT] |
Definition at line 317 of file ctl_private.h.
#define MODE_RWER mode_pages.rw_er_page[CTL_PAGE_CURRENT] |
Definition at line 315 of file ctl_private.h.
#define MODE_VER mode_pages.verify_er_page[CTL_PAGE_CURRENT] |
Definition at line 318 of file ctl_private.h.
#define NUM_HA_SHELVES 2 |
Definition at line 373 of file ctl_private.h.
typedef int ctl_modesel_handler(struct ctl_scsiio *ctsio, struct ctl_page_index *page_index, uint8_t *page_ptr) |
Definition at line 233 of file ctl_private.h.
typedef int ctl_modesen_handler(struct ctl_scsiio *ctsio, struct ctl_page_index *page_index, int pc) |
Definition at line 230 of file ctl_private.h.
typedef int ctl_opfunc(struct ctl_scsiio *ctsio) |
Definition at line 130 of file ctl_private.h.
enum ctl_action |
Enumerator | |
---|---|
CTL_ACTION_PASS | |
CTL_ACTION_SKIP | |
CTL_ACTION_BLOCK | |
CTL_ACTION_OVERLAP | |
CTL_ACTION_OVERLAP_TAG |
Definition at line 76 of file ctl_private.h.
enum ctl_cmd_flags |
Definition at line 92 of file ctl_private.h.
enum ctl_gen_flags |
Enumerator | |
---|---|
CTL_FLAG_ACTIVE_SHELF |
Definition at line 419 of file ctl_private.h.
enum ctl_lun_flags |
Definition at line 142 of file ctl_private.h.
enum ctl_page_flags |
Enumerator | |
---|---|
CTL_PAGE_FLAG_NONE | |
CTL_PAGE_FLAG_DIRECT | |
CTL_PAGE_FLAG_PROC | |
CTL_PAGE_FLAG_CDROM | |
CTL_PAGE_FLAG_ALL |
Definition at line 237 of file ctl_private.h.
enum ctl_serialize_action |
Enumerator | |
---|---|
CTL_SER_SEQ | |
CTL_SER_PASS | |
CTL_SER_EXTENTOPT | |
CTL_SER_EXTENT | |
CTL_SER_BLOCKOPT | |
CTL_SER_BLOCK |
Definition at line 67 of file ctl_private.h.
enum ctl_seridx |
Definition at line 110 of file ctl_private.h.
enum ctlblock_flags |
Enumerator | |
---|---|
CTLBLOCK_FLAG_NONE | |
CTLBLOCK_FLAG_INVALID |
Definition at line 158 of file ctl_private.h.
int ctl_cnw | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 8968 of file ctl.c.
References scsi_compare_and_write::addr, ctl_lun::backend, ctl_lun::be_lun, ctl_be_lun::blocksize, scsi_compare_and_write::byte2, ctl_scsiio::cdb, COMPARE_AND_WRITE, ctl_cnw_cont(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_IO_CONT, CTL_LLF_COMPARE, CTL_LLF_DPO, CTL_LLF_FUA, CTL_LUN, CTL_PRIV_LBA_LEN, ctl_io_hdr::ctl_private, CTL_RETVAL_COMPLETE, ctl_set_invalid_opcode(), ctl_set_lba_out_of_range(), ctl_set_success(), ctl_backend_driver::data_submit, ctl_lba_len_flags::flags, ctl_io_hdr::flags, ctl_scsiio::io_cont, ctl_scsiio::io_hdr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_total_len, ctl_lba_len_flags::lba, ctl_lba_len_flags::len, scsi_compare_and_write::length, ctl_lun::lun, ctl_be_lun::maxlba, SCP_WCE, scsi_8btou64(), SRW10_DPO, and SRW10_FUA.
int ctl_copy_operation_abort | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 724 of file ctl_tpc.c.
References tpc_list::abort, ctl_scsiio::cdb, CTL_DEBUG_PRINT, ctl_done(), ctl_get_initindex(), CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), ctl_scsiio::io_hdr, tpc_list::list_id, scsi_copy_operation_abort::list_identifier, ctl_lun::lun, ctl_lun::lun_lock, ctl_io_hdr::nexus, scsi_4btoul(), and tpc_find_list().
int ctl_extended_copy_lid1 | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 1665 of file ctl_tpc.c.
References ctl_lun::be_lun, ctl_scsiio::be_move_done, ctl_scsiio::cdb, tpc_list::completed, tpc_list::cscd, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, ctl_get_initindex(), CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_param_len_error(), ctl_set_sense(), ctl_set_success(), scsi_extended_copy_lid1_data::data, scsi_ec_segment::descr_length, EC_CSCD_ID, EC_LIST_ID_USAGE_MASK, EC_LIST_ID_USAGE_NONE, EC_SEG_B2B, EC_SEG_REGISTER_KEY, EC_SEG_VERIFY, ctl_io_hdr::flags, tpc_list::flags, tpc_list::init_idx, tpc_list::init_port, tpc_list::inl, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_extended_copy::length, tpc_list::leninl, tpc_list::list_id, ctl_lun::lun, ctl_lun::lun_lock, tpc_list::ncscd, ctl_io_hdr::nexus, tpc_list::nseg, ctl_be_lun::options, tpc_list::params, scsi_2btoul(), scsi_4btoul(), tpc_list::seg, tpc_list::service_action, scsi_extended_copy::service_action, SSD_ELEM_NONE, SSD_KEY_ILLEGAL_REQUEST, ctl_nexus::targ_port, tpc_find_list(), TPC_MAX_CSCDS, TPC_MAX_INLINE, TPC_MAX_LIST, TPC_MAX_SEGS, tpc_process(), scsi_ec_cscd::type_code, and scsi_ec_segment::type_code.
int ctl_extended_copy_lid4 | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 1819 of file ctl_tpc.c.
References ctl_lun::be_lun, ctl_scsiio::be_move_done, ctl_scsiio::cdb, tpc_list::completed, tpc_list::cscd, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, ctl_get_initindex(), CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_param_len_error(), ctl_set_sense(), ctl_set_success(), scsi_extended_copy_lid4_data::data, scsi_ec_segment::descr_length, EC_CSCD_ID, EC_LIST_ID_USAGE_MASK, EC_LIST_ID_USAGE_NONE, EC_SEG_B2B, EC_SEG_REGISTER_KEY, EC_SEG_VERIFY, ctl_io_hdr::flags, tpc_list::flags, tpc_list::init_idx, tpc_list::init_port, tpc_list::inl, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_extended_copy::length, tpc_list::leninl, tpc_list::list_id, ctl_lun::lun, ctl_lun::lun_lock, tpc_list::ncscd, ctl_io_hdr::nexus, tpc_list::nseg, ctl_be_lun::options, tpc_list::params, scsi_2btoul(), scsi_4btoul(), tpc_list::seg, tpc_list::service_action, scsi_extended_copy::service_action, SSD_ELEM_NONE, SSD_KEY_ILLEGAL_REQUEST, ctl_nexus::targ_port, tpc_find_list(), TPC_MAX_CSCDS, TPC_MAX_INLINE, TPC_MAX_LIST, TPC_MAX_SEGS, tpc_process(), scsi_ec_cscd::type_code, and scsi_ec_segment::type_code.
int ctl_format | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 5482 of file ctl.c.
References ctl_scsiio::be_move_done, scsi_format::byte2, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), scsi_format_header_short::defect_list_len, scsi_format_header_long::defect_list_len, ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_2btoul(), scsi_4btoul(), SF_FMTDATA, and SF_LONGLIST.
int ctl_get_config | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 10389 of file ctl.c.
References scsi_get_config_feature::add_length, ctl_lun::be_lun, ctl_scsiio::be_move_done, ctl_be_lun::blocksize, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_FLAG_ALLOCATED, CTL_LUN, CTL_LUN_NO_MEDIA, CTL_RETVAL_COMPLETE, ctl_set_success(), scsi_get_config_header::current_profile, scsi_get_config_header::data_length, scsi_get_config_feature::feature_code, scsi_get_config_feature::feature_data, ctl_io_hdr::flags, ctl_lun::flags, scsi_get_config_feature::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_get_config::length, ctl_lun::lun, scsi_get_config::rt, scsi_2btoul(), scsi_ulto2b(), scsi_ulto4b(), SGC_F_CURRENT, SGC_F_PERSISTENT, SGC_RT_CURRENT, SGC_RT_MASK, SGC_RT_SPECIFIC, and scsi_get_config::starting_feature.
int ctl_get_event_status | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 10596 of file ctl.c.
References ctl_scsiio::be_move_done, scsi_get_event_status::byte2, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), ctl_done(), CTL_FLAG_ALLOCATED, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), scsi_get_event_status_header::descr_length, ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_get_event_status::length, scsi_get_event_status_header::nea_class, scsi_2btoul(), scsi_ulto2b(), SGESN_NEA, SGESN_POLLED, and scsi_get_event_status_header::supported_class.
uint32_t ctl_get_initindex | ( | struct ctl_nexus * | nexus | ) |
Definition at line 3624 of file ctl.c.
References CTL_MAX_INIT_PER_PORT, ctl_nexus::initid, and ctl_nexus::targ_port.
Referenced by ctl_copy_operation_abort(), ctl_default_page_handler(), ctl_extended_copy_lid1(), ctl_extended_copy_lid4(), ctl_hndl_per_res_out_on_other_sc(), ctl_i_t_nexus_reset(), ctl_isc_mode_sync(), ctl_isc_ua(), ctl_lun_reset(), ctl_mode_select(), ctl_persistent_reserve_out(), ctl_populate_token(), ctl_prevent_allow(), ctl_query_async_event(), ctl_queue_sense(), ctl_receive_copy_failure_details(), ctl_receive_copy_status_lid1(), ctl_receive_copy_status_lid4(), ctl_receive_rod_token_information(), ctl_report_luns(), ctl_request_sense(), ctl_scsi_release(), ctl_scsi_reserve(), ctl_scsiio_lun_check(), ctl_scsiio_precheck(), ctl_start_stop(), ctl_target_reset(), and ctl_write_using_token().
int ctl_get_lba_status | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 7087 of file ctl.c.
References scsi_get_lba_status::addr, scsi_get_lba_status_data_descr::addr, scsi_get_lba_status::alloc_len, ctl_lun::backend, ctl_lun::be_lun, ctl_scsiio::be_move_done, ctl_scsiio::cdb, ctl_backend_driver::config_read, ctl_config_move_done(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, CTL_LUN, CTL_PRIV_LBA_LEN, ctl_io_hdr::ctl_private, CTL_RETVAL_COMPLETE, ctl_set_lba_out_of_range(), ctl_set_success(), scsi_get_lba_status_data::descr, ctl_lba_len_flags::flags, ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, ctl_lba_len_flags::lba, ctl_lba_len_flags::len, scsi_get_lba_status_data_descr::length, scsi_get_lba_status_data::length, ctl_lun::lun, ctl_be_lun::maxlba, scsi_4btoul(), scsi_8btou64(), scsi_u64to8b(), scsi_ulto4b(), and scsi_get_lba_status_data_descr::status.
int ctl_inquiry | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 10362 of file ctl.c.
References scsi_inquiry::byte2, ctl_scsiio::cdb, CTL_DEBUG_PRINT, ctl_done(), ctl_inquiry_evpd(), ctl_inquiry_std(), CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), scsi_inquiry::page_code, and SI_EVPD.
int ctl_inquiry_evpd_tpc | ( | struct ctl_scsiio * | ctsio, |
int | alloc_len | ||
) |
Definition at line 272 of file ctl_tpc.c.
References ctl_lun::be_lun, ctl_scsiio::be_move_done, ctl_config_move_done(), ctl_datamove(), CTL_FLAG_ALLOCATED, CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_success(), scsi_vpd_tpc_descriptor_gco::data_segment_granularity, scsi_vpd_tpc_descriptor_bdrl::default_inactivity_timeout, scsi_vpd_tpc_descriptor::desc_length, scsi_vpd_tpc_descriptor_bdrl::desc_length, scsi_vpd_tpc_descriptor_sc::desc_length, scsi_vpd_tpc_descriptor_pd::desc_length, scsi_vpd_tpc_descriptor_sd::desc_length, scsi_vpd_tpc_descriptor_sdid::desc_length, scsi_vpd_tpc_descriptor_rtf_block::desc_length, scsi_vpd_tpc_descriptor_rtf::desc_length, scsi_vpd_tpc_descriptor_srt::desc_length, scsi_vpd_tpc_descriptor_gco::desc_length, scsi_vpd_tpc_descriptor_bdrl::desc_type, scsi_vpd_tpc_descriptor_sc::desc_type, scsi_vpd_tpc_descriptor_pd::desc_type, scsi_vpd_tpc_descriptor_sd::desc_type, scsi_vpd_tpc_descriptor_sdid::desc_type, scsi_vpd_tpc_descriptor_rtf::desc_type, scsi_vpd_tpc_descriptor_srt::desc_type, scsi_vpd_tpc_descriptor_gco::desc_type, scsi_vpd_tpc_descriptor_sc::descr, scsi_vpd_tpc::descr, scsi_vpd_tpc::device, EC_COA, EC_CSCD_ID, EC_EC_LID1, EC_EC_LID4, EC_PT, EC_SEG_B2B, EC_SEG_REGISTER_KEY, EC_SEG_VERIFY, EC_WUT, EXTENDED_COPY, ctl_io_hdr::flags, scsi_vpd_tpc_descriptor_srtd::flags, scsi_vpd_tpc_descriptor_gco::inline_data_granularity, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_vpd_tpc_descriptor_sc::list_length, scsi_vpd_tpc_descriptor_sd::list_length, scsi_vpd_tpc_descriptor_sdid::list_length, ctl_lun::lun, ctl_be_lun::lun_type, scsi_vpd_tpc_descriptor_rtf_block::maximum_bytes, scsi_vpd_tpc_descriptor_pd::maximum_cscd_descriptor_count, scsi_vpd_tpc_descriptor_pd::maximum_descriptor_list_length, scsi_vpd_tpc_descriptor_gco::maximum_identified_concurrent_copies, scsi_vpd_tpc_descriptor_bdrl::maximum_inactivity_timeout, scsi_vpd_tpc_descriptor_pd::maximum_inline_data_length, scsi_vpd_tpc_descriptor_bdrl::maximum_ranges, scsi_vpd_tpc_descriptor_pd::maximum_segment_descriptor_count, scsi_vpd_tpc_descriptor_gco::maximum_segment_length, scsi_vpd_tpc_descriptor_rtf::maximum_token_inactivity_timeout, scsi_vpd_tpc_descriptor_rtf::maximum_token_lifetime, scsi_vpd_tpc_descriptor_bdrl::maximum_token_transfer_size, scsi_vpd_tpc_descriptor_rtf::minimum_token_lifetime, scsi_vpd_tpc_descriptor_sc_descr::opcode, scsi_vpd_tpc_descriptor_rtf_block::optimal_bytes, scsi_vpd_tpc_descriptor_rtf_block::optimal_bytes_from_token_per_segment, scsi_vpd_tpc_descriptor_rtf_block::optimal_bytes_to_token_per_segment, scsi_vpd_tpc_descriptor_rtf_block::optimal_length_granularity, scsi_vpd_tpc_descriptor_bdrl::optimal_transfer_count, scsi_vpd_tpc::page_code, scsi_vpd_tpc::page_length, scsi_vpd_tpc_descriptor::parameters, scsi_vpd_tpc_descriptor_srtd::preference_indicator, RCS_RART, RCS_RCFD, RCS_RCOP, RCS_RCS_LID1, RCS_RCS_LID4, RCS_RRTI, RECEIVE_COPY_STATUS, scsi_vpd_tpc_descriptor_rtf::remote_tokens, scsi_vpd_tpc_descriptor_srtd::rod_type, ROD_TYPE_AUR, ROD_TYPE_BLOCK_ZERO, scsi_vpd_tpc_descriptor_srt::rod_type_descriptors, scsi_vpd_tpc_descriptor_srt::rod_type_descriptors_length, scsi_vpd_tpc_descriptor_sc_descr::sa_length, scsi_2btoul(), scsi_u64to8b(), scsi_ulto2b(), scsi_ulto4b(), SID_QUAL_LU_CONNECTED, SID_QUAL_LU_OFFLINE, scsi_vpd_tpc_descriptor_sd::supported_descriptor_codes, scsi_vpd_tpc_descriptor_sdid::supported_descriptor_ids, scsi_vpd_tpc_descriptor_sc_descr::supported_service_actions, SVPD_SCSI_TPC, SVPD_TPC_BDRL, SVPD_TPC_GCO, SVPD_TPC_PD, SVPD_TPC_RTF, SVPD_TPC_RTF_BLOCK, SVPD_TPC_SC, SVPD_TPC_SD, SVPD_TPC_SDID, SVPD_TPC_SRT, SVPD_TPC_SRTD_TIN, SVPD_TPC_SRTD_TOUT, T_DIRECT, scsi_vpd_tpc_descriptor_gco::total_concurrent_copies, TPC_DFL_TOKEN_TIMEOUT, TPC_MAX_CSCDS, TPC_MAX_INLINE, TPC_MAX_IOCHUNK_SIZE, TPC_MAX_LIST, TPC_MAX_LISTS, TPC_MAX_SEG, TPC_MAX_SEGS, TPC_MAX_TOKEN_TIMEOUT, TPC_MIN_TOKEN_TIMEOUT, scsi_vpd_tpc_descriptor_rtf_block::type_format, scsi_vpd_tpc_descriptor_rtf::type_specific_features, and scsi_vpd_tpc_descriptor_rtf::type_specific_features_length.
Referenced by ctl_inquiry_evpd().
int ctl_log_sense | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 6906 of file ctl.c.
References ctl_scsiio::be_move_done, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, CTL_LUN, CTL_NUM_LOG_PAGES, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), scsi_log_header::datalen, ctl_io_hdr::flags, ctl_log_pages::index, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_log_sense::length, ctl_lun::log_pages, ctl_lun::lun, scsi_log_sense::page, scsi_log_header::page, ctl_page_index::page_code, ctl_page_index::page_data, ctl_page_index::page_len, scsi_2btoul(), scsi_ulto2b(), ctl_page_index::sense_handler, SL_DS, SL_PAGE_CODE, SL_SPF, SLS_LOGICAL_BLOCK_PROVISIONING, SLS_PAGE_CODE, SLS_PAGE_CTRL_MASK, ctl_page_index::subpage, scsi_log_sense::subpage, and scsi_log_header::subpage.
int ctl_lun_map_deinit | ( | struct ctl_port * | port | ) |
Definition at line 3659 of file ctl.c.
References ctl_isc_announce_port(), CTL_PORT_STATUS_ONLINE, ctl_port::ctl_softc, ctl_lun::lun, ctl_port::lun_enable, ctl_port::lun_map, ctl_port::lun_map_size, ctl_port::status, and ctl_port::targ_lun_arg.
Referenced by ctl_ioctl(), and ctl_port_deregister().
uint32_t ctl_lun_map_from_port | ( | struct ctl_port * | port, |
uint32_t | plun | ||
) |
Definition at line 3720 of file ctl.c.
References ctl_port::lun_map, and ctl_port::lun_map_size.
Referenced by ctl_ioctl(), ctl_port_offline(), ctl_port_online(), ctl_queue(), ctl_queue_sense(), ctl_report_luns(), and ctl_run().
int ctl_lun_map_init | ( | struct ctl_port * | port | ) |
Definition at line 3630 of file ctl.c.
References ctl_isc_announce_port(), ctl_lun_map_size, CTL_PORT_STATUS_ONLINE, ctl_port::ctl_softc, ctl_lun::lun, ctl_port::lun_disable, ctl_port::lun_map, ctl_port::lun_map_size, ctl_port::status, and ctl_port::targ_lun_arg.
Referenced by ctl_ioctl(), and ctl_lun_map_set().
int ctl_lun_map_set | ( | struct ctl_port * | port, |
uint32_t | plun, | ||
uint32_t | glun | ||
) |
Definition at line 3680 of file ctl.c.
References ctl_isc_announce_port(), ctl_lun_map_init(), CTL_PORT_STATUS_ONLINE, ctl_port::lun_enable, ctl_port::lun_map, ctl_port::lun_map_size, ctl_port::status, and ctl_port::targ_lun_arg.
Referenced by ctl_ioctl().
uint32_t ctl_lun_map_to_port | ( | struct ctl_port * | port, |
uint32_t | glun | ||
) |
Definition at line 3733 of file ctl.c.
References ctl_port::lun_map, and ctl_port::lun_map_size.
Referenced by ctl_inquiry_evpd_scsi_ports(), ctl_ioctl(), ctl_isc_port_sync(), ctl_port_offline(), ctl_port_online(), ctl_report_tagret_port_groups(), ctl_target_reset(), and tpcl_resolve().
int ctl_lun_map_unset | ( | struct ctl_port * | port, |
uint32_t | plun | ||
) |
Definition at line 3703 of file ctl.c.
References ctl_isc_announce_port(), CTL_PORT_STATUS_ONLINE, ctl_port::lun_disable, ctl_port::lun_map, ctl_port::lun_map_size, ctl_port::status, and ctl_port::targ_lun_arg.
Referenced by ctl_ioctl().
int ctl_mechanism_status | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 10631 of file ctl.c.
References ctl_scsiio::be_move_done, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_FLAG_ALLOCATED, CTL_RETVAL_COMPLETE, ctl_set_success(), ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_mechanism_status_header::lba, scsi_mechanism_status::length, scsi_2btoul(), scsi_ulto2b(), scsi_ulto3b(), scsi_mechanism_status_header::slots_length, scsi_mechanism_status_header::slots_num, scsi_mechanism_status_header::state1, and scsi_mechanism_status_header::state2.
int ctl_mode_select | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 6251 of file ctl.c.
References ctl_scsiio::be_move_done, scsi_mode_header_6::blk_desc_len, scsi_mode_header_10::blk_desc_len, scsi_mode_select_6::byte2, scsi_mode_select_10::byte2, ctl_priv::bytes, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), ctl_do_mode_select(), ctl_done(), ctl_est_ua_all(), CTL_FLAG_ALLOCATED, CTL_FLAG_IO_CONT, ctl_get_initindex(), ctl_init_page_index(), ctl_isc_announce_mode(), CTL_LUN, CTL_NUM_MODE_PAGES, CTL_PRIV_MODEPAGE, ctl_io_hdr::ctl_private, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_invalid_opcode(), ctl_set_param_len_error(), ctl_set_success(), CTL_UA_MODE_CHANGE, ctl_io_hdr::flags, ctl_modepage_info::header, ctl_mode_pages::index, ctl_scsiio::io_cont, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, ctl_modepage_header::len_left, ctl_modepage_header::len_used, scsi_mode_select_6::length, scsi_mode_select_10::length, ctl_lun::lun, ctl_lun::lun_lock, ctl_lun::mode_pages, MODE_SELECT_10, MODE_SELECT_6, ctl_io_hdr::nexus, ctl_page_index::page_code, scsi_2btoul(), SMPH_PC_MASK, SMS_RTD, and ctl_page_index::subpage.
int ctl_mode_sense | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 6395 of file ctl.c.
References ctl_lun::be_lun, ctl_scsiio::be_move_done, scsi_mode_hdr_6::block_descr_len, scsi_mode_hdr_10::block_descr_len, scsi_mode_block_descr::block_len, scsi_mode_block_descr_dshort::block_len, scsi_mode_block_descr_dlong::block_len, ctl_be_lun::blocksize, scsi_mode_sense_6::byte2, scsi_mode_sense_10::byte2, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, CTL_LUN, CTL_LUN_FLAG_READONLY, CTL_NUM_MODE_PAGES, CTL_PAGE_FLAG_CDROM, CTL_PAGE_FLAG_DIRECT, CTL_PAGE_FLAG_PROC, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_invalid_opcode(), ctl_set_success(), scsi_mode_hdr_6::datalen, scsi_mode_hdr_10::datalen, scsi_mode_hdr_6::dev_specific, scsi_mode_hdr_10::dev_specific, ctl_be_lun::flags, ctl_io_hdr::flags, scsi_mode_hdr_10::flags, ctl_mode_pages::index, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_mode_sense_6::length, scsi_mode_sense_10::length, ctl_lun::lun, ctl_be_lun::lun_type, ctl_be_lun::maxlba, ctl_lun::mode_pages, MODE_SENSE_10, MODE_SENSE_6, scsi_mode_block_descr_dshort::num_blocks, scsi_mode_block_descr_dlong::num_blocks, scsi_mode_sense_6::page, scsi_mode_sense_10::page, ctl_page_index::page_code, ctl_page_index::page_data, ctl_page_index::page_flags, ctl_page_index::page_len, SCP_SWP, scsi_2btoul(), scsi_u64to8b(), scsi_ulto2b(), scsi_ulto3b(), scsi_ulto4b(), ctl_page_index::sense_handler, SMH_LONGLBA, SMPH_PC_MASK, SMS10_LLBAA, SMS_ALL_PAGES_PAGE, SMS_DBD, SMS_PAGE_CODE, SMS_PAGE_CTRL_MASK, SMS_SUBPAGE_ALL, SMS_SUBPAGE_PAGE_0, ctl_page_index::subpage, scsi_mode_sense_6::subpage, scsi_mode_sense_10::subpage, T_CDROM, T_DIRECT, and T_PROCESSOR.
int ctl_persistent_reserve_in | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 7690 of file ctl.c.
References scsi_per_res_in::action, scsi_per_res_in_full_desc::additional_length, ctl_scsiio::be_move_done, ctl_scsiio::cdb, ctl_config_move_done(), ctl_create_iid(), ctl_datamove(), CTL_DEBUG_PRINT, CTL_FLAG_ALLOCATED, ctl_get_prkey(), CTL_LUN, CTL_LUN_PR_RESERVED, CTL_MAX_INIT_PER_PORT, CTL_MAX_INITIATORS, ctl_softc::ctl_ports, CTL_PR_ALL_REGISTRANTS, CTL_RETVAL_COMPLETE, ctl_set_success(), CTL_SOFTC, scsi_per_res_in_rsrv::data, scsi_per_res_in_full::desc, ctl_io_hdr::flags, ctl_lun::flags, scsi_per_res_in_full_desc::flags, scsi_per_res_cap::flags1, scsi_per_res_cap::flags2, scsi_per_res_in_header::generation, scsi_per_res_in_keys::header, scsi_per_res_in_rsrv::header, scsi_per_res_in_full::header, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_per_res_key::key, scsi_per_res_in_keys::keys, scsi_per_res_in::length, scsi_per_res_cap::length, scsi_per_res_in_header::length, ctl_lun::lun, ctl_lun::lun_lock, ctl_lun::pr_generation, ctl_lun::pr_key_count, ctl_lun::pr_res_idx, ctl_lun::pr_res_type, scsi_per_res_in_full_desc::rel_trgt_port_id, scsi_per_res_in_full_desc::res_key, scsi_per_res_in_rsrv_data::reservation, scsi_per_res_in_rsrv_data::scopetype, scsi_per_res_in_full_desc::scopetype, scsi_2btoul(), scsi_u64to8b(), scsi_ulto2b(), scsi_ulto4b(), SPRI_ALLOW_5, SPRI_CRH, SPRI_FULL_R_HOLDER, SPRI_RC, SPRI_RK, SPRI_RR, SPRI_RS, SPRI_TM_EX_AC, SPRI_TM_EX_AC_AR, SPRI_TM_EX_AC_RO, SPRI_TM_WR_EX, SPRI_TM_WR_EX_AR, SPRI_TM_WR_EX_RO, SPRI_TMV, scsi_per_res_in_full_desc::transport_id, and scsi_per_res_cap::type_mask.
int ctl_persistent_reserve_out | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 8254 of file ctl.c.
References ctl_pr_info::action, scsi_per_res_out::action, ctl_scsiio::be_move_done, ctl_scsiio::cdb, ctl_alloc_prkey(), ctl_clr_prkey(), ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), ctl_est_ua(), CTL_FLAG_ALLOCATED, ctl_get_initindex(), ctl_get_prkey(), CTL_HA_CHAN_CTL, ctl_ha_msg_send(), CTL_LUN, CTL_LUN_PR_RESERVED, CTL_MAX_INITIATORS, CTL_MSG_PERS_ACTION, CTL_PR_ALL_REGISTRANTS, CTL_PR_CLEAR, CTL_PR_NO_RESERVATION, CTL_PR_REG_KEY, CTL_PR_RELEASE, CTL_PR_RESERVE, CTL_PR_UNREG_KEY, ctl_pro_preempt(), CTL_RETVAL_COMPLETE, ctl_set_illegal_pr_release(), ctl_set_invalid_field(), ctl_set_prkey(), ctl_set_reservation_conflict(), ctl_set_success(), CTL_SOFTC, CTL_UA_REG_PREEMPT, CTL_UA_RES_RELEASE, ctl_io_hdr::flags, ctl_lun::flags, scsi_per_res_out_parms::flags, ctl_ha_msg::hdr, ctl_softc::init_min, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_per_res_key::key, scsi_per_res_out::length, ctl_lun::lun, ctl_lun::lun_lock, ctl_ha_msg_hdr::msg_type, ctl_io_hdr::nexus, ctl_ha_msg_hdr::nexus, ctl_ha_msg::pr, ctl_lun::pr_generation, ctl_ha_msg_pr::pr_info, ctl_lun::pr_key_count, ctl_lun::pr_res_idx, ctl_lun::pr_res_type, scsi_per_res_out_parms::res_key, ctl_pr_info::res_type, ctl_pr_info::residx, ctl_pr_info::sa_res_key, scsi_per_res_out::scope_type, SCP_NUAR, scsi_4btoul(), scsi_8btou64(), scsi_per_res_out_parms::serv_act_res_key, SPR_ALL_TG_PT, SPR_APTPL, SPR_LU_SCOPE, SPR_SCOPE_MASK, SPR_SPEC_I_PT, SPR_TYPE_EX_AC, SPR_TYPE_EX_AC_AR, SPR_TYPE_EX_AC_RO, SPR_TYPE_MASK, SPR_TYPE_WR_EX, SPR_TYPE_WR_EX_AR, SPR_TYPE_WR_EX_RO, SPRO_ACTION_MASK, SPRO_CLEAR, SPRO_PRE_ABO, SPRO_PREEMPT, SPRO_REG_IGNO, SPRO_REGISTER, SPRO_RELEASE, and SPRO_RESERVE.
int ctl_pool_create | ( | struct ctl_softc * | ctl_softc, |
const char * | pool_name, | ||
uint32_t | total_ctl_io, | ||
void ** | npool | ||
) |
Definition at line 3923 of file ctl.c.
References ctl_io_pool::ctl_softc, ctl_softc::io_zone, ctl_io_pool::name, and ctl_io_pool::zone.
Referenced by ctl_ha_init(), and ctl_port_register().
void ctl_pool_free | ( | struct ctl_io_pool * | pool | ) |
Definition at line 3948 of file ctl.c.
References ctl_io_pool::zone.
Referenced by ctl_ha_init(), ctl_ha_shutdown(), and ctl_port_deregister().
int ctl_populate_token | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 2020 of file ctl_tpc.c.
References tpc_token::active, ctl_lun::be_lun, ctl_scsiio::be_move_done, ctl_be_lun::blocksize, tpc_token::blocksize, ctl_scsiio::cdb, tpc_list::completed, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, ctl_get_initindex(), CTL_LUN, CTL_PORT, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_lba_out_of_range(), ctl_set_success(), CTL_SOFTC, tpc_list::curbytes, tpc_list::cursectors, tpc_list::curseg, scsi_populate_token_data::desc, EC_PT_RTV, ctl_io_hdr::flags, tpc_list::flags, scsi_populate_token_data::flags, scsi_populate_token_data::inactivity_timeout, tpc_list::init_idx, tpc_list::init_port, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, tpc_token::last_active, tpc_list::last_active, scsi_populate_token_data::length, scsi_populate_token::length, tpc_list::list_id, scsi_populate_token::list_identifier, ctl_lun::lun, tpc_token::lun, ctl_lun::lun_lock, ctl_be_lun::maxlba, ctl_io_hdr::nexus, tpc_token::nrange, tpc_token::params, tpc_token::range, scsi_populate_token_data::range_descriptor_length, scsi_populate_token_data::rod_type, ROD_TYPE_AUR, scsi_2btoul(), scsi_4btoul(), tpc_list::service_action, scsi_populate_token::service_action, ctl_nexus::targ_port, tpc_token::timeout, tpc_token::token, tpc_check_ranges_l(), tpc_check_ranges_x(), tpc_create_token(), TPC_DFL_TOKEN_TIMEOUT, tpc_find_list(), ctl_softc::tpc_lock, TPC_MAX_SEGS, TPC_MAX_TOKEN_TIMEOUT, TPC_MIN_TOKEN_TIMEOUT, and tpc_ranges_length().
int ctl_prevent_allow | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 5379 of file ctl.c.
References ctl_lun::backend, ctl_scsiio::cdb, ctl_backend_driver::config_write, ctl_clear_mask(), CTL_DEBUG_PRINT, ctl_done(), ctl_get_initindex(), ctl_is_set(), CTL_LUN, CTL_LUN_REMOVABLE, CTL_RETVAL_COMPLETE, ctl_set_invalid_opcode(), ctl_set_mask(), ctl_lun::flags, scsi_prevent::how, ctl_scsiio::io_hdr, ctl_lun::lun, ctl_lun::lun_lock, ctl_io_hdr::nexus, PR_PREVENT, ctl_lun::prevent, and ctl_lun::prevent_count.
int ctl_read_buffer | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 5564 of file ctl.c.
References ctl_scsiio::be_move_done, scsi_read_buffer::byte2, scsi_read_buffer_16::byte2, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_invalid_opcode(), ctl_set_success(), CTL_WRITE_BUFFER_SIZE, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_read_buffer::length, scsi_read_buffer_16::length, ctl_lun::lun, scsi_read_buffer::offset, scsi_read_buffer_16::offset, READ_BUFFER, READ_BUFFER_16, RWB_MODE, RWB_MODE_DESCR, RWB_MODE_ECHO_DESCR, scsi_3btoul(), scsi_4btoul(), scsi_8btou64(), scsi_ulto3b(), and ctl_lun::write_buffer.
int ctl_read_capacity | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 6983 of file ctl.c.
References scsi_read_capacity::addr, scsi_read_capacity_data::addr, ctl_lun::be_lun, ctl_scsiio::be_move_done, ctl_be_lun::blocksize, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_read_capacity_data::length, ctl_lun::lun, ctl_be_lun::maxlba, scsi_read_capacity::pmi, scsi_4btoul(), scsi_ulto4b(), and SRC_PMI.
int ctl_read_capacity_16 | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 7037 of file ctl.c.
References scsi_read_capacity_16::addr, scsi_read_capacity_data_long::addr, scsi_read_capacity_16::alloc_len, ctl_lun::be_lun, ctl_scsiio::be_move_done, ctl_be_lun::blocksize, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, CTL_LUN, CTL_LUN_FLAG_UNMAP, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), ctl_be_lun::flags, ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_read_capacity_data_long::lalba_lbp, scsi_read_capacity_data_long::length, ctl_lun::lun, ctl_be_lun::maxlba, ctl_be_lun::pblockexp, ctl_be_lun::pblockoff, scsi_read_capacity_data_long::prot_lbppbe, scsi_read_capacity_16::reladr, scsi_4btoul(), scsi_8btou64(), scsi_u64to8b(), scsi_ulto2b(), scsi_ulto4b(), SRC16_LALBA_A, SRC16_LBPME, SRC16_LBPPBE, SRC16_LBPRZ, and SRC16_PMI.
int ctl_read_defect | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 7137 of file ctl.c.
References scsi_read_defect_data_10::alloc_length, scsi_read_defect_data_12::alloc_length, ctl_scsiio::be_move_done, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, CTL_RETVAL_COMPLETE, ctl_set_success(), ctl_io_hdr::flags, scsi_read_defect_data_10::format, scsi_read_defect_data_12::format, scsi_read_defect_data_hdr_10::format, scsi_read_defect_data_hdr_12::format, scsi_read_defect_data_hdr_12::generation, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_read_defect_data_hdr_10::length, scsi_read_defect_data_hdr_12::length, READ_DEFECT_DATA_10, scsi_2btoul(), scsi_4btoul(), scsi_ulto2b(), and scsi_ulto4b().
int ctl_read_toc | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 10673 of file ctl.c.
References scsi_read_toc_type01_descr::addr_ctl, ctl_lun::be_lun, ctl_scsiio::be_move_done, scsi_read_toc::byte2, CD_MSF, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_FLAG_ALLOCATED, CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_success(), ctl_ultomsf(), scsi_read_toc::data_len, scsi_read_toc_hdr::data_length, scsi_read_toc_hdr::first, ctl_io_hdr::flags, scsi_read_toc::format, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_read_toc_hdr::last, ctl_lun::lun, ctl_be_lun::maxlba, scsi_2btoul(), scsi_ulto2b(), scsi_ulto4b(), scsi_read_toc_type01_descr::track_number, and scsi_read_toc_type01_descr::track_start.
int ctl_read_write | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 8756 of file ctl.c.
References scsi_rw_6::addr, scsi_rw_10::addr, scsi_rw_12::addr, scsi_write_verify_10::addr, scsi_write_verify_12::addr, scsi_rw_16::addr, scsi_write_atomic_16::addr, scsi_write_verify_16::addr, ctl_be_lun::atomicblock, ctl_lun::backend, ctl_lun::be_lun, ctl_be_lun::blocksize, scsi_rw_10::byte2, scsi_rw_12::byte2, scsi_rw_16::byte2, scsi_write_atomic_16::byte2, scsi_write_verify_10::byte2, scsi_write_verify_12::byte2, scsi_write_verify_16::byte2, ctl_scsiio::cdb, CTL_DEBUG_PRINT, ctl_done(), CTL_LLF_DPO, CTL_LLF_FUA, CTL_LLF_READ, CTL_LLF_WRITE, CTL_LUN, CTL_PRIV_LBA_LEN, ctl_io_hdr::ctl_private, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_invalid_opcode(), ctl_set_lba_out_of_range(), ctl_set_success(), ctl_backend_driver::data_submit, ctl_lba_len_flags::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_total_len, ctl_lba_len_flags::lba, ctl_lba_len_flags::len, scsi_rw_6::length, scsi_rw_10::length, scsi_write_atomic_16::length, scsi_write_verify_10::length, scsi_rw_12::length, scsi_rw_16::length, scsi_write_verify_12::length, scsi_write_verify_16::length, ctl_lun::lun, ctl_be_lun::maxlba, READ_10, READ_12, READ_16, READ_6, SCP_RCD, SCP_WCE, scsi_2btoul(), scsi_3btoul(), scsi_4btoul(), scsi_8btou64(), SRW10_DPO, SRW10_FUA, SRW12_DPO, SRW12_FUA, SWV_DPO, WRITE_10, WRITE_12, WRITE_16, WRITE_6, WRITE_ATOMIC_16, WRITE_VERIFY_10, WRITE_VERIFY_12, and WRITE_VERIFY_16.
int ctl_receive_copy_failure_details | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 590 of file ctl_tpc.c.
References tpc_list::abort, scsi_receive_copy_failure_details_data::available_data, ctl_scsiio::be_move_done, ctl_scsiio::cdb, tpc_list::completed, scsi_receive_copy_failure_details_data::copy_command_status, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, ctl_get_initindex(), CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), tpc_list::error, ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_receive_copy_failure_details::length, tpc_list::list_id, scsi_receive_copy_failure_details::list_identifier, ctl_lun::lun, ctl_lun::lun_lock, ctl_io_hdr::nexus, RCS_CCS_ERROR, scsi_4btoul(), scsi_ulto2b(), scsi_ulto4b(), scsi_receive_copy_failure_details_data::sense_data, scsi_receive_copy_failure_details_data::sense_data_length, and tpc_find_list().
int ctl_receive_copy_operating_parameters | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 454 of file ctl_tpc.c.
References ctl_scsiio::be_move_done, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, CTL_FLAG_ALLOCATED, CTL_RETVAL_COMPLETE, ctl_set_success(), scsi_receive_copy_operating_parameters_data::data_segment_granularity, EC_CSCD_ID, EC_SEG_B2B, EC_SEG_REGISTER_KEY, EC_SEG_VERIFY, ctl_io_hdr::flags, scsi_receive_copy_operating_parameters_data::held_data_granularity, scsi_receive_copy_operating_parameters_data::held_data_limit, scsi_receive_copy_operating_parameters_data::implemented_descriptor_list_length, scsi_receive_copy_operating_parameters_data::inline_data_granularity, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_receive_copy_operating_parameters::length, scsi_receive_copy_operating_parameters_data::length, scsi_receive_copy_operating_parameters_data::list_of_implemented_descriptor_type_codes, scsi_receive_copy_operating_parameters_data::maximum_concurrent_copies, scsi_receive_copy_operating_parameters_data::maximum_cscd_descriptor_count, scsi_receive_copy_operating_parameters_data::maximum_descriptor_list_length, scsi_receive_copy_operating_parameters_data::maximum_inline_data_length, scsi_receive_copy_operating_parameters_data::maximum_segment_descriptor_count, scsi_receive_copy_operating_parameters_data::maximum_segment_length, scsi_receive_copy_operating_parameters_data::maximum_stream_device_transfer_size, RCOP_SNLID, scsi_4btoul(), scsi_ulto2b(), scsi_ulto4b(), scsi_receive_copy_operating_parameters_data::snlid, scsi_receive_copy_operating_parameters_data::total_concurrent_copies, TPC_MAX_CSCDS, TPC_MAX_INLINE, TPC_MAX_LIST, TPC_MAX_LISTS, TPC_MAX_SEG, and TPC_MAX_SEGS.
int ctl_receive_copy_status_lid1 | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 520 of file ctl_tpc.c.
References tpc_list::abort, scsi_receive_copy_status_lid1_data::available_data, ctl_scsiio::be_move_done, ctl_scsiio::cdb, tpc_list::completed, scsi_receive_copy_status_lid1_data::copy_command_status, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, ctl_get_initindex(), CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), tpc_list::curbytes, tpc_list::curseg, tpc_list::error, ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_receive_copy_status_lid1::length, tpc_list::list_id, scsi_receive_copy_status_lid1::list_identifier, ctl_lun::lun, ctl_lun::lun_lock, ctl_io_hdr::nexus, RCS_CCS_COMPLETED, RCS_CCS_ERROR, RCS_CCS_INPROG, RCS_TC_BYTES, RCS_TC_MBYTES, scsi_4btoul(), scsi_ulto2b(), scsi_ulto4b(), scsi_receive_copy_status_lid1_data::segments_processed, tpc_find_list(), scsi_receive_copy_status_lid1_data::transfer_count, and scsi_receive_copy_status_lid1_data::transfer_count_units.
int ctl_receive_copy_status_lid4 | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 650 of file ctl_tpc.c.
References tpc_list::abort, scsi_receive_copy_status_lid4_data::available_data, ctl_scsiio::be_move_done, ctl_scsiio::cdb, tpc_list::completed, scsi_receive_copy_status_lid4_data::copy_command_status, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, ctl_get_initindex(), CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), tpc_list::curbytes, tpc_list::curops, tpc_list::curseg, tpc_list::error, scsi_receive_copy_status_lid4_data::estimated_status_update_delay, ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_receive_copy_status_lid4::length, scsi_receive_copy_status_lid4_data::length_of_the_sense_data_field, tpc_list::list_id, scsi_receive_copy_status_lid4::list_identifier, ctl_lun::lun, ctl_lun::lun_lock, ctl_io_hdr::nexus, scsi_receive_copy_status_lid4_data::operation_counter, RCS_CCS_ABORTED, RCS_CCS_COMPLETED, RCS_CCS_ERROR, RCS_CCS_INPROG_FG, RCS_TC_BYTES, scsi_receive_copy_status_lid4_data::response_to_service_action, scsi_4btoul(), scsi_u64to8b(), scsi_ulto2b(), scsi_ulto4b(), scsi_receive_copy_status_lid4_data::segments_processed, scsi_receive_copy_status_lid4_data::sense_data, scsi_receive_copy_status_lid4_data::sense_data_length, tpc_list::service_action, tpc_find_list(), scsi_receive_copy_status_lid4_data::transfer_count, and scsi_receive_copy_status_lid4_data::transfer_count_units.
int ctl_receive_rod_token_information | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 2338 of file ctl_tpc.c.
References tpc_list::abort, scsi_receive_copy_status_lid4_data::available_data, ctl_scsiio::be_move_done, ctl_scsiio::cdb, tpc_list::completed, scsi_receive_copy_status_lid4_data::copy_command_status, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, ctl_get_initindex(), CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), tpc_list::curops, tpc_list::cursectors, tpc_list::curseg, tpc_list::error, scsi_receive_copy_status_lid4_data::estimated_status_update_delay, ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_receive_rod_token_information::length, scsi_receive_copy_status_lid4_data::length_of_the_sense_data_field, tpc_list::list_id, scsi_receive_rod_token_information::list_identifier, ctl_lun::lun, ctl_lun::lun_lock, ctl_io_hdr::nexus, scsi_receive_copy_status_lid4_data::operation_counter, RCS_CCS_ABORTED, RCS_CCS_COMPLETED, RCS_CCS_ERROR, RCS_CCS_INPROG_FG, RCS_TC_LBAS, scsi_receive_copy_status_lid4_data::response_to_service_action, scsi_4btoul(), scsi_u64to8b(), scsi_ulto2b(), scsi_ulto4b(), scsi_receive_copy_status_lid4_data::segments_processed, scsi_receive_copy_status_lid4_data::sense_data, scsi_receive_copy_status_lid4_data::sense_data_length, tpc_list::service_action, tpc_find_list(), scsi_receive_copy_status_lid4_data::transfer_count, and scsi_receive_copy_status_lid4_data::transfer_count_units.
int ctl_report_all_rod_tokens | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 2424 of file ctl_tpc.c.
References scsi_report_all_rod_tokens_data::available_data, ctl_scsiio::be_move_done, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, CTL_FLAG_ALLOCATED, CTL_RETVAL_COMPLETE, ctl_set_success(), CTL_SOFTC, ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_report_all_rod_tokens::length, scsi_report_all_rod_tokens_data::rod_management_token_list, scsi_4btoul(), scsi_ulto4b(), tpc_token::token, and ctl_softc::tpc_lock.
int ctl_report_ident_info | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 7192 of file ctl.c.
References ctl_lun::be_lun, ctl_scsiio::be_move_done, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), ctl_io_hdr::flags, hex2bin(), ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_report_ident_info_data::length, scsi_report_ident_info_descr::length, scsi_report_ident_info::length, ctl_lun::lun, ctl_be_lun::options, RII_IIS, RII_LUII, RII_LUTII, scsi_4btoul(), scsi_ulto2b(), scsi_report_ident_info::type, and scsi_report_ident_info_descr::type.
int ctl_report_luns | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 9156 of file ctl.c.
References ctl_scsiio::be_move_done, ctl_scsiio::cdb, ctl_clr_ua(), ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), ctl_encode_lun(), CTL_FLAG_ALLOCATED, ctl_get_initindex(), ctl_softc::ctl_lock, CTL_LUN, ctl_lun_map_from_port(), ctl_softc::ctl_luns, ctl_max_luns, CTL_PORT, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), CTL_SOFTC, CTL_UA_LUN_CHANGE, ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_report_luns::length, scsi_report_luns_data::length, ctl_lun::lun, ctl_lun::lun_lock, ctl_port::lun_map, ctl_port::lun_map_size, scsi_report_luns_lundata::lundata, scsi_report_luns_data::luns, ctl_io_hdr::nexus, RPL_REPORT_ADMIN, RPL_REPORT_ALL, RPL_REPORT_CONGLOM, RPL_REPORT_DEFAULT, RPL_REPORT_NONSUBSID, RPL_REPORT_WELLKNOWN, scsi_4btoul(), scsi_ulto4b(), and scsi_report_luns::select_report.
int ctl_report_supported_opcodes | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 7443 of file ctl.c.
References ctl_lun::be_lun, ctl_scsiio::be_move_done, ctl_scsiio::cdb, scsi_report_supported_opcodes_descr::cdb_length, scsi_report_supported_opcodes_one::cdb_length, scsi_report_supported_opcodes_one::cdb_usage, ctl_cmd_applicable(), CTL_CMD_FLAG_SA5, ctl_cmd_table, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), scsi_report_supported_opcodes_all::descr, ctl_cmd_entry::execute, ctl_io_hdr::flags, ctl_cmd_entry::flags, scsi_report_supported_opcodes_descr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, ctl_cmd_entry::length, scsi_report_supported_opcodes::length, scsi_report_supported_opcodes_all::length, ctl_lun::lun, ctl_be_lun::lun_type, scsi_report_supported_opcodes::opcode, scsi_report_supported_opcodes_descr::opcode, scsi_report_supported_opcodes::options, scsi_report_supported_opcodes::requested_opcode, scsi_report_supported_opcodes::requested_service_action, RSO_OPTIONS_ALL, RSO_OPTIONS_MASK, RSO_OPTIONS_OC, RSO_OPTIONS_OC_ASA, RSO_OPTIONS_OC_SA, RSO_SERVACTV, scsi_2btoul(), scsi_4btoul(), scsi_ulto2b(), scsi_ulto4b(), scsi_report_supported_opcodes::service_action, scsi_report_supported_opcodes_descr::service_action, scsi_report_supported_opcodes_one::support, and ctl_cmd_entry::usage.
int ctl_report_supported_tmf | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 7611 of file ctl.c.
References ctl_scsiio::be_move_done, scsi_report_supported_tmf_ext_data::byte1, scsi_report_supported_tmf_ext_data::byte2, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, CTL_FLAG_ALLOCATED, CTL_RETVAL_COMPLETE, ctl_set_success(), ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_report_supported_tmf::length, scsi_report_supported_tmf_ext_data::length, scsi_report_supported_tmf::options, RST_ATS, RST_ATSS, RST_CTSS, RST_ITNRS, RST_LURS, RST_QAES, RST_QTS, RST_QTSS, RST_REPD, RST_TRS, and scsi_4btoul().
int ctl_report_tagret_port_groups | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 7274 of file ctl.c.
References ctl_scsiio::be_move_done, scsi_maintenance_in::byte2, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, CTL_HA_LINK_OFFLINE, CTL_HA_LINK_UNKNOWN, CTL_HA_MODE_ACT_STBY, ctl_softc::ctl_lock, CTL_LUN, ctl_lun_map_to_port(), CTL_LUN_PEER_SC_PRIMARY, CTL_LUN_PRIMARY_SC, CTL_PORT_STATUS_HA_SHARED, CTL_PORT_STATUS_ONLINE, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), CTL_SOFTC, scsi_target_port_group_descriptor::descriptors, ctl_io_hdr::flags, ctl_lun::flags, scsi_target_group_data_extended::format_type, scsi_target_group_data::groups, scsi_target_group_data_extended::groups, ctl_softc::ha_link, ctl_softc::ha_mode, scsi_target_group_data_extended::implicit_transition_time, ctl_scsiio::io_hdr, ctl_softc::is_single, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_maintenance_in::length, scsi_target_group_data::length, scsi_target_group_data_extended::length, ctl_lun::lun, NUM_HA_SHELVES, ctl_softc::port_cnt, ctl_softc::port_min, scsi_target_port_group_descriptor::pref_state, scsi_4btoul(), scsi_ulto2b(), scsi_ulto4b(), ctl_port::status, scsi_target_port_group_descriptor::status, STG_PDF_EXTENDED, STG_PDF_LENGTH, STG_PDF_MASK, scsi_target_port_group_descriptor::support, ctl_port::targ_port, scsi_target_port_group_descriptor::target_port_count, scsi_target_port_group_descriptor::target_port_group, TPG_AN_SUP, TPG_AO_SUP, TPG_ASYMMETRIC_ACCESS_NONOPTIMIZED, TPG_ASYMMETRIC_ACCESS_OPTIMIZED, TPG_ASYMMETRIC_ACCESS_STANDBY, TPG_ASYMMETRIC_ACCESS_TRANSITIONING, TPG_ASYMMETRIC_ACCESS_UNAVAILABLE, TPG_IMPLICIT, TPG_S_SUP, TPG_T_SUP, and TPG_U_SUP.
int ctl_report_timestamp | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 7650 of file ctl.c.
References ctl_scsiio::be_move_done, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, CTL_FLAG_ALLOCATED, CTL_RETVAL_COMPLETE, ctl_set_success(), ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_report_timestamp_data::length, scsi_report_timestamp::length, scsi_report_timestamp_data::origin, RTS_ORIG_OUTSIDE, scsi_4btoul(), scsi_ulto2b(), scsi_ulto4b(), and scsi_report_timestamp_data::timestamp.
int ctl_request_sense | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 9300 of file ctl.c.
References ctl_scsiio::be_move_done, scsi_request_sense::byte2, ctl_scsiio::cdb, ctl_build_ua(), ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, CTL_FLAG_ALLOCATED, ctl_get_initindex(), CTL_HA_LINK_UNKNOWN, CTL_LUN, CTL_LUN_PRIMARY_SC, CTL_MAX_INIT_PER_PORT, CTL_RETVAL_COMPLETE, ctl_sense_to_desc(), ctl_sense_to_fixed(), ctl_set_sense_data(), ctl_set_success(), CTL_SOFTC, CTL_UA_NONE, scsi_sense_data::error_code, scsi_sense_data_fixed::error_code, ctl_io_hdr::flags, ctl_lun::flags, ctl_softc::ha_link, ctl_lun::ie_asc, ctl_lun::ie_ascq, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_request_sense::length, ctl_lun::lun, ctl_lun::lun_lock, ctl_io_hdr::nexus, ctl_lun::pending_sense, scsi_sense_type(), SIEP_MRIE_NO, SRS_DESC, SSD_ELEM_NONE, SSD_FULL_SIZE, SSD_KEY_ILLEGAL_REQUEST, SSD_KEY_NO_SENSE, SSD_TYPE_DESC, and SSD_TYPE_FIXED.
int ctl_scsi_release | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 5249 of file ctl.c.
References CTL_DEBUG_PRINT, ctl_done(), ctl_get_initindex(), CTL_LUN, CTL_LUN_RESERVED, CTL_RETVAL_COMPLETE, ctl_set_success(), ctl_scsiio::io_hdr, ctl_lun::lun, and ctl_io_hdr::nexus.
int ctl_scsi_reserve | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 5286 of file ctl.c.
References CTL_DEBUG_PRINT, ctl_done(), ctl_get_initindex(), CTL_LUN, CTL_LUN_PR_RESERVED, CTL_LUN_RESERVED, CTL_RETVAL_COMPLETE, ctl_set_reservation_conflict(), ctl_set_success(), ctl_scsiio::io_hdr, ctl_lun::lun, and ctl_io_hdr::nexus.
int ctl_start_stop | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 5326 of file ctl.c.
References ctl_lun::backend, ctl_scsiio::cdb, ctl_backend_driver::config_write, CTL_DEBUG_PRINT, ctl_done(), ctl_get_initindex(), ctl_get_prkey(), CTL_LUN, CTL_LUN_NO_MEDIA, CTL_LUN_PR_RESERVED, CTL_LUN_REMOVABLE, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_reservation_conflict(), ctl_set_sense(), ctl_lun::flags, scsi_start_stop_unit::how, ctl_scsiio::io_hdr, ctl_lun::lun, ctl_io_hdr::nexus, ctl_lun::pr_res_idx, ctl_lun::pr_res_type, ctl_lun::prevent_count, SSD_ELEM_NONE, SSD_KEY_ILLEGAL_REQUEST, SSD_KEY_NOT_READY, SSS_LOEJ, SSS_PC_MASK, and SSS_START.
int ctl_sync_cache | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 5419 of file ctl.c.
References ctl_lun::backend, ctl_lun::be_lun, scsi_sync_cache::begin_lba, scsi_sync_cache_16::begin_lba, scsi_sync_cache::byte2, scsi_sync_cache_16::byte2, ctl_scsiio::cdb, ctl_backend_driver::config_write, CTL_DEBUG_PRINT, ctl_done(), CTL_LUN, CTL_PRIV_LBA_LEN, ctl_io_hdr::ctl_private, ctl_set_invalid_opcode(), ctl_set_lba_out_of_range(), ctl_lba_len_flags::flags, ctl_scsiio::io_hdr, scsi_sync_cache::lb_count, scsi_sync_cache_16::lb_count, ctl_lba_len_flags::lba, ctl_lba_len_flags::len, ctl_lun::lun, ctl_be_lun::maxlba, scsi_2btoul(), scsi_4btoul(), scsi_8btou64(), SYNCHRONIZE_CACHE, and SYNCHRONIZE_CACHE_16.
void ctl_tpc_init | ( | struct ctl_softc * | softc | ) |
Definition at line 194 of file ctl_tpc.c.
References ctl_softc::ctl_lock, ctl_softc::tpc_lock, ctl_softc::tpc_timeout, and tpc_timeout().
Referenced by ctl_init().
void ctl_tpc_lun_clear | ( | struct ctl_lun * | lun, |
uint32_t | initidx | ||
) |
Definition at line 230 of file ctl_tpc.c.
References tpc_list::completed, and tpc_list::init_idx.
Referenced by ctl_do_lun_reset(), and ctl_i_t_nexus_loss().
void ctl_tpc_lun_init | ( | struct ctl_lun * | lun | ) |
Definition at line 223 of file ctl_tpc.c.
References tpc_token::lun.
Referenced by ctl_add_lun().
void ctl_tpc_lun_shutdown | ( | struct ctl_lun * | lun | ) |
Definition at line 245 of file ctl_tpc.c.
References tpc_list::completed, ctl_lun::ctl_softc, tpc_token::lun, tpc_token::token, and ctl_softc::tpc_lock.
Referenced by ctl_free_lun().
void ctl_tpc_shutdown | ( | struct ctl_softc * | softc | ) |
Definition at line 205 of file ctl_tpc.c.
References tpc_token::token, ctl_softc::tpc_lock, and ctl_softc::tpc_timeout.
Referenced by ctl_shutdown().
int ctl_tur | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 9432 of file ctl.c.
References CTL_DEBUG_PRINT, ctl_done(), CTL_RETVAL_COMPLETE, and ctl_set_success().
int ctl_unmap | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 5832 of file ctl.c.
References ctl_lun::backend, ctl_lun::be_lun, ctl_scsiio::be_move_done, scsi_unmap::byte2, ctl_scsiio::cdb, ctl_backend_driver::config_write, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, CTL_LUN, CTL_PRIV_LBA_LEN, ctl_io_hdr::ctl_private, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_lba_out_of_range(), ctl_set_success(), ctl_try_unblock_others(), scsi_unmap_header::desc_length, ctl_ptr_len_flags::flags, ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_data_resid, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_unmap_desc::lba, ctl_ptr_len_flags::len, scsi_unmap::length, scsi_unmap_header::length, scsi_unmap_desc::length, ctl_lun::lun, ctl_lun::lun_lock, ctl_be_lun::maxlba, ctl_ptr_len_flags::ptr, scsi_2btoul(), scsi_4btoul(), and scsi_8btou64().
int ctl_verify | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 9054 of file ctl.c.
References scsi_verify_10::addr, scsi_verify_12::addr, scsi_rw_16::addr, ctl_lun::backend, ctl_lun::be_lun, ctl_be_lun::blocksize, scsi_rw_16::byte2, scsi_verify_10::byte2, scsi_verify_12::byte2, ctl_scsiio::cdb, CTL_DEBUG_PRINT, ctl_done(), CTL_LLF_COMPARE, CTL_LLF_DPO, CTL_LLF_FUA, CTL_LLF_VERIFY, CTL_LUN, CTL_PRIV_LBA_LEN, ctl_io_hdr::ctl_private, CTL_RETVAL_COMPLETE, ctl_set_invalid_opcode(), ctl_set_lba_out_of_range(), ctl_set_success(), ctl_backend_driver::data_submit, ctl_lba_len_flags::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_total_len, ctl_lba_len_flags::lba, ctl_lba_len_flags::len, scsi_verify_10::length, scsi_rw_16::length, scsi_verify_12::length, ctl_lun::lun, ctl_be_lun::maxlba, scsi_2btoul(), scsi_4btoul(), scsi_8btou64(), SVFY_BYTCHK, SVFY_DPO, VERIFY_10, VERIFY_12, and VERIFY_16.
int ctl_write_buffer | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 5638 of file ctl.c.
References ctl_scsiio::be_move_done, ctl_scsiio::cdb, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_success(), CTL_WRITE_BUFFER_SIZE, ctl_io_hdr::flags, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_write_buffer::length, ctl_lun::lun, scsi_write_buffer::offset, scsi_3btoul(), and ctl_lun::write_buffer.
int ctl_write_same | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 5712 of file ctl.c.
References scsi_write_same_10::addr, scsi_write_same_16::addr, ctl_lun::backend, ctl_lun::be_lun, ctl_scsiio::be_move_done, ctl_be_lun::blocksize, scsi_write_same_10::byte2, scsi_write_same_16::byte2, ctl_scsiio::cdb, ctl_backend_driver::config_write, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), ctl_expand_number(), CTL_FLAG_ALLOCATED, CTL_FLAG_IO_CONT, CTL_LUN, CTL_PRIV_LBA_LEN, ctl_io_hdr::ctl_private, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_invalid_opcode(), ctl_set_lba_out_of_range(), ctl_write_same_cont(), ctl_lba_len_flags::flags, ctl_io_hdr::flags, ctl_scsiio::io_cont, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, ctl_lba_len_flags::lba, ctl_lba_len_flags::len, scsi_write_same_10::length, scsi_write_same_16::length, ctl_lun::lun, ctl_be_lun::maxlba, ctl_be_lun::options, scsi_2btoul(), scsi_4btoul(), scsi_8btou64(), SWS_ANCHOR, SWS_NDOB, SWS_UNMAP, WRITE_SAME_10, and WRITE_SAME_16.
int ctl_write_using_token | ( | struct ctl_scsiio * | ctsio | ) |
Definition at line 2184 of file ctl_tpc.c.
References tpc_token::active, ctl_lun::be_lun, ctl_scsiio::be_move_done, ctl_scsiio::cdb, tpc_list::completed, ctl_config_move_done(), ctl_datamove(), CTL_DEBUG_PRINT, ctl_done(), CTL_FLAG_ALLOCATED, ctl_get_initindex(), CTL_LUN, CTL_RETVAL_COMPLETE, ctl_set_invalid_field(), ctl_set_lba_out_of_range(), ctl_set_sense(), CTL_SOFTC, scsi_write_using_token_data::desc, EC_WUT_DEL_TKN, ctl_io_hdr::flags, tpc_list::flags, scsi_write_using_token_data::flags, tpc_list::init_idx, tpc_list::init_port, ctl_scsiio::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_rel_offset, ctl_scsiio::kern_sg_entries, ctl_scsiio::kern_total_len, scsi_write_using_token_data::length, scsi_write_using_token::length, tpc_list::list_id, scsi_write_using_token::list_identifier, ctl_lun::lun, ctl_lun::lun_lock, ctl_be_lun::maxlba, ctl_io_hdr::nexus, tpc_list::nrange, tpc_list::offset_into_rod, scsi_write_using_token_data::offset_into_rod, tpc_list::params, tpc_list::range, scsi_write_using_token_data::range_descriptor_length, scsi_write_using_token_data::rod_token, ROD_TYPE_BLOCK_ZERO, scsi_2btoul(), scsi_4btoul(), scsi_8btou64(), tpc_list::service_action, scsi_write_using_token::service_action, SSD_ELEM_NONE, SSD_KEY_ILLEGAL_REQUEST, ctl_nexus::targ_port, tpc_token::timeout, tpc_token::token, tpc_list::token, tpc_check_ranges_l(), tpc_check_ranges_x(), tpc_find_list(), ctl_softc::tpc_lock, TPC_MAX_SEGS, and tpc_process().
|
extern |
Definition at line 905 of file ctl_cmd_table.c.
Referenced by ctl_get_cmd_entry(), and ctl_report_supported_opcodes().
|
static |
Definition at line 326 of file ctl_private.h.
Referenced by ctl_init_log_page_index().
|
static |
Definition at line 271 of file ctl_private.h.
Referenced by ctl_init_page_index().