FreeBSD kernel CAM code
scsi_da.h File Reference
#include <sys/cdefs.h>
Include dependency graph for scsi_da.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  scsi_rezero_unit
 
struct  scsi_format_unit
 
struct  scsi_reassign_blocks
 
struct  scsi_read_defect_data_10
 
struct  scsi_sanitize
 
struct  scsi_sanitize_parameter_list
 
struct  scsi_read_defect_data_12
 
struct  scsi_zbc_out
 
struct  scsi_zbc_in
 
struct  scsi_report_zones_desc
 
struct  scsi_report_zones_hdr
 
struct  format_defect_list_header
 
struct  format_ipat_descriptor
 
struct  scsi_read_format_capacities
 
struct  scsi_verify_10
 
struct  scsi_verify_12
 
struct  scsi_verify_16
 
struct  scsi_compare_and_write
 
struct  scsi_write_and_verify
 
struct  format_capacity_list_header
 
struct  format_capacity_descriptor
 
struct  scsi_reassign_blocks_data
 
struct  scsi_read_defect_data_hdr_10
 
struct  scsi_defect_desc_block
 
struct  scsi_defect_desc_long_block
 
struct  scsi_defect_desc_bytes_from_index
 
struct  scsi_defect_desc_phys_sector
 
struct  scsi_read_defect_data_hdr_12
 
union  disk_pages
 
struct  disk_pages::format_device_page
 
struct  disk_pages::rigid_geometry_page
 
struct  disk_pages::flexible_disk_page
 
struct  scsi_format_page
 
struct  scsi_rigid_disk_page
 
struct  scsi_da_rw_recovery_page
 
struct  scsi_da_verify_recovery_page
 

Macros

#define SRZU_LUN_MASK   0xE0
 
#define FU_FORMAT_MASK   SRDD10_DLIST_FORMAT_MASK
 
#define FU_BLOCK_FORMAT   SRDD10_BLOCK_FORMAT
 
#define FU_BFI_FORMAT   SRDD10_BYTES_FROM_INDEX_FORMAT
 
#define FU_PHYS_FORMAT   SRDD10_PHYSICAL_SECTOR_FORMAT
 
#define FU_CMPLST   0x08
 
#define FU_FMT_DATA   0x10
 
#define SRDD10_GLIST   0x08
 
#define SRDD10_PLIST   0x10
 
#define SRDD10_DLIST_FORMAT_MASK   0x07
 
#define SRDD10_BLOCK_FORMAT   0x00
 
#define SRDD10_EXT_BFI_FORMAT   0x01
 
#define SRDD10_EXT_PHYS_FORMAT   0x02
 
#define SRDD10_LONG_BLOCK_FORMAT   0x03
 
#define SRDD10_BYTES_FROM_INDEX_FORMAT   0x04
 
#define SRDD10_PHYSICAL_SECTOR_FORMAT   0x05
 
#define SRDD10_VENDOR_FORMAT   0x06
 
#define SRDD10_MAX_LENGTH   0xffff
 
#define SSZ_SERVICE_ACTION_OVERWRITE   0x01
 
#define SSZ_SERVICE_ACTION_BLOCK_ERASE   0x02
 
#define SSZ_SERVICE_ACTION_CRYPTO_ERASE   0x03
 
#define SSZ_SERVICE_ACTION_EXIT_MODE_FAILURE   0x1F
 
#define SSZ_UNRESTRICTED_EXIT   0x20
 
#define SSZ_IMMED   0x80
 
#define SSZPL_INVERT   0x80
 
#define SSZPL_MAX_PATTERN_LENGTH   65535
 
#define SRDD12_GLIST   0x08
 
#define SRDD12_PLIST   0x10
 
#define SRDD12_DLIST_FORMAT_MASK   0x07
 
#define SRDD12_BLOCK_FORMAT   SRDD10_BLOCK_FORMAT
 
#define SRDD12_BYTES_FROM_INDEX_FORMAT   SRDD10_BYTES_FROM_INDEX_FORMAT
 
#define SRDD12_PHYSICAL_SECTOR_FORMAT   SRDD10_PHYSICAL_SECTOR_FORMAT
 
#define SRDD12_MAX_LENGTH   0xffffffff
 
#define ZBC_OUT_SA_CLOSE   0x01
 
#define ZBC_OUT_SA_FINISH   0x02
 
#define ZBC_OUT_SA_OPEN   0x03
 
#define ZBC_OUT_SA_RWP   0x04
 
#define ZBC_OUT_ALL   0x01
 
#define ZBC_IN_SA_REPORT_ZONES   0x00
 
#define ZBC_IN_PARTIAL   0x80
 
#define ZBC_IN_REP_ALL_ZONES   0x00
 
#define ZBC_IN_REP_EMPTY   0x01
 
#define ZBC_IN_REP_IMP_OPEN   0x02
 
#define ZBC_IN_REP_EXP_OPEN   0x03
 
#define ZBC_IN_REP_CLOSED   0x04
 
#define ZBC_IN_REP_FULL   0x05
 
#define ZBC_IN_REP_READONLY   0x06
 
#define ZBC_IN_REP_OFFLINE   0x07
 
#define ZBC_IN_REP_RESET   0x10
 
#define ZBC_IN_REP_NON_SEQ   0x11
 
#define ZBC_IN_REP_NON_WP   0x3f
 
#define ZBC_IN_REP_MASK   0x3f
 
#define SRZ_TYPE_CONVENTIONAL   0x01
 
