|
smartmontools SVN Rev 5716
Utility to control and monitor storage systems with "S.M.A.R.T."
|
SCSI device access. More...
#include <dev_interface.h>

Public Member Functions | |
| virtual bool | scsi_pass_through (scsi_cmnd_io *iop)=0 |
| SCSI pass through. | |
| bool | scsi_pass_through_and_check (scsi_cmnd_io *iop, const char *msg="") |
| void | set_rcap16_first () |
| Always try READ CAPACITY(10) (rcap10) first but once we know rcap16 is needed, use it instead. | |
| bool | use_rcap16 () const |
| void | set_spc4_or_higher () |
| bool | is_spc4_or_higher () const |
| bool | query_cmd_support () |
| bool | checked_cmd_support () const |
| enum scsi_cmd_support | cmd_support_level (uint8_t opcode, bool sa_valid, uint16_t sa, bool for_lsense_spc=false) const |
Public Member Functions inherited from smart_device | |
| virtual | ~smart_device () |
| bool | is_ata () const |
| Return true if ATA device. | |
| bool | is_scsi () const |
| Return true if SCSI device. | |
| bool | is_nvme () const |
| Return true if NVMe device. | |
| ata_device * | to_ata () |
| Downcast to ATA device. | |
| const ata_device * | to_ata () const |
| Downcast to ATA device (const). | |
| scsi_device * | to_scsi () |
| Downcast to SCSI device. | |
| const scsi_device * | to_scsi () const |
| Downcast to SCSI device (const). | |
| nvme_device * | to_nvme () |
| Downcast to NVMe device. | |
| const nvme_device * | to_nvme () const |
| Downcast to NVMe device (const). | |
| const device_info & | get_info () const |
| Get device info struct. | |
| const char * | get_dev_name () const |
| Get device (path)name. | |
| const char * | get_info_name () const |
| Get informal name. | |
| const char * | get_dev_type () const |
| Get device type. | |
| const char * | get_req_type () const |
| Get type requested by user, empty if none. | |
| const error_info & | get_err () const |
| Get last error info struct. | |
| int | get_errno () const |
| Get last error number. | |
| const char * | get_errmsg () const |
| Get last error message. | |
| virtual bool | is_syscall_unsup () const |
| Return true if last error indicates an unsupported system call. | |
| bool | set_err (int no, const char *msg,...) __attribute_format_printf(3 |
| Set last error number and message. | |
| bool bool | set_err (const error_info &err) |
| Set last error info struct. | |
| void | clear_err () |
| Clear last error info. | |
| bool | set_err (int no) |
| Set last error number and default message. | |
| virtual bool | is_open () const =0 |
| Return true if device is open. | |
| virtual bool | open ()=0 |
| Open device, return false on error. | |
| virtual bool | close ()=0 |
| Close device, return false on error. | |
| virtual smart_device * | autodetect_open () |
| Open device with autodetection support. | |
| virtual bool | is_powered_down () |
| Early test if device is powered up or down. | |
| virtual bool | owns (const smart_device *dev) const |
| Return true if other device is owned by this device. | |
| virtual void | release (const smart_device *dev) |
| Release ownership of other device. | |
Protected Member Functions | |
| void | hide_scsi (bool hide=true) |
| Hide/unhide SCSI interface. | |
| scsi_device () | |
| Default constructor, registers device as SCSI. | |
Protected Member Functions inherited from smart_device | |
| smart_device (smart_interface *intf, const char *dev_name, const char *dev_type, const char *req_type) | |
| Constructor to init interface and device info. | |
| smart_device (do_not_use_in_implementation_classes) | |
| Dummy constructor for abstract classes. | |
| device_info & | set_info () |
| R/W access to device info struct. | |
| smart_interface * | smi () |
| Get interface which produced this object. | |
| const smart_interface * | smi () const |
| Get interface which produced this object (const). | |
Additional Inherited Members | |
Static Public Member Functions inherited from smart_device | |
| static int | get_num_objects () |
| Get current number of allocated 'smart_device' objects. | |
Protected Types inherited from smart_device | |
| enum | do_not_use_in_implementation_classes { never_called } |
| Dummy enum for dummy constructor. More... | |
SCSI device access.
Definition at line 586 of file dev_interface.h.
|
inlineprotected |
Default constructor, registers device as SCSI.
Definition at line 624 of file dev_interface.h.
|
inline |
Definition at line 612 of file dev_interface.h.
| enum scsi_cmd_support scsi_device::cmd_support_level | ( | uint8_t | opcode, |
| bool | sa_valid, | ||
| uint16_t | sa, | ||
| bool | for_lsense_spc = false |
||
| ) | const |
Definition at line 172 of file scsicmds.cpp.
|
inlineprotected |
Hide/unhide SCSI interface.
Definition at line 620 of file dev_interface.h.
|
inline |
Definition at line 608 of file dev_interface.h.
| bool scsi_device::query_cmd_support | ( | ) |
Definition at line 80 of file scsicmds.cpp.
|
pure virtual |
SCSI pass through.
Returns false on error.
Implemented in areca_scsi_device, os::legacy_scsi_device, os_freebsd::freebsd_megaraid_device, os_freebsd::freebsd_scsi_device, os_freebsd::freebsd_cciss_device, os_linux::linux_scsi_device, os_linux::linux_aacraid_device, os_linux::linux_megaraid_device, os_linux::linux_sssraid_device, os_netbsd::netbsd_scsi_device, os_openbsd::openbsd_scsi_device, os_win32::win_scsi_device, sat::sat_device, and os_win32::win_aacraid_device.
| bool scsi_device::scsi_pass_through_and_check | ( | scsi_cmnd_io * | iop, |
| const char * | msg = "" |
||
| ) |
Definition at line 198 of file dev_interface.cpp.
|
inline |
Always try READ CAPACITY(10) (rcap10) first but once we know rcap16 is needed, use it instead.
Definition at line 600 of file dev_interface.h.
|
inline |
Definition at line 606 of file dev_interface.h.
|
inline |
Definition at line 603 of file dev_interface.h.
|
private |
Definition at line 644 of file dev_interface.h.
|
private |
Definition at line 643 of file dev_interface.h.
|
private |
Definition at line 638 of file dev_interface.h.
|
private |
Definition at line 645 of file dev_interface.h.
|
private |
Definition at line 646 of file dev_interface.h.
|
private |
Definition at line 647 of file dev_interface.h.
|
private |
Definition at line 641 of file dev_interface.h.
|
private |
Definition at line 642 of file dev_interface.h.
|
private |
Definition at line 639 of file dev_interface.h.