FreeBSD kernel CAM code
|
#include <sys/cdefs.h>
#include <sys/param.h>
#include "opt_da.h"
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/bio.h>
#include <sys/sysctl.h>
#include <sys/taskqueue.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/conf.h>
#include <sys/devicestat.h>
#include <sys/eventhandler.h>
#include <sys/malloc.h>
#include <sys/cons.h>
#include <sys/endian.h>
#include <sys/proc.h>
#include <sys/reboot.h>
#include <sys/sbuf.h>
#include <geom/geom.h>
#include <geom/geom_disk.h>
#include <machine/atomic.h>
#include <cam/cam.h>
#include <cam/cam_ccb.h>
#include <cam/cam_periph.h>
#include <cam/cam_xpt_periph.h>
#include <cam/cam_xpt_internal.h>
#include <cam/cam_sim.h>
#include <cam/cam_iosched.h>
#include <cam/scsi/scsi_message.h>
#include <cam/scsi/scsi_da.h>
Go to the source code of this file.
Data Structures | |
struct | da_zone_desc |
struct | disk_params |
struct | da_softc |
struct | da_quirk_entry |
Macros | |
#define | DA_FLAG_STRING |
#define | DA_Q_BIT_STRING |
#define | ccb_state ppriv_field0 |
#define | ccb_bp ppriv_ptr1 |
#define | UNMAP_RANGE_MAX 0xffffffff |
#define | UNMAP_HEAD_SIZE 8 |
#define | UNMAP_RANGE_SIZE 16 |
#define | UNMAP_MAX_RANGES 2048 /* Protocol Max is 4095 */ |
#define | UNMAP_BUF_SIZE |
#define | WS10_MAX_BLKS 0xffff |
#define | WS16_MAX_BLKS 0xffffffff |
#define | ATA_TRIM_MAX_RANGES |
#define | DA_WORK_TUR (1 << 16) |
#define | DA_ANNOUNCETMP_SZ 160 |
#define | DA_ANNOUNCE_SZ 400 |
#define | dadeleteflag(softc, delete_method, enable) |
#define | DA_DEFAULT_POLL_PERIOD 3 |
#define | DA_DEFAULT_TIMEOUT 60 /* Timeout in seconds */ |
#define | DA_DEFAULT_SOFTTIMEOUT 0 |
#define | DA_DEFAULT_RETRY 4 |
#define | DA_DEFAULT_SEND_ORDERED 1 |
#define | DA_ORDEREDTAG_INTERVAL 4 |
#define | da_periph_hold(periph, prio, token) cam_periph_hold((periph), (prio)) |
#define | da_periph_unhold(periph, token) cam_periph_unhold((periph)) |
#define | da_periph_acquire(periph, token) cam_periph_acquire((periph)) |
#define | da_periph_release(periph, token) cam_periph_release((periph)) |
#define | da_periph_release_locked(periph, token) cam_periph_release_locked((periph)) |
Typedefs | |
typedef void | da_delete_func_t(struct cam_periph *periph, union ccb *ccb, struct bio *bp) |
Functions | |
__FBSDID ("$FreeBSD$") | |
static void | daasync (void *callback_arg, u_int32_t code, struct cam_path *path, void *arg) |
static void | dasysctlinit (void *context, int pending) |
static int | dasysctlsofttimeout (SYSCTL_HANDLER_ARGS) |
static int | dacmdsizesysctl (SYSCTL_HANDLER_ARGS) |
static int | dadeletemethodsysctl (SYSCTL_HANDLER_ARGS) |
static int | dabitsysctl (SYSCTL_HANDLER_ARGS) |
static int | daflagssysctl (SYSCTL_HANDLER_ARGS) |
static int | dazonemodesysctl (SYSCTL_HANDLER_ARGS) |
static int | dazonesupsysctl (SYSCTL_HANDLER_ARGS) |
static int | dadeletemaxsysctl (SYSCTL_HANDLER_ARGS) |
static void | dadeletemethodset (struct da_softc *softc, da_delete_methods delete_method) |
static off_t | dadeletemaxsize (struct da_softc *softc, da_delete_methods delete_method) |
static void | dadeletemethodchoose (struct da_softc *softc, da_delete_methods default_method) |
static void | daprobedone (struct cam_periph *periph, union ccb *ccb) |
static void | dazonedone (struct cam_periph *periph, union ccb *ccb) |
static void | dadone (struct cam_periph *periph, union ccb *done_ccb) |
static void | dadone_probewp (struct cam_periph *periph, union ccb *done_ccb) |
static void | dadone_proberc (struct cam_periph *periph, union ccb *done_ccb) |
static void | dadone_probelbp (struct cam_periph *periph, union ccb *done_ccb) |
static void | dadone_probeblklimits (struct cam_periph *periph, union ccb *done_ccb) |
static void | dadone_probebdc (struct cam_periph *periph, union ccb *done_ccb) |
static void | dadone_probeata (struct cam_periph *periph, union ccb *done_ccb) |
static void | dadone_probeatalogdir (struct cam_periph *periph, union ccb *done_ccb) |
static void | dadone_probeataiddir (struct cam_periph *periph, union ccb *done_ccb) |
static void | dadone_probeatasup (struct cam_periph *periph, union ccb *done_ccb) |
static void | dadone_probeatazone (struct cam_periph *periph, union ccb *done_ccb) |
static void | dadone_probezone (struct cam_periph *periph, union ccb *done_ccb) |
static void | dadone_tur (struct cam_periph *periph, union ccb *done_ccb) |
static int | daerror (union ccb *ccb, u_int32_t cam_flags, u_int32_t sense_flags) |
static void | daprevent (struct cam_periph *periph, int action) |
static void | dareprobe (struct cam_periph *periph) |
static void | dasetgeom (struct cam_periph *periph, uint32_t block_len, uint64_t maxsector, struct scsi_read_capacity_data_long *rcaplong, size_t rcap_size) |
static void | dashutdown (void *arg, int howto) |
static | SYSCTL_NODE (_kern_cam, OID_AUTO, da, CTLFLAG_RD|CTLFLAG_MPSAFE, 0, "CAM Direct Access Disk driver") |
SYSCTL_INT (_kern_cam_da, OID_AUTO, poll_period, CTLFLAG_RWTUN, &da_poll_period, 0, "Media polling period in seconds") | |
SYSCTL_INT (_kern_cam_da, OID_AUTO, retry_count, CTLFLAG_RWTUN, &da_retry_count, 0, "Normal I/O retry count") | |
SYSCTL_INT (_kern_cam_da, OID_AUTO, default_timeout, CTLFLAG_RWTUN, &da_default_timeout, 0, "Normal I/O timeout (in seconds)") | |
SYSCTL_INT (_kern_cam_da, OID_AUTO, send_ordered, CTLFLAG_RWTUN, &da_send_ordered, 0, "Send Ordered Tags") | |
SYSCTL_INT (_kern_cam_da, OID_AUTO, disable_wp_detection, CTLFLAG_RWTUN, &da_disable_wp_detection, 0, "Disable detection of write-protected disks") | |
SYSCTL_INT (_kern_cam_da, OID_AUTO, enable_biospeedup, CTLFLAG_RDTUN, &da_enable_biospeedup, 0, "Enable BIO_SPEEDUP processing") | |
SYSCTL_INT (_kern_cam_da, OID_AUTO, enable_uma_ccbs, CTLFLAG_RWTUN, &da_enable_uma_ccbs, 0, "Use UMA for CCBs") | |
SYSCTL_PROC (_kern_cam_da, OID_AUTO, default_softtimeout, CTLTYPE_UINT|CTLFLAG_RW|CTLFLAG_MPSAFE, NULL, 0, dasysctlsofttimeout, "I", "Soft I/O timeout (ms)") | |
TUNABLE_INT64 ("kern.cam.da.default_softtimeout", &da_default_softtimeout) | |
PERIPHDRIVER_DECLARE (da, dadriver) | |
static | MALLOC_DEFINE (M_SCSIDA, "scsi_da", "scsi_da buffers") |
static int | daopen (struct disk *dp) |
static int | daclose (struct disk *dp) |
static void | daschedule (struct cam_periph *periph) |
static void | dastrategy (struct bio *bp) |
static int | dadump (void *arg, void *virtual, vm_offset_t physical, off_t offset, size_t length) |
static int | dagetattr (struct bio *bp) |
static void | dadiskgonecb (struct disk *dp) |
static void | daoninvalidate (struct cam_periph *periph) |
static void | dacleanup (struct cam_periph *periph) |
static cam_status | daregister (struct cam_periph *periph, void *arg) |
static int | da_zone_bio_to_scsi (int disk_zone_cmd) |
static int | da_zone_cmd (struct cam_periph *periph, union ccb *ccb, struct bio *bp, int *queue_ccb) |
static void | dastart (struct cam_periph *periph, union ccb *start_ccb) |
static void | da_delete_unmap (struct cam_periph *periph, union ccb *ccb, struct bio *bp) |
static void | da_delete_trim (struct cam_periph *periph, union ccb *ccb, struct bio *bp) |
static void | da_delete_ws (struct cam_periph *periph, union ccb *ccb, struct bio *bp) |
static int | cmd6workaround (union ccb *ccb) |
static void | damediapoll (void *arg) |
static void | dasendorderedtag (void *arg) |
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) |
#define ATA_TRIM_MAX_RANGES |
#define ccb_bp ppriv_ptr1 |
#define ccb_state ppriv_field0 |
#define DA_ANNOUNCE_SZ 400 |
#define DA_ANNOUNCETMP_SZ 160 |
#define DA_FLAG_STRING |
#define da_periph_acquire | ( | periph, | |
token | |||
) | cam_periph_acquire((periph)) |
#define da_periph_hold | ( | periph, | |
prio, | |||
token | |||
) | cam_periph_hold((periph), (prio)) |
#define da_periph_release | ( | periph, | |
token | |||
) | cam_periph_release((periph)) |
#define da_periph_release_locked | ( | periph, | |
token | |||
) | cam_periph_release_locked((periph)) |
#define da_periph_unhold | ( | periph, | |
token | |||
) | cam_periph_unhold((periph)) |
#define DA_Q_BIT_STRING |
#define dadeleteflag | ( | softc, | |
delete_method, | |||
enable | |||
) |
#define UNMAP_BUF_SIZE |
typedef void da_delete_func_t(struct cam_periph *periph, union ccb *ccb, struct bio *bp) |
enum da_ccb_state |
enum da_delete_methods |
enum da_flags |
enum da_quirks |
enum da_ref_token |
enum da_state |
enum da_zone_flags |
enum da_zone_interface |
enum da_zone_mode |
__FBSDID | ( | "$FreeBSD$" | ) |
|
static |
Definition at line 4282 of file scsi_da.c.
References scsi_rw_6::addr, scsi_rw_10::addr, scsi_rw_10::byte2, CAM_CDB_POINTER, CAM_DEV_QFRZN, da_softc::cam_iosched, cam_iosched_queue_work(), cam_release_devq(), CAM_REQUEUE_REQ, ccb::ccb_h, cdb_t::cdb_bytes, ccb_scsiio::cdb_io, ccb_scsiio::cdb_len, scsi_rw_6::control, scsi_rw_10::control, ccb::csio, DA_CCB_DELETE, DA_DELETE_DISABLE, da_delete_method_desc, DA_Q_NO_PREVENT, DA_Q_NO_SYNC_CACHE, dadeleteflag, dadeletemethodchoose(), da_softc::delete_run_queue, ccb_hdr::flags, scsi_rw_6::length, scsi_rw_10::length, scsi_rw_6::opcode, scsi_rw_10::opcode, ccb_hdr::path, PREVENT_ALLOW, READ_10, READ_6, scsi_rw_10::reserved, scsi_3btoul(), scsi_ulto2b(), scsi_ulto4b(), cam_periph::softc, ccb_hdr::status, SYNCHRONIZE_CACHE, WRITE_10, WRITE_6, xpt_action(), xpt_path_periph(), and xpt_print().
Referenced by daerror().
|
static |
Definition at line 4138 of file scsi_da.c.
References da_softc::cam_iosched, cam_iosched_next_trim(), cam_iosched_put_back_trim(), cam_iosched_submit_trim(), CAM_UNLOCKED, ccb::ccb_h, ccb::csio, DA_CCB_DELETE, da_default_timeout, da_delete_method_desc, da_retry_count, dadone(), da_softc::delete_run_queue, ccb_hdr::flags, MSG_SIMPLE_Q_TAG, cam_periph::path, scsi_ata_trim(), cam_periph::softc, SSD_FULL_SIZE, and xpt_print().
|
static |
Definition at line 3998 of file scsi_da.c.
References da_softc::cam_iosched, cam_iosched_next_trim(), cam_iosched_put_back_trim(), cam_iosched_submit_trim(), CAM_UNLOCKED, ccb::ccb_h, ccb::csio, DA_CCB_DELETE, da_default_timeout, da_delete_method_desc, DA_Q_STRICT_UNMAP, da_retry_count, dadone(), da_softc::delete_run_queue, ccb_hdr::flags, MSG_SIMPLE_Q_TAG, cam_periph::path, scsi_u64to8b(), scsi_ulto2b(), scsi_ulto4b(), scsi_unmap(), cam_periph::softc, SSD_FULL_SIZE, UNMAP_HEAD_SIZE, UNMAP_RANGE_MAX, and xpt_print().
|
static |
Definition at line 4227 of file scsi_da.c.
References da_softc::cam_iosched, cam_iosched_next_trim(), cam_iosched_put_back_trim(), da_delete_method_desc, da_softc::delete_run_queue, cam_periph::path, cam_periph::softc, and xpt_print().
|
static |
Definition at line 3021 of file scsi_da.c.
References ZBC_OUT_SA_CLOSE, ZBC_OUT_SA_FINISH, ZBC_OUT_SA_OPEN, and ZBC_OUT_SA_RWP.
Referenced by da_zone_cmd().
|
static |
Definition at line 3038 of file scsi_da.c.
References ccb::csio, da_default_timeout, da_retry_count, da_zone_bio_to_scsi(), DA_ZONE_DRIVE_MANAGED, DA_ZONE_FLAG_CLOSE_SUP, DA_ZONE_FLAG_FINISH_SUP, DA_ZONE_FLAG_MAX_SEQ_SET, DA_ZONE_FLAG_OPEN_SUP, DA_ZONE_FLAG_OPT_NONSEQ_SET, DA_ZONE_FLAG_OPT_SEQ_SET, DA_ZONE_FLAG_RWP_SUP, DA_ZONE_FLAG_RZ_SUP, DA_ZONE_FLAG_URSWRZ, DA_ZONE_HOST_AWARE, DA_ZONE_HOST_MANAGED, DA_ZONE_IF_ATA_PASS, DA_ZONE_NONE, dadone(), MSG_SIMPLE_Q_TAG, cam_periph::path, scsi_ata_zac_mgmt_in(), scsi_ata_zac_mgmt_out(), scsi_zbc_in(), scsi_zbc_out(), cam_periph::softc, SSD_FULL_SIZE, xpt_print(), ZBC_IN_SA_REPORT_ZONES, and ZBC_OUT_ALL.
Referenced by dastart().
|
static |
Definition at line 2104 of file scsi_da.c.
References AC_ADVINFO_CHANGED, AC_BUS_RESET, AC_FOUND_DEVICE, AC_INQ_CHANGED, AC_SCSI_AEN, AC_SENT_BDR, AC_UNIT_ATTENTION, da_softc::cam_iosched, cam_iosched_has_work_flags(), cam_iosched_set_work_flags(), cam_periph_alloc(), cam_periph_assert, cam_periph_async(), CAM_PERIPH_BIO, CAM_REQ_CMP, CAM_REQ_INPROG, ccb, ccb::ccb_h, CDAI_TYPE_PHYS_PATH, DA_CCB_RETRY_UA, DA_FLAG_PROBED, DA_FLAG_RETRY_UA, DA_FLAG_TUR_PENDING, da_periph_acquire, DA_REF_TUR, DA_WORK_TUR, daasync(), dacleanup, daoninvalidate, daregister, dareprobe(), daschedule(), dastart, ccb_getdev::inq_data, ccb_hdr::path, PROTO_SCSI, ccb_getdev::protocol, scsi_extract_sense_ccb(), SID_QUAL, SID_QUAL_LU_CONNECTED, SID_TYPE, cam_periph::softc, T_DIRECT, T_OPTICAL, T_RBC, T_ZBC_HM, xpt_path_periph(), and xpt_print().
Referenced by daasync(), daoninvalidate(), and daregister().
|
static |
Definition at line 2637 of file scsi_da.c.
Referenced by dasysctlinit().
|
static |
Definition at line 2072 of file scsi_da.c.
References da_softc::cam_iosched, cam_iosched_fini(), cam_periph_lock, cam_periph_unlock, DA_FLAG_SCTX_INIT, cam_periph::path, cam_periph::softc, and xpt_print().
|
static |
Definition at line 1804 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_PERIPH, CAM_DEBUG_TRACE, cam_periph_getccb(), cam_periph_lock, cam_periph_runccb(), cam_periph_sleep, cam_periph_unlock, CAM_PRIORITY_NORMAL, ccb, ccb::csio, DA_FLAG_DIRTY, DA_FLAG_PACK_INVALID, DA_FLAG_PACK_REMOVABLE, da_periph_hold, da_periph_release, da_periph_unhold, DA_Q_NO_PREVENT, DA_Q_NO_SYNC_CACHE, DA_REF_CLOSE_HOLD, DA_REF_OPEN, daerror(), daprevent(), MSG_SIMPLE_Q_TAG, cam_periph::path, PR_ALLOW, scsi_synchronize_cache(), SF_QUIET_IR, SF_RETRY_UA, cam_periph::softc, SSD_FULL_SIZE, and xpt_release_ccb().
Referenced by daregister().
|
static |
Definition at line 2458 of file scsi_da.c.
Referenced by dasysctlinit().
|
static |
Definition at line 2524 of file scsi_da.c.
References DA_DELETE_ATA_TRIM, DA_DELETE_UNMAP, DA_DELETE_WS10, DA_DELETE_WS16, DA_DELETE_ZERO, WS10_MAX_BLKS, and WS16_MAX_BLKS.
Referenced by dadeletemaxsysctl(), and dadeletemethodset().
|
static |
Definition at line 2435 of file scsi_da.c.
References dadeletemaxsize().
Referenced by dasysctlinit().
|
static |
Definition at line 2610 of file scsi_da.c.
References DA_DELETE_DISABLE, DA_DELETE_MAX, DA_DELETE_MIN, DA_DELETE_ZERO, and dadeletemethodset().
Referenced by cmd6workaround(), dadeletemethodsysctl(), and daprobedone().
|
static |
Definition at line 2510 of file scsi_da.c.
References DA_DELETE_DISABLE, da_delete_functions, and dadeletemaxsize().
Referenced by dadeletemethodchoose().
|
static |
Definition at line 2670 of file scsi_da.c.
References DA_DELETE_MAX, da_delete_method_names, DA_DELETE_NONE, and dadeletemethodchoose().
Referenced by dasysctlinit().
|
static |
Definition at line 2031 of file scsi_da.c.
References da_periph_release, and DA_REF_GEOM.
Referenced by daregister().
|
static |
Definition at line 4532 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, da_softc::cam_iosched, cam_iosched_bio_complete(), cam_iosched_flush(), cam_iosched_trim_done(), cam_periph_lock, cam_periph_unlock, cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, CAM_STATUS_MASK, ccb_scsiio::ccb_h, ccb::ccb_h, ccb::csio, DA_CCB_DELETE, DA_CCB_RETRY_UA, DA_CCB_TYPE_MASK, DA_FLAG_PACK_INVALID, DA_FLAG_WAS_OTAG, daerror(), daschedule(), dazonedone(), da_softc::delete_run_queue, ccb_hdr::path, cam_periph::path, ccb_scsiio::resid, SF_RETRY_UA, cam_periph::softc, ccb_hdr::status, TAILQ_HEAD(), xpt_print(), and xpt_release_ccb().
Referenced by da_delete_trim(), da_delete_unmap(), da_zone_cmd(), and dastart().
|
static |
Definition at line 5311 of file scsi_da.c.
References ata_param_fixup(), CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, da_softc::cam_iosched, cam_iosched_set_sort_queue(), cam_periph_assert, cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, CAM_STATUS_MASK, ccb_scsiio::ccb_h, ccb::ccb_h, ccb::csio, DA_DELETE_ATA_TRIM, DA_FLAG_CAN_ATA_DMA, DA_FLAG_CAN_ATA_LOG, DA_Q_NO_UNMAP, DA_STATE_PROBE_ATA_LOGDIR, DA_STATE_PROBE_ZONE, DA_ZONE_DRIVE_MANAGED, DA_ZONE_HOST_AWARE, DA_ZONE_HOST_MANAGED, DA_ZONE_IF_ATA_PASS, DA_ZONE_NONE, dadeleteflag, daerror(), daprobedone(), ccb_scsiio::data_ptr, ccb_hdr::path, cam_periph::path, ccb_hdr::pinfo, cam_pinfo::priority, SF_NO_PRINT, SF_RETRY_UA, cam_periph::softc, ccb_hdr::status, xpt_release_ccb(), and xpt_schedule().
Referenced by dastart().
|
static |
Definition at line 5532 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, cam_periph_assert, cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, CAM_STATUS_MASK, ccb_scsiio::ccb_h, ccb::ccb_h, ccb::csio, DA_FLAG_CAN_ATA_SUPCAP, DA_FLAG_CAN_ATA_ZONE, DA_STATE_PROBE_ATA_SUP, daerror(), daprobedone(), ccb_scsiio::data_ptr, ccb_scsiio::dxfer_len, ccb_hdr::path, cam_periph::path, ccb_hdr::pinfo, cam_pinfo::priority, ccb_scsiio::priority, ccb_scsiio::resid, SF_NO_PRINT, SF_RETRY_UA, cam_periph::softc, ccb_hdr::status, xpt_release_ccb(), and xpt_schedule().
Referenced by dastart().
|
static |
Definition at line 5451 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, cam_periph_assert, cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, CAM_STATUS_MASK, ccb_scsiio::ccb_h, ccb::ccb_h, ccb::csio, DA_FLAG_CAN_ATA_IDLOG, DA_FLAG_CAN_ATA_LOG, DA_STATE_PROBE_ATA_IDDIR, daerror(), daprobedone(), ccb_scsiio::data_ptr, ccb_scsiio::dxfer_len, ccb_hdr::path, cam_periph::path, ccb_hdr::pinfo, cam_pinfo::priority, ccb_scsiio::priority, ccb_scsiio::resid, SF_NO_PRINT, SF_RETRY_UA, cam_periph::softc, ccb_hdr::status, xpt_release_ccb(), and xpt_schedule().
Referenced by dastart().
|
static |
Definition at line 5623 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, cam_periph_assert, cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, CAM_STATUS_MASK, ccb_scsiio::ccb_h, ccb::ccb_h, ccb::csio, DA_FLAG_CAN_ATA_ZONE, DA_STATE_PROBE_ATA_ZONE, DA_ZONE_DRIVE_MANAGED, DA_ZONE_FLAG_CLOSE_SUP, DA_ZONE_FLAG_FINISH_SUP, DA_ZONE_FLAG_OPEN_SUP, DA_ZONE_FLAG_RWP_SUP, DA_ZONE_FLAG_RZ_SUP, DA_ZONE_FLAG_SUP_MASK, DA_ZONE_HOST_AWARE, daerror(), daprobedone(), ccb_scsiio::data_ptr, ccb_scsiio::dxfer_len, ccb_hdr::path, cam_periph::path, ccb_hdr::pinfo, cam_pinfo::priority, ccb_scsiio::priority, ccb_scsiio::resid, SF_NO_PRINT, SF_RETRY_UA, cam_periph::softc, ccb_hdr::status, xpt_release_ccb(), and xpt_schedule().
Referenced by dastart().
|
static |
Definition at line 5736 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, cam_periph_assert, cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, CAM_STATUS_MASK, ccb_scsiio::ccb_h, ccb::ccb_h, ccb::csio, DA_ZONE_FLAG_MAX_SEQ_SET, DA_ZONE_FLAG_OPT_NONSEQ_SET, DA_ZONE_FLAG_OPT_SEQ_SET, DA_ZONE_FLAG_URSWRZ, daerror(), daprobedone(), ccb_scsiio::data_ptr, ccb_scsiio::dxfer_len, ccb_hdr::path, cam_periph::path, ccb_scsiio::resid, SF_NO_PRINT, SF_RETRY_UA, cam_periph::softc, and ccb_hdr::status.
Referenced by dastart().
|
static |
Definition at line 5211 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, da_softc::cam_iosched, cam_iosched_set_sort_queue(), cam_periph_assert, cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, CAM_STATUS_MASK, ccb_scsiio::ccb_h, ccb::ccb_h, ccb::csio, DA_STATE_PROBE_ATA, DA_ZONE_DRIVE_MANAGED, DA_ZONE_HOST_AWARE, DA_ZONE_IF_ATA_SAT, DA_ZONE_IF_SCSI, DA_ZONE_NONE, daerror(), ccb_scsiio::data_ptr, ccb_scsiio::dxfer_len, scsi_vpd_block_device_characteristics::flags, scsi_vpd_block_device_characteristics::medium_rotation_rate, ccb_hdr::path, cam_periph::path, ccb_hdr::pinfo, cam_pinfo::priority, ccb_scsiio::priority, ccb_scsiio::resid, SBDC_IS_PRESENT, scsi_2btoul(), scsi_vpd_supported_page(), SF_NO_PRINT, SF_RETRY_UA, cam_periph::softc, ccb_hdr::status, SVPD_ATA_INFORMATION, SVPD_DM_ZBC, SVPD_HAW_ZBC, SVPD_NON_ROTATING, SVPD_ZBC_MASK, SVPD_ZBC_NR, xpt_print(), xpt_release_ccb(), and xpt_schedule().
Referenced by dastart().
|
static |
Definition at line 5117 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, cam_periph_assert, cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, CAM_STATUS_MASK, ccb_scsiio::ccb_h, ccb::ccb_h, ccb::csio, DA_DELETE_UNMAP, DA_STATE_PROBE_BDC, dadeleteflag, daerror(), ccb_scsiio::data_ptr, scsi_vpd_block_limits::max_txfer_len, scsi_vpd_block_limits::max_unmap_blk_cnt, scsi_vpd_block_limits::max_unmap_lba_cnt, scsi_vpd_block_limits::max_write_same_length, scsi_vpd_block_limits::opt_unmap_grain, ccb_hdr::path, cam_periph::path, ccb_hdr::pinfo, cam_pinfo::priority, ccb_scsiio::priority, scsi_4btoul(), scsi_8btou64(), SF_NO_PRINT, SF_RETRY_UA, cam_periph::softc, ccb_hdr::status, scsi_vpd_block_limits::unmap_grain_align, UNMAP_MAX_RANGES, xpt_release_ccb(), and xpt_schedule().
Referenced by dastart().
|
static |
Definition at line 5059 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, cam_periph_assert, cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, CAM_STATUS_MASK, ccb_scsiio::ccb_h, ccb::ccb_h, ccb::csio, DA_DELETE_UNMAP, DA_DELETE_WS10, DA_DELETE_WS16, DA_STATE_PROBE_BLK_LIMITS, dadeleteflag, daerror(), ccb_scsiio::data_ptr, scsi_vpd_logical_block_prov::flags, ccb_hdr::path, cam_periph::path, ccb_hdr::pinfo, cam_pinfo::priority, ccb_scsiio::priority, SF_NO_PRINT, SF_RETRY_UA, cam_periph::softc, ccb_hdr::status, SVPD_LBP_UNMAP, SVPD_LBP_WS10, SVPD_LBP_WS16, xpt_release_ccb(), and xpt_schedule().
Referenced by dastart().
|
static |
Definition at line 4770 of file scsi_da.c.
References scsi_read_capacity_data::addr, scsi_read_capacity_data_long::addr, CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, cam_periph_assert, cam_periph_invalidate(), CAM_PRIORITY_NORMAL, cam_release_devq(), CAM_REQ_CMP, CAM_REQ_INVALID, CAM_RETRY_SELTO, CAM_STATUS_MASK, ccb_getdev::ccb_h, ccb_scsiio::ccb_h, ccb::ccb_h, ccb::csio, DA_ANNOUNCE_SZ, DA_ANNOUNCETMP_SZ, DA_CCB_PROBE_RC, DA_CCB_PROBE_RC16, DA_CCB_TYPE_MASK, DA_DELETE_UNMAP, DA_DELETE_WS10, DA_DELETE_WS16, DA_DELETE_ZERO, DA_FLAG_ANNOUNCED, DA_FLAG_CAN_RC16, DA_FLAG_PROBED, da_periph_acquire, DA_Q_BIT_STRING, DA_Q_NO_UNMAP, DA_REF_SYSCTL, DA_STATE_PROBE_BDC, DA_STATE_PROBE_LBP, DA_STATE_PROBE_RC, DA_STATE_PROBE_RC16, dadeleteflag, daerror(), daprobedone(), dasetgeom(), ccb_scsiio::data_ptr, ccb_hdr::func_code, ccb_getdev::inq_data, scsi_read_capacity_data_long::lalba_lbp, scsi_read_capacity_data::length, scsi_read_capacity_data_long::length, ccb_hdr::path, cam_periph::path, ccb_hdr::pinfo, cam_pinfo::priority, ccb_scsiio::priority, scsi_2btoul(), scsi_4btoul(), scsi_8btou64(), scsi_extract_sense_ccb(), scsi_sense_desc(), scsi_sense_print(), disk_params::secsize, disk_params::sectors, SF_NO_PRINT, SF_RETRY_UA, cam_periph::softc, SRC16_LBPME_A, SSD_CURRENT_ERROR, SSD_DESC_CURRENT_ERROR, SSD_KEY_ILLEGAL_REQUEST, ccb_hdr::status, xpt_action(), xpt_announce_periph_sbuf(), xpt_announce_quirks_sbuf(), XPT_GDEV_TYPE, xpt_print(), xpt_release_ccb(), xpt_schedule(), and xpt_setup_ccb().
Referenced by dastart().
|
static |
Definition at line 4690 of file scsi_da.c.
References scsi_mode_header_6::blk_desc_len, scsi_mode_header_10::blk_desc_len, cam_ccb_status(), CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, cam_periph_assert, cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, ccb_scsiio::ccb_h, ccb::ccb_h, ccb_scsiio::cdb_len, ccb::csio, DA_CCB_PROBE_WP, DA_CCB_TYPE_MASK, DA_FLAG_CAN_RC16, DA_STATE_PROBE_RC, DA_STATE_PROBE_RC16, DA_STATE_PROBE_WP, daerror(), scsi_mode_header_6::data_length, scsi_mode_header_10::data_length, ccb_scsiio::data_ptr, scsi_mode_header_6::dev_spec, scsi_mode_header_10::dev_spec, ccb_hdr::path, cam_periph::path, ccb_hdr::pinfo, cam_pinfo::priority, ccb_scsiio::priority, ccb_scsiio::resid, scsi_2btoul(), SF_NO_PRINT, SF_RETRY_UA, SMPH_PC_MASK, cam_periph::softc, ccb_hdr::status, xpt_release_ccb(), and xpt_schedule().
Referenced by dastart().
|
static |
Definition at line 5830 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, cam_periph_assert, cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, CAM_STATUS_MASK, ccb_scsiio::ccb_h, ccb::ccb_h, ccb::csio, DA_ZONE_FLAG_MAX_SEQ_SET, DA_ZONE_FLAG_OPT_NONSEQ_SET, DA_ZONE_FLAG_OPT_SEQ_SET, DA_ZONE_FLAG_SUP_MASK, DA_ZONE_FLAG_URSWRZ, daerror(), daprobedone(), ccb_scsiio::data_ptr, ccb_scsiio::dxfer_len, scsi_vpd_zoned_bdc::flags, scsi_vpd_zoned_bdc::max_seq_req_zones, scsi_vpd_zoned_bdc::optimal_nonseq_zones, scsi_vpd_zoned_bdc::optimal_seq_zones, scsi_vpd_zoned_bdc::page_length, ccb_hdr::path, cam_periph::path, ccb_scsiio::resid, scsi_2btoul(), scsi_4btoul(), SF_NO_PRINT, SF_RETRY_UA, cam_periph::softc, ccb_hdr::status, SVPD_ZBDC_PL, and SVPD_ZBDC_URSWRZ.
Referenced by dastart().
|
static |
Definition at line 5907 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_TRACE, CAM_DEV_QFRZN, cam_periph_assert, cam_release_devq(), CAM_REQ_CMP, CAM_RETRY_SELTO, CAM_STATUS_MASK, ccb::ccb_h, da_periph_release_locked, DA_REF_TUR, daerror(), ccb_hdr::path, cam_periph::path, SF_NO_PRINT, SF_NO_RECOVERY, SF_RETRY_UA, cam_periph::softc, ccb_hdr::status, and xpt_release_ccb().
Referenced by dastart().
|
static |
Definition at line 1918 of file scsi_da.c.
References cam_periph_error(), cam_periph_runccb(), CAM_PRIORITY_NORMAL, ccb_scsiio::ccb_h, DA_CCB_DUMP, da_default_timeout, DA_FLAG_PACK_INVALID, DA_Q_NO_SYNC_CACHE, MSG_ORDERED_Q_TAG, MSG_SIMPLE_Q_TAG, cam_periph::path, scsi_read_write(), SCSI_RW_WRITE, scsi_synchronize_cache(), SF_NO_RECOVERY, SF_NO_RETRY, cam_periph::softc, SSD_FULL_SIZE, xpt_print(), and xpt_setup_ccb().
|
static |
Definition at line 5956 of file scsi_da.c.
References CAM_ATA_STATUS_ERROR, CAM_CMD_TIMEOUT, CAM_DATA_RUN_ERR, cam_periph_assert, cam_periph_error(), CAM_REQ_ABORTED, CAM_REQ_CMP_ERR, CAM_REQ_INVALID, CAM_REQ_TERMIO, CAM_SCSI_STATUS_ERROR, CAM_STATUS_MASK, CAM_UNREC_HBA_ERROR, ccb::ccb_h, cmd6workaround(), ccb::csio, DA_FLAG_PACK_INVALID, DA_Q_RETRY_BUSY, dareprobe(), ccb_hdr::path, cam_periph::path, scsi_extract_sense_ccb(), SF_NO_PRINT, SF_RETRY_BUSY, SF_RETRY_UA, cam_periph::softc, SSD_KEY_ILLEGAL_REQUEST, SSD_KEY_NOT_READY, SSD_KEY_UNIT_ATTENTION, ccb_hdr::status, xpt_path_periph(), and xpt_print().
Referenced by daclose(), dadone(), dadone_probeata(), dadone_probeataiddir(), dadone_probeatalogdir(), dadone_probeatasup(), dadone_probeatazone(), dadone_probebdc(), dadone_probeblklimits(), dadone_probelbp(), dadone_proberc(), dadone_probewp(), dadone_probezone(), dadone_tur(), daprevent(), and dashutdown().
|
static |
Definition at line 2652 of file scsi_da.c.
References DA_FLAG_STRING.
Referenced by dasysctlinit().
|
static |
Definition at line 1982 of file scsi_da.c.
References cam_periph_lock, cam_periph_unlock, da_enable_biospeedup, cam_periph::path, and xpt_getattr().
Referenced by daregister().
|
static |
Definition at line 6044 of file scsi_da.c.
References da_softc::cam_iosched, cam_iosched_has_work_flags(), cam_iosched_set_work_flags(), DA_FLAG_TUR_PENDING, da_periph_acquire, da_poll_period, DA_REF_TUR, DA_STATE_NORMAL, DA_WORK_TUR, daschedule(), and cam_periph::softc.
|
static |
Definition at line 2040 of file scsi_da.c.
References da_softc::cam_iosched, cam_iosched_flush(), cam_periph_assert, DA_FLAG_PACK_INVALID, daasync(), cam_periph::path, cam_periph::softc, and xpt_register_async().
|
static |
Definition at line 1752 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_PERIPH, CAM_DEBUG_TRACE, CAM_PERIPH_INVALID, cam_periph_lock, cam_periph_sleep, cam_periph_unlock, DA_FLAG_OPEN, DA_FLAG_PACK_REMOVABLE, da_periph_acquire, da_periph_hold, da_periph_release, da_periph_unhold, DA_Q_NO_PREVENT, DA_REF_OPEN, DA_REF_OPEN_HOLD, daprevent(), dareprobe(), cam_periph::flags, cam_periph::path, PR_PREVENT, cam_periph::softc, and xpt_print().
Referenced by daregister().
|
static |
Definition at line 6067 of file scsi_da.c.
References cam_periph_assert, cam_periph_getccb(), cam_periph_runccb(), CAM_PRIORITY_NORMAL, CAM_RETRY_SELTO, ccb, ccb::csio, DA_FLAG_PACK_LOCKED, daerror(), MSG_SIMPLE_Q_TAG, PR_ALLOW, PR_PREVENT, scsi_prevent(), SF_NO_PRINT, SF_RETRY_UA, cam_periph::softc, SSD_FULL_SIZE, and xpt_release_ccb().
Referenced by daclose(), and daopen().
|
static |
Definition at line 2551 of file scsi_da.c.
References cam_periph_assert, DA_DELETE_MAX, da_delete_method_names, DA_DELETE_NONE, DA_FLAG_ANNOUNCED, DA_FLAG_PROBED, da_periph_release_locked, da_periph_unhold, DA_REF_PROBE_HOLD, DA_REF_REPROBE, DA_STATE_NORMAL, dadeletemethodchoose(), daschedule(), cam_periph::periph_name, cam_periph::softc, cam_periph::unit_number, and xpt_release_ccb().
Referenced by dadone_probeata(), dadone_probeataiddir(), dadone_probeatalogdir(), dadone_probeatasup(), dadone_probeatazone(), dadone_proberc(), dadone_probezone(), and dastart().
|
static |
Definition at line 2766 of file scsi_da.c.
References AC_ADVINFO_CHANGED, AC_BUS_RESET, AC_INQ_CHANGED, AC_LOST_DEVICE, AC_SCSI_AEN, AC_SENT_BDR, AC_UNIT_ATTENTION, ATA_TRIM_MAX_RANGES, da_softc::cam_iosched, cam_iosched_init(), cam_periph_lock, cam_periph_mtx(), cam_periph_unlock, CAM_PRIORITY_DEV, cam_quirkmatch(), CAM_REQ_CMP, CAM_REQ_CMP_ERR, cam_sim_pollable(), cam_strvis(), ccb_pathinq::ccb_h, cam_periph::ccb_zone, da_ccb_zone, da_default_timeout, da_enable_uma_ccbs, DA_FLAG_CAN_RC16, DA_FLAG_PACK_REMOVABLE, DA_FLAG_ROTATING, DA_FLAG_UNMAPPEDIO, DA_ORDEREDTAG_INTERVAL, da_periph_acquire, da_periph_hold, da_poll_period, DA_Q_128KB, DA_Q_NO_6_BYTE, DA_Q_NO_RC16, DA_Q_NO_SYNC_CACHE, DA_Q_NONE, DA_Q_SMR_DM, da_quirk_table, DA_REF_GEOM, DA_REF_PROBE_HOLD, DA_STATE_PROBE_WP, DA_ZONE_DRIVE_MANAGED, DA_ZONE_HOST_MANAGED, DA_ZONE_IF_ATA_PASS, DA_ZONE_IF_ATA_SAT, DA_ZONE_IF_SCSI, DA_ZONE_NONE, daasync(), daclose(), dadiskgonecb(), dadump, dagetattr(), damediapoll, daopen(), dasendorderedtag, dastrategy, dasysctlinit(), da_softc::delete_run_queue, ccb_pathinq::dev_name, ccb_pathinq::hba_device, ccb_pathinq::hba_misc, ccb_pathinq::hba_subdevice, ccb_pathinq::hba_subvendor, ccb_pathinq::hba_vendor, ccb_getdev::inq_data, ccb_getdev::inq_flags, ccb_pathinq::maxio, cam_periph::path, cam_periph::periph_name, PIM_NO_6_BYTE, PIM_UNMAPPED, scsi_inquiry_data::product, da_quirk_entry::quirks, scsi_inquiry_match(), SCSI_REV_SPC3, scsi_vpd_supported_page(), SID_AEN, SID_ANSI_REV, SID_IS_REMOVABLE, SID_TYPE, cam_periph::sim, SMS_ALL_PAGES_PAGE, cam_periph::softc, ccb_hdr::status, SVPD_ATA_INFORMATION, SVPD_ZONED_BDC, T_RBC, T_ZBC_HM, ccb_pathinq::transport, ccb_pathinq::unit_number, cam_periph::unit_number, UNMAP_MAX_RANGES, UNMAP_RANGE_MAX, scsi_inquiry_data::vendor, WS16_MAX_BLKS, XPORT_DEVSTAT_TYPE, xpt_path_inq(), xpt_print(), xpt_register_async(), and xpt_schedule().
|
static |
Definition at line 5935 of file scsi_da.c.
References cam_periph_assert, CAM_PRIORITY_DEV, da_periph_acquire, DA_REF_REPROBE, DA_STATE_NORMAL, DA_STATE_PROBE_WP, cam_periph::softc, and xpt_schedule().
Referenced by daasync(), daerror(), and daopen().
|
static |
Definition at line 1858 of file scsi_da.c.
References da_softc::cam_iosched, cam_iosched_schedule(), DA_STATE_NORMAL, and cam_periph::softc.
Referenced by daasync(), dadone(), damediapoll(), daprobedone(), dastart(), and dastrategy().
|
static |
Definition at line 6235 of file scsi_da.c.
References cam_periph_assert, da_default_timeout, DA_FLAG_NEED_OTAG, DA_FLAG_WAS_OTAG, DA_ORDEREDTAG_INTERVAL, da_send_ordered, and cam_periph::softc.
|
static |
Definition at line 6107 of file scsi_da.c.
References ccb_calc_geometry::block_size, ccb_dev_advinfo::buf, ccb_dev_advinfo::bufsiz, ccb_dev_advinfo::buftype, CAM_DEV_QFRZN, CAM_EPF_ALL, cam_error_print(), CAM_ESF_CAM_STATUS, CAM_PRIORITY_NORMAL, cam_release_devq(), CAM_REQ_CMP, CAM_STATUS_MASK, ccb_calc_geometry::ccb_h, ccb_dev_advinfo::ccb_h, CDAI_FLAG_STORE, CDAI_TYPE_RCAPLONG, disk_params::cylinders, ccb_calc_geometry::cylinders, DA_Q_4K, ccb_dev_advinfo::flags, ccb_hdr::func_code, disk_params::heads, ccb_calc_geometry::heads, scsi_read_capacity_data_long::lalba_lbp, ccb_hdr::path, cam_periph::path, scsi_read_capacity_data_long::prot, scsi_read_capacity_data_long::prot_lbppbe, scsi_2btoul(), disk_params::secs_per_track, ccb_calc_geometry::secs_per_track, disk_params::secsize, disk_params::sectors, cam_periph::softc, SRC16_LALBA_A, SRC16_LBPPBE, SRC16_P_TYPE, SRC16_P_TYPE_SHIFT, SRC16_PROT_EN, ccb_hdr::status, disk_params::stripeoffset, disk_params::stripesize, ccb_calc_geometry::volume_size, xpt_action(), XPT_CALC_GEOMETRY, XPT_DEV_ADVINFO, xpt_print(), and xpt_setup_ccb().
Referenced by dadone_proberc().
|
static |
Definition at line 6260 of file scsi_da.c.
References CAM_PERIPH_FOREACH, cam_periph_getccb(), cam_periph_lock, cam_periph_owned, cam_periph_runccb(), cam_periph_unlock, CAM_PRIORITY_NORMAL, ccb, ccb::csio, DA_FLAG_OPEN, DA_Q_NO_SYNC_CACHE, dadriver, dadump, daerror(), MSG_SIMPLE_Q_TAG, cam_periph::path, scsi_synchronize_cache(), SF_NO_RECOVERY, SF_NO_RETRY, SF_QUIET_IR, cam_periph::softc, SSD_FULL_SIZE, xpt_print(), and xpt_release_ccb().
|
static |
Definition at line 3315 of file scsi_da.c.
References AP_PROTO_DMA, AP_PROTO_PIO_IN, CAM_DEBUG, CAM_DEBUG_TRACE, da_softc::cam_iosched, cam_iosched_clr_work_flags(), cam_iosched_has_work_flags(), cam_iosched_next_bio(), cam_periph_assert, cam_periph_lock, cam_periph_unlock, CAM_UNLOCKED, ccb::ccb_h, ccb::csio, DA_CCB_BUFFER_IO, DA_CCB_PROBE_ATA, DA_CCB_PROBE_ATA_IDDIR, DA_CCB_PROBE_ATA_LOGDIR, DA_CCB_PROBE_ATA_SUP, DA_CCB_PROBE_ATA_ZONE, DA_CCB_PROBE_BDC, DA_CCB_PROBE_BLK_LIMITS, DA_CCB_PROBE_LBP, DA_CCB_PROBE_RC, DA_CCB_PROBE_RC16, DA_CCB_PROBE_WP, DA_CCB_PROBE_ZONE, DA_CCB_RETRY_UA, DA_CCB_TUR, da_default_softtimeout, da_default_timeout, da_disable_wp_detection, DA_FLAG_CAN_ATA_DMA, DA_FLAG_CAN_ATA_IDLOG, DA_FLAG_CAN_ATA_LOG, DA_FLAG_CAN_ATA_SUPCAP, DA_FLAG_CAN_ATA_ZONE, DA_FLAG_CAN_RC16, DA_FLAG_DIRTY, DA_FLAG_NEED_OTAG, DA_FLAG_RETRY_UA, DA_FLAG_TUR_PENDING, DA_FLAG_WAS_OTAG, da_periph_release_locked, DA_Q_NO_SYNC_CACHE, DA_REF_TUR, da_retry_count, DA_STATE_NORMAL, DA_STATE_PROBE_ATA, DA_STATE_PROBE_ATA_IDDIR, DA_STATE_PROBE_ATA_LOGDIR, DA_STATE_PROBE_ATA_SUP, DA_STATE_PROBE_ATA_ZONE, DA_STATE_PROBE_BDC, DA_STATE_PROBE_BLK_LIMITS, DA_STATE_PROBE_LBP, DA_STATE_PROBE_RC, DA_STATE_PROBE_RC16, DA_STATE_PROBE_WP, DA_STATE_PROBE_ZONE, DA_WORK_TUR, da_zone_cmd(), DA_ZONE_HOST_AWARE, DA_ZONE_HOST_MANAGED, dadone(), dadone_probeata(), dadone_probeataiddir(), dadone_probeatalogdir(), dadone_probeatasup(), dadone_probeatazone(), dadone_probebdc(), dadone_probeblklimits(), dadone_probelbp(), dadone_proberc(), dadone_probewp(), dadone_probezone(), dadone_tur(), daprobedone(), daschedule(), cam_path::device, ccb_hdr::flags, cam_ed::ident_data, MSG_ORDERED_Q_TAG, MSG_SIMPLE_Q_TAG, cam_periph::path, scsi_ata_identify(), scsi_ata_read_log(), scsi_inquiry(), scsi_mode_sense_len(), scsi_read_capacity(), scsi_read_capacity_16(), scsi_read_write(), SCSI_RW_BIO, SCSI_RW_READ, SCSI_RW_WRITE, scsi_synchronize_cache(), scsi_test_unit_ready(), scsi_vpd_supported_page(), SMS_PAGE_CTRL_CURRENT, cam_periph::softc, ccb_hdr::softtimeout, SSD_FULL_SIZE, SSD_MIN_SIZE, SVPD_ATA_INFORMATION, SVPD_BDC, SVPD_BLOCK_LIMITS, SVPD_LBP, SVPD_ZONED_BDC, xpt_action(), xpt_print(), and xpt_release_ccb().
|
static |
Definition at line 1874 of file scsi_da.c.
References CAM_DEBUG, CAM_DEBUG_TRACE, cam_iosched_queue_work(), cam_periph_lock, cam_periph_unlock, DA_FLAG_PACK_INVALID, daschedule(), cam_periph::path, and cam_periph::softc.
|
static |
Definition at line 2241 of file scsi_da.c.
References da_softc::cam_iosched, cam_iosched_sysctl_init(), CAM_PERIPH_INVALID, cam_periph_invalidate_sysctl(), cam_periph_lock, cam_periph_unlock, CAM_PRIORITY_NONE, CAM_REQ_CMP, cts, CTS_FC_VALID_WWPN, CTS_TYPE_CURRENT_SETTINGS, DA_FLAG_ROTATING, DA_FLAG_SCTX_INIT, DA_FLAG_UNMAPPEDIO, da_periph_release, DA_REF_SYSCTL, dabitsysctl(), dacmdsizesysctl(), dadeletemaxsysctl(), dadeletemethodsysctl(), daflagssysctl(), dazonemodesysctl(), dazonesupsysctl(), cam_periph::flags, cam_periph::path, PROTO_SCSI, cam_periph::softc, cam_periph::unit_number, ccb_trans_settings_fc::valid, ccb_trans_settings_fc::wwpn, XPORT_FC, xpt_action(), XPT_GET_TRAN_SETTINGS, and xpt_setup_ccb().
Referenced by daregister().
|
static |
Definition at line 2490 of file scsi_da.c.
References da_default_softtimeout, and da_default_timeout.
|
static |
Definition at line 4386 of file scsi_da.c.
References scsi_report_zones_hdr::byte4, ccb::ccb_h, ccb::csio, DA_ZONE_IF_ATA_PASS, ccb_scsiio::data_ptr, scsi_report_zones_hdr::desc_list, ccb_scsiio::dxfer_len, scsi_report_zones_hdr::length, scsi_report_zones_hdr::maximum_lba, ccb_scsiio::resid, scsi_4btoul(), scsi_8btou64(), cam_periph::softc, SRZ_SAME_MASK, SRZ_TYPE_MASK, SRZ_ZONE_COND_MASK, SRZ_ZONE_COND_SHIFT, SRZ_ZONE_NON_SEQ, SRZ_ZONE_RESET, scsi_report_zones_desc::write_pointer_lba, scsi_report_zones_desc::zone_flags, scsi_report_zones_desc::zone_length, scsi_report_zones_desc::zone_start_lba, and scsi_report_zones_desc::zone_type.
Referenced by dadone().
|
static |
Definition at line 2700 of file scsi_da.c.
References DA_ZONE_DRIVE_MANAGED, DA_ZONE_HOST_AWARE, DA_ZONE_HOST_MANAGED, and DA_ZONE_NONE.
Referenced by dasysctlinit().
|
static |
Definition at line 2730 of file scsi_da.c.
References da_zone_desc_table, and da_zone_desc::value.
Referenced by dasysctlinit().
|
static |
PERIPHDRIVER_DECLARE | ( | da | , |
dadriver | |||
) |
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().
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().
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().
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().
SYSCTL_INT | ( | _kern_cam_da | , |
OID_AUTO | , | ||
default_timeout | , | ||
CTLFLAG_RWTUN | , | ||
& | da_default_timeout, | ||
0 | , | ||
"Normal I/O timeout (in seconds)" | |||
) |
SYSCTL_INT | ( | _kern_cam_da | , |
OID_AUTO | , | ||
disable_wp_detection | , | ||
CTLFLAG_RWTUN | , | ||
& | da_disable_wp_detection, | ||
0 | , | ||
"Disable detection of write-protected disks" | |||
) |
SYSCTL_INT | ( | _kern_cam_da | , |
OID_AUTO | , | ||
enable_biospeedup | , | ||
CTLFLAG_RDTUN | , | ||
& | da_enable_biospeedup, | ||
0 | , | ||
"Enable BIO_SPEEDUP processing" | |||
) |
SYSCTL_INT | ( | _kern_cam_da | , |
OID_AUTO | , | ||
enable_uma_ccbs | , | ||
CTLFLAG_RWTUN | , | ||
& | da_enable_uma_ccbs, | ||
0 | , | ||
"Use UMA for CCBs" | |||
) |
SYSCTL_INT | ( | _kern_cam_da | , |
OID_AUTO | , | ||
poll_period | , | ||
CTLFLAG_RWTUN | , | ||
& | da_poll_period, | ||
0 | , | ||
"Media polling period in seconds" | |||
) |
SYSCTL_INT | ( | _kern_cam_da | , |
OID_AUTO | , | ||
retry_count | , | ||
CTLFLAG_RWTUN | , | ||
& | da_retry_count, | ||
0 | , | ||
"Normal I/O retry count" | |||
) |
SYSCTL_INT | ( | _kern_cam_da | , |
OID_AUTO | , | ||
send_ordered | , | ||
CTLFLAG_RWTUN | , | ||
& | da_send_ordered, | ||
0 | , | ||
"Send Ordered Tags" | |||
) |
|
static |
SYSCTL_PROC | ( | _kern_cam_da | , |
OID_AUTO | , | ||
default_softtimeout | , | ||
CTLTYPE_UINT|CTLFLAG_RW| | CTLFLAG_MPSAFE, | ||
NULL | , | ||
0 | , | ||
dasysctlsofttimeout | , | ||
"I" | , | ||
"Soft I/O timeout (ms)" | |||
) |
TUNABLE_INT64 | ( | "kern.cam.da.default_softtimeout" | , |
& | da_default_softtimeout | ||
) |
|
static |
Definition at line 407 of file scsi_da.c.
Referenced by daregister().
|
static |
Definition at line 1559 of file scsi_da.c.
Referenced by dastart(), and dasysctlsofttimeout().
|
static |
Definition at line 1558 of file scsi_da.c.
Referenced by da_delete_trim(), da_delete_unmap(), da_zone_cmd(), dadump(), daregister(), dasendorderedtag(), dastart(), and dasysctlsofttimeout().
|
static |
Definition at line 284 of file scsi_da.c.
Referenced by dadeletemethodset().
|
static |
Definition at line 296 of file scsi_da.c.
Referenced by cmd6workaround(), da_delete_trim(), da_delete_unmap(), and da_delete_ws().
|
static |
Definition at line 294 of file scsi_da.c.
Referenced by dadeletemethodsysctl(), and daprobedone().
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 1562 of file scsi_da.c.
Referenced by dagetattr().
|
static |
Definition at line 1563 of file scsi_da.c.
Referenced by daregister().
|
static |
Definition at line 1556 of file scsi_da.c.
Referenced by damediapoll(), and daregister().
|
static |
Definition at line 417 of file scsi_da.c.
Referenced by daregister().
|
static |
Definition at line 1557 of file scsi_da.c.
Referenced by da_delete_trim(), da_delete_unmap(), da_zone_cmd(), and dastart().
|
static |
Definition at line 1560 of file scsi_da.c.
Referenced by dasendorderedtag().
|
static |
Referenced by dazonesupsysctl().
|
static |
|
static |
Definition at line 1605 of file scsi_da.c.
Referenced by dashutdown().
|
static |
Definition at line 1472 of file scsi_da.c.
Referenced by daregister(), and dashutdown().
|
static |
Definition at line 1534 of file scsi_da.c.
Referenced by daregister().
|
static |
|
static |
|
static |
Definition at line 1532 of file scsi_da.c.
Referenced by daregister().
|
static |
|
static |
Definition at line 1471 of file scsi_da.c.
Referenced by daregister().