#define SRZ_TYPE_SEQ_REQUIRED   0x02
 
#define SRZ_TYPE_SEQ_PREFERRED   0x03
 
#define SRZ_TYPE_MASK   0x0f
 
#define SRZ_ZONE_COND_SHIFT   4
 
#define SRZ_ZONE_COND_MASK   0xf0
 
#define SRZ_ZONE_COND_NWP   0x00
 
#define SRZ_ZONE_COND_EMPTY   0x10
 
#define SRZ_ZONE_COND_IMP_OPEN   0x20
 
#define SRZ_ZONE_COND_EXP_OPEN   0x30
 
#define SRZ_ZONE_COND_CLOSED   0x40
 
#define SRZ_ZONE_COND_READONLY   0xd0
 
#define SRZ_ZONE_COND_FULL   0xe0
 
#define SRZ_ZONE_COND_OFFLINE   0xf0
 
#define SRZ_ZONE_NON_SEQ   0x02
 
#define SRZ_ZONE_RESET   0x01
 
#define SRZ_SAME_ALL_DIFFERENT   0x00 /* Lengths and types vary */
 
#define SRZ_SAME_ALL_SAME   0x01 /* Lengths and types the same */
 
#define SRZ_SAME_LAST_DIFFERENT   0x02 /* Types same, last length varies */
 
#define SRZ_SAME_TYPES_DIFFERENT   0x03 /* Types vary, length the same */
 
#define SRZ_SAME_MASK   0x0f
 
#define REZERO_UNIT   0x01
 
#define FORMAT_UNIT   0x04
 
#define REASSIGN_BLOCKS   0x07
 
#define MODE_SELECT   0x15
 
#define MODE_SENSE   0x1a
 
#define READ_FORMAT_CAPACITIES   0x23
 
#define WRITE_AND_VERIFY   0x2e
 
#define VERIFY   0x2f
 
#define READ_DEFECT_DATA_10   0x37
 
#define SANITIZE   0x48
 
#define ZBC_OUT   0x94
 
#define ZBC_IN   0x95
 
#define READ_DEFECT_DATA_12   0xb7
 
#define FU_DLH_VS   0x01
 
#define FU_DLH_IMMED   0x02
 
#define FU_DLH_DSP   0x04
 
#define FU_DLH_IP   0x08
 
#define FU_DLH_STPF   0x10
 
#define FU_DLH_DCRT   0x20
 
#define FU_DLH_DPRY   0x40
 
#define FU_DLH_FOV   0x80
 
#define FU_INIT_NO_HDR   0x00
 
#define FU_INIT_LBA_MSB   0x40
 
#define FU_INIT_LBA_EACH   0x80
 
#define FU_INIT_SI   0x20
 
#define FU_INIT_PAT_DEFAULT   0x00
 
#define FU_INIT_PAT_REPEAT   0x01
 
#define SRFC_LUN_MASK   0xE0
 
#define SVFY_LUN_MASK   0xE0
 
#define SVFY_RELADR   0x01
 
#define SVFY_BYTCHK   0x02
 
#define SVFY_DPO   0x10
 
#define SWVY_LUN_MASK   0xE0
 
#define SWVY_RELADR   0x01
 
#define SWVY_BYTECHK   0x02
 
#define SWVY_DPO   0x10
 
#define FCD_CODE_MASK   0x03 /* mask for code field above */
 
#define FCD_UNFORMATTED
 
#define FCD_FORMATTED
 
#define FCD_NOMEDIA
 
#define SRDDH10_GLIST   0x08
 
#define SRDDH10_PLIST   0x10
 
#define SRDDH10_DLIST_FORMAT_MASK   0x07
 
#define SRDDH10_BLOCK_FORMAT   0x00
 
#define SRDDH10_BYTES_FROM_INDEX_FORMAT   0x04
 
#define SRDDH10_PHYSICAL_SECTOR_FORMAT   0x05
 
#define SRDDH10_MAX_LENGTH
 
#define SDD_EXT_BFI_MADS   0x80000000
 
#define SDD_EXT_BFI_FLAG_MASK   0xf0000000
 
#define SDD_EXT_BFI_ENTIRE_TRACK   0x0fffffff
 
#define SDD_EXT_PHYS_MADS   0x80000000
 
#define SDD_EXT_PHYS_FLAG_MASK   0xf0000000
 
#define SDD_EXT_PHYS_ENTIRE_TRACK   0x0fffffff
 
#define SRDDH12_GLIST   0x08
 
#define SRDDH12_PLIST   0x10
 
#define SRDDH12_DLIST_FORMAT_MASK   0x07
 
#define SRDDH12_BLOCK_FORMAT   0x00
 
#define SRDDH12_BYTES_FROM_INDEX_FORMAT   0x04
 
#define SRDDH12_PHYSICAL_SECTOR_FORMAT   0x05
 
#define SRDDH12_MAX_LENGTH
 
#define SMS_FORMAT_DEVICE_PAGE   0x03 /* only 6 bits valid */
 
#define SMS_FORMAT_DEVICE_PLEN   0x16
 
#define DISK_FMT_SURF   0x10
 
#define DISK_FMT_RMB   0x20
 
#define DISK_FMT_HSEC   0x40
 
#define DISK_FMT_SSEC   0x80
 
#define SMS_RIGID_GEOMETRY_PAGE   0x04
 
#define SMS_RIGID_GEOMETRY_PLEN   0x16
 
