diff options
Diffstat (limited to 'COVERAGE')
-rw-r--r-- | COVERAGE | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/COVERAGE b/COVERAGE new file mode 100644 index 00000000..09c90105 --- /dev/null +++ b/COVERAGE @@ -0,0 +1,188 @@ + Command coverage + ================ +The following table lists SCSI commands in alphabetical order on the +left and the sg3_utils (or related) utilities that implement invocations +of them on the right. The second table lists supported ATA commands. The +third table list supported NVMe commands. + +SCSI command sg3_utils utilities that use this SCSI command +------------ ------------------------------------------------- +ATA COMMAND PASS-THROUGH(12) sg_sat_identify, ++ +ATA COMMAND PASS-THROUGH(16) sg_sat_identify, sg_sat_set_features, + sg_sat_phy_event, sg_sat_read_gplog ++ + [sg_sat_chk_power, sg__sat_identify, + sg__sat_set_features, sg_sat_smart_rd_data + (previous four in the examples directory)] +ATA COMMAND PASS-THROUGH(32) sg_sat_identify, ++ +BACKGROUND CONTROL sg_bg_ctl +CLOSE ZONE sg_zone +COMPARE AND WRITE sg_compare_and_write +COPY OPERATION ABORT ddptctl, ++ +EXTENDED COPY(LID1) sg_xcopy, ddpt, ++ +GET CONFIGURATION sg_get_config, ++ +GET LBA STATUS sg_get_lba_status, ++ +GET PHYSICAL ELEMENT STATUS sg_get_elem_status, ++ +GET STREAM STATUS sg_stream_ctl +INQUIRY sg_dd, sg_format, sg_inq, sginfo, + sg_logs, sg_map('-i'), sg_modes, sg_opcodes, + sg_persist, sg_scan, sg_ses, sg_vpd ++ +FINISH ZONE sg_zone +FORMAT MEDIUM sg_format, ++ [SSC] +FORMAT UNIT sg_format, ++ [SBC] +FORMAT WITH PRESET sg_format, ++ [SBC] +LOG SELECT sg_logs('-r' or '-select'), ++ +LOG SENSE sg_logs, ++ +MODE SELECT(6) sdparm, sg_wr_mode, sginfo, sg_format, + sg_emc_trespass, sg_rdac, ++ +MODE SELECT(10) sdparm, sg_wr_mode, sginfo, sg_format, + sg_emc_trespass, sg_rdac, ++ +MODE SENSE(6) sdparm, sg_modes, sg_wr_mode, sginfo, sg_format, + sg_senddiag('-e'), sg_rdac, ++ +MODE SENSE(10) sdparm, sg_modes, sg_wr_mode, sginfo, sg_format, + sg_senddiag('-e'), sg_rdac, ++ +OPEN ZONE sg_zone +ORWRITE(16) sg_write_x +ORWRITE(32) sg_write_x +PERSISTENT RESERVE IN sg_persist, ++ +PERSISTENT RESERVE OUT sg_persist, ++ +POPULATE TOKEN ddpt, ddptctl, ++ +PRE-FETCH(10) sg_seek +PRE-FETCH(16) sg_seek +PREVENT ALLOW MEDIUM REMOVAL sg_prevent, ++ +READ(6) sg_dd, sgm_dd, sgp_dd, sg_read +READ(10) sg_dd, sgm_dd, sgp_dd, sg_read +READ(12) sg_dd, sgm_dd, sgp_dd, sg_read +READ(16) sg_dd, sgm_dd, sgp_dd, sg_read +READ ATTRIBUTE sg_read_attr +READ BLOCK LIMITS sg_read_block_limits, ++ +READ BUFFER(10) sg_rbuf, sg_test_rwbuf, sg_read_buffer, sg_safte, ++ +READ BUFFER(16) sg_read_buffer +READ CAPACITY(10) sg_readcap, sg_dd, sgm_dd, sgp_dd, sg_format, ++ +READ CAPACITY(16) sg_readcap, sg_dd, sgm_dd, sgp_dd, sg_format, ++ +READ DEFECT(10) sginfo('-d' or '-G'), sg_reassign('-g'), smartmontools, ++ +READ DEFECT(12) sginfo('-d' or '-G'), smartmontools +READ LONG(10) sg_read_long, sg_dd, ++ +READ LONG(16) sg_read_long, ++ +READ MEDIA SERIAL NUMBER sg_rmsn, ++ +REASSIGN BLOCKS sg_reassign, ++ +RECEIVE COPY DATA(LID1) sg_copy_results, ++ +RECEIVE COPY FAILURE DETAILS(LID1) sg_copy_results, ++ +RECEIVE COPY OPERATING PARAMETERS ddpt, sg_copy_results, sg_xcopy, ++ +RECEIVE COPY STATUS(LID1) sg_copy_results, ++ +RECEIVE DIAGNOSTIC RESULTS sg_senddiag, sg_ses, sg_ses_microcode ++ +RECEIVE ROD TOKEN INFORMATION ddpt, ddptctl ++ +REMOVE ELEMENT AND MODIFY ZONES sg_zone +REMOVE ELEMENT AND TRUNCATE sg_rem_rest_elem +REPORT ALL ROD TOKENS ddptctl ++ +REPORT DENSITY SUPPORT sg_rep_density +REPORT IDENTIFYING INFORMATION sg_ident, ++ (2) +REPORT LUNS sg_luns, ++ +REPORT PROVISIONING INITIALIZATION PATTERN sg_rep_pip, ++ +REPORT REALMS sg_rep_zones +REPORT REFERRALS sg_referrals, ++ +REPORT SUPPORTED OPERATION CODES sg_opcodes +REPORT SUPPORTED TASK MANAGEMENT FUNCTIONS sg_opcodes +REPORT TARGET PORT GROUPS sg_rtpg, sg_stpg ++ +REPORT TIMESTAMP sg_timestamp +REPORT ZONES sg_rep_zones +REPORT ZONE DOMAINS sg_rep_zones +REQUEST SENSE sg_requests, ++ +RESET WRITE POINTER sg_reset_wp +RESTORE ELEMENTS AND REBUILD sg_rem_rest_elem +SANITIZE sg_sanitize +SEEK(10) sg_seek ++ +SEND DIAGNOSTIC sg_senddiag, sg_ses, sg_ses_microcode ++ +SEQUENTIALIZE ZONE sg_zone +SET IDENTIFYING INFORMATION sg_ident, ++ (3) +SET TARGET PORT GROUPS sg_stpg, ++ +SET TIMESTAMP sg_timestamp +START STOP sg_start, ++ +STREAM CONTROL sg_stream_ctl +SYNCHRONIZE CACHE(10) sg_sync, sg_dd, sgm_dd, sgp_dd, ++ +SYNCHRONIZE CACHE(16) sg_sync++ +TEST UNIT READY sg_turs, sg_format, ++ +UNMAP sg_unmap, ++ +VERIFY(10) sg_verify, ++ +VERIFY(16) sg_verify, ++ +WRITE(6) sg_dd, sgm_dd, sgp_dd +WRITE(10) sg_dd, sgm_dd, sgp_dd +WRITE(12) sg_dd, sgm_dd, sgp_dd +WRITE(16) sg_dd, sgm_dd, sgp_dd, sg_write_x +WRITE(32) sg_write_x +WRITE AND VERIFY(10) sg_write_verify +WRITE AND VERIFY(16) sg_write_verify +WRITE ATOMIC(16) ddpt, sg_write_x +WRITE ATOMIC(32) sg_write_x +WRITE BUFFER sg_test_rwbuf, sg_write_buffer, ++ +WRITE LONG(10) sg_write_long, ++ +WRITE LONG(16) sg_write_long, ++ +WRITE SAME(10) sg_write_same +WRITE SAME(16) sg_write_same, sg_write_x +WRITE SAME(32) sg_write_same, sg_write_x +WRITE SCATTERED(16) sg_write_x +WRITE SCATTERED(32) sg_write_x +WRITE STREAM(16) sg_write_x +WRITE STREAM(32) sg_write_x +WRITE USING TOKEN ddpt, ddptctl, ++ +ZONE ACTIVATE sg_z_act_query +ZONE QUERY sg_z_act_query +<most commands> sg_raw + + +ATA command sg3_utils utilities that use this (S)ATA command +----------- ------------------------------------------------ +CHECK POWER MODE examples/sg_sat_chk_power +IDENTIFY DEVICE sg_inq, sg_scan, sg_sat_identify, + examples/sg__sat_identify +IDENTIFY PACKET DEVICE sg_inq, sg_sat_identify, + examples/sg__sat_identify +READ LOG EXT sg_sat_phy_event, examples/sg__sat_phy_event + sg_sat_read_gplog +READ LOG DMA EXT sg_sat_read_gplog +SET FEATURES sg_sat_set_features + examples/sg__sat_set_features +SMART READ DATA examples/sg_sat_smart_rd_data + + +NVMe command sg3_utils utilities that use this NVMe command +------------ ------------------------------------------------ +Identify sg_inq +SES Read sg_senddiag, sg_ses (NVME-MI command) +SES Write sg_senddiag, sg_ses (NVME-MI command) +Device self-test [SNTL of SEND DIAGNOSTIC] sg_senddiag +Get features(power management) [SNTL of REQUEST SENSE] sg_requests +Read [SCSI READ(10) -->SNTL--> Read] + [SCSI READ(16) -->SNTL--> Read] +Write [SCSI WRITE(10) -->SNTL--> Write] + [SCSI WRITE(16) -->SNTL--> Write] +Compare [SCSI VERIFY(10,BYTCHK=1) -->SNTL--> Compare] + [SCSI VERIFY(16,BYTCHK=1) -->SNTL--> Compare] +Write zeroes [SCSI WRITE SAME(10,zeros) -->SNTL--> Write zeroes] + [SCSI WRITE SAME(16,zeros) -->SNTL--> Write zeroes] +Flush [SCSI SYNCHRONIZE CACHE -->SNTL--> Flush] +Set Features [SCSI MODE SELECT(10) -->SNTL--> Set Features] + only for WCE in Caching page + +The following SCSI commands do nothing (currently) in the SNTL but +do return GOOD status: TEST UNIT READY, START STOP UNIT, REPORT LUNS +and REQUEST SENSE. READ CAPACITY(10 and 16) yield appropriate data +by examining the response to the NVMe Identify command. + + +++ command wrapper found in sg_cmds_basic.c, sg_cmds_mmc.c or + sg_cmds_extra.c for this command +(2) this command was known as REPORT DEVICE IDENTIFIER prior to spc4r07 +(3) this command was known as SET DEVICE IDENTIFIER prior to spc4r07 + +Note that any SCSI command, including bi-directional and variable length +commands (whose cdb size is > 16 bytes) can be issued by the sg_raw utility. + +The RECEIVE COPY * commands in SPC-4 were grouped as one command name +with 4 service actions in SPC-3 and earlier. The single SPC-3 command +name is RECEIVE COPY RESULTS. The two opcodes associated with all +EXTENDED COPY commands are now known as THIRD PARTY COPY IN (0x84) and +THIRD PARTY COPY IN (0x83). + + +Douglas Gilbert +10 June 2022 |