FreeBSD kernel CAM code
|
#include <sys/cdefs.h>
Go to the source code of this file.
Enumerations | |
enum | scsi_space_code { SS_BLOCKS , SS_FILEMARKS , SS_SEQFILEMARKS , SS_EOD , SS_SETMARKS , SS_SEQSETMARKS } |
Functions | |
__BEGIN_DECLS void | scsi_read_block_limits (struct ccb_scsiio *, u_int32_t, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t, struct scsi_read_block_limits_data *, u_int8_t, u_int32_t) |
void | scsi_sa_read_write (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int readop, int sli, int fixed, u_int32_t length, u_int8_t *data_ptr, u_int32_t dxfer_len, u_int8_t sense_len, u_int32_t timeout) |
void | scsi_rewind (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int immediate, u_int8_t sense_len, u_int32_t timeout) |
void | scsi_space (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, scsi_space_code code, u_int32_t count, u_int8_t sense_len, u_int32_t timeout) |
void | scsi_load_unload (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int immediate, int eot, int reten, int load, u_int8_t sense_len, u_int32_t timeout) |
void | scsi_write_filemarks (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int immediate, int setmark, u_int32_t num_marks, u_int8_t sense_len, u_int32_t timeout) |
void | scsi_reserve_release_unit (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int third_party, int third_party_id, u_int8_t sense_len, u_int32_t timeout, int reserve) |
void | scsi_erase (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int immediate, int long_erase, u_int8_t sense_len, u_int32_t timeout) |
void | scsi_data_comp_page (struct scsi_data_compression_page *page, u_int8_t dce, u_int8_t dde, u_int8_t red, u_int32_t comp_algorithm, u_int32_t decomp_algorithm) |
void | scsi_read_position (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int hardsoft, struct scsi_tape_position_data *sbp, u_int8_t sense_len, u_int32_t timeout) |
void | scsi_read_position_10 (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int service_action, u_int8_t *data_ptr, u_int32_t length, u_int32_t sense_len, u_int32_t timeout) |
void | scsi_set_position (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int hardsoft, u_int32_t blkno, u_int8_t sense_len, u_int32_t timeout) |
void | scsi_locate_10 (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int immed, int cp, int hard, int64_t partition, u_int32_t block_address, int sense_len, u_int32_t timeout) |
void | scsi_locate_16 (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int immed, int cp, u_int8_t dest_type, int bam, int64_t partition, u_int64_t logical_id, int sense_len, u_int32_t timeout) |
void | scsi_report_density_support (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int media, int medium_type, u_int8_t *data_ptr, u_int32_t length, u_int32_t sense_len, u_int32_t timeout) |
void | scsi_set_capacity (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int byte1, u_int32_t proportion, u_int32_t sense_len, u_int32_t timeout) |
void | scsi_format_medium (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int byte1, int byte2, u_int8_t *data_ptr, u_int32_t length, u_int32_t sense_len, u_int32_t timeout) |
void | scsi_allow_overwrite (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int allow_overwrite, int partition, u_int64_t logical_id, u_int32_t sense_len, u_int32_t timeout) |
#define RBL_GRAN | ( | rblim | ) | ((rblim)->gran & RBL_GRAN_MASK) |
#define SA_DCP_RED_MASK 0x60 /* Report Exception on Decomp. */ |
#define SA_RPOS_BCU 0x20 /* Block Count Unknown (SCSI3) */ |
#define SA_RPOS_BPEW 0x01 /* Beyond Programmable Early Warning */ |
#define SA_RPOS_BYCU 0x10 /* Byte Count Unknown (SCSI3) */ |
#define SA_RPOS_EXT_BPEW 0x01 /* Beyond Programmable Early Warning */ |
#define SA_RPOS_EXT_LOCU 0x20 /* Logical Object Count Unknown */ |
#define SA_RPOS_EXT_LOLU 0x04 /* Logical Object Location Unknown */ |
#define SA_RPOS_LONG_BOP 0x80 /* Beginning of Partition */ |
#define SA_RPOS_LONG_BPEW 0x01 /* Beyond Programmable Early Warning */ |
#define SA_RPOS_LONG_LONU 0x04 /* Logical Object Number Unknown */ |
#define SA_RPOS_UNCERTAIN SA_RPOS_BPU |
#define SA_SOCF_MASK 0x0c /* stop on consecutive formats */ |
#define SCSI_DENSITY_HALFINCH_6250C 0xC3 /* HP Compressed 6250 */ |
#define SCSI_DENSITY_QIC_11_9TRK 0x84 /* Vendor Unique Emulex */ |
#define SMH_SA_BUF_MODE_MIBUF 0x20 /* Multi-Initiator buffering */ |
#define SMH_SA_BUF_MODE_SIBUF 0x10 /* Single-Initiator buffering */ |
enum scsi_space_code |
void scsi_allow_overwrite | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | allow_overwrite, | ||
int | partition, | ||
u_int64_t | logical_id, | ||
u_int32_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6354 of file scsi_sa.c.
References scsi_allow_overwrite::allow_overwrite, ALLOW_OVERWRITE, CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_allow_overwrite::logical_id, scsi_allow_overwrite::opcode, scsi_allow_overwrite::partition, and scsi_u64to8b().
void scsi_data_comp_page | ( | struct scsi_data_compression_page * | page, |
u_int8_t | dce, | ||
u_int8_t | dde, | ||
u_int8_t | red, | ||
u_int32_t | comp_algorithm, | ||
u_int32_t | decomp_algorithm | ||
) |
void scsi_erase | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | immediate, | ||
int | long_erase, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6094 of file scsi_sa.c.
References CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, ERASE, scsi_erase::lun_imm_long, scsi_erase::opcode, SE_IMMED, and SE_LONG.
Referenced by saerase().
void scsi_format_medium | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | byte1, | ||
int | byte2, | ||
u_int8_t * | data_ptr, | ||
u_int32_t | length, | ||
u_int32_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6323 of file scsi_sa.c.
References scsi_format_medium::byte1, scsi_format_medium::byte2, CAM_DIR_NONE, CAM_DIR_OUT, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, FORMAT_MEDIUM, scsi_format_medium::length, scsi_format_medium::opcode, and scsi_ulto2b().
void scsi_load_unload | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | immediate, | ||
int | eot, | ||
int | reten, | ||
int | load, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 5980 of file scsi_sa.c.
References CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_load_unload::eot_reten_load, scsi_load_unload::immediate, LOAD_UNLOAD, scsi_load_unload::opcode, SLU_EOT, SLU_IMMED, SLU_LOAD, and SLU_RETEN.
Referenced by saloadunload(), samount(), and saretension().
void scsi_locate_10 | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | immed, | ||
int | cp, | ||
int | hard, | ||
int64_t | partition, | ||
u_int32_t | block_address, | ||
int | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6196 of file scsi_sa.c.
References scsi_tape_locate::blkaddr, scsi_tape_locate::byte1, CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, LOCATE, scsi_tape_locate::opcode, scsi_tape_locate::partition, SA_SPOS_BT, SA_SPOS_CP, SA_SPOS_IMMED, and scsi_ulto4b().
Referenced by sasetpos().
void scsi_locate_16 | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | immed, | ||
int | cp, | ||
u_int8_t | dest_type, | ||
int | bam, | ||
int64_t | partition, | ||
u_int64_t | logical_id, | ||
int | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6228 of file scsi_sa.c.
References scsi_locate_16::byte1, scsi_locate_16::byte2, CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, LOCATE_16, scsi_locate_16::logical_id, scsi_locate_16::opcode, scsi_locate_16::partition, SA_LC_CP, SA_LC_DEST_TYPE_SHIFT, SA_LC_IMMEDIATE, and scsi_u64to8b().
Referenced by sasetpos().
__BEGIN_DECLS void scsi_read_block_limits | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
struct scsi_read_block_limits_data * | rlimit_buf, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 5934 of file scsi_sa.c.
References CAM_DIR_IN, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_read_block_limits::opcode, and READ_BLOCK_LIMITS.
Referenced by samount().
void scsi_read_position | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | hardsoft, | ||
struct scsi_tape_position_data * | sbp, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6120 of file scsi_sa.c.
References scsi_tape_read_position::byte1, CAM_DIR_IN, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_tape_read_position::opcode, and READ_POSITION.
Referenced by sardpos().
void scsi_read_position_10 | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | service_action, | ||
u_int8_t * | data_ptr, | ||
u_int32_t | length, | ||
u_int32_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6140 of file scsi_sa.c.
References scsi_tape_read_position::byte1, CAM_DIR_IN, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_tape_read_position::length, scsi_tape_read_position::opcode, READ_POSITION, SA_RPOS_EXTENDED_FORM, and scsi_ulto2b().
Referenced by sagetpos().
void scsi_report_density_support | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | media, | ||
int | medium_type, | ||
u_int8_t * | data_ptr, | ||
u_int32_t | length, | ||
u_int32_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6263 of file scsi_sa.c.
References scsi_report_density_support::byte1, CAM_DIR_IN, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_report_density_support::length, scsi_report_density_support::opcode, REPORT_DENSITY_SUPPORT, scsi_ulto2b(), SRDS_MEDIA, and SRDS_MEDIUM_TYPE.
Referenced by sagetparams().
void scsi_reserve_release_unit | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | third_party, | ||
int | third_party_id, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout, | ||
int | reserve | ||
) |
Definition at line 6067 of file scsi_sa.c.
References CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_reserve_release_unit::lun_thirdparty, scsi_reserve_release_unit::opcode, RELEASE_UNIT, RESERVE_UNIT, SRRU_3RD_MASK, SRRU_3RD_PARTY, and SRRU_3RD_SHAMT.
Referenced by sareservereleaseunit().
void scsi_rewind | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | immediate, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6005 of file scsi_sa.c.
References CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_rewind::immediate, scsi_rewind::opcode, REWIND, and SREW_IMMED.
Referenced by samount(), and sarewind().
void scsi_sa_read_write | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | readop, | ||
int | sli, | ||
int | fixed, | ||
u_int32_t | length, | ||
u_int8_t * | data_ptr, | ||
u_int32_t | dxfer_len, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 5952 of file scsi_sa.c.
References CAM_DATA_BIO, CAM_DIR_IN, CAM_DIR_OUT, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_sa_rw::control, scsi_sa_rw::length, scsi_sa_rw::opcode, SA_READ, SA_WRITE, SAR_SLI, SARW_FIXED, SCSI_RW_BIO, SCSI_RW_DIRMASK, SCSI_RW_READ, scsi_ulto3b(), and scsi_sa_rw::sli_fixed.
Referenced by samount(), and sastart().
void scsi_set_capacity | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | byte1, | ||
u_int32_t | proportion, | ||
u_int32_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6295 of file scsi_sa.c.
References scsi_set_capacity::byte1, CAM_DIR_NONE, cam_fill_csio(), scsi_set_capacity::cap_proportion, cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_set_capacity::opcode, scsi_ulto2b(), and SET_CAPACITY.
void scsi_set_position | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | hardsoft, | ||
u_int32_t | blkno, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6175 of file scsi_sa.c.
References scsi_tape_locate::blkaddr, scsi_tape_locate::byte1, CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, LOCATE, scsi_tape_locate::opcode, SA_SPOS_BT, and scsi_ulto4b().
void scsi_space | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
scsi_space_code | code, | ||
u_int32_t | count, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6023 of file scsi_sa.c.
References CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_space::code, scsi_space::control, scsi_space::count, scsi_space::opcode, scsi_ulto3b(), and SPACE.
Referenced by saspace().
void scsi_write_filemarks | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | immediate, | ||
int | setmark, | ||
u_int32_t | num_marks, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 6041 of file scsi_sa.c.
References scsi_write_filemarks::byte2, CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_write_filemarks::num_marks, scsi_write_filemarks::opcode, scsi_ulto3b(), SWFMRK_IMMED, SWFMRK_WSMK, and WRITE_FILEMARKS.
Referenced by sawritefilemarks().