#define SMS_FLEXIBLE_GEOMETRY_PAGE   0x05
 
#define SMS_FLEXIBLE_GEOMETRY_PLEN   0x1E
 
#define SFP_SSEC   0x80
 
#define SFP_HSEC   0x40
 
#define SFP_RMB   0x20
 
#define SFP_SURF   0x10
 
#define SMS_RIGID_DISK_PAGE   0x04
 
#define SRDP_RPL_DISABLED   0x00
 
#define SRDP_RPL_SLAVE   0x01
 
#define SRDP_RPL_MASTER   0x02
 
#define SRDP_RPL_MASTER_CONTROL   0x03
 
#define SMS_RW_ERROR_RECOVERY_PAGE   0x01
 
#define SMS_RWER_AWRE   0x80
 
#define SMS_RWER_ARRE   0x40
 
#define SMS_RWER_TB   0x20
 
#define SMS_RWER_RC   0x10
 
#define SMS_RWER_EER   0x08
 
#define SMS_RWER_PER   0x04
 
#define SMS_RWER_DTE   0x02
 
#define SMS_RWER_DCR   0x01
 
#define SMS_RWER_LBPERE   0x80
 
#define SMS_VERIFY_ERROR_RECOVERY_PAGE   0x07
 
#define SMS_VER_EER   0x08
 
#define SMS_VER_PER   0x04
 
#define SMS_VER_DTE   0x02
 
#define SMS_VER_DCR   0x01
 

Functions

__BEGIN_DECLS void scsi_zbc_out (struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, uint8_t service_action, uint64_t zone_id, uint8_t zone_flags, uint8_t *data_ptr, uint32_t dxfer_len, uint8_t sense_len, uint32_t timeout)
 
void scsi_zbc_in (struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, uint8_t service_action, uint64_t zone_start_lba, uint8_t zone_options, uint8_t *data_ptr, uint32_t dxfer_len, uint8_t sense_len, uint32_t timeout)
 
int scsi_ata_zac_mgmt_out (struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, int use_ncq, uint8_t zm_action, uint64_t zone_id, uint8_t zone_flags, uint8_t *data_ptr, uint32_t dxfer_len, uint8_t *cdb_storage, size_t cdb_storage_len, uint8_t sense_len, uint32_t timeout)
 
int scsi_ata_zac_mgmt_in (struct ccb_scsiio *csio, uint32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), uint8_t tag_action, int use_ncq, uint8_t zm_action, uint64_t zone_id, uint8_t zone_flags, uint8_t *data_ptr, uint32_t dxfer_len, uint8_t *cdb_storage, size_t cdb_storage_len, uint8_t sense_len, uint32_t timeout)
 

Macro Definition Documentation

◆ DISK_FMT_HSEC

#define DISK_FMT_HSEC   0x40

Definition at line 487 of file scsi_da.h.

◆ DISK_FMT_RMB

#define DISK_FMT_RMB   0x20

Definition at line 486 of file scsi_da.h.

◆ DISK_FMT_SSEC

#define DISK_FMT_SSEC   0x80

Definition at line 488 of file scsi_da.h.

◆ DISK_FMT_SURF

#define DISK_FMT_SURF   0x10

Definition at line 485 of file scsi_da.h.

◆ FCD_CODE_MASK

#define FCD_CODE_MASK   0x03 /* mask for code field above */

Definition at line 377 of file scsi_da.h.

◆ FCD_FORMATTED

#define FCD_FORMATTED
Value:
0x02 /* formatted media present,
* current capacity returned */

Definition at line 379 of file scsi_da.h.

◆ FCD_NOMEDIA

#define FCD_NOMEDIA
Value:
0x03 /* no media present,
* maximum device capacity returned */

Definition at line 380 of file scsi_da.h.

◆ FCD_UNFORMATTED

#define FCD_UNFORMATTED
Value:
0x01 /* unformatted media present,
* maximum capacity returned */

Definition at line 378 of file scsi_da.h.

◆ FORMAT_UNIT

#define FORMAT_UNIT   0x04

Definition at line 239 of file scsi_da.h.

◆ FU_BFI_FORMAT

#define FU_BFI_FORMAT   SRDD10_BYTES_FROM_INDEX_FORMAT

Definition at line 76 of file scsi_da.h.

◆ FU_BLOCK_FORMAT

#define FU_BLOCK_FORMAT   SRDD10_BLOCK_FORMAT

Definition at line 75 of file scsi_da.h.

◆ FU_CMPLST

#define FU_CMPLST   0x08

Definition at line 78 of file scsi_da.h.

◆ FU_DLH_DCRT

#define FU_DLH_DCRT   0x20

Definition at line 261 of file scsi_da.h.

◆ FU_DLH_DPRY

#define FU_DLH_DPRY   0x40

Definition at line 262 of file scsi_da.h.

◆ FU_DLH_DSP

#define FU_DLH_DSP   0x04

Definition at line 258 of file scsi_da.h.

◆ FU_DLH_FOV

#define FU_DLH_FOV   0x80

Definition at line 263 of file scsi_da.h.

◆ FU_DLH_IMMED

#define FU_DLH_IMMED   0x02

Definition at line 257 of file scsi_da.h.

◆ FU_DLH_IP

#define FU_DLH_IP   0x08

Definition at line 259 of file scsi_da.h.

◆ FU_DLH_STPF

#define FU_DLH_STPF   0x10

Definition at line 260 of file scsi_da.h.

