FreeBSD kernel CAM code
|
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/queue.h>
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/types.h>
#include <sys/malloc.h>
#include <sys/fcntl.h>
#include <sys/conf.h>
#include <sys/chio.h>
#include <sys/errno.h>
#include <sys/devicestat.h>
#include <cam/cam.h>
#include <cam/cam_ccb.h>
#include <cam/cam_periph.h>
#include <cam/cam_xpt_periph.h>
#include <cam/cam_debug.h>
#include <cam/scsi/scsi_all.h>
#include <cam/scsi/scsi_message.h>
#include <cam/scsi/scsi_ch.h>
Go to the source code of this file.
Data Structures | |
struct | scsi_mode_sense_data |
struct | ch_softc |
Macros | |
#define | CH_Q_BIT_STRING |
#define | ccb_state ppriv_field0 |
#define | ccb_bp ppriv_ptr1 |
#define | PLURAL(c) (c) == 1 ? "" : "s" |
Enumerations | |
enum | ch_flags { CH_FLAG_INVALID = 0x001 } |
enum | ch_state { CH_STATE_PROBE , CH_STATE_NORMAL } |
enum | ch_ccb_types { CH_CCB_PROBE } |
enum | ch_quirks { CH_Q_NONE = 0x00 , CH_Q_NO_DBD = 0x01 , CH_Q_NO_DVCID = 0x02 } |
Functions | |
__FBSDID ("$FreeBSD$") | |
static void | chasync (void *callback_arg, u_int32_t code, struct cam_path *path, void *arg) |
static void | chdone (struct cam_periph *periph, union ccb *done_ccb) |
static int | cherror (union ccb *ccb, u_int32_t cam_flags, u_int32_t sense_flags) |
static int | chmove (struct cam_periph *periph, struct changer_move *cm) |
static int | chexchange (struct cam_periph *periph, struct changer_exchange *ce) |
static int | chposition (struct cam_periph *periph, struct changer_position *cp) |
static int | chgetelemstatus (struct cam_periph *periph, int scsi_version, u_long cmd, struct changer_element_status_request *csr) |
static int | chsetvoltag (struct cam_periph *periph, struct changer_set_voltag_request *csvr) |
static int | chielem (struct cam_periph *periph, unsigned int timeout) |
static int | chgetparams (struct cam_periph *periph) |
static int | chscsiversion (struct cam_periph *periph) |
PERIPHDRIVER_DECLARE (ch, chdriver) | |
static | MALLOC_DEFINE (M_SCSICH, "scsi_ch", "scsi_ch buffers") |
static void | chdevgonecb (void *arg) |
static void | choninvalidate (struct cam_periph *periph) |
static void | chcleanup (struct cam_periph *periph) |
static cam_status | chregister (struct cam_periph *periph, void *arg) |
static int | chopen (struct cdev *dev, int flags, int fmt, struct thread *td) |
static int | chclose (struct cdev *dev, int flag, int fmt, struct thread *td) |
static void | chstart (struct cam_periph *periph, union ccb *start_ccb) |
static int | chioctl (struct cdev *dev, u_long cmd, caddr_t addr, int flag, struct thread *td) |
static void | copy_voltag (struct changer_voltag *uvoltag, struct volume_tag *voltag) |
static void | copy_element_status (struct ch_softc *softc, u_int16_t flags, struct read_element_status_descriptor *desc, struct changer_element_status *ces, int scsi_version) |
void | scsi_move_medium (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int32_t tea, u_int32_t src, u_int32_t dst, int invert, u_int8_t sense_len, u_int32_t timeout) |
void | scsi_exchange_medium (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int32_t tea, u_int32_t src, u_int32_t dst1, u_int32_t dst2, int invert1, int invert2, u_int8_t sense_len, u_int32_t timeout) |
void | scsi_position_to_element (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int32_t tea, u_int32_t dst, int invert, u_int8_t sense_len, u_int32_t timeout) |
void | scsi_read_element_status (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, int voltag, u_int32_t sea, int curdata, int dvcid, u_int32_t count, u_int8_t *data_ptr, u_int32_t dxfer_len, u_int8_t sense_len, u_int32_t timeout) |
void | scsi_initialize_element_status (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) |
void | scsi_send_volume_tag (struct ccb_scsiio *csio, u_int32_t retries, void(*cbfcnp)(struct cam_periph *, union ccb *), u_int8_t tag_action, u_int16_t element_address, u_int8_t send_action_code, struct scsi_send_volume_tag_parameters *parameters, u_int8_t sense_len, u_int32_t timeout) |
Variables | |
static const u_int32_t | CH_TIMEOUT_MODE_SENSE = 6000 |
static const u_int32_t | CH_TIMEOUT_MOVE_MEDIUM = 15 * 60 * 1000 |
static const u_int32_t | CH_TIMEOUT_EXCHANGE_MEDIUM = 15 * 60 * 1000 |
static const u_int32_t | CH_TIMEOUT_POSITION_TO_ELEMENT = 15 * 60 * 1000 |
static const u_int32_t | CH_TIMEOUT_READ_ELEMENT_STATUS = 5 * 60 * 1000 |
static const u_int32_t | CH_TIMEOUT_SEND_VOLTAG = 10000 |
static const u_int32_t | CH_TIMEOUT_INITIALIZE_ELEMENT_STATUS = 500000 |
static d_open_t | chopen |
static d_close_t | chclose |
static d_ioctl_t | chioctl |
static periph_init_t | chinit |
static periph_ctor_t | chregister |
static periph_oninv_t | choninvalidate |
static periph_dtor_t | chcleanup |
static periph_start_t | chstart |
static struct periph_driver | chdriver |
static struct cdevsw | ch_cdevsw |
#define ccb_bp ppriv_ptr1 |
#define ccb_state ppriv_field0 |
#define CH_Q_BIT_STRING |
#define PLURAL | ( | c | ) | (c) == 1 ? "" : "s" |
enum ch_ccb_types |
enum ch_quirks |
__FBSDID | ( | "$FreeBSD$" | ) |
|
static |
Definition at line 319 of file scsi_ch.c.
References AC_FOUND_DEVICE, cam_periph_alloc(), cam_periph_async(), CAM_PERIPH_BIO, CAM_REQ_CMP, CAM_REQ_INPROG, chasync(), chcleanup, choninvalidate, chregister, chstart, ccb_getdev::inq_data, PROTO_SCSI, ccb_getdev::protocol, SID_QUAL, SID_QUAL_LU_CONNECTED, SID_TYPE, and T_CHANGER.
Referenced by chasync(), choninvalidate(), and chregister().
|
static |
Definition at line 307 of file scsi_ch.c.
References ch_softc::device_stats, and cam_periph::softc.
|
static |
Definition at line 506 of file scsi_ch.c.
References cam_periph_mtx(), cam_periph_release_locked(), ch_softc::open_count, and cam_periph::softc.
|
static |
Definition at line 245 of file scsi_ch.c.
References cam_periph_mtx(), cam_periph_release_locked(), ch_softc::open_count, and cam_periph::softc.
Referenced by choninvalidate().
|
static |
Definition at line 597 of file scsi_ch.c.
References scsi_mode_sense_6::byte2, CAM_DEV_QFRZN, CAM_PERIPH_INVALID, cam_periph_invalidate(), cam_periph_unhold(), cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, CAM_SCSI_STATUS_ERROR, CAM_STATUS_MASK, ccb::ccb_h, cdb_t::cdb_bytes, ccb_scsiio::cdb_io, CH_CCB_PROBE, CH_Q_BIT_STRING, CH_Q_NO_DBD, CH_STATE_NORMAL, cherror(), ccb::csio, ccb_scsiio::data_ptr, page_element_address_assignment::fdtea, page_element_address_assignment::fieea, find_mode_page_6(), cam_periph::flags, page_element_address_assignment::fsea, page_element_address_assignment::mtea, page_element_address_assignment::ndte, page_element_address_assignment::niee, page_element_address_assignment::nmte, page_element_address_assignment::nse, ccb_hdr::path, cam_periph::path, PLURAL, ch_softc::quirks, ch_softc::sc_counts, ch_softc::sc_firsts, ch_softc::sc_picker, scsi_2btoul(), scsi_sense_print(), SF_NO_PRINT, SF_RETRY_UA, SMS_DBD, cam_periph::softc, ch_softc::state, ccb_hdr::status, xpt_action(), xpt_announce_periph(), xpt_announce_quirks(), xpt_print(), and xpt_release_ccb().
Referenced by chexchange(), chgetelemstatus(), chgetparams(), chielem(), chmove(), chposition(), chsetvoltag(), and chstart().
|
static |
Definition at line 735 of file scsi_ch.c.
References cam_periph_error().
Referenced by chdone(), chexchange(), chgetelemstatus(), chgetparams(), chielem(), chioctl(), chmove(), chposition(), and chsetvoltag().
|
static |
Definition at line 915 of file scsi_ch.c.
References cam_periph_getccb(), cam_periph_runccb(), CAM_PRIORITY_NORMAL, CAM_RETRY_SELTO, ccb, CH_TIMEOUT_EXCHANGE_MEDIUM, chdone(), cherror(), ccb::csio, ch_softc::device_stats, MSG_SIMPLE_Q_TAG, ch_softc::sc_counts, ch_softc::sc_exchangemask, ch_softc::sc_firsts, ch_softc::sc_picker, scsi_exchange_medium(), SF_RETRY_UA, cam_periph::softc, SSD_FULL_SIZE, and xpt_release_ccb().
Referenced by chioctl().
|
static |
Definition at line 1182 of file scsi_ch.c.
References cam_periph_getccb(), cam_periph_lock, cam_periph_runccb(), cam_periph_unlock, CAM_PRIORITY_NORMAL, CAM_RETRY_SELTO, ccb, CH_Q_NO_DVCID, CH_TIMEOUT_READ_ELEMENT_STATUS, chdone(), cherror(), copy_element_status(), read_element_status_header::count, ccb::csio, ch_softc::device_stats, read_element_status_page_header::edl, read_element_status_page_header::flags, MSG_SIMPLE_Q_TAG, cam_periph::path, ch_softc::quirks, ch_softc::sc_counts, ch_softc::sc_firsts, scsi_2btoul(), scsi_read_element_status(), SF_QUIET_IR, SF_RETRY_UA, cam_periph::softc, SSD_FULL_SIZE, xpt_print(), and xpt_release_ccb().
Referenced by chioctl().
|
static |
Definition at line 1528 of file scsi_ch.c.
References scsi_mode_sense_6::byte2, cam_periph_getccb(), cam_periph_runccb(), CAM_PRIORITY_NORMAL, CAM_RETRY_SELTO, ccb, cdb_t::cdb_bytes, ccb_scsiio::cdb_io, CH_DEVICE_CAP_PAGE, CH_ELEMENT_ADDR_ASSIGN_PAGE, CH_Q_NO_DBD, CH_TIMEOUT_MODE_SENSE, chdone(), cherror(), ccb::csio, ch_softc::device_stats, page_device_capabilities::exchange_with, page_element_address_assignment::fdtea, page_element_address_assignment::fieea, find_mode_page_6(), page_element_address_assignment::fsea, page_device_capabilities::move_from, MSG_SIMPLE_Q_TAG, page_element_address_assignment::mtea, page_element_address_assignment::ndte, page_element_address_assignment::niee, page_element_address_assignment::nmte, page_element_address_assignment::nse, cam_periph::path, ch_softc::quirks, ch_softc::sc_counts, ch_softc::sc_exchangemask, ch_softc::sc_firsts, ch_softc::sc_movemask, scsi_2btoul(), scsi_mode_sense(), scsi_sense_print(), SF_NO_PRINT, SF_RETRY_UA, SMS_DBD, SMS_PAGE_CTRL_CURRENT, cam_periph::softc, SSD_FULL_SIZE, xpt_print(), and xpt_release_ccb().
Referenced by chopen().
|
static |
Definition at line 1405 of file scsi_ch.c.
References cam_periph_getccb(), cam_periph_runccb(), CAM_PRIORITY_NORMAL, CAM_RETRY_SELTO, ccb, CH_TIMEOUT_INITIALIZE_ELEMENT_STATUS, chdone(), cherror(), ccb::csio, ch_softc::device_stats, MSG_SIMPLE_Q_TAG, scsi_initialize_element_status(), SF_RETRY_UA, cam_periph::softc, SSD_FULL_SIZE, and xpt_release_ccb().
Referenced by chioctl().
|
static |
Definition at line 742 of file scsi_ch.c.
References CAM_DEBUG, CAM_DEBUG_TRACE, cam_periph_ioctl(), cam_periph_lock, cam_periph_unlock, cherror(), chexchange(), chgetelemstatus(), chielem(), chmove(), chposition(), chscsiversion(), chsetvoltag(), cam_periph::path, ch_softc::sc_counts, ch_softc::sc_firsts, ch_softc::sc_picker, SCSI_REV_0, SCSI_REV_2, and cam_periph::softc.
|
static |
Definition at line 861 of file scsi_ch.c.
References cam_periph_getccb(), cam_periph_runccb(), CAM_PRIORITY_NORMAL, CAM_RETRY_SELTO, ccb, CH_TIMEOUT_MOVE_MEDIUM, chdone(), cherror(), ccb::csio, ch_softc::device_stats, MSG_SIMPLE_Q_TAG, ch_softc::sc_counts, ch_softc::sc_firsts, ch_softc::sc_movemask, ch_softc::sc_picker, scsi_move_medium(), SF_RETRY_UA, cam_periph::softc, SSD_FULL_SIZE, and xpt_release_ccb().
Referenced by chioctl().
|
static |
Definition at line 286 of file scsi_ch.c.
References CH_FLAG_INVALID, chasync(), chdevgonecb(), ch_softc::dev, ch_softc::flags, cam_periph::path, cam_periph::softc, and xpt_register_async().
|
static |
Definition at line 460 of file scsi_ch.c.
References cam_periph_acquire(), cam_periph_hold(), cam_periph_lock, cam_periph_release(), cam_periph_release_locked(), cam_periph_unhold(), cam_periph_unlock, CH_FLAG_INVALID, chgetparams(), ch_softc::flags, ch_softc::open_count, and cam_periph::softc.
|
static |
Definition at line 978 of file scsi_ch.c.
References cam_periph_getccb(), cam_periph_runccb(), CAM_PRIORITY_NORMAL, CAM_RETRY_SELTO, ccb, CH_TIMEOUT_POSITION_TO_ELEMENT, chdone(), cherror(), ccb::csio, ch_softc::device_stats, MSG_SIMPLE_Q_TAG, ch_softc::sc_counts, ch_softc::sc_firsts, ch_softc::sc_picker, scsi_position_to_element(), SF_RETRY_UA, cam_periph::softc, SSD_FULL_SIZE, and xpt_release_ccb().
Referenced by chioctl().
|
static |
Definition at line 366 of file scsi_ch.c.
References AC_LOST_DEVICE, cam_periph_acquire(), cam_periph_hold(), cam_periph_lock, cam_periph_release_locked(), cam_periph_unlock, CAM_PRIORITY_DEV, CAM_REQ_CMP, CAM_REQ_CMP_ERR, ch_cdevsw, CH_Q_NO_DVCID, CH_Q_NONE, CH_STATE_PROBE, chasync(), ch_softc::dev, ch_softc::device_stats, ccb_getdev::inq_data, cam_periph::path, cam_periph::periph_name, ch_softc::quirks, SCSI_REV_2, SID_TYPE, cam_periph::softc, ch_softc::state, ccb_pathinq::transport, cam_periph::unit_number, scsi_inquiry_data::version, XPORT_DEVSTAT_TYPE, xpt_path_inq(), xpt_print(), xpt_register_async(), and xpt_schedule().
|
static |
Definition at line 1699 of file scsi_ch.c.
References cam_periph_assert, CAM_PRIORITY_NORMAL, CAM_REQ_CMP, ccb_getdev::ccb_h, ccb_hdr::func_code, ccb_getdev::inq_data, cam_periph::path, ccb_hdr::status, scsi_inquiry_data::version, xpt_action(), xpt_alloc_ccb_nowait(), xpt_free_ccb(), XPT_GDEV_TYPE, and xpt_setup_ccb().
Referenced by chioctl().
|
static |
Definition at line 1440 of file scsi_ch.c.
References cam_periph_getccb(), cam_periph_runccb(), CAM_PRIORITY_NORMAL, CAM_RETRY_SELTO, ccb, CH_TIMEOUT_SEND_VOLTAG, chdone(), cherror(), ccb::csio, ch_softc::device_stats, scsi_send_volume_tag_parameters::minvsn, MSG_SIMPLE_Q_TAG, ch_softc::sc_counts, ch_softc::sc_firsts, scsi_send_volume_tag(), scsi_ulto2b(), SEND_VOLUME_TAG_ASSERT_ALTERNATE, SEND_VOLUME_TAG_ASSERT_PRIMARY, SEND_VOLUME_TAG_REPLACE_ALTERNATE, SEND_VOLUME_TAG_REPLACE_PRIMARY, SEND_VOLUME_TAG_UNDEFINED_ALTERNATE, SEND_VOLUME_TAG_UNDEFINED_PRIMARY, SF_RETRY_UA, cam_periph::softc, SSD_FULL_SIZE, scsi_send_volume_tag_parameters::vitf, and xpt_release_ccb().
Referenced by chioctl().
|
static |
Definition at line 539 of file scsi_ch.c.
References ccb::ccb_h, CH_CCB_PROBE, CH_ELEMENT_ADDR_ASSIGN_PAGE, CH_Q_NO_DBD, CH_STATE_NORMAL, CH_STATE_PROBE, CH_TIMEOUT_MODE_SENSE, chdone(), ccb::csio, MSG_SIMPLE_Q_TAG, ch_softc::quirks, scsi_mode_sense(), SMS_PAGE_CTRL_CURRENT, cam_periph::softc, SSD_FULL_SIZE, ch_softc::state, xpt_action(), and xpt_release_ccb().
|
static |
Definition at line 1049 of file scsi_ch.c.
References copy_voltag(), read_element_status_device_id::designator, read_element_status_device_id::designator_length, read_element_status_descriptor::devid, read_element_status_descriptor::dt_or_obsolete, read_element_status_descriptor::dt_scsi_addr, read_element_status_descriptor::dt_scsi_flags, read_element_status_descriptor::eaddr, read_element_status_descriptor::flags1, read_element_status_descriptor::flags2, read_element_status_device_id::piv_assoc_designator_type, read_element_status_device_id::prot_code_set, read_element_status_descriptor::pvol_and_devid, read_element_status_descriptor::pvoltag, READ_ELEMENT_STATUS_ASSOCIATION, READ_ELEMENT_STATUS_AVOLTAG, READ_ELEMENT_STATUS_CODE_SET, READ_ELEMENT_STATUS_DESIGNATOR_TYPE, READ_ELEMENT_STATUS_DT_IDVALID, READ_ELEMENT_STATUS_DT_LUNMASK, READ_ELEMENT_STATUS_DT_LUVALID, READ_ELEMENT_STATUS_INVERT, READ_ELEMENT_STATUS_PIV_SET, READ_ELEMENT_STATUS_PROTOCOL_ID, READ_ELEMENT_STATUS_PVOLTAG, READ_ELEMENT_STATUS_SVALID, ch_softc::sc_counts, ch_softc::sc_firsts, read_element_status_descriptor::scsi_2, scsi_2btoul(), SCSI_REV_2, SCSI_REV_SPC, read_element_status_descriptor::sense_code, read_element_status_descriptor::sense_qual, read_element_status_descriptor::ssea, read_element_status_descriptor::vol_tags_and_devid, read_element_status_descriptor::voltag, and read_element_status_descriptor::voltag_devid.
Referenced by chgetelemstatus().
|
static |
Definition at line 1031 of file scsi_ch.c.
References scsi_2btoul(), volume_tag::vif, and volume_tag::vsn.
Referenced by copy_element_status().
|
static |
PERIPHDRIVER_DECLARE | ( | ch | , |
chdriver | |||
) |
void scsi_exchange_medium | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
u_int32_t | tea, | ||
u_int32_t | src, | ||
u_int32_t | dst1, | ||
u_int32_t | dst2, | ||
int | invert1, | ||
int | invert2, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 1763 of file scsi_ch.c.
References CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, EXCHANGE_MEDIUM, EXCHANGE_MEDIUM_INV1, EXCHANGE_MEDIUM_INV2, scsi_exchange_medium::fdst, scsi_exchange_medium::invert, scsi_exchange_medium::opcode, scsi_ulto2b(), scsi_exchange_medium::sdst, scsi_exchange_medium::src, and scsi_exchange_medium::tea.
Referenced by chexchange().
void scsi_initialize_element_status | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 1870 of file scsi_ch.c.
References CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, INITIALIZE_ELEMENT_STATUS, and scsi_initialize_element_status::opcode.
Referenced by chielem().
void scsi_move_medium | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
u_int32_t | tea, | ||
u_int32_t | src, | ||
u_int32_t | dst, | ||
int | invert, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 1730 of file scsi_ch.c.
References CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_move_medium::dst, scsi_move_medium::invert, MOVE_MEDIUM, MOVE_MEDIUM_INVERT, scsi_move_medium::opcode, scsi_ulto2b(), scsi_move_medium::src, and scsi_move_medium::tea.
Referenced by chmove().
void scsi_position_to_element | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
u_int32_t | tea, | ||
u_int32_t | dst, | ||
int | invert, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 1800 of file scsi_ch.c.
References CAM_DIR_NONE, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_position_to_element::dst, scsi_position_to_element::invert, scsi_position_to_element::opcode, POSITION_TO_ELEMENT, POSITION_TO_ELEMENT_INVERT, scsi_ulto2b(), and scsi_position_to_element::tea.
Referenced by chposition().
void scsi_read_element_status | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
int | voltag, | ||
u_int32_t | sea, | ||
int | curdata, | ||
int | dvcid, | ||
u_int32_t | count, | ||
u_int8_t * | data_ptr, | ||
u_int32_t | dxfer_len, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 1831 of file scsi_ch.c.
References scsi_read_element_status::byte2, CAM_DIR_IN, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_read_element_status::count, scsi_read_element_status::flags, scsi_read_element_status::len, scsi_read_element_status::opcode, READ_ELEMENT_STATUS, READ_ELEMENT_STATUS_CURDATA, READ_ELEMENT_STATUS_DVCID, READ_ELEMENT_STATUS_VOLTAG, scsi_ulto2b(), scsi_ulto3b(), and scsi_read_element_status::sea.
Referenced by chgetelemstatus().
void scsi_send_volume_tag | ( | struct ccb_scsiio * | csio, |
u_int32_t | retries, | ||
void(*)(struct cam_periph *, union ccb *) | cbfcnp, | ||
u_int8_t | tag_action, | ||
u_int16_t | element_address, | ||
u_int8_t | send_action_code, | ||
struct scsi_send_volume_tag_parameters * | parameters, | ||
u_int8_t | sense_len, | ||
u_int32_t | timeout | ||
) |
Definition at line 1896 of file scsi_ch.c.
References CAM_DIR_OUT, cam_fill_csio(), cdb_t::cdb_bytes, ccb_scsiio::cdb_io, scsi_send_volume_tag::ea, scsi_send_volume_tag::opcode, scsi_send_volume_tag::pll, scsi_send_volume_tag::sac, scsi_ulto2b(), and SEND_VOLUME_TAG.
Referenced by chsetvoltag().
|
static |
|
static |
Definition at line 101 of file scsi_ch.c.
Referenced by chexchange().
|
static |
|
static |
Definition at line 99 of file scsi_ch.c.
Referenced by chgetparams(), and chstart().
|
static |
|
static |
Definition at line 102 of file scsi_ch.c.
Referenced by chposition().
|
static |
Definition at line 103 of file scsi_ch.c.
Referenced by chgetelemstatus().
|
static |
Definition at line 104 of file scsi_ch.c.
Referenced by chsetvoltag().
|
static |
|
static |
|
static |
|
static |
|
static |