24#ifndef _SCSI_SCSI_ALL_H
25#define _SCSI_SCSI_ALL_H 1
29#include <machine/stdarg.h>
49#define SCSI_CTL_LINK 0x01
50#define SCSI_CTL_FLAG 0x02
51#define SCSI_CTL_VENDOR 0xC0
52#define SCSI_CMD_LUN 0xA0
53#define SCSI_CMD_LUN_SHIFT 5
55#define SCSI_MAX_CDBLEN 16
59#if defined(CAM_MAX_CDBLEN) && (CAM_MAX_CDBLEN < SCSI_MAX_CDBLEN)
60#error "CAM_MAX_CDBLEN cannot be less than SCSI_MAX_CDBLEN"
64#define SCSI_CDB6_LEN(len) ((len) == 0 ? 256 : len)
102#define SS_ERRMASK 0xff
105#define SS_RDEF SS_RETRY|SSQ_DECREMENT_COUNT|SSQ_PRINT_SENSE|EIO
108#define SS_RET SS_RETRY|SSQ_DECREMENT_COUNT|SSQ_PRINT_SENSE
111#define SS_WAIT SS_TUR|SSQ_MANY|SSQ_DECREMENT_COUNT|SSQ_PRINT_SENSE
114#define SS_FATAL SS_FAIL|SSQ_PRINT_SENSE
152#define SSD_UNITOFFL 0x01
153#define SSD_DEVOFFL 0x02
154#define SSD_SELFTEST 0x04
156#define SSD_SELF_TEST_CODE_MASK 0xE0
157#define SSD_SELF_TEST_CODE_SHIFT 5
158#define SSD_SELF_TEST_CODE_NONE 0x00
159#define SSD_SELF_TEST_CODE_BG_SHORT 0x01
160#define SSD_SELF_TEST_CODE_BG_EXTENDED 0x02
161#define SSD_SELF_TEST_CODE_BG_ABORT 0x04
162#define SSD_SELF_TEST_CODE_FG_SHORT 0x05
163#define SSD_SELF_TEST_CODE_FG_EXTENDED 0x06
195#define SMS_PAGE_CODE 0x3F
196#define SMS_VENDOR_SPECIFIC_PAGE 0x00
197#define SMS_DISCONNECT_RECONNECT_PAGE 0x02
198#define SMS_FORMAT_DEVICE_PAGE 0x03
199#define SMS_GEOMETRY_PAGE 0x04
200#define SMS_CACHE_PAGE 0x08
201#define SMS_PERIPHERAL_DEVICE_PAGE 0x09
202#define SMS_CONTROL_MODE_PAGE 0x0A
203#define SMS_PROTO_SPECIFIC_PAGE 0x19
204#define SMS_INFO_EXCEPTIONS_PAGE 0x1C
205#define SMS_ALL_PAGES_PAGE 0x3F
206#define SMS_PAGE_CTRL_MASK 0xC0
207#define SMS_PAGE_CTRL_CURRENT 0x00
208#define SMS_PAGE_CTRL_CHANGEABLE 0x40
209#define SMS_PAGE_CTRL_DEFAULT 0x80
210#define SMS_PAGE_CTRL_SAVED 0xC0
212#define SMS_SUBPAGE_PAGE_0 0x00
213#define SMS_SUBPAGE_ALL 0xff
222#define SMS10_LLBAA 0x10
268#define SMH_LONGLBA 0x01
305#define SPRI_MAX_LEN 0xffff
330#define SPRI_RLR_C 0x80
332#define SPRI_SIP_C 0x08
333#define SPRI_ATP_C 0x04
334#define SPRI_PTPL_C 0x01
337#define SPRI_ALLOW_CMD_MASK 0x70
338#define SPRI_ALLOW_CMD_SHIFT 4
339#define SPRI_ALLOW_NA 0x00
340#define SPRI_ALLOW_1 0x10
341#define SPRI_ALLOW_2 0x20
342#define SPRI_ALLOW_3 0x30
343#define SPRI_ALLOW_4 0x40
344#define SPRI_ALLOW_5 0x50
345#define SPRI_PTPL_A 0x01
347#define SPRI_TM_WR_EX_AR 0x8000
348#define SPRI_TM_EX_AC_RO 0x4000
349#define SPRI_TM_WR_EX_RO 0x2000
350#define SPRI_TM_EX_AC 0x0800
351#define SPRI_TM_WR_EX 0x0200
352#define SPRI_TM_EX_AC_AR 0x0001
364#define SPRT_WERO 0x05
365#define SPRT_EARO 0x06
366#define SPRT_WEAR 0x07
367#define SPRT_EAAR 0x08
382#define SPRI_FULL_ALL_TG_PT 0x02
383#define SPRI_FULL_R_HOLDER 0x01
401#define SPRO_REGISTER 0x00
402#define SPRO_RESERVE 0x01
403#define SPRO_RELEASE 0x02
404#define SPRO_CLEAR 0x03
405#define SPRO_PREEMPT 0x04
406#define SPRO_PRE_ABO 0x05
407#define SPRO_REG_IGNO 0x06
408#define SPRO_REG_MOVE 0x07
409#define SPRO_REPL_LOST_RES 0x08
410#define SPRO_ACTION_MASK 0x1f
412#define SPR_SCOPE_MASK 0xf0
413#define SPR_SCOPE_SHIFT 4
414#define SPR_LU_SCOPE 0x00
415#define SPR_EXTENT_SCOPE 0x10
416#define SPR_ELEMENT_SCOPE 0x20
417#define SPR_TYPE_MASK 0x0f
418#define SPR_TYPE_RD_SHARED 0x00
419#define SPR_TYPE_WR_EX 0x01
420#define SPR_TYPE_RD_EX 0x02
421#define SPR_TYPE_EX_AC 0x03
422#define SPR_TYPE_SHARED 0x04
423#define SPR_TYPE_WR_EX_RO 0x05
424#define SPR_TYPE_EX_AC_RO 0x06
425#define SPR_TYPE_WR_EX_AR 0x07
426#define SPR_TYPE_EX_AC_AR 0x08
438#define SPR_SPEC_I_PT 0x08
439#define SPR_ALL_TG_PT 0x04
440#define SPR_APTPL 0x01
461#define SPR_REG_MOVE_UNREG 0x02
462#define SPR_REG_MOVE_APTPL 0x01
471#define SCSI_TRN_FORMAT_MASK 0xc0
472#define SCSI_TRN_FORMAT_SHIFT 6
473#define SCSI_TRN_PROTO_MASK 0x0f
479#define SCSI_TRN_FCP_FORMAT_DEFAULT 0x00
488#define SCSI_TRN_SPI_FORMAT_DEFAULT 0x00
499#define SCSI_TRN_1394_FORMAT_DEFAULT 0x00
508#define SCSI_TRN_RDMA_FORMAT_DEFAULT 0x00
510#define SCSI_TRN_RDMA_PORT_LEN 16
517#define SCSI_TRN_ISCSI_FORMAT_DEVICE 0x00
526#define SCSI_TRN_ISCSI_FORMAT_PORT 0x40
538#define SCSI_TRN_SAS_FORMAT_DEFAULT 0x00
547#define SCSI_TRN_SOP_BUS_MAX 0xff
548#define SCSI_TRN_SOP_DEV_MAX 0x1f
549#define SCSI_TRN_SOP_DEV_MASK 0xf8
550#define SCSI_TRN_SOP_DEV_SHIFT 3
551#define SCSI_TRN_SOP_FUNC_NORM_MASK 0x07
552#define SCSI_TRN_SOP_FUNC_NORM_MAX 0x07
558#define SCSI_TRN_SOP_FUNC_ALT_MAX 0xff
564#define SCSI_TRN_SOP_FORMAT_DEFAULT 0x00
577#define SLS_PAGE_CODE 0x3F
578#define SLS_SUPPORTED_PAGES_PAGE 0x00
579#define SLS_OVERRUN_PAGE 0x01
580#define SLS_ERROR_WRITE_PAGE 0x02
581#define SLS_ERROR_READ_PAGE 0x03
582#define SLS_ERROR_READREVERSE_PAGE 0x04
583#define SLS_ERROR_VERIFY_PAGE 0x05
584#define SLS_ERROR_NONMEDIUM_PAGE 0x06
585#define SLS_ERROR_LASTN_PAGE 0x07
586#define SLS_LOGICAL_BLOCK_PROVISIONING 0x0c
587#define SLS_TEMPERATURE 0x0d
588#define SLS_SELF_TEST_PAGE 0x10
589#define SLS_SOLID_STATE_MEDIA 0x11
590#define SLS_STAT_AND_PERF 0x19
591#define SLS_IE_PAGE 0x2f
592#define SLS_PAGE_CTRL_MASK 0xC0
593#define SLS_PAGE_CTRL_THRESHOLD 0x00
594#define SLS_PAGE_CTRL_CUMULATIVE 0x40
595#define SLS_PAGE_CTRL_THRESH_DEFAULT 0x80
596#define SLS_PAGE_CTRL_CUMUL_DEFAULT 0xC0
598#define SLS_SUPPORTED_SUBPAGES_SUBPAGE 0xff
625#define SL_PAGE_CODE 0x3F
637#define SLP_TMC_MASK 0x0C
638#define SLP_TMC_ALWAYS 0x00
639#define SLP_TMC_EQUAL 0x04
640#define SLP_TMC_NOTEQUAL 0x08
641#define SLP_TMC_GREATER 0x0C
651#define SLP_SS_MEDIA_PCT_USED 0x0001
658#define SLP_SAP 0x0001
684#define SLP_FUA_SAP 0x0004
697#define SLP_IE_GEN 0x0000
705#define SLP_TEMPERATURE 0x0000
706#define SLP_REFTEMPERATURE 0x0001
716#define SCP_GLTSD 0x02
718#define SCP_DSENSE 0x04
719#define SCP_DPICZ 0x08
721#define SCP_TMF_ONLY 0x10
722#define SCP_TST_MASK 0xE0
723#define SCP_TST_ONE 0x00
724#define SCP_TST_SEPARATE 0x20
726#define SCP_QUEUE_ALG_MASK 0xF0
727#define SCP_QUEUE_ALG_RESTRICTED 0x00
728#define SCP_QUEUE_ALG_UNRESTRICTED 0x10
730#define SCP_QUEUE_ERR 0x02
731#define SCP_QUEUE_DQUE 0x01
736#define SCP_RAENP 0x04
737#define SCP_UAAENP 0x02
738#define SCP_EAENP 0x01
742#define SCP_ATMPE 0x20
751#define SCEP_PAGE_CODE 0x0a
753#define SCEP_SUBPAGE_CODE 0x01
756#define SCEP_TCMOS 0x04
757#define SCEP_SCSIP 0x02
758#define SCEP_IALUAE 0x01
766#define SCHP_PAGE_SAVABLE 0x80
769#define SCHP_FLAGS_WCE 0x04
770#define SCHP_FLAGS_MF 0x02
771#define SCHP_FLAGS_RCD 0x01
786#define SMS_CACHING_PAGE 0x08
804#define SCP_LBCSS 0x40
816#define SIEP_PAGE_SAVABLE 0x80
819#define SIEP_FLAGS_PERF 0x80
820#define SIEP_FLAGS_EBF 0x20
821#define SIEP_FLAGS_EWASC 0x10
822#define SIEP_FLAGS_DEXCPT 0x08
823#define SIEP_FLAGS_TEST 0x04
824#define SIEP_FLAGS_EBACKERR 0x02
825#define SIEP_FLAGS_LOGERR 0x01
827#define SIEP_MRIE_NO 0x00
828#define SIEP_MRIE_UA 0x02
829#define SIEP_MRIE_REC_COND 0x03
830#define SIEP_MRIE_REC_UNCOND 0x04
831#define SIEP_MRIE_NO_SENSE 0x05
832#define SIEP_MRIE_ON_REQ 0x06
839#define SLBPPD_ENABLED 0x80
840#define SLBPPD_TYPE_MASK 0x38
841#define SLBPPD_ARMING_MASK 0x07
842#define SLBPPD_ARMING_DEC 0x02
843#define SLBPPD_ARMING_INC 0x01
854#define SLBPP_SITUA 0x01
862#define SCSI_PROTO_FC 0x00
863#define SCSI_PROTO_SPI 0x01
864#define SCSI_PROTO_SSA 0x02
865#define SCSI_PROTO_1394 0x03
866#define SCSI_PROTO_RDMA 0x04
867#define SCSI_PROTO_ISCSI 0x05
868#define SCSI_PROTO_iSCSI 0x05
869#define SCSI_PROTO_SAS 0x06
870#define SCSI_PROTO_ADT 0x07
871#define SCSI_PROTO_ADITP 0x07
872#define SCSI_PROTO_ATA 0x08
873#define SCSI_PROTO_UAS 0x09
874#define SCSI_PROTO_SOP 0x0a
875#define SCSI_PROTO_NONE 0x0f
879#define SPSP_PAGE_SAVABLE 0x80
882#define SPSP_PROTO_FC SCSI_PROTO_FC
883#define SPSP_PROTO_SPI SCSI_PROTO_SPI
884#define SPSP_PROTO_SSA SCSI_PROTO_SSA
885#define SPSP_PROTO_1394 SCSI_PROTO_1394
886#define SPSP_PROTO_RDMA SCSI_PROTO_RDMA
887#define SPSP_PROTO_ISCSI SCSI_PROTO_ISCSI
888#define SPSP_PROTO_SAS SCSI_PROTO_SAS
889#define SPSP_PROTO_ADT SCSI_PROTO_ADITP
890#define SPSP_PROTO_ATA SCSI_PROTO_ATA
891#define SPSP_PROTO_UAS SCSI_PROTO_UAS
892#define SPSP_PROTO_SOP SCSI_PROTO_SOP
893#define SPSP_PROTO_NONE SCSI_PROTO_NONE
900#define SR_EXTENT 0x01
901#define SR_ID_MASK 0x0e
902#define SR_3RDPTY 0x10
903#define SR_LUN_MASK 0xe0
912#define SR10_3RDPTY 0x10
913#define SR10_LONGID 0x02
914#define SR10_EXTENT 0x01
950#define PR_PREVENT 0x01
957#define SSC_IMMED 0x02
958#define SSC_RELADR 0x01
978#define SF_LONGLIST 0x20
979#define SF_FMTDATA 0x10
980#define SF_CMPLIST 0x08
981#define SF_FORMAT_MASK 0x07
982#define SF_FORMAT_BLOCK 0x00
983#define SF_FORMAT_LONG_BLOCK 0x03
984#define SF_FORMAT_BFI 0x04
985#define SF_FORMAT_PHYS 0x05
993#define SF_DATA_FOV 0x80
994#define SF_DATA_DPRY 0x40
995#define SF_DATA_DCRT 0x20
996#define SF_DATA_STPF 0x10
997#define SF_DATA_IP 0x08
998#define SF_DATA_DSP 0x04
999#define SF_DATA_IMMED 0x02
1000#define SF_DATA_VS 0x01
1027#define RWB_MODE 0x1F
1028#define RWB_MODE_HDR_DATA 0x00
1029#define RWB_MODE_VENDOR 0x01
1030#define RWB_MODE_DATA 0x02
1031#define RWB_MODE_DESCR 0x03
1032#define RWB_MODE_DOWNLOAD 0x04
1033#define RWB_MODE_DOWNLOAD_SAVE 0x05
1034#define RWB_MODE_ECHO 0x0A
1035#define RWB_MODE_ECHO_DESCR 0x0B
1036#define RWB_MODE_ERROR_HISTORY 0x1C
1067#define SRA_SA_ATTR_VALUES 0x00
1068#define SRA_SA_ATTR_LIST 0x01
1069#define SRA_SA_LOG_VOL_LIST 0x02
1070#define SRA_SA_PART_LIST 0x03
1071#define SRA_SA_RESTRICTED 0x04
1072#define SRA_SA_SUPPORTED_ATTRS 0x05
1073#define SRA_SA_MASK 0x1f
1082#define SRA_CACHE 0x01
1114#define SMA_ATTR_ID_DEVICE_MIN 0x0000
1116#define SMA_ATTR_REM_CAP_PARTITION 0x0000
1117#define SMA_ATTR_MAX_CAP_PARTITION 0x0001
1118#define SMA_ATTR_TAPEALERT_FLAGS 0x0002
1119#define SMA_ATTR_LOAD_COUNT 0x0003
1120#define SMA_ATTR_MAM_SPACE_REMAINING 0x0004
1122#define SMA_ATTR_DEV_ASSIGNING_ORG 0x0005
1123#define SMA_ATTR_FORMAT_DENSITY_CODE 0x0006
1124#define SMA_ATTR_INITIALIZATION_COUNT 0x0007
1125#define SMA_ATTR_VOLUME_ID 0x0008
1126#define SMA_ATTR_VOLUME_CHANGE_REF 0x0009
1128#define SMA_ATTR_DEV_SERIAL_LAST_LOAD 0x020a
1129#define SMA_ATTR_DEV_SERIAL_LAST_LOAD_1 0x020b
1130#define SMA_ATTR_DEV_SERIAL_LAST_LOAD_2 0x020c
1131#define SMA_ATTR_DEV_SERIAL_LAST_LOAD_3 0x020d
1133#define SMA_ATTR_TOTAL_MB_WRITTEN_LT 0x0220
1134#define SMA_ATTR_TOTAL_MB_READ_LT 0x0221
1135#define SMA_ATTR_TOTAL_MB_WRITTEN_CUR 0x0222
1136#define SMA_ATTR_TOTAL_MB_READ_CUR 0x0223
1137#define SMA_ATTR_FIRST_ENC_BLOCK 0x0224
1138#define SMA_ATTR_NEXT_UNENC_BLOCK 0x0225
1140#define SMA_ATTR_MEDIUM_USAGE_HIST 0x0340
1141#define SMA_ATTR_PART_USAGE_HIST 0x0341
1143#define SMA_ATTR_ID_DEVICE_MAX 0x03ff
1145#define SMA_ATTR_ID_MEDIUM_MIN 0x0400
1147#define SMA_ATTR_MED_MANUF 0x0400
1148#define SMA_ATTR_MED_SERIAL 0x0401
1150#define SMA_ATTR_MED_LENGTH 0x0402
1151#define SMA_ATTR_MED_WIDTH 0x0403
1152#define SMA_ATTR_MED_ASSIGNING_ORG 0x0404
1153#define SMA_ATTR_MED_DENSITY_CODE 0x0405
1155#define SMA_ATTR_MED_MANUF_DATE 0x0406
1156#define SMA_ATTR_MAM_CAPACITY 0x0407
1157#define SMA_ATTR_MED_TYPE 0x0408
1158#define SMA_ATTR_MED_TYPE_INFO 0x0409
1159#define SMA_ATTR_MED_SERIAL_NUM 0x040a
1161#define SMA_ATTR_ID_MEDIUM_MAX 0x07ff
1163#define SMA_ATTR_ID_HOST_MIN 0x0800
1165#define SMA_ATTR_APP_VENDOR 0x0800
1166#define SMA_ATTR_APP_NAME 0x0801
1167#define SMA_ATTR_APP_VERSION 0x0802
1168#define SMA_ATTR_USER_MED_TEXT_LABEL 0x0803
1169#define SMA_ATTR_LAST_WRITTEN_TIME 0x0804
1170#define SMA_ATTR_TEXT_LOCAL_ID 0x0805
1171#define SMA_ATTR_BARCODE 0x0806
1172#define SMA_ATTR_HOST_OWNER_NAME 0x0807
1173#define SMA_ATTR_MEDIA_POOL 0x0808
1174#define SMA_ATTR_PART_USER_LABEL 0x0809
1175#define SMA_ATTR_LOAD_UNLOAD_AT_PART 0x080a
1176#define SMA_ATTR_APP_FORMAT_VERSION 0x080b
1177#define SMA_ATTR_VOL_COHERENCY_INFO 0x080c
1179#define SMA_ATTR_ID_HOST_MAX 0x0bff
1181#define SMA_ATTR_VENDOR_DEVICE_MIN 0x0c00
1182#define SMA_ATTR_VENDOR_DEVICE_MAX 0x0fff
1183#define SMA_ATTR_VENDOR_MEDIUM_MIN 0x1000
1184#define SMA_ATTR_VENDOR_MEDIUM_MAX 0x13ff
1185#define SMA_ATTR_VENDOR_HOST_MIN 0x1400
1186#define SMA_ATTR_VENDOR_HOST_MAX 0x17ff
1188#define SMA_FORMAT_BINARY 0x00
1189#define SMA_FORMAT_ASCII 0x01
1190#define SMA_FORMAT_TEXT 0x02
1191#define SMA_FORMAT_MASK 0x03
1192#define SMA_READ_ONLY 0x80
1220#define SCSI_LTFS_VER0_LEN 42
1221#define SCSI_LTFS_VER1_LEN 43
1222#define SCSI_LTFS_UUID_LEN 36
1223#define SCSI_LTFS_STR_NAME "LTFS"
1224#define SCSI_LTFS_STR_LEN 4
1264 uint32_t valid_len, uint32_t
flags,
1265 uint32_t output_flags,
char *error_str,
1268 uint32_t alloc_len, uint32_t
flags,
char *error_str,
1277#define SRW_TOPADDR 0x1F
1285#define SRW10_RELADDR 0x01
1287#define SRW10_EBP 0x04
1288#define SRW10_FUA 0x08
1289#define SRW10_DPO 0x10
1300#define SRW12_RELADDR 0x01
1301#define SRW12_FUA 0x08
1302#define SRW12_DPO 0x10
1313#define SRW16_RELADDR 0x01
1314#define SRW16_FUA 0x08
1315#define SRW16_DPO 0x10
1338#define SWS_LBDATA 0x02
1339#define SWS_PBDATA 0x04
1340#define SWS_UNMAP 0x08
1341#define SWS_ANCHOR 0x10
1352#define SWS_NDOB 0x01
1363#define SU_ANCHOR 0x01
1388#define SWV_BYTCHK 0x02
1390#define SWV_WRPROECT_MASK 0xe0
1421#define SSS_IMMED 0x01
1424#define SSS_START 0x01
1425#define SSS_LOEJ 0x02
1426#define SSS_PC_MASK 0xf0
1427#define SSS_PC_START_VALID 0x00
1428#define SSS_PC_ACTIVE 0x10
1429#define SSS_PC_IDLE 0x20
1430#define SSS_PC_STANDBY 0x30
1431#define SSS_PC_LU_CONTROL 0x70
1432#define SSS_PC_FORCE_IDLE_0 0xa0
1433#define SSS_PC_FORCE_STANDBY_0 0xb0
1440#define AP_PROTO_HARD_RESET (0x00 << 1)
1441#define AP_PROTO_SRST (0x01 << 1)
1442#define AP_PROTO_NON_DATA (0x03 << 1)
1443#define AP_PROTO_PIO_IN (0x04 << 1)
1444#define AP_PROTO_PIO_OUT (0x05 << 1)
1445#define AP_PROTO_DMA (0x06 << 1)
1446#define AP_PROTO_DMA_QUEUED (0x07 << 1)
1447#define AP_PROTO_DEVICE_DIAG (0x08 << 1)
1448#define AP_PROTO_DEVICE_RESET (0x09 << 1)
1449#define AP_PROTO_UDMA_IN (0x0a << 1)
1450#define AP_PROTO_UDMA_OUT (0x0b << 1)
1451#define AP_PROTO_FPDMA (0x0c << 1)
1452#define AP_PROTO_RESP_INFO (0x0f << 1)
1453#define AP_PROTO_MASK 0x1e
1454#define AP_MULTI 0xe0
1456#define AP_T_LEN 0x03
1458#define AP_T_DIR 0x08
1459#define AP_CK_COND 0x20
1460#define AP_OFFLINE 0x60
1476#define SERVICE_ACTION_MASK 0x1f
1477#define SA_RPRT_TRGT_GRP 0x0a
1491#define RII_LUII 0x00
1492#define RII_LUTII 0x04
1515#define RSO_RCTD 0x80
1516#define RSO_OPTIONS_MASK 0x07
1517#define RSO_OPTIONS_ALL 0x00
1518#define RSO_OPTIONS_OC 0x01
1519#define RSO_OPTIONS_OC_SA 0x02
1520#define RSO_OPTIONS_OC_ASA 0x03
1544#define RSO_SERVACTV 0x01
1545#define RSO_CTDP 0x02
1546#define RSO_CDLP_MASK 0x0c
1547#define RSO_CDLP_NO 0x00
1548#define RSO_CDLP_A 0x04
1549#define RSO_CDLP_B 0x08
1564#define RSO_ONE_CTDP 0x80
1565#define RSO_ONE_CDLP_MASK 0x18
1566#define RSO_ONE_CDLP_NO 0x00
1567#define RSO_ONE_CDLP_A 0x08
1568#define RSO_ONE_CDLP_B 0x10
1569#define RSO_ONE_SUP_MASK 0x07
1570#define RSO_ONE_SUP_UNAVAIL 0x00
1571#define RSO_ONE_SUP_NOT_SUP 0x01
1572#define RSO_ONE_SUP_AVAIL 0x03
1573#define RSO_ONE_SUP_VENDOR 0x05
1583#define RST_REPD 0x80
1593#define RST_WAKES 0x01
1596#define RST_LURS 0x08
1597#define RST_CTSS 0x10
1598#define RST_CACAS 0x20
1599#define RST_ATSS 0x40
1602#define RST_ITNRS 0x01
1603#define RST_QTSS 0x02
1604#define RST_QAES 0x04
1616#define RST_TMFTMOV 0x01
1619#define RST_WAKETS 0x01
1620#define RST_TRTS 0x02
1621#define RST_QTTS 0x04
1622#define RST_LURTS 0x08
1623#define RST_CTSTS 0x10
1624#define RST_CACATS 0x20
1625#define RST_ATSTS 0x40
1626#define RST_ATTS 0x80
1628#define RST_ITNRTS 0x01
1629#define RST_QTSTS 0x02
1630#define RST_QAETS 0x04
1649#define RTS_ORIG_MASK 0x00
1650#define RTS_ORIG_ZERO 0x00
1651#define RTS_ORIG_SET 0x02
1652#define RTS_ORIG_OUTSIDE 0x03
1662#define RCS_RCS_LID1 0x00
1674#define RCS_CCS_INPROG 0x00
1675#define RCS_CCS_COMPLETED 0x01
1676#define RCS_CCS_ERROR 0x02
1679#define RCS_TC_BYTES 0x00
1680#define RCS_TC_KBYTES 0x01
1681#define RCS_TC_MBYTES 0x02
1682#define RCS_TC_GBYTES 0x03
1683#define RCS_TC_TBYTES 0x04
1684#define RCS_TC_PBYTES 0x05
1685#define RCS_TC_EBYTES 0x06
1686#define RCS_TC_LBAS 0xf1
1694#define RCS_RCFD 0x04
1716#define RCS_RCS_LID4 0x05
1729#define RCS_CCS_COMPLETED_PROD 0x03
1730#define RCS_CCS_COMPLETED_RESID 0x04
1731#define RCS_CCS_INPROG_FGBG 0x10
1732#define RCS_CCS_INPROG_FG 0x11
1733#define RCS_CCS_INPROG_BG 0x12
1734#define RCS_CCS_ABORTED 0x60
1751#define RCS_RCOP 0x03
1762#define RCOP_SNLID 0x01
1786#define EC_EC_LID1 0x00
1787#define EC_EC_LID4 0x01
1797#define EC_CSCD_FIXED 0x01
1798#define EC_CSCD_PAD 0x04
1805#define EC_CSCD_EXT 0xff
1808#define EC_LUIDT_MASK 0xc0
1809#define EC_LUIDT_LUN 0x00
1810#define EC_LUIDT_PROXY_TOKEN 0x40
1819#define EC_CSCD_ID 0xe4
1834#define EC_SEG_DC 0x02
1835#define EC_SEG_CAT 0x01
1843#define EC_SEG_B2B 0x02
1857#define EC_SEG_VERIFY 0x07
1869#define EC_SEG_REGISTER_KEY 0x14
1883#define EC_PRIORITY 0x07
1884#define EC_LIST_ID_USAGE_MASK 0x18
1885#define EC_LIST_ID_USAGE_FULL 0x08
1886#define EC_LIST_ID_USAGE_NOHOLD 0x10
1887#define EC_LIST_ID_USAGE_NONE 0x18
1899#define EC_LIST_FORMAT 0x01
1904#define EC_IMMED 0x01
1905#define EC_G_SENSE 0x02
1949#define EC_PT_IMMED 0x01
1950#define EC_PT_RTV 0x02
1975#define EC_WUT_IMMED 0x01
1976#define EC_WUT_DEL_TKN 0x02
1989#define RCS_RRTI 0x07
2000#define ROD_TYPE_INTERNAL 0x00000000
2001#define ROD_TYPE_AUR 0x00010000
2002#define ROD_TYPE_PIT_DEF 0x00800000
2003#define ROD_TYPE_PIT_VULN 0x00800001
2004#define ROD_TYPE_PIT_PERS 0x00800002
2005#define ROD_TYPE_PIT_ANY 0x0080FFFF
2006#define ROD_TYPE_BLOCK_ZERO 0xFFFF0001
2016#define RCS_RART 0x08
2033#define AP_EXTEND 0x01
2035#define AP_FLAG_TLEN_NO_DATA (0 << 0)
2036#define AP_FLAG_TLEN_FEAT (1 << 0)
2037#define AP_FLAG_TLEN_SECT_CNT (2 << 0)
2038#define AP_FLAG_TLEN_STPSIU (3 << 0)
2039#define AP_FLAG_BYT_BLOK_BYTES (0 << 2)
2040#define AP_FLAG_BYT_BLOK_BLOCKS (1 << 2)
2041#define AP_FLAG_TDIR_TO_DEV (0 << 3)
2042#define AP_FLAG_TDIR_FROM_DEV (1 << 3)
2043#define AP_FLAG_CHK_COND (1 << 5)
2065#define ATA_PASS_32_SA 0x1ff0
2079#define SC_SCSI_1 0x01
2080#define SC_SCSI_2 0x03
2086#define TEST_UNIT_READY 0x00
2087#define REQUEST_SENSE 0x03
2091#define MODE_SELECT_6 0x15
2092#define MODE_SENSE_6 0x1A
2093#define START_STOP_UNIT 0x1B
2094#define START_STOP 0x1B
2097#define RECEIVE_DIAGNOSTIC 0x1C
2098#define SEND_DIAGNOSTIC 0x1D
2099#define PREVENT_ALLOW 0x1E
2100#define READ_CAPACITY 0x25
2102#define WRITE_10 0x2A
2103#define POSITION_TO_ELEMENT 0x2B
2104#define WRITE_VERIFY_10 0x2E
2105#define VERIFY_10 0x2F
2106#define SYNCHRONIZE_CACHE 0x35
2107#define READ_DEFECT_DATA_10 0x37
2108#define WRITE_BUFFER 0x3B
2109#define READ_BUFFER 0x3C
2110#define CHANGE_DEFINITION 0x40
2111#define WRITE_SAME_10 0x41
2113#define LOG_SELECT 0x4C
2114#define LOG_SENSE 0x4D
2115#define MODE_SELECT_10 0x55
2116#define RESERVE_10 0x56
2117#define RELEASE_10 0x57
2118#define MODE_SENSE_10 0x5A
2119#define PERSISTENT_RES_IN 0x5E
2120#define PERSISTENT_RES_OUT 0x5F
2121#define EXTENDED_CDB 0x7E
2122#define VARIABLE_LEN_CDB 0x7F
2123#define EXTENDED_COPY 0x83
2124#define RECEIVE_COPY_STATUS 0x84
2125#define ATA_PASS_16 0x85
2127#define COMPARE_AND_WRITE 0x89
2128#define WRITE_16 0x8A
2129#define READ_ATTRIBUTE 0x8C
2130#define WRITE_ATTRIBUTE 0x8D
2131#define WRITE_VERIFY_16 0x8E
2132#define VERIFY_16 0x8F
2133#define SYNCHRONIZE_CACHE_16 0x91
2134#define WRITE_SAME_16 0x93
2135#define READ_BUFFER_16 0x9B
2136#define WRITE_ATOMIC_16 0x9C
2137#define SERVICE_ACTION_IN 0x9E
2138#define REPORT_LUNS 0xA0
2139#define ATA_PASS_12 0xA1
2140#define SECURITY_PROTOCOL_IN 0xA2
2141#define MAINTENANCE_IN 0xA3
2142#define MAINTENANCE_OUT 0xA4
2143#define MOVE_MEDIUM 0xA5
2145#define WRITE_12 0xAA
2146#define WRITE_VERIFY_12 0xAE
2147#define VERIFY_12 0xAF
2148#define SECURITY_PROTOCOL_OUT 0xB5
2149#define READ_ELEMENT_STATUS 0xB8
2153#define REPORT_IDENTIFYING_INFRMATION 0x05
2154#define REPORT_TARGET_PORT_GROUPS 0x0A
2155#define REPORT_ALIASES 0x0B
2156#define REPORT_SUPPORTED_OPERATION_CODES 0x0C
2157#define REPORT_SUPPORTED_TASK_MANAGEMENT_FUNCTIONS 0x0D
2158#define REPORT_PRIORITY 0x0E
2159#define REPORT_TIMESTAMP 0x0F
2160#define MANAGEMENT_PROTOCOL_IN 0x10
2161#define GET_PHYSICAL_ELEMENT_STATUS 0x17
2162#define REMOVE_ELEMENT_AND_TRUNCATE 0x18
2163#define RESTORE_ELEMENTS_AND_REBUILD 0x19
2165#define SET_IDENTIFY_INFORMATION 0x06
2166#define SET_TARGET_PORT_GROUPS 0x0A
2167#define CHANGE_ALIASES 0x0B
2168#define SET_PRIORITY 0x0E
2169#define SET_TIMESTAMP 0x0F
2170#define MANAGEMENT_PROTOCOL_OUT 0x10
2175#define T_DIRECT 0x00
2176#define T_SEQUENTIAL 0x01
2177#define T_PRINTER 0x02
2178#define T_PROCESSOR 0x03
2181#define T_SCANNER 0x06
2182#define T_OPTICAL 0x07
2183#define T_CHANGER 0x08
2187#define T_STORARRAY 0x0c
2188#define T_ENCLOSURE 0x0d
2193#define T_ZBC_HM 0x14
2194#define T_NODEVICE 0x1f
2206#define SHORT_INQUIRY_LENGTH 36
2211#define SID_TYPE(inq_data) ((inq_data)->device & 0x1f)
2212#define SID_QUAL(inq_data) (((inq_data)->device & 0xE0) >> 5)
2213#define SID_QUAL_LU_CONNECTED 0x00
2225#define SID_QUAL_LU_OFFLINE 0x01
2232#define SID_QUAL_RSVD 0x02
2233#define SID_QUAL_BAD_LU 0x03
2245#define SID_QUAL_IS_VENDOR_UNIQUE(inq_data) ((SID_QUAL(inq_data) & 0x04) != 0)
2247#define SID_QUAL2 0x7F
2248#define SID_LU_CONG 0x40
2250#define SID_IS_REMOVABLE(inq_data) (((inq_data)->dev_qual2 & SID_RMB) != 0)
2252#define SID_ANSI_REV(inq_data) ((inq_data)->version & 0x07)
2254#define SCSI_REV_CCS 1
2256#define SCSI_REV_SPC 3
2257#define SCSI_REV_SPC2 4
2258#define SCSI_REV_SPC3 5
2259#define SCSI_REV_SPC4 6
2260#define SCSI_REV_SPC5 7
2262#define SID_ECMA 0x38
2265#define SID_AENC 0x80
2266#define SID_TrmIOP 0x40
2267#define SID_NormACA 0x20
2268#define SID_HiSup 0x10
2270#define SID_ADDITIONAL_LENGTH(iqd) \
2271 ((iqd)->additional_length + \
2272 __offsetof(struct scsi_inquiry_data, additional_length) + 1)
2274#define SPC3_SID_PROTECT 0x01
2275#define SPC3_SID_3PC 0x08
2276#define SPC3_SID_TPGS_MASK 0x30
2277#define SPC3_SID_TPGS_IMPLICIT 0x10
2278#define SPC3_SID_TPGS_EXPLICIT 0x20
2279#define SPC3_SID_ACC 0x40
2280#define SPC3_SID_SCCS 0x80
2282#define SPC2_SID_ADDR16 0x01
2283#define SPC2_SID_MChngr 0x08
2284#define SPC2_SID_MultiP 0x10
2285#define SPC2_SID_EncServ 0x40
2286#define SPC2_SID_BQueue 0x80
2288#define INQ_DATA_TQ_ENABLED(iqd) \
2289 ((SID_ANSI_REV(iqd) < SCSI_REV_SPC2)? ((iqd)->flags & SID_CmdQue) : \
2290 (((iqd)->flags & SID_CmdQue) && !((iqd)->spc2_flags & SPC2_SID_BQueue)) || \
2291 (!((iqd)->flags & SID_CmdQue) && ((iqd)->spc2_flags & SPC2_SID_BQueue)))
2294#define SID_SftRe 0x01
2295#define SID_CmdQue 0x02
2296#define SID_Linked 0x08
2297#define SID_Sync 0x10
2298#define SID_WBus16 0x20
2299#define SID_WBus32 0x40
2300#define SID_RelAdr 0x80
2301#define SID_VENDOR_SIZE 8
2303#define SID_PRODUCT_SIZE 16
2305#define SID_REVISION_SIZE 4
2311#define SID_VENDOR_SPECIFIC_0_SIZE 20
2316#define SID_SPI_IUS 0x01
2317#define SID_SPI_QAS 0x02
2318#define SID_SPI_CLOCK_ST 0x00
2319#define SID_SPI_CLOCK_DT 0x04
2320#define SID_SPI_CLOCK_DT_ST 0x0C
2321#define SID_SPI_MASK 0x0F
2338#define SID_VENDOR_SPECIFIC_1_SIZE 160
2350#define SVPD_SUPPORTED_PAGE_LIST 0x00
2351#define SVPD_SUPPORTED_PAGES_HDR_LEN 4
2354#define SVPD_SUPPORTED_PAGES_SIZE 251
2367#define SVPD_SUPPORTED_PAGES 0x00
2376#define SVPD_UNIT_SERIAL_NUMBER 0x80
2379#define SVPD_SERIAL_NUM_SIZE 251
2387#define SVPD_DEVICE_ID 0x83
2388#define SVPD_DEVICE_ID_MAX_SIZE 252
2389#define SVPD_DEVICE_ID_HDR_LEN \
2390 __offsetof(struct scsi_vpd_device_id, desc_list)
2401#define SVPD_ID_PROTO_SHIFT 4
2402#define SVPD_ID_CODESET_BINARY 0x01
2403#define SVPD_ID_CODESET_ASCII 0x02
2404#define SVPD_ID_CODESET_UTF8 0x03
2405#define SVPD_ID_CODESET_MASK 0x0f
2407#define SVPD_ID_PIV 0x80
2408#define SVPD_ID_ASSOC_LUN 0x00
2409#define SVPD_ID_ASSOC_PORT 0x10
2410#define SVPD_ID_ASSOC_TARGET 0x20
2411#define SVPD_ID_ASSOC_MASK 0x30
2412#define SVPD_ID_TYPE_VENDOR 0x00
2413#define SVPD_ID_TYPE_T10 0x01
2414#define SVPD_ID_TYPE_EUI64 0x02
2415#define SVPD_ID_TYPE_NAA 0x03
2416#define SVPD_ID_TYPE_RELTARG 0x04
2417#define SVPD_ID_TYPE_TPORTGRP 0x05
2418#define SVPD_ID_TYPE_LUNGRP 0x06
2419#define SVPD_ID_TYPE_MD5_LUN_ID 0x07
2420#define SVPD_ID_TYPE_SCSI_NAME 0x08
2421#define SVPD_ID_TYPE_PROTO 0x09
2422#define SVPD_ID_TYPE_UUID 0x0a
2423#define SVPD_ID_TYPE_MASK 0x0f
2426#define SVPD_DEVICE_ID_DESC_HDR_LEN \
2427 __offsetof(struct scsi_vpd_id_descriptor, identifier)
2450#define SVPD_ID_NAA_NAA_SHIFT 4
2451#define SVPD_ID_NAA_IEEE_EXT 0x02
2452#define SVPD_ID_NAA_LOCAL_REG 0x03
2453#define SVPD_ID_NAA_IEEE_REG 0x05
2454#define SVPD_ID_NAA_IEEE_REG_EXT 0x06
2541#define SVPD_EXTENDED_INQUIRY_DATA 0x86
2546#define SVPD_EID_AM_MASK 0xC0
2547#define SVPD_EID_AM_DEFER 0x80
2548#define SVPD_EID_AM_IMMED 0x40
2549#define SVPD_EID_AM_UNDEFINED 0x00
2550#define SVPD_EID_AM_RESERVED 0xc0
2551#define SVPD_EID_SPT 0x38
2552#define SVPD_EID_SPT_1 0x00
2553#define SVPD_EID_SPT_12 0x08
2554#define SVPD_EID_SPT_2 0x10
2555#define SVPD_EID_SPT_13 0x18
2556#define SVPD_EID_SPT_3 0x20
2557#define SVPD_EID_SPT_23 0x28
2558#define SVPD_EID_SPT_123 0x38
2561#define SVPD_EID_SA_SPT_LBP 0x08
2563#define SVPD_EID_GRD_CHK 0x04
2564#define SVPD_EID_APP_CHK 0x02
2565#define SVPD_EID_REF_CHK 0x01
2568#define SVPD_EID_UASK_SUP 0x20
2569#define SVPD_EID_GROUP_SUP 0x10
2570#define SVPD_EID_PRIOR_SUP 0x08
2571#define SVPD_EID_HEADSUP 0x04
2572#define SVPD_EID_ORDSUP 0x02
2573#define SVPD_EID_SIMPSUP 0x01
2575#define SVPD_EID_WU_SUP 0x08
2576#define SVPD_EID_CRD_SUP 0x04
2577#define SVPD_EID_NV_SUP 0x02
2578#define SVPD_EID_V_SUP 0x01
2580#define SVPD_EID_NO_PI_CHK 0x20
2581#define SVPD_EID_P_I_I_SUP 0x10
2582#define SVPD_EID_LUICLR 0x01
2584#define SVPD_EID_LUCT_MASK 0xe0
2585#define SVPD_EID_LUCT_NOT_REP 0x00
2586#define SVPD_EID_LUCT_CONGL 0x20
2587#define SVPD_EID_LUCT_GROUP 0x40
2588#define SVPD_EID_R_SUP 0x10
2589#define SVPD_EID_RTD_SUP 0x08
2590#define SVPD_EID_HSSRELEF 0x02
2591#define SVPD_EID_CBCS 0x01
2593#define SVPD_EID_MULTI_I_T_FW 0x0F
2594#define SVPD_EID_MC_VENDOR_SPEC 0x00
2595#define SVPD_EID_MC_MODE_1 0x01
2596#define SVPD_EID_MC_MODE_2 0x02
2597#define SVPD_EID_MC_MODE_3 0x03
2600#define SVPD_EID_POA_SUP 0x80
2601#define SVPD_EID_HRA_SUP 0x40
2602#define SVPD_EID_VSA_SUP 0x20
2605#define SVPD_EID_IBS 0x80
2606#define SVPD_EID_IAS 0x40
2607#define SVPD_EID_SAC 0x04
2608#define SVPD_EID_NRD1 0x02
2609#define SVPD_EID_NRD0 0x01
2618#define SVPD_MPP_SHARED 0x00
2619#define SVPD_MPP_PORT 0x01
2620#define SVPD_MPP_I_T 0x03
2621#define SVPD_MPP_MLUS 0x80
2629#define SVPD_MODE_PAGE_POLICY 0x87
2661#define SVPD_SCSI_PORTS 0x88
2670#define SVPD_ATA_INFORMATION 0x89
2682#define SVPD_TPC_BDRL 0x0000
2702#define SVPD_TPC_SC 0x0001
2711#define SVPD_TPC_PD 0x0004
2724#define SVPD_TPC_SD 0x0008
2733#define SVPD_TPC_SDID 0x000C
2742#define SVPD_TPC_RTF_BLOCK 0x00
2757#define SVPD_TPC_RTF 0x0106
2773#define SVPD_TPC_SRTD_TOUT 0x01
2774#define SVPD_TPC_SRTD_TIN 0x02
2775#define SVPD_TPC_SRTD_ECPY 0x80
2784#define SVPD_TPC_SRT 0x0108
2794#define SVPD_TPC_GCO 0x8001
2808#define SVPD_SCSI_TPC 0x8F
2820#define SVPD_SCSI_SFS 0x92
2833#define SVPD_BDC 0xB1
2836#define SVPD_NOT_REPORTED 0x0000
2837#define SVPD_NON_ROTATING 0x0001
2841#define SVPD_VBULS 0x01
2842#define SVPD_FUAB 0x02
2843#define SVPD_BOCS 0x04
2844#define SVPD_RBWZ 0x08
2845#define SVPD_ZBC_NR 0x00
2846#define SVPD_HAW_ZBC 0x10
2847#define SVPD_DM_ZBC 0x20
2848#define SVPD_ZBC_MASK 0x30
2854 "scsi_vpd_block_characteristics wrong size");
2856#define SBDC_IS_PRESENT(bdc, length, field) \
2857 ((length >= offsetof(struct scsi_vpd_block_device_characteristics, \
2858 field) + sizeof(bdc->field)) ? 1 : 0)
2868#define SVPD_LBP 0xB2
2870#define SVPD_LBP_PL_BASIC 0x04
2873#define SVPD_LBP_UNMAP 0x80
2874#define SVPD_LBP_WS16 0x40
2875#define SVPD_LBP_WS10 0x20
2876#define SVPD_LBP_RZ 0x04
2877#define SVPD_LBP_ANC_SUP 0x02
2878#define SVPD_LBP_DP 0x01
2880#define SVPD_LBP_RESOURCE 0x01
2881#define SVPD_LBP_THIN 0x02
2896#define SVPD_BLOCK_LIMITS 0xB0
2898#define SVPD_BL_PL_BASIC 0x10
2899#define SVPD_BL_PL_TP 0x3C
2901#define SVPD_BL_WSNZ 0x01
2926#define SVPD_ZONED_BDC 0xB6
2928#define SVPD_ZBDC_PL 0x3C
2930#define SVPD_ZBDC_URSWRZ 0x01
2933#define SVPD_ZBDC_OPT_SEQ_NR 0xffffffff
2935#define SVPD_ZBDC_OPT_NONSEQ_NR 0xffffffff
2937#define SVPD_ZBDC_MAX_SEQ_UNLIMITED 0xffffffff
2945#define SRC_RELADR 0x01
2956#define SRC16_SERVICE_ACTION 0x10
2960#define SRC16_PMI 0x01
2961#define SRC16_RELADR 0x02
2976#define SRC16_PROT_EN 0x01
2977#define SRC16_P_TYPE 0x0e
2978#define SRC16_P_TYPE_SHIFT 1
2979#define SRC16_PTYPE_1 0x00
2980#define SRC16_PTYPE_2 0x02
2981#define SRC16_PTYPE_3 0x04
2983#define SRC16_LBPPBE 0x0f
2984#define SRC16_PI_EXPONENT 0xf0
2985#define SRC16_PI_EXPONENT_SHIFT 4
2987#define SRC16_LALBA 0x3f
2988#define SRC16_LBPRZ 0x40
2989#define SRC16_LBPME 0x80
2994#define SRC16_LALBA_A 0x3fff
2995#define SRC16_LBPRZ_A 0x4000
2996#define SRC16_LBPME_A 0x8000
3004#define SGLS_SERVICE_ACTION 0x12
3031#define RPL_REPORT_DEFAULT 0x00
3032#define RPL_REPORT_WELLKNOWN 0x01
3033#define RPL_REPORT_ALL 0x02
3034#define RPL_REPORT_ADMIN 0x10
3035#define RPL_REPORT_NONSUBSID 0x11
3036#define RPL_REPORT_CONGLOM 0x12
3046#define RPL_LUNDATA_PERIPH_BUS_MASK 0x3f
3047#define RPL_LUNDATA_FLAT_LUN_MASK 0x3f
3048#define RPL_LUNDATA_FLAT_LUN_BITS 0x06
3049#define RPL_LUNDATA_LUN_TARG_MASK 0x3f
3050#define RPL_LUNDATA_LUN_BUS_MASK 0xe0
3051#define RPL_LUNDATA_LUN_LUN_MASK 0x1f
3052#define RPL_LUNDATA_EXT_LEN_MASK 0x30
3053#define RPL_LUNDATA_EXT_EAM_MASK 0x0f
3054#define RPL_LUNDATA_EXT_EAM_WK 0x01
3055#define RPL_LUNDATA_EXT_EAM_NOT_SPEC 0x0f
3056#define RPL_LUNDATA_ATYP_MASK 0xc0
3057#define RPL_LUNDATA_ATYP_PERIPH 0x00
3058#define RPL_LUNDATA_ATYP_FLAT 0x40
3059#define RPL_LUNDATA_ATYP_LUN 0x80
3060#define RPL_LUNDATA_ATYP_EXTLUN 0xc0
3090#define SCSI_GPES_FILTER_ALL 0x00
3091#define SCSI_GPES_FILTER_EXEPTION 0x40
3092#define SCSI_GPES_REPORT_TYPE_PHYS 0x00
3093#define SCSI_GEPS_REPORT_TYPE_STORAGE 0x01
3097 "scsi_get_physical_element_status wrong size");
3107 "scsi_get_physical_element_hdr wrong size");
3116#define GPED_TYPE_STORAGE 0x1
3122 "scsi_get_physical_element_descriptor wrong size");
3134 "scsi_remove_element_and_truncate wrong size");
3140#define STG_PDF_MASK 0xe0
3141#define STG_PDF_LENGTH 0x00
3142#define STG_PDF_EXTENDED 0x20
3182#define TPG_PRIMARY 0x80
3183#define TPG_ASYMMETRIC_ACCESS_STATE_MASK 0xf
3184#define TPG_ASYMMETRIC_ACCESS_OPTIMIZED 0x0
3185#define TPG_ASYMMETRIC_ACCESS_NONOPTIMIZED 0x1
3186#define TPG_ASYMMETRIC_ACCESS_STANDBY 0x2
3187#define TPG_ASYMMETRIC_ACCESS_UNAVAILABLE 0x3
3188#define TPG_ASYMMETRIC_ACCESS_LBA_DEPENDENT 0x4
3189#define TPG_ASYMMETRIC_ACCESS_OFFLINE 0xE
3190#define TPG_ASYMMETRIC_ACCESS_TRANSITIONING 0xF
3192#define TPG_AO_SUP 0x01
3193#define TPG_AN_SUP 0x02
3194#define TPG_S_SUP 0x04
3195#define TPG_U_SUP 0x08
3196#define TPG_LBD_SUP 0x10
3197#define TPG_O_SUP 0x40
3198#define TPG_T_SUP 0x80
3202#define TPG_UNAVLBL 0
3203#define TPG_SET_BY_STPG 0x01
3204#define TPG_IMPLICIT 0x02
3227#define SPI_PROT_INFORMATION 0x00
3228#define SPI_PROT_CBCS 0x07
3229#define SPI_PROT_TAPE_DATA_ENC 0x20
3230#define SPI_PROT_DATA_ENC_CONFIG 0x21
3231#define SPI_PROT_SA_CREATE_CAP 0x40
3232#define SPI_PROT_IKEV2_SCSI 0x41
3233#define SPI_PROT_JEDEC_UFS 0xEC
3234#define SPI_PROT_SDCARD_TFSSS 0xED
3235#define SPI_PROT_AUTH_HOST_TRANSIENT 0xEE
3236#define SPI_PROT_ATA_DEVICE_PASSWORD 0xEF
3239#define SPI_INC_512 0x80
3252#define SPO_INC_512 0x80
3284#define SSD_FULL_SIZE 252
3289#define SSD_MIN_SIZE 18
3293#define SSD_EXTRA_MAX 244
3302#define SSD_ERRCODE 0x7F
3303#define SSD_CURRENT_ERROR 0x70
3304#define SSD_DEFERRED_ERROR 0x71
3305#define SSD_ERRCODE_VALID 0x80
3309#define SSD_KEY_NO_SENSE 0x00
3310#define SSD_KEY_RECOVERED_ERROR 0x01
3311#define SSD_KEY_NOT_READY 0x02
3312#define SSD_KEY_MEDIUM_ERROR 0x03
3313#define SSD_KEY_HARDWARE_ERROR 0x04
3314#define SSD_KEY_ILLEGAL_REQUEST 0x05
3315#define SSD_KEY_UNIT_ATTENTION 0x06
3316#define SSD_KEY_DATA_PROTECT 0x07
3317#define SSD_KEY_BLANK_CHECK 0x08
3318#define SSD_KEY_Vendor_Specific 0x09
3319#define SSD_KEY_COPY_ABORTED 0x0a
3320#define SSD_KEY_ABORTED_COMMAND 0x0b
3321#define SSD_KEY_EQUAL 0x0c
3322#define SSD_KEY_VOLUME_OVERFLOW 0x0d
3323#define SSD_KEY_MISCOMPARE 0x0e
3324#define SSD_KEY_COMPLETED 0x0f
3325#define SSD_SDAT_OVFL 0x10
3328#define SSD_FILEMARK 0x80
3336#define SSD_SCS_VALID 0x80
3337#define SSD_FIELDPTR_CMD 0x40
3338#define SSD_BITPTR_VALID 0x08
3339#define SSD_BITPTR_VALUE 0x07
3341#define SSD_FIXED_IS_PRESENT(sense, length, field) \
3342 ((length >= (offsetof(struct scsi_sense_data_fixed, field) + \
3343 sizeof(sense->field))) ? 1 :0)
3344#define SSD_FIXED_IS_FILLED(sense, field) \
3345 ((((offsetof(struct scsi_sense_data_fixed, field) + \
3346 sizeof(sense->field)) - \
3347 (offsetof(struct scsi_sense_data_fixed, extra_len) + \
3348 sizeof(sense->extra_len))) <= sense->extra_len) ? 1 : 0)
3358#define SSD_DESC_CURRENT_ERROR 0x72
3359#define SSD_DESC_DEFERRED_ERROR 0x73
3364#define SSDD_SDAT_OVFL 0x80
3372#define SSD_DESC_IS_PRESENT(sense, length, field) \
3373 ((length >= (offsetof(struct scsi_sense_data_desc, field) + \
3374 sizeof(sense->field))) ? 1 :0)
3395#define SSD_DESC_INFO 0x00
3398#define SSD_INFO_VALID 0x80
3416#define SSD_DESC_COMMAND 0x01
3431#define SSD_DESC_SKS 0x02
3435#define SSD_SKS_VALID 0x80
3445#define SSD_SKS_FIELD_VALID 0x80
3446#define SSD_SKS_FIELD_CMD 0x40
3447#define SSD_SKS_BPV 0x08
3448#define SSD_SKS_BIT_VALUE 0x07
3459#define SSD_SKS_RETRY_VALID 0x80
3469#define SSD_SKS_PROGRESS_VALID 0x80
3471#define SSD_SKS_PROGRESS_DENOM 0x10000
3480#define SSD_SKS_SEGMENT_VALID 0x80
3481#define SSD_SKS_SEGMENT_SD 0x20
3482#define SSD_SKS_SEGMENT_BPV 0x08
3483#define SSD_SKS_SEGMENT_BITPTR 0x07
3496#define SSD_SKS_OVERFLOW_VALID 0x80
3497#define SSD_SKS_OVERFLOW_SET 0x01
3510#define SSD_DESC_FRU 0x03
3525#define SSD_DESC_STREAM 0x04
3529#define SSD_DESC_STREAM_FM 0x80
3530#define SSD_DESC_STREAM_EOM 0x40
3531#define SSD_DESC_STREAM_ILI 0x20
3547#define SSD_DESC_BLOCK 0x05
3551#define SSD_DESC_BLOCK_ILI 0x20
3562#define SSD_DESC_OSD_OBJID 0x06
3583#define SSD_DESC_OSD_INTEGRITY 0x07
3596#define SSD_DESC_OSD_ATTR_ID 0x08
3609#define SSD_DESC_ATA 0x09
3612#define SSD_DESC_ATA_FLAG_EXTEND 0x01
3633#define SSD_DESC_PROGRESS 0x0a
3650#define SSD_DESC_FORWARDED 0x0c
3653#define SSD_FORWARDED_FSDT 0x80
3654#define SSD_FORWARDED_SDS_MASK 0x0f
3655#define SSD_FORWARDED_SDS_UNK 0x00
3656#define SSD_FORWARDED_SDS_EXSRC 0x01
3657#define SSD_FORWARDED_SDS_EXDST 0x02
3669#define SSD_DESC_VENDOR_MIN 0x80
3670#define SSD_DESC_VENDOR_MAX 0xff
3689#define SMH_LONGLBA 0x01
3698#define SMPH_SPF 0x40
3699#define SMPH_PC_MASK 0x3f
3718#define SCSI_DEFAULT_DENSITY 0x00
3719#define SCSI_SAME_DENSITY 0x7f
3724#define SCSI_STATUS_OK 0x00
3725#define SCSI_STATUS_CHECK_COND 0x02
3726#define SCSI_STATUS_COND_MET 0x04
3727#define SCSI_STATUS_BUSY 0x08
3728#define SCSI_STATUS_INTERMED 0x10
3729#define SCSI_STATUS_INTERMED_COND_MET 0x14
3730#define SCSI_STATUS_RESERV_CONFLICT 0x18
3731#define SCSI_STATUS_CMD_TERMINATED 0x22
3732#define SCSI_STATUS_QUEUE_FULL 0x28
3733#define SCSI_STATUS_ACA_ACTIVE 0x30
3734#define SCSI_STATUS_TASK_ABORTED 0x40
3739#define SIP_MEDIA_REMOVABLE 0x01
3740#define SIP_MEDIA_FIXED 0x02
3820 const char **sense_key_desc,
const char **asc_desc);
3823 u_int32_t sense_flags);
3829 void *),
void *arg);
3834 int sense_key,
int asc,
int ascq, ...) ;
3837 int sense_key,
int asc,
int ascq, ...) ;
3840 int current_error,
int sense_key,
int asc,
int ascq, va_list ap);
3842 uint8_t info_type, uint64_t *info,
3843 int64_t *signed_info);
3848 uint8_t *block_bits);
3851 uint8_t *stream_bits);
3857int scsi_sks_sbuf(
struct sbuf *sb,
int sense_key, uint8_t *sks);
3862 u_int sense_len, uint8_t *cdb,
int cdb_len,
3867 u_int sense_len, uint8_t *cdb,
int cdb_len,
3871 u_int sense_len, uint8_t *cdb,
int cdb_len,
3875 u_int sense_len, uint8_t *cdb,
int cdb_len,
3879 u_int sense_len, uint8_t *cdb,
int cdb_len,
3883 u_int sense_len, uint8_t *cdb,
int cdb_len,
3887 u_int sense_len, uint8_t *cdb,
int cdb_len,
3891 u_int sense_len, uint8_t *cdb,
int cdb_len,
3895 u_int sense_len, uint8_t *cdb,
int cdb_len,
3899 u_int sense_len, uint8_t *cdb,
int cdb_len,
3903 u_int sense_len, uint8_t *cdb,
int cdb_len,
3909 struct sbuf *sb,
char *path_str,
3918 char *str,
int str_len);
3930 char *str,
int str_len);
3970 uint32_t valid_len);
3980 unsigned int *alloc_len,
3982 struct malloc_type *type,
int flags,
3984 char *error_str,
int error_str_len);
3988 unsigned int *alloc_len,
3990 struct malloc_type *type,
int flags,
3992 char *error_str,
int error_str_len);
3996 unsigned int *alloc_len,
3998 struct malloc_type *type,
int flags,
4000 char *error_str,
int error_str_len);
4004 unsigned int *alloc_len,
4006 struct malloc_type *type,
int flags,
4008 char *error_str,
int error_str_len);
4012 unsigned int *alloc_len,
4014 struct malloc_type *type,
int flags,
4016 char *error_str,
int error_str_len);
4020 unsigned int *alloc_len,
4022 struct malloc_type *type,
int flags,
4024 char *error_str,
int error_str_len);
4028 uint32_t valid_len, uint32_t flags,
4029 uint32_t output_flags,
char *error_str,
4034 uint32_t valid_len, uint32_t flags,
4035 uint32_t output_flags,
char *error_str,
4040 uint32_t valid_len, uint32_t flags,
4041 uint32_t output_flags,
char *error_str,
4045 uint32_t valid_len, uint32_t flags,
4046 uint32_t output_flags,
char *error_str,
4051 uint32_t valid_len, uint32_t flags,
4052 uint32_t output_flags,
char *error_str,
4057 uint32_t valid_len, uint32_t flags,
4058 uint32_t output_flags,
char *error_str,
4063 size_t num_table_entries, uint32_t
id);
4069 uint32_t output_flags,
char *error_str,
4070 size_t error_str_len);
4074 uint32_t valid_len,
const char *
desc);
4079 size_t num_user_entries,
int prefer_user_table,
4080 uint32_t output_flags,
char *error_str,
int error_str_len);
4085 u_int8_t tag_action,
4086 u_int8_t sense_len, u_int32_t timeout);
4091 void *data_ptr, u_int8_t dxfer_len,
4092 u_int8_t tag_action, u_int8_t sense_len,
4097 u_int8_t tag_action, u_int8_t *inq_buf,
4098 u_int32_t inq_len,
int evpd, u_int8_t page_code,
4099 u_int8_t sense_len, u_int32_t timeout);
4103 uint8_t tag_action,
int dbd, uint8_t pc, uint8_t page,
4104 uint8_t *param_buf, uint32_t param_len,
4105 uint8_t sense_len, uint32_t timeout);
4109 uint8_t tag_action,
int dbd, uint8_t pc, uint8_t page,
4110 uint8_t *param_buf, uint32_t param_len,
4111 int minimum_cmd_size, uint8_t sense_len, uint32_t timeout);
4116 uint8_t tag_action,
int dbd, uint8_t pc,
4117 uint8_t page, uint8_t subpage,
4118 uint8_t *param_buf, uint32_t param_len,
4119 int minimum_cmd_size, uint8_t sense_len, uint32_t timeout);
4124 u_int8_t tag_action,
int scsi_page_fmt,
4125 int save_pages, u_int8_t *param_buf,
4126 u_int32_t param_len, u_int8_t sense_len,
4132 u_int8_t tag_action,
int scsi_page_fmt,
4133 int save_pages, u_int8_t *param_buf,
4134 u_int32_t param_len,
int minimum_cmd_size,
4135 u_int8_t sense_len, u_int32_t timeout);
4139 u_int8_t tag_action, u_int8_t page_code,
4140 u_int8_t page,
int save_pages,
int ppc,
4141 u_int32_t paramptr, u_int8_t *param_buf,
4142 u_int32_t param_len, u_int8_t sense_len,
4147 union ccb *), u_int8_t tag_action,
4148 u_int8_t page_code,
int save_pages,
4149 int pc_reset, u_int8_t *param_buf,
4150 u_int32_t param_len, u_int8_t sense_len,
4155 u_int8_t tag_action, u_int8_t action,
4156 u_int8_t sense_len, u_int32_t timeout);
4160 union ccb *), u_int8_t tag_action,
4162 u_int8_t sense_len, u_int32_t timeout);
4165 union ccb *), uint8_t tag_action,
4166 uint64_t lba,
int reladr,
int pmi,
4167 uint8_t *rcap_buf,
int rcap_buf_len,
4168 uint8_t sense_len, uint32_t timeout);
4172 union ccb *), u_int8_t tag_action,
4173 u_int8_t select_report,
4175 u_int32_t alloc_len, u_int8_t sense_len,
4180 union ccb *), u_int8_t tag_action,
4183 u_int32_t alloc_len, u_int8_t sense_len,
4188 union ccb *), u_int8_t tag_action,
4191 u_int32_t alloc_len, u_int8_t sense_len,
4196 union ccb *), u_int8_t tag_action,
void *buf,
4197 u_int32_t alloc_len, u_int8_t sense_len,
4201 uint64_t timestamp);
4205 union ccb *), u_int8_t tag_action,
4206 void *buf, u_int32_t alloc_len,
4207 u_int8_t sense_len, u_int32_t timeout);
4212 union ccb *), u_int8_t tag_action,
4213 u_int32_t begin_lba, u_int16_t lb_count,
4214 u_int8_t sense_len, u_int32_t timeout);
4219 uint8_t tag_action,
int pcv,
4220 uint8_t page_code, uint8_t *data_ptr,
4221 uint16_t allocation_length,
4222 uint8_t sense_len, uint32_t timeout);
4226 uint8_t tag_action,
int unit_offline,
4227 int device_offline,
int self_test,
int page_format,
4228 int self_test_code, uint8_t *data_ptr,
4229 uint16_t param_list_length, uint8_t sense_len,
4234 uint8_t tag_action, uint8_t *data_ptr,
4235 uint16_t allocation_length, uint8_t report_type,
4236 uint32_t starting_element,
4237 uint8_t sense_len, uint32_t timeout);
4242 uint64_t requested_capacity, uint32_t element_id,
4243 uint8_t sense_len, uint32_t timeout);
4248 uint8_t sense_len, uint32_t timeout);
4252 uint8_t tag_action,
int mode,
4253 uint8_t buffer_id, u_int32_t offset,
4254 uint8_t *data_ptr, uint32_t allocation_length,
4255 uint8_t sense_len, uint32_t timeout);
4259 uint8_t tag_action,
int mode,
4260 uint8_t buffer_id, u_int32_t offset,
4261 uint8_t *data_ptr, uint32_t param_list_length,
4262 uint8_t sense_len, uint32_t timeout);
4264#define SCSI_RW_READ 0x0001
4265#define SCSI_RW_WRITE 0x0002
4266#define SCSI_RW_DIRMASK 0x0003
4267#define SCSI_RW_BIO 0x1000
4270 u_int8_t tag_action,
int readop, u_int8_t byte2,
4271 int minimum_cmd_size, u_int64_t lba,
4272 u_int32_t block_count, u_int8_t *data_ptr,
4273 u_int32_t dxfer_len, u_int8_t sense_len,
4278 u_int8_t tag_action, u_int8_t byte2,
4279 int minimum_cmd_size, u_int64_t lba,
4280 u_int32_t block_count, u_int8_t *data_ptr,
4281 u_int32_t dxfer_len, u_int8_t sense_len,
4286 u_int8_t tag_action, u_int8_t *data_ptr,
4287 u_int16_t dxfer_len, u_int8_t sense_len,
4292 u_int8_t tag_action, u_int16_t block_count,
4293 u_int8_t *data_ptr, u_int16_t dxfer_len,
4294 u_int8_t sense_len, u_int32_t timeout);
4298 uint8_t tag_action, uint32_t log_address,
4299 uint32_t page_number, uint16_t block_count,
4300 uint8_t protocol, uint8_t *data_ptr, uint32_t dxfer_len,
4301 uint8_t sense_len, uint32_t timeout);
4305 uint8_t tag_action, uint8_t feature,
4306 uint64_t lba, uint32_t count,
4307 uint8_t sense_len, uint32_t timeout);
4311 uint32_t
flags, uint8_t tag_action,
4312 uint8_t protocol, uint8_t ata_flags, uint16_t features,
4313 uint16_t sector_count, uint64_t lba, uint8_t command,
4314 uint8_t device, uint8_t icc, uint32_t auxiliary,
4315 uint8_t control, u_int8_t *data_ptr, uint32_t dxfer_len,
4316 uint8_t *cdb_storage,
size_t cdb_storage_len,
4317 int minimum_cmd_size, u_int8_t sense_len, u_int32_t timeout);
4321 u_int32_t
flags, u_int8_t tag_action,
4322 u_int8_t protocol, u_int8_t ata_flags, u_int16_t features,
4323 u_int16_t sector_count, uint64_t lba, u_int8_t command,
4324 u_int8_t control, u_int8_t *data_ptr, u_int16_t dxfer_len,
4325 u_int8_t sense_len, u_int32_t timeout);
4329 u_int8_t tag_action, u_int8_t byte2,
4330 u_int8_t *data_ptr, u_int16_t dxfer_len,
4331 u_int8_t sense_len, u_int32_t timeout);
4335 u_int8_t tag_action,
int start,
int load_eject,
4336 int immediate, u_int8_t sense_len, u_int32_t timeout);
4339 u_int8_t tag_action, u_int8_t service_action,
4340 uint32_t element, u_int8_t elem_type,
4341 int logical_volume,
int partition,
4342 u_int32_t first_attribute,
int cache, u_int8_t *data_ptr,
4343 u_int32_t length,
int sense_len, u_int32_t timeout);
4346 u_int8_t tag_action, uint32_t element,
4347 int logical_volume,
int partition,
int wtc, u_int8_t *data_ptr,
4348 u_int32_t length,
int sense_len, u_int32_t timeout);
4352 uint8_t tag_action, uint32_t security_protocol,
4353 uint32_t security_protocol_specific,
int byte4,
4354 uint8_t *data_ptr, uint32_t dxfer_len,
4355 int sense_len,
int timeout);
4359 uint8_t tag_action, uint32_t security_protocol,
4360 uint32_t security_protocol_specific,
int byte4,
4361 uint8_t *data_ptr, uint32_t dxfer_len,
4362 int sense_len,
int timeout);
4366 uint8_t tag_action,
int service_action,
4367 uint8_t *data_ptr, uint32_t dxfer_len,
4368 int sense_len,
int timeout);
4373 uint8_t tag_action,
int service_action,
4374 int scope,
int res_type, uint8_t *data_ptr,
4375 uint32_t dxfer_len,
int sense_len,
4381 uint8_t tag_action,
int options,
4382 int req_opcode,
int req_service_action,
4383 uint8_t *data_ptr, uint32_t dxfer_len,
4384 int sense_len,
int timeout);
4388 caddr_t table_entry);
4390 uint8_t *lhs,
size_t lhs_len);
4393 int *sense_key,
int *asc,
int *ascq);
4395 int *asc,
int *ascq);
4397 u_int sense_len,
int *error_code,
int *sense_key,
4398 int *asc,
int *ascq,
int show_errors);
4410 bytes[0] = (val >> 8) & 0xff;
4411 bytes[1] = val & 0xff;
4418 bytes[0] = (val >> 16) & 0xff;
4419 bytes[1] = (val >> 8) & 0xff;
4420 bytes[2] = val & 0xff;
4427 bytes[0] = (val >> 24) & 0xff;
4428 bytes[1] = (val >> 16) & 0xff;
4429 bytes[2] = (val >> 8) & 0xff;
4430 bytes[3] = val & 0xff;
4437 bytes[0] = (val >> 56) & 0xff;
4438 bytes[1] = (val >> 48) & 0xff;
4439 bytes[2] = (val >> 40) & 0xff;
4440 bytes[3] = (val >> 32) & 0xff;
4441 bytes[4] = (val >> 24) & 0xff;
4442 bytes[5] = (val >> 16) & 0xff;
4443 bytes[6] = (val >> 8) & 0xff;
4444 bytes[7] = val & 0xff;
4447static __inline uint32_t
4452 rv = (bytes[0] << 8) |
4457static __inline uint32_t
4462 rv = (bytes[0] << 16) |
4468static __inline int32_t
4473 if (rc & 0x00800000)
4476 return (int32_t) rc;
4479static __inline uint32_t
4484 rv = (bytes[0] << 24) |
4491static __inline uint64_t
4496 rv = (((uint64_t)bytes[0]) << 56) |
4497 (((uint64_t)bytes[1]) << 48) |
4498 (((uint64_t)bytes[2]) << 40) |
4499 (((uint64_t)bytes[3]) << 32) |
4500 (((uint64_t)bytes[4]) << 24) |
4501 (((uint64_t)bytes[5]) << 16) |
4502 (((uint64_t)bytes[6]) << 8) |
4511static __inline
void *
4516 page_start = (
void *)((u_int8_t *)&mode_header[1] +
4522static __inline
void *
4527 page_start = (
void *)((u_int8_t *)&mode_header[1] +
uint8_t * scsi_find_desc(struct scsi_sense_data_desc *sense, u_int sense_len, uint8_t desc_type)
int scsi_parse_transportid(char *transportid_str, struct scsi_transportid_header **hdr, unsigned int *alloc_len, struct malloc_type *type, int flags, char *error_str, int error_str_len)
int scsi_devid_is_lun_eui64(uint8_t *bufp)
#define SCSI_TRN_RDMA_PORT_LEN
void scsi_read_capacity(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, struct scsi_read_capacity_data *, u_int8_t sense_len, u_int32_t timeout)
static __inline int32_t scsi_3btol(const uint8_t *bytes)
void scsi_desc_iterate(struct scsi_sense_data_desc *sense, u_int sense_len, int(*iter_func)(struct scsi_sense_data_desc *sense, u_int, struct scsi_sense_desc_header *, void *), void *arg)
int scsi_attrib_vendser_sbuf(struct sbuf *sb, struct scsi_mam_attribute_header *hdr, uint32_t valid_len, uint32_t flags, uint32_t output_flags, char *error_str, int error_str_len)
int scsi_get_asc(struct scsi_sense_data *sense, u_int sense_len, int show_errors)
void scsi_report_supported_opcodes(struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, int options, int req_opcode, int req_service_action, uint8_t *data_ptr, uint32_t dxfer_len, int sense_len, int timeout)
void scsi_set_timestamp(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, void *buf, u_int32_t alloc_len, u_int8_t sense_len, u_int32_t timeout)
#define SID_REVISION_SIZE
void scsi_ata_trim(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int16_t block_count, u_int8_t *data_ptr, u_int16_t dxfer_len, u_int8_t sense_len, u_int32_t timeout)
int scsi_devid_is_lun_name(uint8_t *bufp)
void scsi_request_sense(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), void *data_ptr, u_int8_t dxfer_len, u_int8_t tag_action, u_int8_t sense_len, u_int32_t timeout)
_Static_assert(sizeof(struct scsi_vpd_block_device_characteristics)==64, "scsi_vpd_block_characteristics wrong size")
int scsi_devid_is_sas_target(uint8_t *bufp)
int scsi_devid_is_port_naa(uint8_t *bufp)
void scsi_mode_select_len(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int scsi_page_fmt, int save_pages, u_int8_t *param_buf, u_int32_t param_len, int minimum_cmd_size, u_int8_t sense_len, u_int32_t timeout)
const char * scsi_sense_key_text[]
void scsi_stream_sbuf(struct sbuf *sb, uint8_t stream_bits)
int scsi_ata_setfeatures(struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, uint8_t feature, uint64_t lba, uint32_t count, uint8_t sense_len, uint32_t timeout)
void scsi_read_buffer(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, int mode, uint8_t buffer_id, u_int32_t offset, uint8_t *data_ptr, uint32_t allocation_length, uint8_t sense_len, uint32_t timeout)
void scsi_mode_sense_len(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, int dbd, uint8_t pc, uint8_t page, uint8_t *param_buf, uint32_t param_len, int minimum_cmd_size, uint8_t sense_len, uint32_t timeout)
void scsi_receive_diagnostic_results(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, int pcv, uint8_t page_code, uint8_t *data_ptr, uint16_t allocation_length, uint8_t sense_len, uint32_t timeout)
void scsi_persistent_reserve_in(struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, int service_action, uint8_t *data_ptr, uint32_t dxfer_len, int sense_len, int timeout)
static __inline uint32_t scsi_3btoul(const uint8_t *bytes)
static __inline uint64_t scsi_8btou64(const uint8_t *bytes)
static __inline uint32_t scsi_2btoul(const uint8_t *bytes)
int scsi_attrib_text_sbuf(struct sbuf *sb, struct scsi_mam_attribute_header *hdr, uint32_t valid_len, uint32_t flags, uint32_t output_flags, char *error_str, int error_str_len)
int scsi_attrib_hexdump_sbuf(struct sbuf *sb, struct scsi_mam_attribute_header *hdr, uint32_t valid_len, uint32_t flags, uint32_t output_flags, char *error_str, int error_str_len)
int scsi_parse_transportid_rdma(char *id_str, struct scsi_transportid_header **hdr, unsigned int *alloc_len, struct malloc_type *type, int flags, char *error_str, int error_str_len)
int scsi_devid_is_lun_naa(uint8_t *bufp)
void scsi_mode_sense(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, int dbd, uint8_t pc, uint8_t page, uint8_t *param_buf, uint32_t param_len, uint8_t sense_len, uint32_t timeout)
char * scsi_cdb_string(u_int8_t *cdb_ptr, char *cdb_string, size_t len)
int scsi_transportid_sbuf(struct sbuf *sb, struct scsi_transportid_header *hdr, uint32_t valid_len)
void scsi_sense_block_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, struct scsi_sense_desc_header *header)
int scsi_attrib_int_sbuf(struct sbuf *sb, struct scsi_mam_attribute_header *hdr, uint32_t valid_len, uint32_t flags, uint32_t output_flags, char *error_str, int error_str_len)
char * scsi_sense_string(struct ccb_scsiio *csio, char *str, int str_len)
void scsi_send_diagnostic(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, int unit_offline, int device_offline, int self_test, int page_format, int self_test_code, uint8_t *data_ptr, uint16_t param_list_length, uint8_t sense_len, uint32_t timeout)
void scsi_unmap(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t byte2, u_int8_t *data_ptr, u_int16_t dxfer_len, u_int8_t sense_len, u_int32_t timeout)
#define SID_VENDOR_SPECIFIC_1_SIZE
struct scsi_vpd_id_descriptor * scsi_get_devid(struct scsi_vpd_device_id *id, uint32_t len, scsi_devid_checkfn_t ck_fn)
void scsi_security_protocol_out(struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, uint32_t security_protocol, uint32_t security_protocol_specific, int byte4, uint8_t *data_ptr, uint32_t dxfer_len, int sense_len, int timeout)
void scsi_sense_print(struct ccb_scsiio *csio)
void scsi_mode_select(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int scsi_page_fmt, int save_pages, u_int8_t *param_buf, u_int32_t param_len, u_int8_t sense_len, u_int32_t timeout)
int scsi_devid_is_naa_ieee_reg(uint8_t *bufp)
scsi_sense_data_type scsi_sense_type(struct scsi_sense_data *sense_data)
int scsi_ata_pass(struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint32_t flags, uint8_t tag_action, uint8_t protocol, uint8_t ata_flags, uint16_t features, uint16_t sector_count, uint64_t lba, uint8_t command, uint8_t device, uint8_t icc, uint32_t auxiliary, uint8_t control, u_int8_t *data_ptr, uint32_t dxfer_len, uint8_t *cdb_storage, size_t cdb_storage_len, int minimum_cmd_size, u_int8_t sense_len, u_int32_t timeout)
struct scsi_vpd_id_descriptor * scsi_get_devid_desc(struct scsi_vpd_id_descriptor *desc, uint32_t len, scsi_devid_checkfn_t ck_fn)
void scsi_set_sense_data_va(struct scsi_sense_data *sense_data, u_int *sense_len, scsi_sense_data_type sense_format, int current_error, int sense_key, int asc, int ascq, va_list ap)
scsi_sense_action_qualifier
int scsi_attrib_ascii_sbuf(struct sbuf *sb, struct scsi_mam_attribute_header *hdr, uint32_t valid_len, uint32_t flags, uint32_t output_flags, char *error_str, int error_str_len)
void scsi_prevent(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t action, u_int8_t sense_len, u_int32_t timeout)
void scsi_print_inquiry(struct scsi_inquiry_data *inq_data)
void scsi_write_buffer(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, int mode, uint8_t buffer_id, u_int32_t offset, uint8_t *data_ptr, uint32_t param_list_length, uint8_t sense_len, uint32_t timeout)
void scsi_sense_sks_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, struct scsi_sense_desc_header *header)
void scsi_set_sense_data_len(struct scsi_sense_data *sense_data, u_int *sense_len, scsi_sense_data_type sense_format, int current_error, int sense_key, int asc, int ascq,...)
int scsi_sks_sbuf(struct sbuf *sb, int sense_key, uint8_t *sks)
void scsi_block_sbuf(struct sbuf *sb, uint8_t block_bits)
static __inline void scsi_ulto2b(u_int32_t val, u_int8_t *bytes)
int scsi_get_ascq(struct scsi_sense_data *sense, u_int sense_len, int show_errors)
const char * scsi_nv_to_str(struct scsi_nv *table, int num_table_entries, uint64_t value)
void scsi_sense_progress_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, struct scsi_sense_desc_header *header)
int scsi_get_sks(struct scsi_sense_data *sense_data, u_int sense_len, uint8_t *sks)
int scsi_attrib_value_sbuf(struct sbuf *sb, uint32_t valid_len, struct scsi_mam_attribute_header *hdr, uint32_t output_flags, char *error_str, size_t error_str_len)
void scsi_sense_fru_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, struct scsi_sense_desc_header *header)
int scsi_inquiry_match(caddr_t inqbuffer, caddr_t table_entry)
const char * scsi_status_string(struct ccb_scsiio *csio)
struct scsi_attrib_table_entry * scsi_find_attrib_entry(struct scsi_attrib_table_entry *table, size_t num_table_entries, uint32_t id)
int scsi_parse_transportid_64bit(int proto_id, char *id_str, struct scsi_transportid_header **hdr, unsigned int *alloc_len, struct malloc_type *type, int flags, char *error_str, int error_str_len)
void scsi_sense_desc_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, struct scsi_sense_desc_header *header)
void scsi_write_same(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t byte2, int minimum_cmd_size, u_int64_t lba, u_int32_t block_count, u_int8_t *data_ptr, u_int32_t dxfer_len, u_int8_t sense_len, u_int32_t timeout)
void scsi_cdb_sbuf(u_int8_t *cdb_ptr, struct sbuf *sb)
static __inline uint32_t scsi_4btoul(const uint8_t *bytes)
void scsi_restore_elements_and_rebuild(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, uint8_t sense_len, uint32_t timeout)
void scsi_remove_element_and_truncate(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, uint64_t requested_capacity, uint32_t element_id, uint8_t sense_len, uint32_t timeout)
void scsi_read_attribute(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t service_action, uint32_t element, u_int8_t elem_type, int logical_volume, int partition, u_int32_t first_attribute, int cache, u_int8_t *data_ptr, u_int32_t length, int sense_len, u_int32_t timeout)
int scsi_get_sense_key(struct scsi_sense_data *sense, u_int sense_len, int show_errors)
void scsi_print_inquiry_sbuf(struct sbuf *sb, struct scsi_inquiry_data *inq_data)
void scsi_ata_identify(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t *data_ptr, u_int16_t dxfer_len, u_int8_t sense_len, u_int32_t timeout)
u_int scsi_calc_syncparam(u_int period)
int scsi_extract_sense_ccb(union ccb *ccb, int *error_code, int *sense_key, int *asc, int *ascq)
scsi_nv_status scsi_get_nv(struct scsi_nv *table, int num_table_entries, char *name, int *table_entry, scsi_nv_flags flags)
static __inline void * find_mode_page_10(struct scsi_mode_header_10 *mode_header)
void scsi_progress_sbuf(struct sbuf *sb, uint16_t progress)
void scsi_get_physical_element_status(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, uint8_t *data_ptr, uint16_t allocation_length, uint8_t report_type, uint32_t starting_element, uint8_t sense_len, uint32_t timeout)
void scsi_report_target_group(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t pdf, void *buf, u_int32_t alloc_len, u_int8_t sense_len, u_int32_t timeout)
void scsi_command_sbuf(struct sbuf *sb, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, uint64_t csi)
void scsi_set_sense_data(struct scsi_sense_data *sense_data, scsi_sense_data_type sense_format, int current_error, int sense_key, int asc, int ascq,...)
void scsi_security_protocol_in(struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, uint32_t security_protocol, uint32_t security_protocol_specific, int byte4, uint8_t *data_ptr, uint32_t dxfer_len, int sense_len, int timeout)
void scsi_extract_sense(struct scsi_sense_data *sense, int *error_code, int *sense_key, int *asc, int *ascq)
#define SVPD_SERIAL_NUM_SIZE
void scsi_report_luns(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t select_report, struct scsi_report_luns_data *rpl_buf, u_int32_t alloc_len, u_int8_t sense_len, u_int32_t timeout)
void scsi_inquiry(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t *inq_buf, u_int32_t inq_len, int evpd, u_int8_t page_code, u_int8_t sense_len, u_int32_t timeout)
void scsi_sense_ata_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, struct scsi_sense_desc_header *header)
const char * scsi_op_desc(u_int16_t opcode, struct scsi_inquiry_data *inq_data)
static __inline void scsi_ulto4b(u_int32_t val, u_int8_t *bytes)
void scsi_info_sbuf(struct sbuf *sb, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, uint64_t info)
int scsi_ata_read_log(struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, uint32_t log_address, uint32_t page_number, uint16_t block_count, uint8_t protocol, uint8_t *data_ptr, uint32_t dxfer_len, uint8_t sense_len, uint32_t timeout)
int scsi_get_sense_info(struct scsi_sense_data *sense_data, u_int sense_len, uint8_t info_type, uint64_t *info, int64_t *signed_info)
static __inline void scsi_u64to8b(u_int64_t val, u_int8_t *bytes)
@ SCSI_ATTR_OUTPUT_NONASCII_TRIM
@ SCSI_ATTR_OUTPUT_FIELD_SIZE
@ SCSI_ATTR_OUTPUT_NONASCII_MASK
@ SCSI_ATTR_OUTPUT_NONASCII_RSV1
@ SCSI_ATTR_OUTPUT_FIELD_ALL
@ SCSI_ATTR_OUTPUT_TEXT_ESC
@ SCSI_ATTR_OUTPUT_FIELD_DESC
@ SCSI_ATTR_OUTPUT_FIELD_NONE
@ SCSI_ATTR_OUTPUT_TEXT_RSV1
@ SCSI_ATTR_OUTPUT_NONASCII_ESC
@ SCSI_ATTR_OUTPUT_NONASCII_RAW
@ SCSI_ATTR_OUTPUT_FIELD_RW
@ SCSI_ATTR_OUTPUT_TEXT_MASK
@ SCSI_ATTR_OUTPUT_TEXT_RSV2
@ SCSI_ATTR_OUTPUT_FIELD_NUM
@ SCSI_ATTR_OUTPUT_FIELD_MASK
@ SCSI_ATTR_OUTPUT_TEXT_RAW
void scsi_synchronize_cache(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int32_t begin_lba, u_int16_t lb_count, u_int8_t sense_len, u_int32_t timeout)
int scsi_get_block_info(struct scsi_sense_data *sense_data, u_int sense_len, struct scsi_inquiry_data *inq_data, uint8_t *block_bits)
#define SVPD_SUPPORTED_PAGES_SIZE
void scsi_write_attribute(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, uint32_t element, int logical_volume, int partition, int wtc, u_int8_t *data_ptr, u_int32_t length, int sense_len, u_int32_t timeout)
static __inline void * find_mode_page_6(struct scsi_mode_header_6 *mode_header)
void scsi_sense_generic_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, struct scsi_sense_desc_header *header)
void scsi_extract_sense_len(struct scsi_sense_data *sense, u_int sense_len, int *error_code, int *sense_key, int *asc, int *ascq, int show_errors)
int scsi_attrib_volcoh_sbuf(struct sbuf *sb, struct scsi_mam_attribute_header *hdr, uint32_t valid_len, uint32_t flags, uint32_t output_flags, char *error_str, int error_str_len)
int scsi_sense_sbuf(struct ccb_scsiio *csio, struct sbuf *sb, scsi_sense_string_flags flags)
void scsi_create_timestamp(uint8_t *timestamp_6b_buf, uint64_t timestamp)
void scsi_sense_stream_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, struct scsi_sense_desc_header *header)
void scsi_print_inquiry_short_sbuf(struct sbuf *sb, struct scsi_inquiry_data *inq_data)
void scsi_attrib_prefix_sbuf(struct sbuf *sb, uint32_t output_flags, struct scsi_mam_attribute_header *hdr, uint32_t valid_len, const char *desc)
void scsi_persistent_reserve_out(struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, int service_action, int scope, int res_type, uint8_t *data_ptr, uint32_t dxfer_len, int sense_len, int timeout)
int scsi_vpd_supported_page(struct cam_periph *periph, uint8_t page_id)
int scsi_attrib_sbuf(struct sbuf *sb, struct scsi_mam_attribute_header *hdr, uint32_t valid_len, struct scsi_attrib_table_entry *user_table, size_t num_user_entries, int prefer_user_table, uint32_t output_flags, char *error_str, int error_str_len)
@ SCSI_ATTR_FLAG_FP_1DIGIT
void scsi_sense_forwarded_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, struct scsi_sense_desc_header *header)
void scsi_read_write(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int readop, u_int8_t byte2, int minimum_cmd_size, u_int64_t lba, u_int32_t block_count, u_int8_t *data_ptr, u_int32_t dxfer_len, u_int8_t sense_len, u_int32_t timeout)
void scsi_mode_sense_subpage(struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, int dbd, uint8_t pc, uint8_t page, uint8_t subpage, uint8_t *param_buf, uint32_t param_len, int minimum_cmd_size, uint8_t sense_len, uint32_t timeout)
void scsi_set_target_group(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, void *buf, u_int32_t alloc_len, u_int8_t sense_len, u_int32_t timeout)
int scsi_devid_is_lun_t10(uint8_t *bufp)
void scsi_test_unit_ready(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t sense_len, u_int32_t timeout)
int scsi_get_stream_info(struct scsi_sense_data *sense_data, u_int sense_len, struct scsi_inquiry_data *inq_data, uint8_t *stream_bits)
int scsi_parse_transportid_sop(char *id_str, struct scsi_transportid_header **hdr, unsigned int *alloc_len, struct malloc_type *type, int flags, char *error_str, int error_str_len)
int scsi_command_string(struct ccb_scsiio *csio, struct sbuf *sb)
static __inline void scsi_ulto3b(u_int32_t val, u_int8_t *bytes)
int scsi_parse_transportid_spi(char *id_str, struct scsi_transportid_header **hdr, unsigned int *alloc_len, struct malloc_type *type, int flags, char *error_str, int error_str_len)
void scsi_print_inquiry_short(struct scsi_inquiry_data *inq_data)
u_int scsi_calc_syncsrate(u_int period_factor)
void scsi_start_stop(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int start, int load_eject, int immediate, u_int8_t sense_len, u_int32_t timeout)
void scsi_log_select(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t page_code, int save_pages, int pc_reset, u_int8_t *param_buf, u_int32_t param_len, u_int8_t sense_len, u_int32_t timeout)
void scsi_log_sense(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t page_code, u_int8_t page, int save_pages, int ppc, u_int32_t paramptr, u_int8_t *param_buf, u_int32_t param_len, u_int8_t sense_len, u_int32_t timeout)
struct scsi_attrib_table_entry * scsi_get_attrib_entry(uint32_t id)
scsi_sense_action scsi_error_action(struct ccb_scsiio *csio, struct scsi_inquiry_data *inq_data, u_int32_t sense_flags)
int scsi_devid_is_lun_uuid(uint8_t *bufp)
__BEGIN_DECLS void scsi_sense_desc(int sense_key, int asc, int ascq, struct scsi_inquiry_data *inq_data, const char **sense_key_desc, const char **asc_desc)
void scsi_ata_pass_16(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int32_t flags, u_int8_t tag_action, u_int8_t protocol, u_int8_t ata_flags, u_int16_t features, u_int16_t sector_count, uint64_t lba, u_int8_t command, u_int8_t control, u_int8_t *data_ptr, u_int16_t dxfer_len, u_int8_t sense_len, u_int32_t timeout)
void scsi_sense_command_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, struct scsi_sense_desc_header *header)
void scsi_sense_info_sbuf(struct sbuf *sb, struct scsi_sense_data *sense, u_int sense_len, uint8_t *cdb, int cdb_len, struct scsi_inquiry_data *inq_data, struct scsi_sense_desc_header *header)
void scsi_fru_sbuf(struct sbuf *sb, uint64_t fru)
void scsi_report_timestamp(struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int8_t pdf, void *buf, u_int32_t alloc_len, u_int8_t sense_len, u_int32_t timeout)
int scsi_devid_is_lun_md5(uint8_t *bufp)
void scsi_sense_only_sbuf(struct scsi_sense_data *sense, u_int sense_len, struct sbuf *sb, char *path_str, struct scsi_inquiry_data *inq_data, uint8_t *cdb, int cdb_len)
int scsi_devid_match(uint8_t *rhs, size_t rhs_len, uint8_t *lhs, size_t lhs_len)
int scsi_static_inquiry_match(caddr_t inqbuffer, caddr_t table_entry)
#define SID_VENDOR_SPECIFIC_0_SIZE
void scsi_read_capacity_16(struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, uint64_t lba, int reladr, int pmi, uint8_t *rcap_buf, int rcap_buf_len, uint8_t sense_len, uint32_t timeout)
int scsi_parse_transportid_iscsi(char *id_str, struct scsi_transportid_header **hdr, unsigned int *alloc_len, struct malloc_type *type, int flags, char *error_str, int error_str_len)
int(* scsi_devid_checkfn_t)(uint8_t *)
u_int8_t sector_count_ext
uint8_t service_action[2]
u_int8_t num_logical_volumes
int(* to_str)(struct sbuf *sb, struct scsi_mam_attribute_header *hdr, uint32_t valid_len, uint32_t flags, uint32_t output_flags, char *error_str, int error_str_len)
int(* parse_str)(char *str, struct scsi_mam_attribute_header *hdr, uint32_t alloc_len, uint32_t flags, char *error_str, int error_str_len)
u_int8_t max_prefetch_ceil[2]
uint8_t cache_seg_size[2]
uint8_t max_pf_ceiling[2]
uint8_t non_cache_seg_size[3]
uint8_t disable_pf_transfer_len[2]
u_int8_t busy_timeout_period[2]
u_int8_t extended_selftest_completion_time[2]
u_int8_t aen_holdoff_period[2]
uint8_t list_identifier[4]
uint8_t page_specific_flags
uint8_t relative_initiator_port[2]
struct scsi_ec_cscd_dtsp dtsp
struct scsi_ec_cscd_dtsp dtsp
uint8_t relative_initiator_port[2]
uint8_t number_of_blocks[2]
uint8_t inline_data_length[4]
uint8_t segment_list_length[4]
uint8_t cscd_list_length[2]
uint8_t header_cscd_type_code
uint8_t cscd_list_length[2]
uint8_t header_cscd_list_length[2]
uint8_t list_identifier[4]
uint8_t segment_list_length[2]
uint8_t inline_data_length[2]
struct scsi_get_lba_status_data_descr descr[]
uint8_t physical_element_health
uint8_t element_identifier[4]
uint8_t physical_element_type
uint8_t num_descriptors[4]
uint8_t starting_element[4]
uint8_t allocation_length[4]
u_int8_t interval_timer[4]
char vendor[SID_VENDOR_SIZE]
u_int8_t additional_length
u_int8_t vendor_specific1[SID_VENDOR_SPECIFIC_1_SIZE]
char product[SID_PRODUCT_SIZE]
u_int8_t vendor_specific0[SID_VENDOR_SPECIFIC_0_SIZE]
char revision[SID_REVISION_SIZE]
uint8_t fuanv_write_int[8]
uint8_t fuanv_read_int[8]
uint8_t fuanv_read_num[8]
struct scsi_log_param_header hdr
uint8_t fuanv_write_num[8]
struct scsi_log_param_header hdr
struct scsi_log_param_header hdr
uint8_t transmitted_lba[8]
struct scsi_log_param_header hdr
struct scsi_log_param_header hdr
struct scsi_logical_block_provisioning_page_descr descr[0]
u_int8_t block_descr_len[2]
struct op_table_entry * op_table
struct scsi_inquiry_pattern inq_pat
struct scsi_per_res_key res_key
uint8_t additional_length[4]
uint8_t rel_trgt_port_id[2]
struct scsi_per_res_in_full_desc desc[]
struct scsi_per_res_in_header header
struct scsi_per_res_in_header header
struct scsi_per_res_key keys[0]
struct scsi_per_res_in_rsrv_data data
struct scsi_per_res_in_header header
u_int8_t transport_id_list[]
struct scsi_per_res_key res_key
u_int8_t scope_spec_address[4]
u_int8_t extent_length[2]
u_int8_t serv_act_res_key[8]
u_int8_t additional_length[4]
u_int8_t serv_act_res_key[8]
struct scsi_per_res_key res_key
u_int8_t rel_trgt_port_id[2]
u_int8_t transport_id_length[4]
uint8_t range_descriptor_length[2]
struct scsi_range_desc desc[]
uint8_t inactivity_timeout[4]
uint8_t list_identifier[4]
u_int8_t first_attribute[2]
uint8_t sense_data_length[2]
uint8_t copy_command_status
uint8_t available_data[4]
uint8_t list_of_implemented_descriptor_type_codes[0]
uint8_t maximum_concurrent_copies
uint8_t maximum_inline_data_length[4]
uint8_t maximum_cscd_descriptor_count[2]
uint8_t total_concurrent_copies[2]
uint8_t maximum_segment_length[4]
uint8_t inline_data_granularity
uint8_t implemented_descriptor_list_length
uint8_t maximum_descriptor_list_length[4]
uint8_t maximum_stream_device_transfer_size[4]
uint8_t held_data_granularity
uint8_t held_data_limit[4]
uint8_t maximum_segment_descriptor_count[2]
uint8_t data_segment_granularity
uint8_t segments_processed[2]
uint8_t copy_command_status
uint8_t transfer_count_units
uint8_t transfer_count[4]
uint8_t available_data[4]
uint8_t available_data[4]
uint8_t response_to_service_action
uint8_t transfer_count[8]
uint8_t transfer_count_units
uint8_t copy_command_status
uint8_t length_of_the_sense_data_field
uint8_t operation_counter[2]
uint8_t sense_data_length
uint8_t segments_processed[2]
uint8_t estimated_status_update_delay[4]
uint8_t extended_copy_completion_status
uint8_t list_identifier[4]
uint8_t element_identifier[4]
uint8_t requested_capacity[8]
uint8_t available_data[4]
uint8_t rod_management_token_list[]
struct scsi_report_luns_lundata luns[0]
struct scsi_report_supported_opcodes_descr descr[0]
uint8_t service_action[2]
struct scsi_report_supported_opcodes_timeout timeout[0]
uint8_t recommended_time[4]
uint8_t requested_service_action[2]
uint8_t security_protocol
uint8_t security_protocol_specific[2]
uint8_t security_protocol_specific[2]
uint8_t security_protocol
uint8_t add_sense_code_qual
u_int8_t add_sense_code_qual
u_int8_t sense_key_spec[3]
u_int8_t cmd_spec_info[4]
uint8_t sense_buf[SSD_FULL_SIZE - 1]
uint8_t integ_check_val[32]
uint8_t completed_cmds[4]
uint8_t add_sense_code_qual
struct scsi_inquiry_pattern inq_pat
struct asc_table_entry * asc_info
struct sense_key_table_entry * sense_key_info
uint8_t actual_retry_count[2]
uint8_t sense_key_spec[3]
uint8_t action_dependent[13]
char vendor[SID_VENDOR_SIZE+1]
char revision[SID_REVISION_SIZE+1]
char product[SID_PRODUCT_SIZE+1]
uint8_t implicit_transition_time
struct scsi_target_port_group_descriptor groups[]
struct scsi_target_port_group_descriptor groups[]
uint8_t relative_target_port_identifier[2]
uint8_t target_port_count
uint8_t target_port_group[2]
struct scsi_target_port_descriptor descriptors[]
uint8_t additional_length[2]
uint8_t additional_length[2]
uint8_t initiator_port_id[SCSI_TRN_RDMA_PORT_LEN]
uint8_t rel_trgt_port_id[2]
uint8_t depopulation_time[4]
uint8_t medium_rotation_rate[2]
u_int8_t max_write_same_length[8]
u_int8_t max_atomic_transfer_length_with_atomic_boundary[4]
u_int8_t opt_unmap_grain[4]
u_int8_t max_txfer_len[4]
u_int8_t max_unmap_blk_cnt[4]
u_int8_t opt_txfer_len_grain[2]
u_int8_t max_atomic_transfer_length[4]
u_int8_t opt_txfer_len[4]
u_int8_t atomic_alignment[4]
u_int8_t unmap_grain_align[4]
u_int8_t max_atomic_boundary_size[4]
u_int8_t atomic_transfer_length_granularity[4]
u_int8_t max_cmp_write_len
u_int8_t max_unmap_lba_cnt[4]
u_int8_t ieee_company_id[3]
uint8_t vendor_specific_id_b[4]
uint8_t vendor_specific_id_a
uint8_t ieee_company_id[3]
uint8_t rel_trgt_port_id[2]
u_int8_t vendor_spec_id[0]
u_int8_t threshold_exponent
struct scsi_vpd_mode_page_policy_descr descr[0]
struct scsi_vpd_id_descriptor target_port_descriptors[0]
uint8_t target_port_descriptors_length[2]
uint8_t initiator_transportid_length[2]
uint8_t relative_port_id[2]
uint8_t initiator_transportid[0]
struct scsi_vpd_port_designation design[]
u_int8_t list[SVPD_SUPPORTED_PAGES_SIZE]
uint8_t maximum_inactivity_timeout[4]
uint8_t default_inactivity_timeout[4]
uint8_t maximum_ranges[2]
uint8_t maximum_token_transfer_size[8]
uint8_t optimal_transfer_count[8]
uint8_t vendor_specific[6]
uint8_t data_segment_granularity
uint8_t inline_data_granularity
uint8_t maximum_identified_concurrent_copies[4]
uint8_t total_concurrent_copies[4]
uint8_t maximum_segment_length[4]
uint8_t maximum_descriptor_list_length[4]
uint8_t maximum_inline_data_length[4]
uint8_t maximum_cscd_descriptor_count[2]
uint8_t maximum_segment_descriptor_count[2]
uint8_t optimal_bytes_from_token_per_segment[8]
uint8_t optimal_bytes_to_token_per_segment[8]
uint8_t optimal_length_granularity[2]
uint8_t type_specific_features_length[2]
uint8_t type_specific_features[0]
uint8_t minimum_token_lifetime[4]
uint8_t maximum_token_inactivity_timeout[4]
uint8_t maximum_token_lifetime[4]
uint8_t supported_service_actions[0]
struct scsi_vpd_tpc_descriptor_sc_descr descr[]
uint8_t supported_descriptor_codes[]
uint8_t supported_descriptor_ids[]
uint8_t rod_type_descriptors[0]
uint8_t rod_type_descriptors_length[2]
uint8_t preference_indicator[2]
struct scsi_vpd_tpc_descriptor descr[]
u_int8_t serial_num[SVPD_SERIAL_NUM_SIZE]
uint8_t optimal_seq_zones[4]
uint8_t max_seq_req_zones[4]
uint8_t optimal_nonseq_zones[4]
struct scsi_range_desc desc[]
uint8_t range_descriptor_length[2]
uint8_t offset_into_rod[8]
uint8_t list_identifier[4]