◆ FU_DLH_VS

#define FU_DLH_VS   0x01

Definition at line 256 of file scsi_da.h.

◆ FU_FMT_DATA

#define FU_FMT_DATA   0x10

Definition at line 79 of file scsi_da.h.

◆ FU_FORMAT_MASK

#define FU_FORMAT_MASK   SRDD10_DLIST_FORMAT_MASK

Definition at line 74 of file scsi_da.h.

◆ FU_INIT_LBA_EACH

#define FU_INIT_LBA_EACH   0x80

Definition at line 272 of file scsi_da.h.

◆ FU_INIT_LBA_MSB

#define FU_INIT_LBA_MSB   0x40

Definition at line 271 of file scsi_da.h.

◆ FU_INIT_NO_HDR

#define FU_INIT_NO_HDR   0x00

Definition at line 270 of file scsi_da.h.

◆ FU_INIT_PAT_DEFAULT

#define FU_INIT_PAT_DEFAULT   0x00

Definition at line 275 of file scsi_da.h.

◆ FU_INIT_PAT_REPEAT

#define FU_INIT_PAT_REPEAT   0x01

Definition at line 276 of file scsi_da.h.

◆ FU_INIT_SI

#define FU_INIT_SI   0x20

Definition at line 273 of file scsi_da.h.

◆ FU_PHYS_FORMAT

#define FU_PHYS_FORMAT   SRDD10_PHYSICAL_SECTOR_FORMAT

Definition at line 77 of file scsi_da.h.

◆ MODE_SELECT

#define MODE_SELECT   0x15

Definition at line 241 of file scsi_da.h.

◆ MODE_SENSE

#define MODE_SENSE   0x1a

Definition at line 242 of file scsi_da.h.

◆ READ_DEFECT_DATA_10

#define READ_DEFECT_DATA_10   0x37

Definition at line 246 of file scsi_da.h.

◆ READ_DEFECT_DATA_12

#define READ_DEFECT_DATA_12   0xb7

Definition at line 250 of file scsi_da.h.

◆ READ_FORMAT_CAPACITIES

#define READ_FORMAT_CAPACITIES   0x23

Definition at line 243 of file scsi_da.h.

◆ REASSIGN_BLOCKS

#define REASSIGN_BLOCKS   0x07

Definition at line 240 of file scsi_da.h.

◆ REZERO_UNIT

#define REZERO_UNIT   0x01

Definition at line 238 of file scsi_da.h.

◆ SANITIZE

#define SANITIZE   0x48

Definition at line 247 of file scsi_da.h.

◆ SDD_EXT_BFI_ENTIRE_TRACK

#define SDD_EXT_BFI_ENTIRE_TRACK   0x0fffffff

Definition at line 429 of file scsi_da.h.

◆ SDD_EXT_BFI_FLAG_MASK

#define SDD_EXT_BFI_FLAG_MASK   0xf0000000

Definition at line 428 of file scsi_da.h.

◆ SDD_EXT_BFI_MADS

#define SDD_EXT_BFI_MADS   0x80000000

Definition at line 427 of file scsi_da.h.

◆ SDD_EXT_PHYS_ENTIRE_TRACK

#define SDD_EXT_PHYS_ENTIRE_TRACK   0x0fffffff

Definition at line 439 of file scsi_da.h.

◆ SDD_EXT_PHYS_FLAG_MASK

#define SDD_EXT_PHYS_FLAG_MASK   0xf0000000

Definition at line 438 of file scsi_da.h.

◆ SDD_EXT_PHYS_MADS

#define SDD_EXT_PHYS_MADS   0x80000000

Definition at line 437 of file scsi_da.h.

◆ SFP_HSEC

#define SFP_HSEC   0x40

Definition at line 577 of file scsi_da.h.

◆ SFP_RMB

#define SFP_RMB   0x20

Definition at line 578 of file scsi_da.h.

◆ SFP_SSEC

#define SFP_SSEC   0x80

Definition at line 576 of file scsi_da.h.

◆ SFP_SURF

#define SFP_SURF   0x10

Definition at line 579 of file scsi_da.h.

◆ SMS_FLEXIBLE_GEOMETRY_PAGE

#define SMS_FLEXIBLE_GEOMETRY_PAGE   0x05

Definition at line 523 of file scsi_da.h.

◆ SMS_FLEXIBLE_GEOMETRY_PLEN

#define SMS_FLEXIBLE_GEOMETRY_PLEN   0x1E

Definition at line 525 of file scsi_da.h.

◆ SMS_FORMAT_DEVICE_PAGE

#define SMS_FORMAT_DEVICE_PAGE   0x03 /* only 6 bits valid */

Definition at line 463 of file scsi_da.h.

◆ SMS_FORMAT_DEVICE_PLEN

#define SMS_FORMAT_DEVICE_PLEN   0x16

Definition at line 465 of file scsi_da.h.

◆ SMS_RIGID_DISK_PAGE

#define SMS_RIGID_DISK_PAGE   0x04

Definition at line 589 of file scsi_da.h.

◆ SMS_RIGID_GEOMETRY_PAGE

#define SMS_RIGID_GEOMETRY_PAGE   0x04

Definition at line 495 of file scsi_da.h.

◆ SMS_RIGID_GEOMETRY_PLEN

#define SMS_RIGID_GEOMETRY_PLEN   0x16

Definition at line 497 of file scsi_da.h.

◆ SMS_RW_ERROR_RECOVERY_PAGE

