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/lock.h>
#include <sys/mutex.h>
#include <sys/condvar.h>
#include <sys/malloc.h>
#include <sys/bus.h>
#include <sys/endian.h>
#include <sys/sbuf.h>
#include <sys/sysctl.h>
#include <sys/types.h>
#include <sys/taskqueue.h>
#include <machine/bus.h>
#include <cam/cam.h>
#include <cam/cam_ccb.h>
#include <cam/cam_periph.h>
#include <cam/cam_queue.h>
#include <cam/cam_xpt_periph.h>
#include <cam/cam_debug.h>
#include <cam/cam_sim.h>
#include <cam/cam_xpt.h>
#include <cam/scsi/scsi_all.h>
#include <cam/scsi/scsi_message.h>
#include <cam/ctl/ctl_io.h>
#include <cam/ctl/ctl.h>
#include <cam/ctl/ctl_frontend.h>
#include <cam/ctl/ctl_util.h>
#include <cam/ctl/ctl_error.h>
Go to the source code of this file.
Data Structures | |
struct | ctlfe_softc |
struct | ctlfe_lun_softc |
struct | ctlfe_cmd_info |
Macros | |
#define | CTLFE_MAX_SEGS 32 |
#define | CTLFE_REQ_CTL_IO 4096 |
#define | CTLFE_ATIO_PER_LUN 1024 |
#define | CTLFE_IN_PER_LUN 1024 |
#define | CTLFE_TIMEOUT 5 |
#define | io_ptr ppriv_ptr0 |
#define | ccb_atio ppriv_ptr1 |
#define | PRIV_CCB(io) ((io)->io_hdr.ctl_private[CTL_PRIV_FRONTEND].ptrs[0]) |
#define | PRIV_INFO(io) ((io)->io_hdr.ctl_private[CTL_PRIV_FRONTEND].ptrs[1]) |
Enumerations | |
enum | ctlfe_cmd_flags { CTLFE_CMD_NONE = 0x00 , CTLFE_CMD_PIECEWISE = 0x01 } |
Functions | |
__FBSDID ("$FreeBSD$") | |
STAILQ_HEAD (ctlfe_softc) | |
MALLOC_DEFINE (M_CTLFE, "CAM CTL FE", "CAM CTL FE interface") | |
static int | ctlfeinitialize (void) |
static int | ctlfeshutdown (void) |
static void | ctlfeasync (void *callback_arg, uint32_t code, struct cam_path *path, void *arg) |
static void | ctlfedone (struct cam_periph *periph, union ccb *done_ccb) |
static void | ctlfe_onoffline (void *arg, int online) |
static void | ctlfe_online (void *arg) |
static void | ctlfe_offline (void *arg) |
static int | ctlfe_lun_enable (void *arg, int lun_id) |
static int | ctlfe_lun_disable (void *arg, int lun_id) |
static void | ctlfe_dump_sim (struct cam_sim *sim) |
static void | ctlfe_dump_queue (struct ctlfe_lun_softc *softc) |
static void | ctlfe_datamove (union ctl_io *io) |
static void | ctlfe_done (union ctl_io *io) |
static void | ctlfe_dump (void) |
static void | ctlfe_free_ccb (struct cam_periph *periph, union ccb *ccb) |
static void | ctlfe_requeue_ccb (struct cam_periph *periph, union ccb *ccb, int unlock) |
CTL_FRONTEND_DECLARE (ctlfe, ctlfe_frontend) | |
static cam_status | ctlferegister (struct cam_periph *periph, void *arg) |
static void | ctlfeoninvalidate (struct cam_periph *periph) |
static void | ctlfecleanup (struct cam_periph *periph) |
static void | ctlfedata (struct ctlfe_lun_softc *softc, union ctl_io *io, ccb_flags *flags, uint8_t **data_ptr, uint32_t *dxfer_len, u_int16_t *sglist_cnt) |
static void | ctlfestart (struct cam_periph *periph, union ccb *start_ccb) |
static void | ctlfe_drain (void *context, int pending) |
static int | ctlfe_adjust_cdb (struct ccb_accept_tio *atio, uint32_t offset) |
Variables | |
ctlfe_lun_flags | |
static periph_init_t | ctlfeperiphinit |
static periph_deinit_t | ctlfeperiphdeinit |
static periph_ctor_t | ctlferegister |
static periph_oninv_t | ctlfeoninvalidate |
static periph_dtor_t | ctlfecleanup |
static periph_start_t | ctlfestart |
static struct periph_driver | ctlfe_driver |
static struct ctl_frontend | ctlfe_frontend |
#define ccb_atio ppriv_ptr1 |
Definition at line 171 of file scsi_ctl.c.
#define CTLFE_ATIO_PER_LUN 1024 |
Definition at line 146 of file scsi_ctl.c.
#define CTLFE_IN_PER_LUN 1024 |
Definition at line 152 of file scsi_ctl.c.
#define CTLFE_MAX_SEGS 32 |
Definition at line 130 of file scsi_ctl.c.
#define CTLFE_REQ_CTL_IO 4096 |
Definition at line 140 of file scsi_ctl.c.
#define CTLFE_TIMEOUT 5 |
Definition at line 157 of file scsi_ctl.c.
#define io_ptr ppriv_ptr0 |
Definition at line 168 of file scsi_ctl.c.
#define PRIV_CCB | ( | io | ) | ((io)->io_hdr.ctl_private[CTL_PRIV_FRONTEND].ptrs[0]) |
Definition at line 173 of file scsi_ctl.c.
#define PRIV_INFO | ( | io | ) | ((io)->io_hdr.ctl_private[CTL_PRIV_FRONTEND].ptrs[1]) |
Definition at line 174 of file scsi_ctl.c.
enum ctlfe_cmd_flags |
Enumerator | |
---|---|
CTLFE_CMD_NONE | |
CTLFE_CMD_PIECEWISE |
Definition at line 116 of file scsi_ctl.c.
__FBSDID | ( | "$FreeBSD$" | ) |
CTL_FRONTEND_DECLARE | ( | ctlfe | , |
ctlfe_frontend | |||
) |
|
static |
Definition at line 1016 of file scsi_ctl.c.
References scsi_rw_6::addr, scsi_rw_10::addr, scsi_rw_12::addr, scsi_rw_16::addr, atio_cdb_ptr(), scsi_rw_6::length, scsi_rw_10::length, scsi_rw_12::length, scsi_rw_16::length, READ_10, READ_12, READ_16, READ_6, scsi_2btoul(), scsi_3btoul(), scsi_4btoul(), scsi_8btou64(), scsi_u64to8b(), scsi_ulto2b(), scsi_ulto3b(), scsi_ulto4b(), WRITE_10, WRITE_12, WRITE_16, and WRITE_6.
Referenced by ctlfedone().
|
static |
Definition at line 1908 of file scsi_ctl.c.
References cam_periph_lock, cam_periph_unlock, CAM_PRIORITY_NORMAL, ccb, ccb::ccb_h, CTL_FLAG_DMA_QUEUED, CTL_FLAG_STATUS_QUEUED, CTL_IO_SCSI, CTL_STATUS_MASK, CTL_STATUS_NONE, ctl_scsiio::ext_data_filled, ctl_io_hdr::flags, ctl_io::io_hdr, ctl_io_hdr::io_type, ccb_hdr::path, ctlfe_lun_softc::periph, PRIV_CCB, ctl_io::scsiio, cam_periph::softc, ctl_io_hdr::status, xpt_path_periph(), and xpt_schedule().
Referenced by ctlfeasync().
|
static |
Definition at line 1932 of file scsi_ctl.c.
References ccb_notify_acknowledge::arg, cam_periph_lock, cam_periph_unlock, CAM_PRIORITY_NORMAL, CAM_REQ_INPROG, CAM_RSP_TMF_COMPLETE, CAM_RSP_TMF_FAILED, CAM_RSP_TMF_INCORRECT_LUN, CAM_RSP_TMF_REJECTED, CAM_RSP_TMF_SUCCEEDED, CAM_SEND_STATUS, ccb, ccb::ccb_h, ccb::cna2, CTL_FLAG_STATUS_QUEUED, CTL_FLAG_STATUS_SENT, CTL_IO_TASK, CTL_TASK_FUNCTION_COMPLETE, CTL_TASK_FUNCTION_NOT_SUPPORTED, CTL_TASK_FUNCTION_REJECTED, CTL_TASK_FUNCTION_SUCCEEDED, CTL_TASK_LUN_DOES_NOT_EXIST, ctlfe_requeue_ccb(), ccb_hdr::flags, ctl_io_hdr::flags, ccb_hdr::func_code, ctl_io::io_hdr, ctl_io_hdr::io_type, ccb_hdr::path, ctlfe_lun_softc::periph, PRIV_CCB, scsi_3btoul(), cam_periph::softc, ccb_hdr::status, ctl_taskio::task_resp, ctl_taskio::task_status, ctl_io::taskio, xpt_action(), XPT_NOTIFY_ACKNOWLEDGE, xpt_path_periph(), and xpt_schedule().
Referenced by ctlfeasync().
|
static |
Definition at line 918 of file scsi_ctl.c.
References cam_periph_lock, cam_periph_release(), cam_periph_sleep, cam_periph_unlock, ctlfe_lun_softc::periph, ctlfe_lun_softc::refcount, and cam_periph::softc.
Referenced by ctlfe_free_ccb().
|
static |
Definition at line 1987 of file scsi_ctl.c.
References ctlfe_dump_queue(), ctlfe_dump_sim(), and ctlfe_softc::sim.
|
static |
Definition at line 1850 of file scsi_ctl.c.
References ccb_getdevstats::allocated, CAM_PRIORITY_NORMAL, CAM_REQ_CMP, CAM_STATUS_MASK, ccb_getdevstats::ccb_h, ctlfe_lun_softc::ctios_sent, CTL_FLAG_DMA_QUEUED, ctl_io_error_print(), ccb_getdevstats::dev_active, ccb_getdevstats::dev_openings, ctl_io_hdr::flags, ccb_hdr::func_code, ccb_getdevstats::held, ctl_io::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_resid, ctl_scsiio::kern_total_len, cam_periph::path, ccb_getdevstats::queued, ctl_io::scsiio, cam_periph::softc, ccb_hdr::status, xpt_action(), XPT_GDEV_STATS, xpt_print(), and xpt_setup_ccb().
Referenced by ctlfe_dump().
|
static |
Definition at line 1838 of file scsi_ctl.c.
References cam_sim::max_dev_openings, cam_sim::max_tagged_dev_openings, cam_sim::sim_name, and cam_sim::unit_number.
Referenced by ctlfe_dump().
|
static |
Definition at line 933 of file scsi_ctl.c.
References ctlfe_lun_softc::atios_alloced, cam_periph_release_locked(), ccb::ccb_h, ctl_free_io(), ctlfe_drain(), ccb_hdr::func_code, ctlfe_lun_softc::inots_alloced, ctlfe_lun_softc::periph, PRIV_INFO, ctlfe_lun_softc::refcount, ctlfe_lun_softc::refdrain_task, cam_periph::softc, XPT_ACCEPT_TARGET_IO, XPT_IMMEDIATE_NOTIFY, and XPT_NOTIFY_ACKNOWLEDGE.
Referenced by ctlfe_requeue_ccb(), and ctlfedone().
|
static |
Definition at line 1802 of file scsi_ctl.c.
References CAM_EXTLUN_BYTE_SWIZZLE, cam_periph_acquire(), cam_periph_invalidate(), cam_periph_lock, cam_periph_release(), cam_periph_unlock, ctl_encode_lun(), ctlfe_softc::hba_misc, ctlfe_softc::lun_softc_mtx, cam_periph::path, ctlfe_lun_softc::periph, PIM_EXTLUNS, ctlfe_softc::target_id, xpt_path_lun_id(), and xpt_path_target_id().
Referenced by ctlfeasync().
|
static |
Definition at line 1738 of file scsi_ctl.c.
References CAM_EXTLUN_BYTE_SWIZZLE, cam_fetch_status_entry(), cam_periph_alloc(), CAM_PERIPH_BIO, cam_periph_find(), CAM_REQ_CMP, CAM_STATUS_MASK, ctl_encode_lun(), ctlfeasync(), ctlfecleanup, ctlfeoninvalidate, ctlferegister, ctlfestart, ctlfe_softc::hba_misc, ctlfe_lun_softc::parent_softc, ctlfe_softc::path_id, PIM_EXTLUNS, cam_status_entry::status_text, ctlfe_softc::target_id, xpt_create_path(), xpt_free_path(), xpt_path_lock, and xpt_path_unlock.
Referenced by ctlfeasync().
|
static |
Definition at line 1703 of file scsi_ctl.c.
References CAM_LUN_WILDCARD, cam_periph_find(), cam_periph_invalidate(), CAM_REQ_CMP, CAM_TARGET_WILDCARD, ctlfe_onoffline(), ctlfe_softc::path_id, xpt_create_path(), xpt_free_path(), xpt_path_lock, and xpt_path_unlock.
Referenced by ctlfeasync().
|
static |
Definition at line 1640 of file scsi_ctl.c.
References cam_fetch_status_entry(), CAM_LUN_WILDCARD, cam_periph_alloc(), CAM_PERIPH_BIO, cam_periph_find(), CAM_REQ_CMP, CAM_STATUS_MASK, CAM_TARGET_WILDCARD, ctlfe_onoffline(), ctlfeasync(), ctlfecleanup, ctlfeoninvalidate, ctlferegister, ctlfestart, ctlfe_lun_softc::flags, ctlfe_lun_softc::parent_softc, ctlfe_softc::path_id, cam_status_entry::status_text, xpt_create_path(), xpt_free_path(), xpt_path_lock, and xpt_path_unlock.
Referenced by ctlfeasync().
|
static |
Definition at line 1526 of file scsi_ctl.c.
References CAM_LUN_WILDCARD, CAM_PRIORITY_NONE, CAM_REQ_CMP, CAM_STATUS_MASK, CAM_TARGET_WILDCARD, ccb, ccb::ccb_h, ctl_port_set_wwns(), ccb_sim_knob::fc, ccb_hdr::func_code, ccb::knob, KNOB_ROLE_TARGET, KNOB_VALID_ADDRESS, KNOB_VALID_ROLE, ctlfe_softc::path_id, ctlfe_softc::port, ctlfe_softc::port_name, ccb_sim_knob_settings_fc::role, ccb_hdr::status, ccb_sim_knob::valid, ccb_sim_knob_settings_fc::wwnn, ctl_port::wwnn, ccb_sim_knob_settings_fc::wwpn, ctl_port::wwpn, ccb_sim_knob::xport_specific, xpt_action(), xpt_alloc_ccb(), xpt_create_path(), xpt_free_ccb(), xpt_free_path(), XPT_GET_SIM_KNOB, XPT_SET_SIM_KNOB, and xpt_setup_ccb().
Referenced by ctlfe_offline(), and ctlfe_online().
|
static |
Definition at line 984 of file scsi_ctl.c.
References CAM_PERIPH_INVALID, cam_periph_mtx(), cam_periph_unlock, CAM_PRIORITY_NONE, ccb::ccb_h, ctlfe_free_ccb(), ccb_hdr::flags, cam_periph::flags, ccb_hdr::func_code, cam_periph::path, ctlfe_lun_softc::periph, cam_periph::softc, XPT_ACCEPT_TARGET_IO, xpt_action(), and xpt_setup_ccb_flags().
Referenced by ctlfe_done(), ctlfedone(), and ctlfestart().
|
static |
Definition at line 268 of file scsi_ctl.c.
References AC_CONTRACT, AC_CONTRACT_DEV_CHG, AC_PATH_DEREGISTERED, AC_PATH_REGISTERED, ac_device_changed::arrived, ccb_pathinq::bus_id, ccb_pathinq::ccb_h, ac_contract::contract_data, ac_contract::contract_number, ctl_add_initiator(), ctl_port_deregister(), CTL_PORT_FC, ctl_port_register(), CTL_PORT_SAS, CTL_PORT_SCSI, ctl_remove_initiator(), ctlfe_datamove(), ctlfe_done(), ctlfe_frontend, ctlfe_lun_disable(), ctlfe_lun_enable(), ctlfe_offline(), ctlfe_online(), CTLFE_REQ_CTL_IO, ccb_pathinq::dev_name, ctl_port::fe_datamove, ctl_port::fe_done, ctl_port::frontend, ccb_pathinq::hba_misc, ctlfe_softc::hba_misc, ccb_pathinq::initiator_id, ctl_port::lun_disable, ctl_port::lun_enable, ctlfe_softc::lun_softc_mtx, ccb_pathinq::maxio, ctlfe_softc::maxio, ctl_port::num_requested_ctl_io, ctl_port::onoff_arg, ccb_hdr::path_id, ctlfe_softc::path_id, ctl_port::physical_port, PIT_PROCESSOR, ac_device_changed::port, ctlfe_softc::port, ctl_port::port_name, ctlfe_softc::port_name, ctl_port::port_offline, ctl_port::port_online, ctl_port::port_type, ctlfe_softc::sim, ctl_port::targ_lun_arg, ctl_port::targ_port, ac_device_changed::target, ctlfe_softc::target_id, ccb_pathinq::target_sprt, ccb_pathinq::transport, ccb_pathinq::unit_number, ctl_port::virtual_port, ac_device_changed::wwpn, XPORT_FC, XPORT_SAS, xpt_path_path_id(), and xpt_path_sim().
Referenced by ctlfe_lun_enable(), and ctlfe_online().
|
static |
Definition at line 651 of file scsi_ctl.c.
References ctlfe_lun_softc::atios_alloced, ctlfe_lun_softc::ctios_sent, ctlfe_lun_softc::inots_alloced, ctlfe_lun_softc::periph, ctlfe_lun_softc::refcount, and cam_periph::softc.
|
static |
Definition at line 670 of file scsi_ctl.c.
References ctl_sg_entry::addr, CAM_DATA_PADDR, CAM_DATA_SG, CAM_DATA_SG_PADDR, CAM_DATA_VADDR, CAM_DIR_IN, CAM_DIR_OUT, ctlfe_cmd_info::cam_sglist, CTL_FLAG_BUS_ADDR, CTL_FLAG_DATA_IN, CTL_FLAG_DATA_MASK, CTLFE_CMD_PIECEWISE, CTLFE_MAX_SEGS, ctlfe_cmd_info::cur_transfer_index, ctlfe_cmd_info::cur_transfer_off, ctl_scsiio::ext_data_filled, ctl_io_hdr::flags, ctlfe_cmd_info::flags, ctl_io::io_hdr, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_ptr, ctl_scsiio::kern_sg_entries, ctl_sg_entry::len, ctlfe_softc::maxio, ctlfe_lun_softc::parent_softc, PRIV_INFO, and ctl_io::scsiio.
Referenced by ctlfedone(), and ctlfestart().
|
static |
Definition at line 1083 of file scsi_ctl.c.
References ccb_abort::abort_ccb, ccb_immediate_notify::arg, ccb::atio, atio_cdb_ptr(), ccb::cab, CAM_BDR_SENT, CAM_CDB_RECVD, CAM_DEV_NOT_THERE, CAM_DEV_QFRZN, CAM_DIS_DISCONNECT, CAM_EXTLUN_BYTE_SWIZZLE, cam_fill_ctio(), CAM_MESSAGE_RECV, cam_periph_mtx(), CAM_PRIORITY_NORMAL, CAM_PROVIDE_FAIL, cam_release_devq(), CAM_REQ_ABORTED, CAM_REQ_CMP, CAM_REQ_INPROG, CAM_REQ_INVALID, CAM_SCSI_BUS_RESET, CAM_SEND_SENSE, CAM_SEND_STATUS, CAM_SENT_SENSE, CAM_STATUS_MASK, CAM_TAG_ACTION_NONE, CAM_TAG_ACTION_VALID, CAM_UNLOCKED, ccb_scsiio::ccb_h, ccb_accept_tio::ccb_h, ccb_immediate_notify::ccb_h, ccb::ccb_h, ctl_scsiio::cdb, ccb_accept_tio::cdb_len, ctl_scsiio::cdb_len, ccb::cin1, ccb::csio, ctlfe_lun_softc::ctios_sent, ctl_alloc_io_nowait(), ctl_datamove_done(), ctl_decode_lun(), CTL_FLAG_DMA_INPROG, CTL_FLAG_DMA_QUEUED, CTL_FLAG_STATUS_SENT, CTL_IO_SCSI, CTL_IO_TASK, ctl_port::ctl_pool_ref, ctl_queue(), ctl_queue_sense(), ctl_set_data_phase_error(), CTL_STATUS_NONE, CTL_TAG_ACA, CTL_TAG_HEAD_OF_QUEUE, CTL_TAG_ORDERED, CTL_TAG_SIMPLE, CTL_TAG_UNTAGGED, CTL_TASK_ABORT_TASK, CTL_TASK_ABORT_TASK_SET, CTL_TASK_BUS_RESET, CTL_TASK_CLEAR_ACA, CTL_TASK_CLEAR_TASK_SET, CTL_TASK_LUN_RESET, CTL_TASK_QUERY_ASYNC_EVENT, CTL_TASK_QUERY_TASK, CTL_TASK_QUERY_TASK_SET, CTL_TASK_TARGET_RESET, ctl_zero_io(), ctlfe_adjust_cdb(), CTLFE_CMD_PIECEWISE, ctlfe_free_ccb(), ctlfe_requeue_ccb(), CTLFE_TIMEOUT, ctlfedata(), ctlfedone(), ccb_scsiio::data_ptr, ccb_scsiio::dxfer_len, ctl_scsiio::ext_data_filled, ccb_hdr::flags, ctl_io_hdr::flags, ctlfe_cmd_info::flags, ccb_hdr::func_code, ctlfe_softc::hba_misc, ccb_accept_tio::init_id, ccb_immediate_notify::initiator_id, ctl_nexus::initid, ctl_scsiio::io_hdr, ctl_io::io_hdr, ctl_io_hdr::io_type, ctl_scsiio::kern_data_len, ctl_scsiio::kern_data_resid, ctl_scsiio::kern_rel_offset, MSG_ABORT_TASK, MSG_ABORT_TASK_SET, MSG_ACA_TASK, MSG_CLEAR_ACA, MSG_CLEAR_TASK_SET, MSG_EXTENDED, MSG_HEAD_OF_QUEUE_TASK, MSG_LOGICAL_UNIT_RESET, MSG_NOOP, MSG_ORDERED_TASK, ccb_scsiio::msg_ptr, MSG_QUERY_ASYNC_EVENT, MSG_QUERY_TASK, MSG_QUERY_TASK_SET, MSG_SIMPLE_Q_TAG, MSG_SIMPLE_TASK, MSG_TARGET_RESET, ctl_io_hdr::nexus, ctlfe_lun_softc::parent_softc, cam_periph::path, ctlfe_lun_softc::periph, PIM_EXTLUNS, ctlfe_softc::port, ctl_io_hdr::port_status, ccb_accept_tio::priority, ctl_scsiio::priority, PRIV_CCB, PRIV_INFO, ccb_scsiio::resid, ctl_io::scsiio, ccb_immediate_notify::seq_id, ccb_scsiio::sglist_cnt, cam_periph::softc, ccb_hdr::status, ctl_io_hdr::status, ccb_accept_tio::tag_action, ccb_accept_tio::tag_id, ctl_scsiio::tag_num, ctl_taskio::tag_num, ctl_scsiio::tag_type, ctl_nexus::targ_lun, ctl_port::targ_port, ctl_nexus::targ_port, ccb_hdr::target_lun, ctl_taskio::task_action, ctl_io::taskio, XPT_ABORT, XPT_ACCEPT_TARGET_IO, xpt_action(), XPT_CONT_TARGET_IO, XPT_GET_SIM_KNOB, XPT_GET_SIM_KNOB_OLD, XPT_IMMEDIATE_NOTIFY, XPT_NOTIFY_ACKNOWLEDGE, xpt_print(), xpt_release_ccb(), xpt_schedule(), and XPT_SET_SIM_KNOB.
Referenced by ctlfedone(), ctlferegister(), and ctlfestart().
|
static |
Definition at line 222 of file scsi_ctl.c.
References ctlfe_driver, and periphdriver_register().
|
static |
Definition at line 608 of file scsi_ctl.c.
References ccb_abort::abort_ccb, ccb::cab, CAM_PRIORITY_NONE, CAM_REQ_CMP, CAM_STATUS_MASK, ccb::ccb_h, ccb::cel, ccb_en_lun::enable, ccb_hdr::func_code, ccb_en_lun::grp6_len, ccb_en_lun::grp7_len, ctlfe_lun_softc::parent_softc, cam_periph::path, ctlfe_lun_softc::periph, cam_periph::softc, ccb_hdr::status, XPT_ABORT, xpt_action(), XPT_EN_LUN, xpt_print(), and xpt_setup_ccb().
|
static |
Definition at line 455 of file scsi_ctl.c.
References ctlfe_lun_softc::atios_alloced, cam_periph_acquire(), CAM_PRIORITY_NONE, cam_release_devq(), CAM_REQ_CMP, CAM_REQ_CMP_ERR, CAM_REQ_INPROG, CAM_RESRC_UNAVAIL, CAM_STATUS_MASK, CAM_UNLOCKED, ccb_hdr::cbfcnp, ccb::ccb_h, ccb::cel, ctl_alloc_io_nowait(), ctl_free_io(), ctl_port::ctl_pool_ref, CTLFE_ATIO_PER_LUN, CTLFE_IN_PER_LUN, ctlfedone(), ccb_en_lun::enable, ccb_hdr::flags, ccb_hdr::func_code, ccb_en_lun::grp6_len, ccb_en_lun::grp7_len, ctlfe_lun_softc::inots_alloced, ctlfe_softc::lun_softc_mtx, cam_sim::max_dev_openings, cam_sim::max_tagged_dev_openings, ctlfe_lun_softc::parent_softc, cam_periph::path, ctlfe_lun_softc::periph, ctlfe_softc::port, PRIV_INFO, RELSIM_ADJUST_OPENINGS, ctlfe_softc::sim, cam_periph::softc, ccb_hdr::status, XPT_ACCEPT_TARGET_IO, xpt_action(), XPT_EN_LUN, XPT_IMMEDIATE_NOTIFY, xpt_print(), and xpt_setup_ccb().
|
static |
Definition at line 232 of file scsi_ctl.c.
References ctlfe_driver, and periphdriver_unregister().
|
static |
Definition at line 766 of file scsi_ctl.c.
References ccb_abort::abort_ccb, ccb::atio, atio_cdb_ptr(), ccb::cab, CAM_DATA_SG, CAM_DIR_MASK, CAM_DIS_DISCONNECT, cam_fill_ctio(), cam_periph_lock, cam_periph_unlock, CAM_PRIORITY_NORMAL, CAM_SEND_SENSE, CAM_SEND_STATUS, CAM_TAG_ACTION_VALID, CAM_UNLOCKED, ccb_accept_tio::ccb_h, ccb::ccb_h, ccb::csio, ctlfe_lun_softc::ctios_sent, CTL_FLAG_ABORT, CTL_FLAG_ABORT_STATUS, CTL_FLAG_DMA_INPROG, CTL_FLAG_DMA_QUEUED, CTL_FLAG_STATUS_QUEUED, CTL_SUCCESS, CTLFE_CMD_PIECEWISE, ctlfe_requeue_ccb(), CTLFE_TIMEOUT, ctlfedata(), ctlfedone(), ctlfe_cmd_info::cur_transfer_index, ctlfe_cmd_info::cur_transfer_off, ccb_scsiio::data_ptr, ccb_scsiio::dxfer_len, ccb_hdr::flags, ctl_io_hdr::flags, ctlfe_cmd_info::flags, ccb_hdr::func_code, ccb_accept_tio::init_id, ctl_io::io_hdr, MSG_SIMPLE_Q_TAG, ctlfe_lun_softc::periph, PRIV_INFO, ctlfe_lun_softc::refcount, ctl_scsiio::scsi_status, ctl_io::scsiio, ccb_scsiio::sense_data, ctl_scsiio::sense_data, ccb_scsiio::sense_len, ctl_scsiio::sense_len, ccb_scsiio::sglist_cnt, cam_periph::softc, ctl_io_hdr::status, ccb_accept_tio::tag_id, XPT_ABORT, XPT_ACCEPT_TARGET_IO, xpt_action(), xpt_release_ccb(), and xpt_schedule().
MALLOC_DEFINE | ( | M_CTLFE | , |
"CAM CTL FE" | , | ||
"CAM CTL FE interface" | |||
) |
STAILQ_HEAD | ( | ctlfe_softc | ) |
Definition at line 92 of file scsi_ctl.c.
Referenced by xpt_async_td(), and xpt_done_td().
|
static |
Definition at line 204 of file scsi_ctl.c.
Referenced by ctlfeinitialize(), and ctlfeshutdown().
|
static |
Definition at line 212 of file scsi_ctl.c.
Referenced by ctlfeasync().
ctlfe_lun_flags |
Definition at line 99 of file scsi_ctl.c.
|
static |
Definition at line 184 of file scsi_ctl.c.
Referenced by ctlfe_lun_enable(), and ctlfe_online().
|
static |
Definition at line 183 of file scsi_ctl.c.
Referenced by ctlfe_lun_enable(), and ctlfe_online().
|
static |
Definition at line 179 of file scsi_ctl.c.
|
static |
Definition at line 178 of file scsi_ctl.c.
|
static |
Definition at line 182 of file scsi_ctl.c.
Referenced by ctlfe_lun_enable(), and ctlfe_online().
|
static |
Definition at line 185 of file scsi_ctl.c.
Referenced by ctlfe_lun_enable(), and ctlfe_online().