FreeBSD kernel CAM code
|
#include <sys/cdefs.h>
#include <sys/param.h>
#include <sys/bus.h>
#include <sys/endian.h>
#include <sys/systm.h>
#include <sys/types.h>
#include <sys/malloc.h>
#include <sys/kernel.h>
#include <sys/time.h>
#include <sys/conf.h>
#include <sys/fcntl.h>
#include <sys/sbuf.h>
#include <sys/eventhandler.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/sysctl.h>
#include <cam/cam.h>
#include <cam/cam_ccb.h>
#include <cam/cam_queue.h>
#include <cam/cam_periph.h>
#include <cam/cam_sim.h>
#include <cam/cam_xpt.h>
#include <cam/cam_xpt_sim.h>
#include <cam/cam_xpt_periph.h>
#include <cam/cam_xpt_internal.h>
#include <cam/cam_debug.h>
#include <cam/scsi/scsi_all.h>
#include <cam/scsi/scsi_message.h>
#include <cam/ata/ata_all.h>
#include <machine/stdarg.h>
#include "opt_cam.h"
Go to the source code of this file.
Data Structures | |
struct | ata_quirk_entry |
struct | aprobe_softc |
struct | ata_scan_bus_info |
Macros | |
#define | CAM_QUIRK_MAXTAGS 0x01 |
#define | PROBE_SET_ACTION(softc, newaction) |
#define | ATA_XPT_XPORT(x, X) |
Enumerations | |
enum | aprobe_action { PROBE_RESET , PROBE_IDENTIFY , PROBE_SPINUP , PROBE_SETMODE , PROBE_SETPM , PROBE_SETAPST , PROBE_SETDMAAA , PROBE_SETAN , PROBE_SET_MULTI , PROBE_INQUIRY , PROBE_FULL_INQUIRY , PROBE_PM_PID , PROBE_PM_PRV , PROBE_IDENTIFY_SES , PROBE_IDENTIFY_SAFTE , PROBE_DONE , PROBE_INVALID } |
enum | aprobe_flags { PROBE_NO_ANNOUNCE = 0x04 } |
Functions | |
__FBSDID ("$FreeBSD$") | |
PERIPHDRIVER_DECLARE (aprobe, aprobe_driver) | |
static cam_status | aproberegister (struct cam_periph *periph, void *arg) |
static void | aprobeschedule (struct cam_periph *probe_periph) |
static void | aprobestart (struct cam_periph *periph, union ccb *start_ccb) |
static void | aproberequestdefaultnegotiation (struct cam_periph *periph) |
static void | aprobedone (struct cam_periph *periph, union ccb *done_ccb) |
static void | aprobecleanup (struct cam_periph *periph) |
static void | ata_find_quirk (struct cam_ed *device) |
static void | ata_scan_bus (struct cam_periph *periph, union ccb *ccb) |
static void | ata_scan_lun (struct cam_periph *periph, struct cam_path *path, cam_flags flags, union ccb *ccb) |
static void | axptscandone (struct cam_periph *periph, union ccb *done_ccb) |
static struct cam_ed * | ata_alloc_device (struct cam_eb *bus, struct cam_et *target, lun_id_t lun_id) |
static void | ata_device_transport (struct cam_path *path) |
static void | ata_get_transfer_settings (struct ccb_trans_settings *cts) |
static void | ata_set_transfer_settings (struct ccb_trans_settings *cts, struct cam_path *path, int async_update) |
static void | ata_dev_async (u_int32_t async_code, struct cam_eb *bus, struct cam_et *target, struct cam_ed *device, void *async_arg) |
static void | ata_action (union ccb *start_ccb) |
static void | ata_announce_periph (struct cam_periph *periph) |
static void | ata_announce_periph_sbuf (struct cam_periph *periph, struct sbuf *sb) |
static void | ata_proto_announce (struct cam_ed *device) |
static void | ata_proto_announce_sbuf (struct cam_ed *device, struct sbuf *sb) |
static void | ata_proto_denounce (struct cam_ed *device) |
static void | ata_proto_denounce_sbuf (struct cam_ed *device, struct sbuf *sb) |
static void | ata_proto_debug_out (union ccb *ccb) |
static void | semb_proto_announce (struct cam_ed *device) |
static void | semb_proto_announce_sbuf (struct cam_ed *device, struct sbuf *sb) |
static void | semb_proto_denounce (struct cam_ed *device) |
static void | semb_proto_denounce_sbuf (struct cam_ed *device, struct sbuf *sb) |
TUNABLE_INT ("hw.ata.ata_dma", &ata_dma) | |
TUNABLE_INT ("hw.ata.atapi_dma", &atapi_dma) | |
ATA_XPT_XPORT (ata, ATA) | |
ATA_XPT_XPORT (sata, SATA) | |
CAM_XPT_PROTO (ata_proto_ata) | |
CAM_XPT_PROTO (ata_proto_satapm) | |
CAM_XPT_PROTO (ata_proto_semb) | |
static void | ata_dev_advinfo (union ccb *start_ccb) |
static void | _ata_announce_periph (struct cam_periph *periph, struct ccb_trans_settings *cts, u_int *speed) |
Variables | |
static periph_init_t | aprobe_periph_init |
static struct periph_driver | aprobe_driver |
static char * | probe_action_text [] |
static struct ata_quirk_entry | ata_quirk_table [] |
static int | ata_dma = 1 |
static int | atapi_dma = 1 |
static struct xpt_xport_ops | ata_xport_ops |
static struct xpt_proto_ops | ata_proto_ops_ata |
static struct xpt_proto | ata_proto_ata |
static struct xpt_proto_ops | ata_proto_ops_satapm |
static struct xpt_proto | ata_proto_satapm |
static struct xpt_proto_ops | ata_proto_ops_semb |
static struct xpt_proto | ata_proto_semb |
#define ATA_XPT_XPORT | ( | x, | |
X | |||
) |
#define PROBE_SET_ACTION | ( | softc, | |
newaction | |||
) |
enum aprobe_action |
enum aprobe_flags |
__FBSDID | ( | "$FreeBSD$" | ) |
|
static |
Definition at line 2101 of file ata_xpt.c.
References ata_mode2speed(), ata_revision2speed(), ccb_pathinq::base_transfer_speed, cam_periph_assert, CAM_PRIORITY_NORMAL, CAM_REQ_CMP, CAM_STATUS_MASK, cts, CTS_ATA_VALID_MODE, CTS_SATA_VALID_REVISION, CTS_TYPE_CURRENT_SETTINGS, ccb_trans_settings_pata::mode, cam_periph::path, cam_path::periph, ccb_trans_settings_sata::revision, ccb_trans_settings_pata::valid, ccb_trans_settings_sata::valid, XPORT_ATA, XPORT_SATA, xpt_action(), XPT_GET_TRAN_SETTINGS, xpt_path_inq(), and xpt_setup_ccb().
Referenced by ata_announce_periph(), and ata_announce_periph_sbuf().
|
static |
Definition at line 1356 of file ata_xpt.c.
References cam_periph::softc.
Referenced by ata_scan_lun().
|
static |
Definition at line 743 of file ata_xpt.c.
References AC_FOUND_DEVICE, AC_GETDEV_CHANGED, AC_LOST_DEVICE, AC_SCSI_AEN, scsi_inquiry_data::additional_length, aproberequestdefaultnegotiation(), aprobeschedule(), ata_bswap(), ata_device_transport(), ata_find_quirk(), ata_max_pmode(), ata_param_fixup(), ccb::ataio, cam_path::bus, CAM_ATA_STATUS_ERROR, CAM_CMD_TIMEOUT, CAM_DEBUG, CAM_DEBUG_PROBE, CAM_DEBUG_TRACE, CAM_DEV_IDENTIFY_DATA_VALID, CAM_DEV_INQUIRY_DATA_VALID, CAM_DEV_QFRZN, CAM_DEV_UNCONFIGURED, cam_periph_error(), cam_periph_invalidate(), cam_periph_release_locked(), CAM_PRIORITY_NONE, cam_release_devq(), CAM_REQ_CMP, CAM_REQ_CMP_ERR, CAM_STATUS_MASK, ccb_pathinq::ccb_h, ccb::ccb_h, cts, CTS_ATA_CAPS_H, CTS_ATA_CAPS_H_DMA48, CTS_ATA_VALID_CAPS, CTS_SATA_CAPS_D_APST, CTS_SATA_CAPS_D_PMREQ, CTS_SATA_CAPS_H, CTS_SATA_CAPS_H_AN, CTS_SATA_CAPS_H_APST, CTS_SATA_CAPS_H_DMAAA, CTS_SATA_CAPS_H_PMREQ, CTS_SATA_VALID_CAPS, CTS_SATA_VALID_PM, CTS_SATA_VALID_TAGS, CTS_TYPE_CURRENT_SETTINGS, CTS_TYPE_USER_SETTINGS, cam_path::device, cam_ed::device_id, cam_ed::device_id_len, cam_ed::flags, ccb_hdr::func_code, ccb_pathinq::hba_inquiry, cam_ed::ident_data, cam_ed::inq_data, cam_ed::inq_flags, ata_res::lba_high, ata_res::lba_low, ata_res::lba_mid, cam_sim::max_tagged_dev_openings, cam_ed::maxtags, cam_ed::mintags, ccb_hdr::path, cam_periph::path, cam_path::periph, PI_TAG_ABLE, ccb_hdr::pinfo, cam_pinfo::priority, PROBE_DONE, PROBE_FULL_INQUIRY, PROBE_IDENTIFY, PROBE_IDENTIFY_SAFTE, PROBE_IDENTIFY_SES, PROBE_INQUIRY, PROBE_INVALID, PROBE_PM_PID, PROBE_PM_PRV, PROBE_RESET, PROBE_SET_ACTION, PROBE_SET_MULTI, PROBE_SETAN, PROBE_SETAPST, PROBE_SETDMAAA, PROBE_SETMODE, PROBE_SETPM, PROBE_SPINUP, PROTO_ATA, PROTO_SATAPM, PROTO_SCSI, PROTO_SEMB, cam_ed::protocol, ccb_ataio::res, ata_res::sector_count, cam_ed::serial_num, cam_ed::serial_num_len, SF_NO_RECOVERY, SF_NO_RETRY, SHORT_INQUIRY_LENGTH, SID_AEN, SID_DMA, SID_DMA48, SID_QUAL, SID_QUAL_LU_CONNECTED, SID_QUAL_LU_OFFLINE, cam_eb::sim, cam_periph::softc, ccb_hdr::status, SVPD_DEVICE_ID, SVPD_ID_CODESET_BINARY, SVPD_ID_TYPE_NAA, ccb_hdr::target_id, cam_ed::transport, XPORT_ATA, XPORT_SATA, xpt_acquire_device(), xpt_action(), xpt_async(), xpt_done(), XPT_GDEV_TYPE, XPT_GET_TRAN_SETTINGS, xpt_path_inq(), xpt_print(), xpt_release_ccb(), xpt_release_devq(), xpt_schedule(), XPT_SET_TRAN_SETTINGS, and xpt_setup_ccb().
Referenced by aprobestart().
|
static |
Definition at line 278 of file ata_xpt.c.
References aprobeschedule(), ata_device_transport(), CAM_DEBUG, CAM_DEBUG_PROBE, cam_periph_acquire(), CAM_REQ_CMP, CAM_REQ_CMP_ERR, ccb::ccb_h, cam_periph::path, PROBE_INVALID, and cam_periph::softc.
Referenced by ata_scan_lun().
|
static |
Definition at line 725 of file ata_xpt.c.
References CAM_PRIORITY_NONE, CAM_REQ_CMP, CAM_STATUS_MASK, cts, CTS_TYPE_CURRENT_SETTINGS, CTS_TYPE_USER_SETTINGS, cam_periph::path, xpt_action(), XPT_GET_TRAN_SETTINGS, XPT_SET_TRAN_SETTINGS, and xpt_setup_ccb().
Referenced by aprobedone().
|
static |
Definition at line 314 of file ata_xpt.c.
References CAM_DEV_UNCONFIGURED, CAM_EXPECT_INQ_CHANGE, CAM_PRIORITY_XPT, ccb, ccb::crcn, cam_path::device, ccb_rescan::flags, cam_ed::flags, cam_periph::path, PROBE_IDENTIFY, PROBE_NO_ANNOUNCE, PROBE_RESET, PROBE_SET_ACTION, PROTO_SATAPM, PROTO_SEMB, cam_ed::protocol, cam_periph::softc, and xpt_schedule().
Referenced by aprobedone(), and aproberegister().
|
static |
Definition at line 338 of file ata_xpt.c.
References AC_GETDEV_CHANGED, aprobedone(), ata_28bit_cmd(), ata_dma, ata_logical_sector_size(), ata_max_mode(), ata_pm_read_cmd(), ata_reset_cmd(), ccb::ataio, atapi_dma, CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFREEZE, CAM_DEV_UNCONFIGURED, CAM_DIR_IN, CAM_DIR_NONE, cam_fill_ataio(), CAM_HIGH_POWER, CAM_PRIORITY_NONE, ccb::ccb_h, ccb::csio, cts, CTS_ATA_VALID_BYTECOUNT, CTS_ATA_VALID_MODE, CTS_SATA_CAPS_H_AN, CTS_SATA_CAPS_H_APST, CTS_SATA_CAPS_H_DMAAA, CTS_SATA_CAPS_H_PMREQ, CTS_SATA_VALID_BYTECOUNT, CTS_SATA_VALID_MODE, CTS_TYPE_CURRENT_SETTINGS, CTS_TYPE_USER_SETTINGS, cam_path::device, ccb_hdr::flags, cam_ed::flags, cam_ed::ident_data, cam_ed::inq_data, cam_ed::inq_flags, MSG_SIMPLE_Q_TAG, ccb_hdr::path, cam_periph::path, PROBE_FULL_INQUIRY, PROBE_IDENTIFY, PROBE_IDENTIFY_SAFTE, PROBE_IDENTIFY_SES, PROBE_INQUIRY, PROBE_PM_PID, PROBE_PM_PRV, PROBE_RESET, PROBE_SET_MULTI, PROBE_SETAN, PROBE_SETAPST, PROBE_SETDMAAA, PROBE_SETMODE, PROBE_SETPM, PROBE_SPINUP, PROTO_ATA, PROTO_SATAPM, PROTO_SEMB, cam_ed::protocol, scsi_inquiry(), SHORT_INQUIRY_LENGTH, SID_ADDITIONAL_LENGTH, SID_AEN, SID_DMA, cam_periph::softc, SSD_MIN_SIZE, cam_ed::transport, XPORT_ATA, xpt_action(), xpt_async(), XPT_GET_TRAN_SETTINGS, xpt_print(), XPT_SET_TRAN_SETTINGS, and xpt_setup_ccb().
Referenced by ata_scan_lun().
|
static |
Definition at line 1798 of file ata_xpt.c.
References ccb_hdr::alloc_flags, ata_dev_advinfo(), ata_get_transfer_settings(), ata_scan_bus(), ata_scan_lun(), ata_set_transfer_settings(), CAM_CCB_FROM_UMA, CAM_DEV_IDENTIFY_DATA_VALID, CAM_REQ_INVALID, ccb::ccb_h, ccb_scsiio::cdb_len, ccb::crcn, ccb::csio, ccb::cts, cam_path::device, ccb_rescan::flags, cam_ed::flags, ccb_hdr::func_code, cam_ed::ident_data, ccb_hdr::path, cam_path::periph, PROTO_SCSI, cam_ed::protocol, ccb_hdr::status, xpt_action_default(), XPT_ATA_IO, XPT_DEV_ADVINFO, xpt_done(), XPT_GET_TRAN_SETTINGS, XPT_SCAN_BUS, XPT_SCAN_LUN, XPT_SCAN_TGT, XPT_SCSI_IO, and XPT_SET_TRAN_SETTINGS.
|
static |
Definition at line 1645 of file ata_xpt.c.
References ata_quirk_table, cam_ed::inq_data, cam_ed::inq_flags, cam_ed::lun_id, cam_ed::maxtags, cam_ed::mintags, cam_ed::queue_flags, cam_ed::quirk, cam_ed::serial_num, cam_ed::serial_num_len, cam_ed::target, and xpt_alloc_device().
|
static |
Definition at line 2135 of file ata_xpt.c.
References _ata_announce_periph(), ata_mode2string(), ccb_trans_settings_pata::atapi, ccb_trans_settings_sata::atapi, ccb_trans_settings_pata::bytecount, ccb_trans_settings_sata::bytecount, CAM_REQ_CMP, CAM_STATUS_MASK, cts, CTS_ATA_VALID_ATAPI, CTS_ATA_VALID_BYTECOUNT, CTS_ATA_VALID_MODE, CTS_SATA_VALID_BYTECOUNT, CTS_SATA_VALID_MODE, CTS_SATA_VALID_REVISION, ccb_trans_settings_pata::mode, ccb_trans_settings_sata::mode, cam_periph::periph_name, ccb_trans_settings_sata::revision, cam_periph::unit_number, ccb_trans_settings_pata::valid, ccb_trans_settings_sata::valid, XPORT_ATA, and XPORT_SATA.
|
static |
Definition at line 2188 of file ata_xpt.c.
References _ata_announce_periph(), ata_mode2string(), ccb_trans_settings_pata::atapi, ccb_trans_settings_sata::atapi, ccb_trans_settings_pata::bytecount, ccb_trans_settings_sata::bytecount, CAM_REQ_CMP, CAM_STATUS_MASK, cts, CTS_ATA_VALID_ATAPI, CTS_ATA_VALID_BYTECOUNT, CTS_ATA_VALID_MODE, CTS_SATA_VALID_BYTECOUNT, CTS_SATA_VALID_MODE, CTS_SATA_VALID_REVISION, ccb_trans_settings_pata::mode, ccb_trans_settings_sata::mode, cam_periph::periph_name, ccb_trans_settings_sata::revision, cam_periph::unit_number, ccb_trans_settings_pata::valid, ccb_trans_settings_sata::valid, XPORT_ATA, and XPORT_SATA.
|
static |
Definition at line 1726 of file ata_xpt.c.
References AC_ADVINFO_CHANGED, ccb_dev_advinfo::buf, ccb_dev_advinfo::bufsiz, ccb_dev_advinfo::buftype, CAM_REQ_ABORTED, CAM_REQ_CMP, CAM_REQ_INVALID, ccb::ccb_h, ccb::cdai, CDAI_FLAG_STORE, CDAI_TYPE_PHYS_PATH, CDAI_TYPE_SCSI_DEVID, CDAI_TYPE_SERIAL_NUM, cam_path::device, cam_ed::device_id, cam_ed::device_id_len, ccb_dev_advinfo::flags, ccb_hdr::path, cam_ed::physpath, cam_ed::physpath_len, ccb_dev_advinfo::provsiz, cam_ed::serial_num, cam_ed::serial_num_len, ccb_hdr::status, xpt_async(), and xpt_path_assert.
Referenced by ata_action().
|
static |
Definition at line 2039 of file ata_xpt.c.
References AC_BUS_RESET, AC_INQ_CHANGED, AC_LOST_DEVICE, AC_SENT_BDR, AC_TRANSFER_NEG, ata_scan_lun(), ata_set_transfer_settings(), cam_path::bus, CAM_DEV_UNCONFIGURED, CAM_EXPECT_INQ_CHANGE, CAM_LUN_WILDCARD, CAM_REQ_CMP, CAM_REQ_CMP_ERR, CAM_TARGET_WILDCARD, cam_path::device, cam_ed::flags, cam_ed::lun_id, cam_eb::path_id, cam_path::periph, cam_path::target, cam_et::target_id, xpt_compile_path(), xpt_release_device(), and xpt_release_path().
|
static |
Definition at line 1671 of file ata_xpt.c.
References ata_version(), CAM_DEV_IDENTIFY_DATA_VALID, CAM_DEV_INQUIRY_DATA_VALID, CAM_PRIORITY_NONE, cts, CTS_ATA_VALID_ATAPI, CTS_SATA_VALID_ATAPI, CTS_TYPE_CURRENT_SETTINGS, cam_path::device, cam_ed::flags, cam_ed::ident_data, cam_ed::inq_data, PROTO_ATA, PROTO_SCSI, cam_ed::protocol, ccb_pathinq::protocol_version, cam_ed::protocol_version, SID_ANSI_REV, ccb_pathinq::transport, cam_ed::transport, ccb_pathinq::transport_version, cam_ed::transport_version, XPORT_ATA, xpt_action(), xpt_path_inq(), XPT_SET_TRAN_SETTINGS, and xpt_setup_ccb().
Referenced by aprobedone(), and aproberegister().
|
static |
Definition at line 1362 of file ata_xpt.c.
References ata_identify_match(), ata_quirk_table, CAM_QUIRK_MAXTAGS, cam_quirkmatch(), cam_ed::ident_data, ata_quirk_entry::maxtags, cam_ed::maxtags, ata_quirk_entry::mintags, cam_ed::mintags, cam_ed::quirk, and ata_quirk_entry::quirks.
Referenced by aprobedone().
|
static |
Definition at line 1866 of file ata_xpt.c.
References CAM_DEV_TAG_AFTER_COUNT, cts, CTS_ATA_FLAGS_TAG_ENB, CTS_ATA_VALID_TQ, CTS_SCSI_FLAGS_TAG_ENB, CTS_SCSI_VALID_TQ, CTS_TYPE_USER_SETTINGS, ccb_trans_settings_scsi::flags, ccb_trans_settings_ata::flags, cam_ed::flags, cam_ed::inq_flags, PROTO_ATA, PROTO_SCSI, PROTO_UNKNOWN, PROTO_UNSPECIFIED, cam_ed::protocol, cam_ed::protocol_version, SID_CmdQue, cam_ed::transport, cam_ed::transport_version, ccb_trans_settings_scsi::valid, ccb_trans_settings_ata::valid, XPORT_UNKNOWN, XPORT_UNSPECIFIED, and xpt_action_default().
Referenced by ata_action().
|
static |
Definition at line 2247 of file ata_xpt.c.
References ata_print_ident(), and cam_ed::ident_data.
|
static |
Definition at line 2241 of file ata_xpt.c.
References ata_print_ident_sbuf(), and cam_ed::ident_data.
|
static |
Definition at line 2289 of file ata_xpt.c.
References ata_cmd_string(), ata_op_string(), ccb::ataio, CAM_DEBUG, CAM_DEBUG_CDB, ccb::ccb_h, ccb_ataio::cmd, ccb_hdr::func_code, ccb_hdr::path, and XPT_ATA_IO.
|
static |
Definition at line 2253 of file ata_xpt.c.
References ata_print_ident_short(), and cam_ed::ident_data.
|
static |
Definition at line 2259 of file ata_xpt.c.
References ata_print_ident_short_sbuf(), and cam_ed::ident_data.
|
static |
Definition at line 1395 of file ata_xpt.c.
References ata_scan_bus(), cam_path::bus, CAM_DEBUG, CAM_DEBUG_TRACE, CAM_PRIORITY_NONE, CAM_REQ_CMP, CAM_RESRC_UNAVAIL, CAM_UNLOCKED, ccb_hdr::cbfcnp, ccb::ccb_h, ata_scan_bus_info::counter, ata_scan_bus_info::cpi, ccb::cpi, ccb::crcn, cts, CTS_SATA_VALID_PM, CTS_TYPE_CURRENT_SETTINGS, ccb_hdr::flags, ccb_rescan::flags, ccb_hdr::func_code, ccb_pathinq::hba_inquiry, ccb_pathinq::hba_misc, cam_eb::last_reset, ccb_pathinq::max_target, ccb_hdr::path, ccb_hdr::path_id, PI_SATAPM, PI_SDTR_ABLE, PI_WIDE_16, PI_WIDE_32, PIM_NOBUSRESET, ccb_hdr::pinfo, cam_pinfo::priority, ata_scan_bus_info::request_ccb, ccb_hdr::status, xpt_action(), xpt_alloc_ccb_nowait(), xpt_create_path(), xpt_done(), xpt_free_ccb(), xpt_free_path(), xpt_path_inq(), xpt_path_mtx(), XPT_RESET_BUS, XPT_SCAN_BUS, XPT_SCAN_LUN, XPT_SCAN_TGT, XPT_SET_TRAN_SETTINGS, and xpt_setup_ccb().
Referenced by ata_action(), and ata_scan_bus().
|
static |
Definition at line 1559 of file ata_xpt.c.
References aprobecleanup(), aproberegister(), aprobestart(), axptscandone(), cam_path::bus, CAM_DEBUG, CAM_DEBUG_TRACE, cam_periph_alloc(), CAM_PERIPH_BIO, cam_periph_find(), CAM_PERIPH_INVALID, CAM_PRIORITY_XPT, CAM_REQ_CMP, CAM_REQ_CMP_ERR, CAM_UNLOCKED, ccb_hdr::cbfcnp, ccb_pathinq::ccb_h, ccb::ccb_h, ccb::crcn, cam_path::device, ccb_hdr::flags, ccb_rescan::flags, cam_periph::flags, ccb_hdr::func_code, cam_ed::lun_id, ccb_hdr::path, cam_periph::path, cam_eb::path_id, cam_periph::softc, ccb_hdr::status, cam_path::target, cam_et::target_id, xpt_alloc_ccb_nowait(), xpt_create_path(), xpt_done(), xpt_free_ccb(), xpt_path_inq(), xpt_path_lock, xpt_path_owned, xpt_path_unlock, xpt_print(), XPT_SCAN_LUN, and xpt_setup_ccb().
Referenced by ata_action(), and ata_dev_async().
|
static |
Definition at line 1910 of file ata_xpt.c.
References CAM_DEV_TAG_AFTER_COUNT, CAM_PATH_INVALID, CAM_TAG_DELAY_COUNT, cts, CTS_ATA_FLAGS_TAG_ENB, CTS_ATA_VALID_TQ, CTS_SCSI_FLAGS_TAG_ENB, CTS_SCSI_VALID_TQ, CTS_TYPE_CURRENT_SETTINGS, cam_path::device, ccb_trans_settings_scsi::flags, ccb_trans_settings_ata::flags, cam_ed::flags, ccb_pathinq::hba_inquiry, cam_ed::ident_data, cam_ed::inq_data, INQ_DATA_TQ_ENABLED, cam_ed::inq_flags, cam_ed::mintags, PI_TAG_ABLE, PROTO_ATA, PROTO_SCSI, PROTO_UNKNOWN, PROTO_UNSPECIFIED, PROTO_VERSION_UNKNOWN, PROTO_VERSION_UNSPECIFIED, cam_ed::protocol, cam_ed::protocol_version, cam_ed::queue_flags, SCP_QUEUE_DQUE, SID_CmdQue, cam_ed::tag_delay_count, cam_ed::transport, cam_ed::transport_version, ccb_trans_settings_scsi::valid, ccb_trans_settings_ata::valid, XPORT_UNKNOWN, XPORT_UNSPECIFIED, XPORT_VERSION_UNKNOWN, XPORT_VERSION_UNSPECIFIED, xpt_action_default(), xpt_done(), xpt_path_inq(), xpt_print(), and xpt_stop_tags().
Referenced by ata_action(), and ata_dev_async().
ATA_XPT_XPORT | ( | ata | , |
ATA | |||
) |
ATA_XPT_XPORT | ( | sata | , |
SATA | |||
) |
|
static |
Definition at line 1637 of file ata_xpt.c.
References ccb::ccb_h, ccb_hdr::path, xpt_free_ccb(), and xpt_free_path().
Referenced by ata_scan_lun().
CAM_XPT_PROTO | ( | ata_proto_ata | ) |
CAM_XPT_PROTO | ( | ata_proto_satapm | ) |
CAM_XPT_PROTO | ( | ata_proto_semb | ) |
PERIPHDRIVER_DECLARE | ( | aprobe | , |
aprobe_driver | |||
) |
|
static |
Definition at line 2271 of file ata_xpt.c.
References cam_ed::ident_data, and semb_print_ident().
|
static |
Definition at line 2265 of file ata_xpt.c.
References cam_ed::ident_data, and semb_print_ident_sbuf().
|
static |
Definition at line 2277 of file ata_xpt.c.
References cam_ed::ident_data, and semb_print_ident_short().
|
static |
Definition at line 2283 of file ata_xpt.c.
References cam_ed::ident_data, and semb_print_ident_short_sbuf().
TUNABLE_INT | ( | "hw.ata.ata_dma" | , |
& | ata_dma | ||
) |
TUNABLE_INT | ( | "hw.ata.atapi_dma" | , |
& | atapi_dma | ||
) |
|
static |
|
static |
Definition at line 203 of file ata_xpt.c.
Referenced by aprobestart().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 153 of file ata_xpt.c.
Referenced by ata_alloc_device(), and ata_find_quirk().
|
static |
|
static |
Definition at line 204 of file ata_xpt.c.
Referenced by aprobestart().
|
static |