#define SMS_RW_ERROR_RECOVERY_PAGE   0x01

Definition at line 610 of file scsi_da.h.

◆ SMS_RWER_ARRE

#define SMS_RWER_ARRE   0x40

Definition at line 614 of file scsi_da.h.

◆ SMS_RWER_AWRE

#define SMS_RWER_AWRE   0x80

Definition at line 613 of file scsi_da.h.

◆ SMS_RWER_DCR

#define SMS_RWER_DCR   0x01

Definition at line 620 of file scsi_da.h.

◆ SMS_RWER_DTE

#define SMS_RWER_DTE   0x02

Definition at line 619 of file scsi_da.h.

◆ SMS_RWER_EER

#define SMS_RWER_EER   0x08

Definition at line 617 of file scsi_da.h.

◆ SMS_RWER_LBPERE

#define SMS_RWER_LBPERE   0x80

Definition at line 626 of file scsi_da.h.

◆ SMS_RWER_PER

#define SMS_RWER_PER   0x04

Definition at line 618 of file scsi_da.h.

◆ SMS_RWER_RC

#define SMS_RWER_RC   0x10

Definition at line 616 of file scsi_da.h.

◆ SMS_RWER_TB

#define SMS_RWER_TB   0x20

Definition at line 615 of file scsi_da.h.

◆ SMS_VER_DCR

#define SMS_VER_DCR   0x01

Definition at line 640 of file scsi_da.h.

◆ SMS_VER_DTE

#define SMS_VER_DTE   0x02

Definition at line 639 of file scsi_da.h.

◆ SMS_VER_EER

#define SMS_VER_EER   0x08

Definition at line 637 of file scsi_da.h.

◆ SMS_VER_PER

#define SMS_VER_PER   0x04

Definition at line 638 of file scsi_da.h.

◆ SMS_VERIFY_ERROR_RECOVERY_PAGE

#define SMS_VERIFY_ERROR_RECOVERY_PAGE   0x07

Definition at line 634 of file scsi_da.h.

◆ SRDD10_BLOCK_FORMAT

#define SRDD10_BLOCK_FORMAT   0x00

Definition at line 100 of file scsi_da.h.

◆ SRDD10_BYTES_FROM_INDEX_FORMAT

#define SRDD10_BYTES_FROM_INDEX_FORMAT   0x04

Definition at line 104 of file scsi_da.h.

◆ SRDD10_DLIST_FORMAT_MASK

#define SRDD10_DLIST_FORMAT_MASK   0x07

Definition at line 99 of file scsi_da.h.

◆ SRDD10_EXT_BFI_FORMAT

#define SRDD10_EXT_BFI_FORMAT   0x01

Definition at line 101 of file scsi_da.h.

◆ SRDD10_EXT_PHYS_FORMAT

#define SRDD10_EXT_PHYS_FORMAT   0x02

Definition at line 102 of file scsi_da.h.

◆ SRDD10_GLIST

#define SRDD10_GLIST   0x08

Definition at line 97 of file scsi_da.h.

◆ SRDD10_LONG_BLOCK_FORMAT

#define SRDD10_LONG_BLOCK_FORMAT   0x03

Definition at line 103 of file scsi_da.h.

◆ SRDD10_MAX_LENGTH

#define SRDD10_MAX_LENGTH   0xffff

Definition at line 110 of file scsi_da.h.

◆ SRDD10_PHYSICAL_SECTOR_FORMAT

#define SRDD10_PHYSICAL_SECTOR_FORMAT   0x05

Definition at line 105 of file scsi_da.h.

◆ SRDD10_PLIST

#define SRDD10_PLIST   0x10

Definition at line 98 of file scsi_da.h.

◆ SRDD10_VENDOR_FORMAT

#define SRDD10_VENDOR_FORMAT   0x06

Definition at line 106 of file scsi_da.h.

◆ SRDD12_BLOCK_FORMAT

#define SRDD12_BLOCK_FORMAT   SRDD10_BLOCK_FORMAT

Definition at line 145 of file scsi_da.h.

◆ SRDD12_BYTES_FROM_INDEX_FORMAT

#define SRDD12_BYTES_FROM_INDEX_FORMAT   SRDD10_BYTES_FROM_INDEX_FORMAT

Definition at line 146 of file scsi_da.h.

◆ SRDD12_DLIST_FORMAT_MASK

#define SRDD12_DLIST_FORMAT_MASK   0x07

Definition at line 144 of file scsi_da.h.

◆ SRDD12_GLIST

#define SRDD12_GLIST   0x08

Definition at line 142 of file scsi_da.h.

◆ SRDD12_MAX_LENGTH

#define SRDD12_MAX_LENGTH   0xffffffff

Definition at line 151 of file scsi_da.h.

◆ SRDD12_PHYSICAL_SECTOR_FORMAT

#define SRDD12_PHYSICAL_SECTOR_FORMAT   SRDD10_PHYSICAL_SECTOR_FORMAT

Definition at line 147 of file scsi_da.h.

◆ SRDD12_PLIST

#define SRDD12_PLIST   0x10

Definition at line 143 of file scsi_da.h.

◆ SRDDH10_BLOCK_FORMAT

#define SRDDH10_BLOCK_FORMAT   0x00

Definition at line 404 of file scsi_da.h.

◆ SRDDH10_BYTES_FROM_INDEX_FORMAT

#define SRDDH10_BYTES_FROM_INDEX_FORMAT   0x04

