FreeBSD kernel CAM code
|
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/types.h>
#include <sys/malloc.h>
#include <sys/sbuf.h>
#include <sys/queue.h>
#include <sys/callout.h>
#include <cam/scsi/scsi_all.h>
#include <cam/ctl/ctl_io.h>
#include <cam/ctl/ctl_scsi_all.h>
#include <cam/ctl/ctl_util.h>
Go to the source code of this file.
Data Structures | |
struct | ctl_status_desc |
struct | ctl_task_desc |
Functions | |
__FBSDID ("$FreeBSD$") | |
void | ctl_scsi_tur (union ctl_io *io, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_inquiry (union ctl_io *io, uint8_t *data_ptr, int32_t data_len, uint8_t byte2, uint8_t page_code, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_request_sense (union ctl_io *io, uint8_t *data_ptr, int32_t data_len, uint8_t byte2, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_report_luns (union ctl_io *io, uint8_t *data_ptr, uint32_t data_len, uint8_t select_report, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_read_write_buffer (union ctl_io *io, uint8_t *data_ptr, uint32_t data_len, int read_buffer, uint8_t mode, uint8_t buffer_id, uint32_t buffer_offset, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_read_write (union ctl_io *io, uint8_t *data_ptr, uint32_t data_len, int read_op, uint8_t byte2, int minimum_cdb_size, uint64_t lba, uint32_t num_blocks, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_write_same (union ctl_io *io, uint8_t *data_ptr, uint32_t data_len, uint8_t byte2, uint64_t lba, uint32_t num_blocks, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_read_capacity (union ctl_io *io, uint8_t *data_ptr, uint32_t data_len, uint32_t addr, int reladr, int pmi, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_read_capacity_16 (union ctl_io *io, uint8_t *data_ptr, uint32_t data_len, uint64_t addr, int reladr, int pmi, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_mode_sense (union ctl_io *io, uint8_t *data_ptr, uint32_t data_len, int dbd, int llbaa, uint8_t page_code, uint8_t pc, uint8_t subpage, int minimum_cdb_size, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_start_stop (union ctl_io *io, int start, int load_eject, int immediate, int power_conditions, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_sync_cache (union ctl_io *io, int immed, int reladr, int minimum_cdb_size, uint64_t starting_lba, uint32_t block_count, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_persistent_res_in (union ctl_io *io, uint8_t *data_ptr, uint32_t data_len, int action, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_persistent_res_out (union ctl_io *io, uint8_t *data_ptr, uint32_t data_len, int action, int type, uint64_t key, uint64_t sa_key, ctl_tag_type tag_type, uint8_t control) |
void | ctl_scsi_maintenance_in (union ctl_io *io, uint8_t *data_ptr, uint32_t data_len, uint8_t action, ctl_tag_type tag_type, uint8_t control) |
const char * | ctl_scsi_task_string (struct ctl_taskio *taskio) |
void | ctl_io_sbuf (union ctl_io *io, struct sbuf *sb) |
void | ctl_io_error_sbuf (union ctl_io *io, struct scsi_inquiry_data *inq_data, struct sbuf *sb) |
char * | ctl_io_string (union ctl_io *io, char *str, int str_len) |
char * | ctl_io_error_string (union ctl_io *io, struct scsi_inquiry_data *inq_data, char *str, int str_len) |
void | ctl_io_print (union ctl_io *io) |
void | ctl_io_error_print (union ctl_io *io, struct scsi_inquiry_data *inq_data) |
void | ctl_data_print (union ctl_io *io) |
Variables | |
static struct ctl_status_desc | ctl_status_table [] |
static struct ctl_task_desc | ctl_task_table [] |
__FBSDID | ( | "$FreeBSD$" | ) |
void ctl_data_print | ( | union ctl_io * | io | ) |
Definition at line 854 of file ctl_util.c.
References CTL_FLAG_BUS_ADDR, CTL_IO_SCSI, ctl_scsi_path_string(), ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_sg_entries, ctl_io::scsiio, and ctl_scsiio::tag_num.
Referenced by ctl_config_move_done(), and ctl_datamove_done_process().
void ctl_io_error_print | ( | union ctl_io * | io, |
struct scsi_inquiry_data * | inq_data | ||
) |
Definition at line 845 of file ctl_util.c.
References ctl_io_error_string().
Referenced by ctl_process_done(), and ctlfe_dump_queue().
void ctl_io_error_sbuf | ( | union ctl_io * | io, |
struct scsi_inquiry_data * | inq_data, | ||
struct sbuf * | sb | ||
) |
Definition at line 771 of file ctl_util.c.
References ctl_io_sbuf(), CTL_IO_SCSI, CTL_SCSI_ERROR, ctl_scsi_path_string(), ctl_scsi_sense_sbuf(), ctl_scsi_status_string(), CTL_STATUS_MASK, ctl_status_table, ctl_status_desc::description, ctl_io::io_hdr, ctl_io_hdr::io_type, ctl_scsiio::scsi_status, SCSI_STATUS_CHECK_COND, ctl_io::scsiio, SSS_FLAG_NONE, ctl_io_hdr::status, and ctl_status_desc::status.
Referenced by ctl_io_error_string().
char * ctl_io_error_string | ( | union ctl_io * | io, |
struct scsi_inquiry_data * | inq_data, | ||
char * | str, | ||
int | str_len | ||
) |
Definition at line 823 of file ctl_util.c.
References ctl_io_error_sbuf().
Referenced by ctl_io_error_print().
void ctl_io_print | ( | union ctl_io * | io | ) |
Definition at line 837 of file ctl_util.c.
References ctl_io_string().
Referenced by ctl_queue(), and ctl_run().
void ctl_io_sbuf | ( | union ctl_io * | io, |
struct sbuf * | sb | ||
) |
Definition at line 732 of file ctl_util.c.
References CTL_IO_SCSI, CTL_IO_TASK, ctl_scsi_command_string(), ctl_scsi_path_string(), ctl_scsi_task_string(), CTL_TASK_ABORT_TASK, ctl_io::io_hdr, ctl_io_hdr::io_type, ctl_scsiio::priority, ctl_io::scsiio, ctl_scsiio::tag_num, ctl_taskio::tag_num, ctl_scsiio::tag_type, ctl_taskio::tag_type, ctl_taskio::task_action, and ctl_io::taskio.
Referenced by ctl_io_error_sbuf(), and ctl_io_string().
char * ctl_io_string | ( | union ctl_io * | io, |
char * | str, | ||
int | str_len | ||
) |
Definition at line 812 of file ctl_util.c.
References ctl_io_sbuf().
Referenced by ctl_io_print().
void ctl_scsi_inquiry | ( | union ctl_io * | io, |
uint8_t * | data_ptr, | ||
int32_t | data_len, | ||
uint8_t | byte2, | ||
uint8_t | page_code, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 125 of file ctl_util.c.
References scsi_inquiry::byte2, ctl_scsiio::cdb, ctl_scsiio::cdb_len, scsi_inquiry::control, CTL_FLAG_DATA_IN, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, INQUIRY, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_inquiry::length, scsi_inquiry::opcode, scsi_inquiry::page_code, scsi_ulto2b(), ctl_io::scsiio, ctl_scsiio::sense_len, SSD_FULL_SIZE, and ctl_scsiio::tag_type.
void ctl_scsi_maintenance_in | ( | union ctl_io * | io, |
uint8_t * | data_ptr, | ||
uint32_t | data_len, | ||
uint8_t | action, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 657 of file ctl_util.c.
References scsi_maintenance_in::byte2, ctl_scsiio::cdb, scsi_maintenance_in::control, CTL_FLAG_DATA_IN, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_maintenance_in::length, MAINTENANCE_IN, scsi_maintenance_in::opcode, scsi_ulto4b(), ctl_io::scsiio, ctl_scsiio::sense_len, SSD_FULL_SIZE, and ctl_scsiio::tag_type.
void ctl_scsi_mode_sense | ( | union ctl_io * | io, |
uint8_t * | data_ptr, | ||
uint32_t | data_len, | ||
int | dbd, | ||
int | llbaa, | ||
uint8_t | page_code, | ||
uint8_t | pc, | ||
uint8_t | subpage, | ||
int | minimum_cdb_size, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 445 of file ctl_util.c.
References scsi_mode_sense_6::byte2, scsi_mode_sense_10::byte2, ctl_scsiio::cdb, scsi_mode_sense_6::control, scsi_mode_sense_10::control, CTL_FLAG_DATA_IN, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_mode_sense_6::length, scsi_mode_sense_10::length, MODE_SENSE_10, MODE_SENSE_6, scsi_mode_sense_6::opcode, scsi_mode_sense_10::opcode, scsi_mode_sense_6::page, scsi_mode_sense_10::page, scsi_ulto2b(), ctl_io::scsiio, ctl_scsiio::sense_len, SMS10_LLBAA, SMS_DBD, SSD_FULL_SIZE, scsi_mode_sense_6::subpage, scsi_mode_sense_10::subpage, and ctl_scsiio::tag_type.
void ctl_scsi_persistent_res_in | ( | union ctl_io * | io, |
uint8_t * | data_ptr, | ||
uint32_t | data_len, | ||
int | action, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 573 of file ctl_util.c.
References scsi_per_res_in::action, ctl_scsiio::cdb, scsi_per_res_in::control, CTL_FLAG_DATA_IN, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_per_res_in::length, scsi_per_res_in::opcode, PERSISTENT_RES_IN, scsi_ulto2b(), ctl_io::scsiio, ctl_scsiio::sense_len, SSD_FULL_SIZE, and ctl_scsiio::tag_type.
void ctl_scsi_persistent_res_out | ( | union ctl_io * | io, |
uint8_t * | data_ptr, | ||
uint32_t | data_len, | ||
int | action, | ||
int | type, | ||
uint64_t | key, | ||
uint64_t | sa_key, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 599 of file ctl_util.c.
References scsi_per_res_out::action, ctl_scsiio::cdb, scsi_per_res_out::control, CTL_FLAG_DATA_OUT, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_per_res_key::key, scsi_per_res_out::length, scsi_per_res_out::opcode, PERSISTENT_RES_OUT, scsi_per_res_out_parms::res_key, scsi_per_res_out::scope_type, scsi_u64to8b(), scsi_ulto4b(), ctl_io::scsiio, ctl_scsiio::sense_len, scsi_per_res_out_parms::serv_act_res_key, SSD_FULL_SIZE, and ctl_scsiio::tag_type.
Referenced by tpc_process_register_key().
void ctl_scsi_read_capacity | ( | union ctl_io * | io, |
uint8_t * | data_ptr, | ||
uint32_t | data_len, | ||
uint32_t | addr, | ||
int | reladr, | ||
int | pmi, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 384 of file ctl_util.c.
References scsi_read_capacity::addr, scsi_read_capacity::byte2, ctl_scsiio::cdb, scsi_read_capacity::control, CTL_FLAG_DATA_IN, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_read_capacity::opcode, scsi_read_capacity::pmi, READ_CAPACITY, scsi_ulto4b(), ctl_io::scsiio, ctl_scsiio::sense_len, SRC_PMI, SRC_RELADR, SSD_FULL_SIZE, and ctl_scsiio::tag_type.
void ctl_scsi_read_capacity_16 | ( | union ctl_io * | io, |
uint8_t * | data_ptr, | ||
uint32_t | data_len, | ||
uint64_t | addr, | ||
int | reladr, | ||
int | pmi, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 413 of file ctl_util.c.
References scsi_read_capacity_16::addr, scsi_read_capacity_16::alloc_len, ctl_scsiio::cdb, scsi_read_capacity_16::control, CTL_FLAG_DATA_IN, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_read_capacity_16::opcode, scsi_read_capacity_16::reladr, scsi_u64to8b(), scsi_ulto4b(), ctl_io::scsiio, ctl_scsiio::sense_len, scsi_read_capacity_16::service_action, SERVICE_ACTION_IN, SRC16_PMI, SRC16_RELADR, SRC16_SERVICE_ACTION, SSD_FULL_SIZE, and ctl_scsiio::tag_type.
void ctl_scsi_read_write | ( | union ctl_io * | io, |
uint8_t * | data_ptr, | ||
uint32_t | data_len, | ||
int | read_op, | ||
uint8_t | byte2, | ||
int | minimum_cdb_size, | ||
uint64_t | lba, | ||
uint32_t | num_blocks, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 252 of file ctl_util.c.
References scsi_rw_6::addr, scsi_rw_10::addr, scsi_rw_12::addr, scsi_rw_16::addr, scsi_rw_10::byte2, scsi_rw_12::byte2, scsi_rw_16::byte2, ctl_scsiio::cdb, ctl_scsiio::cdb_len, scsi_rw_6::control, scsi_rw_10::control, scsi_rw_12::control, scsi_rw_16::control, CTL_FLAG_DATA_IN, CTL_FLAG_DATA_OUT, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_rw_6::length, scsi_rw_10::length, scsi_rw_12::length, scsi_rw_16::length, scsi_rw_6::opcode, scsi_rw_10::opcode, scsi_rw_12::opcode, scsi_rw_16::opcode, READ_10, READ_12, READ_16, READ_6, scsi_rw_10::reserved, scsi_rw_12::reserved, scsi_rw_16::reserved, scsi_u64to8b(), scsi_ulto2b(), scsi_ulto3b(), scsi_ulto4b(), ctl_io::scsiio, ctl_scsiio::sense_len, SSD_FULL_SIZE, ctl_scsiio::tag_type, WRITE_10, WRITE_12, WRITE_16, and WRITE_6.
Referenced by tpc_process_b2b(), and tpc_process_wut().
void ctl_scsi_read_write_buffer | ( | union ctl_io * | io, |
uint8_t * | data_ptr, | ||
uint32_t | data_len, | ||
int | read_buffer, | ||
uint8_t | mode, | ||
uint8_t | buffer_id, | ||
uint32_t | buffer_offset, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 213 of file ctl_util.c.
References scsi_write_buffer::buffer_id, scsi_write_buffer::byte2, ctl_scsiio::cdb, ctl_scsiio::cdb_len, scsi_write_buffer::control, CTL_FLAG_DATA_IN, CTL_FLAG_DATA_OUT, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_write_buffer::length, scsi_write_buffer::offset, scsi_write_buffer::opcode, READ_BUFFER, RWB_MODE, scsi_ulto3b(), ctl_io::scsiio, ctl_scsiio::sense_len, SSD_FULL_SIZE, ctl_scsiio::tag_type, and WRITE_BUFFER.
void ctl_scsi_report_luns | ( | union ctl_io * | io, |
uint8_t * | data_ptr, | ||
uint32_t | data_len, | ||
uint8_t | select_report, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 184 of file ctl_util.c.
References ctl_scsiio::cdb, ctl_scsiio::cdb_len, scsi_report_luns::control, CTL_FLAG_DATA_IN, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_report_luns::length, scsi_report_luns::opcode, REPORT_LUNS, scsi_ulto4b(), ctl_io::scsiio, scsi_report_luns::select_report, ctl_scsiio::sense_len, SSD_FULL_SIZE, and ctl_scsiio::tag_type.
void ctl_scsi_request_sense | ( | union ctl_io * | io, |
uint8_t * | data_ptr, | ||
int32_t | data_len, | ||
uint8_t | byte2, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 155 of file ctl_util.c.
References scsi_request_sense::byte2, ctl_scsiio::cdb, ctl_scsiio::cdb_len, scsi_request_sense::control, CTL_FLAG_DATA_IN, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_request_sense::length, scsi_request_sense::opcode, REQUEST_SENSE, ctl_io::scsiio, ctl_scsiio::sense_len, SSD_FULL_SIZE, and ctl_scsiio::tag_type.
void ctl_scsi_start_stop | ( | union ctl_io * | io, |
int | start, | ||
int | load_eject, | ||
int | immediate, | ||
int | power_conditions, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 493 of file ctl_util.c.
References scsi_start_stop_unit::byte2, ctl_scsiio::cdb, scsi_start_stop_unit::control, CTL_FLAG_DATA_NONE, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, scsi_start_stop_unit::how, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_start_stop_unit::opcode, ctl_io::scsiio, ctl_scsiio::sense_len, SSD_FULL_SIZE, SSS_IMMED, SSS_LOEJ, SSS_START, START_STOP_UNIT, and ctl_scsiio::tag_type.
void ctl_scsi_sync_cache | ( | union ctl_io * | io, |
int | immed, | ||
int | reladr, | ||
int | minimum_cdb_size, | ||
uint64_t | starting_lba, | ||
uint32_t | block_count, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 522 of file ctl_util.c.
References scsi_sync_cache::begin_lba, scsi_sync_cache_16::begin_lba, scsi_sync_cache::byte2, scsi_sync_cache_16::byte2, ctl_scsiio::cdb, scsi_sync_cache::control, scsi_sync_cache_16::control, CTL_FLAG_DATA_NONE, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_sync_cache::lb_count, scsi_sync_cache_16::lb_count, scsi_sync_cache::opcode, scsi_sync_cache_16::opcode, scsi_u64to8b(), scsi_ulto2b(), scsi_ulto4b(), ctl_io::scsiio, ctl_scsiio::sense_len, SSC_IMMED, SSC_RELADR, SSD_FULL_SIZE, SYNCHRONIZE_CACHE, SYNCHRONIZE_CACHE_16, and ctl_scsiio::tag_type.
const char * ctl_scsi_task_string | ( | struct ctl_taskio * | taskio | ) |
Definition at line 717 of file ctl_util.c.
References ctl_task_table, ctl_taskio::task_action, ctl_task_desc::task_action, and ctl_io::taskio.
Referenced by ctl_io_sbuf().
void ctl_scsi_tur | ( | union ctl_io * | io, |
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 101 of file ctl_util.c.
References ctl_scsiio::cdb, ctl_scsiio::cdb_len, scsi_test_unit_ready::control, CTL_FLAG_DATA_NONE, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_test_unit_ready::opcode, ctl_io::scsiio, ctl_scsiio::sense_len, SSD_FULL_SIZE, ctl_scsiio::tag_type, and TEST_UNIT_READY.
Referenced by tpc_process_verify().
void ctl_scsi_write_same | ( | union ctl_io * | io, |
uint8_t * | data_ptr, | ||
uint32_t | data_len, | ||
uint8_t | byte2, | ||
uint64_t | lba, | ||
uint32_t | num_blocks, | ||
ctl_tag_type | tag_type, | ||
uint8_t | control | ||
) |
Definition at line 353 of file ctl_util.c.
References scsi_write_same_16::addr, scsi_write_same_16::byte2, ctl_scsiio::cdb, ctl_scsiio::cdb_len, scsi_write_same_16::control, CTL_FLAG_DATA_OUT, CTL_IO_SCSI, ctl_scsi_zero_io, ctl_scsiio::ext_data_filled, ctl_scsiio::ext_data_len, ctl_scsiio::ext_data_ptr, ctl_scsiio::ext_sg_entries, ctl_io_hdr::flags, scsi_write_same_16::group, ctl_io::io_hdr, ctl_io_hdr::io_type, scsi_write_same_16::length, scsi_write_same_16::opcode, scsi_u64to8b(), scsi_ulto4b(), ctl_io::scsiio, ctl_scsiio::sense_len, SSD_FULL_SIZE, ctl_scsiio::tag_type, and WRITE_SAME_16.
Referenced by tpc_process_zero_wut().
|
static |
Definition at line 74 of file ctl_util.c.
Referenced by ctl_io_error_sbuf().
|
static |
Definition at line 84 of file ctl_util.c.
Referenced by ctl_scsi_task_string().