Definition at line 405 of file scsi_da.h.

◆ SRDDH10_DLIST_FORMAT_MASK

#define SRDDH10_DLIST_FORMAT_MASK   0x07

Definition at line 403 of file scsi_da.h.

◆ SRDDH10_GLIST

#define SRDDH10_GLIST   0x08

Definition at line 401 of file scsi_da.h.

◆ SRDDH10_MAX_LENGTH

#define SRDDH10_MAX_LENGTH
Value:

Definition at line 409 of file scsi_da.h.

◆ SRDDH10_PHYSICAL_SECTOR_FORMAT

#define SRDDH10_PHYSICAL_SECTOR_FORMAT   0x05

Definition at line 406 of file scsi_da.h.

◆ SRDDH10_PLIST

#define SRDDH10_PLIST   0x10

Definition at line 402 of file scsi_da.h.

◆ SRDDH12_BLOCK_FORMAT

#define SRDDH12_BLOCK_FORMAT   0x00

Definition at line 449 of file scsi_da.h.

◆ SRDDH12_BYTES_FROM_INDEX_FORMAT

#define SRDDH12_BYTES_FROM_INDEX_FORMAT   0x04

Definition at line 450 of file scsi_da.h.

◆ SRDDH12_DLIST_FORMAT_MASK

#define SRDDH12_DLIST_FORMAT_MASK   0x07

Definition at line 448 of file scsi_da.h.

◆ SRDDH12_GLIST

#define SRDDH12_GLIST   0x08

Definition at line 446 of file scsi_da.h.

◆ SRDDH12_MAX_LENGTH

#define SRDDH12_MAX_LENGTH
Value:

Definition at line 455 of file scsi_da.h.

◆ SRDDH12_PHYSICAL_SECTOR_FORMAT

#define SRDDH12_PHYSICAL_SECTOR_FORMAT   0x05

Definition at line 451 of file scsi_da.h.

◆ SRDDH12_PLIST

#define SRDDH12_PLIST   0x10

Definition at line 447 of file scsi_da.h.

◆ SRDP_RPL_DISABLED

#define SRDP_RPL_DISABLED   0x00

Definition at line 598 of file scsi_da.h.

◆ SRDP_RPL_MASTER

#define SRDP_RPL_MASTER   0x02

Definition at line 600 of file scsi_da.h.

◆ SRDP_RPL_MASTER_CONTROL

#define SRDP_RPL_MASTER_CONTROL   0x03

Definition at line 601 of file scsi_da.h.

◆ SRDP_RPL_SLAVE

#define SRDP_RPL_SLAVE   0x01

Definition at line 599 of file scsi_da.h.

◆ SRFC_LUN_MASK

#define SRFC_LUN_MASK   0xE0

Definition at line 284 of file scsi_da.h.

◆ SRZ_SAME_ALL_DIFFERENT

#define SRZ_SAME_ALL_DIFFERENT   0x00 /* Lengths and types vary */

Definition at line 224 of file scsi_da.h.

◆ SRZ_SAME_ALL_SAME

#define SRZ_SAME_ALL_SAME   0x01 /* Lengths and types the same */

Definition at line 225 of file scsi_da.h.

◆ SRZ_SAME_LAST_DIFFERENT

#define SRZ_SAME_LAST_DIFFERENT   0x02 /* Types same, last length varies */

Definition at line 226 of file scsi_da.h.

◆ SRZ_SAME_MASK

#define SRZ_SAME_MASK   0x0f

Definition at line 228 of file scsi_da.h.

◆ SRZ_SAME_TYPES_DIFFERENT

#define SRZ_SAME_TYPES_DIFFERENT   0x03 /* Types vary, length the same */

Definition at line 227 of file scsi_da.h.

◆ SRZ_TYPE_CONVENTIONAL

#define SRZ_TYPE_CONVENTIONAL   0x01

Definition at line 197 of file scsi_da.h.

◆ SRZ_TYPE_MASK

#define SRZ_TYPE_MASK   0x0f

Definition at line 200 of file scsi_da.h.

◆ SRZ_TYPE_SEQ_PREFERRED

#define SRZ_TYPE_SEQ_PREFERRED   0x03

Definition at line 199 of file scsi_da.h.

◆ SRZ_TYPE_SEQ_REQUIRED

#define SRZ_TYPE_SEQ_REQUIRED   0x02

Definition at line 198 of file scsi_da.h.

◆ SRZ_ZONE_COND_CLOSED

#define SRZ_ZONE_COND_CLOSED   0x40

Definition at line 208 of file scsi_da.h.

◆ SRZ_ZONE_COND_EMPTY

#define SRZ_ZONE_COND_EMPTY   0x10

Definition at line 205 of file scsi_da.h.

◆ SRZ_ZONE_COND_EXP_OPEN

#define SRZ_ZONE_COND_EXP_OPEN   0x30

Definition at line 207 of file scsi_da.h.

◆ SRZ_ZONE_COND_FULL

#define SRZ_ZONE_COND_FULL   0xe0

Definition at line 210 of file scsi_da.h.

◆ SRZ_ZONE_COND_IMP_OPEN

#define SRZ_ZONE_COND_IMP_OPEN   0x20

Definition at line 206 of file scsi_da.h.

◆ SRZ_ZONE_COND_MASK

#define SRZ_ZONE_COND_MASK   0xf0

Definition at line 203 of file scsi_da.h.

◆ SRZ_ZONE_COND_NWP

#define SRZ_ZONE_COND_NWP   0x00

Definition at line 204 of file scsi_da.h.

◆ SRZ_ZONE_COND_OFFLINE

#define SRZ_ZONE_COND_OFFLINE   0xf0

Definition at line 211 of file scsi_da.h.

◆ SRZ_ZONE_COND_READONLY

#define SRZ_ZONE_COND_READONLY   0xd0

Definition at line 209 of file scsi_da.h.

◆ SRZ_ZONE_COND_SHIFT

#define SRZ_ZONE_COND_SHIFT   4

Definition at line 202 of file scsi_da.h.

◆ SRZ_ZONE_NON_SEQ

#define SRZ_ZONE_NON_SEQ   0x02

Definition at line 212 of file scsi_da.h.

◆ SRZ_ZONE_RESET

#define SRZ_ZONE_RESET   0x01

Definition at line 213 of file scsi_da.h.

◆ SRZU_LUN_MASK

#define SRZU_LUN_MASK   0xE0

Definition at line 60 of file scsi_da.h.

◆ SSZ_IMMED

#define SSZ_IMMED   0x80

Definition at line 123 of file scsi_da.h.

◆ SSZ_SERVICE_ACTION_BLOCK_ERASE

#define SSZ_SERVICE_ACTION_BLOCK_ERASE   0x02

Definition at line 119 of file scsi_da.h.

◆ SSZ_SERVICE_ACTION_CRYPTO_ERASE

#define SSZ_SERVICE_ACTION_CRYPTO_ERASE   0x03

Definition at line 120 of file scsi_da.h.

◆ SSZ_SERVICE_ACTION_EXIT_MODE_FAILURE

#define SSZ_SERVICE_ACTION_EXIT_MODE_FAILURE   0x1F

Definition at line 121 of file scsi_da.h.

◆ SSZ_SERVICE_ACTION_OVERWRITE

#define SSZ_SERVICE_ACTION_OVERWRITE   0x01

Definition at line 118 of file scsi_da.h.

◆ SSZ_UNRESTRICTED_EXIT

#define SSZ_UNRESTRICTED_EXIT   0x20

Definition at line 122 of file scsi_da.h.

◆ SSZPL_INVERT

#define SSZPL_INVERT   0x80

Definition at line 132 of file scsi_da.h.

◆ SSZPL_MAX_PATTERN_LENGTH

#define SSZPL_MAX_PATTERN_LENGTH   65535

Definition at line 136 of file scsi_da.h.

◆ SVFY_BYTCHK

#define SVFY_BYTCHK   0x02

Definition at line 296 of file scsi_da.h.

◆ SVFY_DPO

#define SVFY_DPO   0x10

Definition at line 297 of file scsi_da.h.

◆ SVFY_LUN_MASK

#define SVFY_LUN_MASK   0xE0

Definition at line 294 of file scsi_da.h.

◆ SVFY_RELADR

#define SVFY_RELADR   0x01

Definition at line 295 of file scsi_da.h.

◆ SWVY_BYTECHK

#define SWVY_BYTECHK   0x02

Definition at line 341 of file scsi_da.h.

◆ SWVY_DPO

#define SWVY_DPO   0x10

Definition at line 342 of file scsi_da.h.

◆ SWVY_LUN_MASK

#define SWVY_LUN_MASK   0xE0

Definition at line 339 of file scsi_da.h.

◆ SWVY_RELADR

#define SWVY_RELADR   0x01

Definition at line 340 of file scsi_da.h.

◆ VERIFY

#define VERIFY   0x2f

Definition at line 245 of file scsi_da.h.

◆ WRITE_AND_VERIFY

#define WRITE_AND_VERIFY   0x2e

Definition at line 244 of file scsi_da.h.

◆ ZBC_IN

#define ZBC_IN   0x95

Definition at line 249 of file scsi_da.h.

◆ ZBC_IN_PARTIAL

#define ZBC_IN_PARTIAL   0x80

Definition at line 179 of file scsi_da.h.

◆ ZBC_IN_REP_ALL_ZONES

#define ZBC_IN_REP_ALL_ZONES   0x00

Definition at line 180 of file scsi_da.h.

◆ ZBC_IN_REP_CLOSED

#define ZBC_IN_REP_CLOSED   0x04

Definition at line 184 of file scsi_da.h.

◆ ZBC_IN_REP_EMPTY

#define ZBC_IN_REP_EMPTY   0x01

Definition at line 181 of file scsi_da.h.

◆ ZBC_IN_REP_EXP_OPEN

#define ZBC_IN_REP_EXP_OPEN   0x03

Definition at line 183 of file scsi_da.h.

◆ ZBC_IN_REP_FULL

#define ZBC_IN_REP_FULL   0x05

Definition at line 185 of file scsi_da.h.

◆ ZBC_IN_REP_IMP_OPEN

#define ZBC_IN_REP_IMP_OPEN   0x02

Definition at line 182 of file scsi_da.h.

◆ ZBC_IN_REP_MASK

#define ZBC_IN_REP_MASK   0x3f

Definition at line 191 of file scsi_da.h.

◆ ZBC_IN_REP_NON_SEQ

#define ZBC_IN_REP_NON_SEQ   0x11

Definition at line 189 of file scsi_da.h.

◆ ZBC_IN_REP_NON_WP

#define ZBC_IN_REP_NON_WP   0x3f

Definition at line 190 of file scsi_da.h.

◆ ZBC_IN_REP_OFFLINE

#define ZBC_IN_REP_OFFLINE   0x07

Definition at line 187 of file scsi_da.h.

◆ ZBC_IN_REP_READONLY

#define ZBC_IN_REP_READONLY   0x06

Definition at line 186 of file scsi_da.h.

◆ ZBC_IN_REP_RESET

#define ZBC_IN_REP_RESET   0x10

Definition at line 188 of file scsi_da.h.

◆ ZBC_IN_SA_REPORT_ZONES

#define ZBC_IN_SA_REPORT_ZONES   0x00

Definition at line 175 of file scsi_da.h.

◆ ZBC_OUT

#define ZBC_OUT   0x94

Definition at line 248 of file scsi_da.h.

◆ ZBC_OUT_ALL

#define ZBC_OUT_ALL   0x01

Definition at line 167 of file scsi_da.h.

◆ ZBC_OUT_SA_CLOSE

#define ZBC_OUT_SA_CLOSE   0x01

Definition at line 160 of file scsi_da.h.

◆ ZBC_OUT_SA_FINISH

#define ZBC_OUT_SA_FINISH   0x02

Definition at line 161 of file scsi_da.h.

◆ ZBC_OUT_SA_OPEN

#define ZBC_OUT_SA_OPEN   0x03

Definition at line 162 of file scsi_da.h.

◆ ZBC_OUT_SA_RWP

#define ZBC_OUT_SA_RWP   0x04

Definition at line 163 of file scsi_da.h.

Function Documentation

◆ scsi_ata_zac_mgmt_in()

int scsi_ata_zac_mgmt_in ( struct ccb_scsiio csio,
uint32_t  retries,
void(*)(struct cam_periph *, union ccb *)  cbfcnp,
uint8_t  tag_action,
int  use_ncq,
uint8_t  zm_action,
uint64_t  zone_id,
uint8_t  zone_flags,
uint8_t *  data_ptr,
uint32_t  dxfer_len,
uint8_t *  cdb_storage,
size_t  cdb_storage_len,
uint8_t  sense_len,
uint32_t  timeout 
)

Definition at line 6595 of file scsi_da.c.

References AP_EXTEND, AP_FLAG_BYT_BLOK_BLOCKS, AP_FLAG_TDIR_FROM_DEV, AP_FLAG_TLEN_FEAT, AP_FLAG_TLEN_SECT_CNT, AP_PROTO_DMA, AP_PROTO_FPDMA, CAM_DIR_IN, scsi_ata_pass(), and SSD_FULL_SIZE.

Referenced by da_zone_cmd().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scsi_ata_zac_mgmt_out()

int scsi_ata_zac_mgmt_out ( struct ccb_scsiio csio,
uint32_t  retries,
void(*)(struct cam_periph *, union ccb *)  cbfcnp,
uint8_t  tag_action,
int  use_ncq,
uint8_t  zm_action,
uint64_t  zone_id,
uint8_t  zone_flags,
uint8_t *  data_ptr,
uint32_t  dxfer_len,
uint8_t *  cdb_storage,
size_t  cdb_storage_len,
uint8_t  sense_len,
uint32_t  timeout 
)

Definition at line 6484 of file scsi_da.c.

References AP_EXTEND, AP_FLAG_BYT_BLOK_BLOCKS, AP_FLAG_TDIR_TO_DEV, AP_FLAG_TLEN_FEAT, AP_FLAG_TLEN_NO_DATA, AP_FLAG_TLEN_SECT_CNT, AP_PROTO_DMA, AP_PROTO_FPDMA, AP_PROTO_NON_DATA, CAM_DIR_NONE, CAM_DIR_OUT, scsi_ata_pass(), and SSD_FULL_SIZE.

Referenced by da_zone_cmd().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scsi_zbc_in()

void scsi_zbc_in ( struct ccb_scsiio csio,
uint32_t  retries,
void(*)(struct cam_periph *, union ccb *)  cbfcnp,
uint8_t  tag_action,
uint8_t  service_action,
uint64_t  zone_start_lba,
uint8_t  zone_options,
uint8_t *  data_ptr,
uint32_t  dxfer_len,
uint8_t  sense_len,
uint32_t  timeout 
)

Definition at line 6455 of file scsi_da.c.

References CAM_DIR_IN, CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_zbc_in::length, scsi_zbc_in::opcode, scsi_u64to8b(), scsi_ulto4b(), scsi_zbc_in::service_action, ZBC_IN, scsi_zbc_in::zone_options, and scsi_zbc_in::zone_start_lba.

Referenced by da_zone_cmd().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scsi_zbc_out()

__BEGIN_DECLS void scsi_zbc_out ( struct ccb_scsiio csio,
uint32_t  retries,
void(*)(struct cam_periph *, union ccb *)  cbfcnp,
uint8_t  tag_action,
uint8_t  service_action,
uint64_t  zone_id,
uint8_t  zone_flags,
uint8_t *  data_ptr,
uint32_t  dxfer_len,
uint8_t  sense_len,
uint32_t  timeout 
)

Definition at line 6428 of file scsi_da.c.

References CAM_DIR_NONE, CAM_DIR_OUT, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_zbc_out::opcode, scsi_u64to8b(), scsi_zbc_out::service_action, ZBC_OUT, scsi_zbc_out::zone_flags, and scsi_zbc_out::zone_id.

Referenced by da_zone_cmd().

Here is the call graph for this function:
Here is the caller graph for this function: